From 8f30222bbda9deb5284d31db4b4a8827691b99a6 Mon Sep 17 00:00:00 2001 From: "Fine, Adam [Engineering]" Date: Wed, 20 Sep 2023 08:59:02 -0400 Subject: [PATCH 01/54] add support for pushing down sql enum transforms --- .../toPureGraph/handlers/Handlers.java | 227 +++++++++--------- .../executionPlan/executionPlanFeature.pure | 89 +++++++ .../executionPlan_generation.pure | 52 +++- .../test/testExecutionPlanFeatureFlag.pure | 52 ++++ .../pure/router/routing/router_routing.pure | 3 +- .../relational/contract/storeContract.pure | 3 +- .../tests/executionPlanTest.pure | 4 +- .../relational/extensions/extension.pure | 8 +- .../graphFetch/relationalGraphFetch.pure | 16 +- .../pureToSQLQuery/pureToSQLQuery.pure | 74 ++++-- .../relationalMappingExecution.pure | 11 +- .../tests/query/testWithEnumPushDown.pure | 64 +++++ 12 files changed, 447 insertions(+), 156 deletions(-) create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlanFeature.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/test/testExecutionPlanFeatureFlag.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEnumPushDown.pure 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 ca961cb9c47..e5f1a8e2d03 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 @@ -376,32 +376,32 @@ public Handlers(PureModel pureModel) h("meta::pure::functions::collection::map_T_MANY__Function_1__V_MANY_", true, ps -> res(funcReturnType(ps.get(1)), "zeroMany"), ps -> true))); register(m( - // meta::pure::tds::filter(tds:TabularDataSet[1], f:Function<{TDSRow[1]->Boolean[1]}>[1]):TabularDataSet[1] - grp(TDSFilterInference, h("meta::pure::tds::filter_TabularDataSet_1__Function_1__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> typeOne(ps.get(0), "TabularDataSet"))), - // meta::pure::functions::collection::filter(value:T[*], func:Function<{T[1]->Boolean[1]}>[1]):T[*]; - grp(LambdaInference, h("meta::pure::functions::collection::filter_T_MANY__Function_1__T_MANY_", true, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> true)) + // meta::pure::tds::filter(tds:TabularDataSet[1], f:Function<{TDSRow[1]->Boolean[1]}>[1]):TabularDataSet[1] + grp(TDSFilterInference, h("meta::pure::tds::filter_TabularDataSet_1__Function_1__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> typeOne(ps.get(0), "TabularDataSet"))), + // meta::pure::functions::collection::filter(value:T[*], func:Function<{T[1]->Boolean[1]}>[1]):T[*]; + grp(LambdaInference, h("meta::pure::functions::collection::filter_T_MANY__Function_1__T_MANY_", true, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> true)) ) ); register(m( - // meta::pure::tds::project(set:T[*], paths:Path[*]):TabularDataSet[1] - m(h("meta::pure::tds::project_T_MANY__Path_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> ps.size() == 2 && typeMany(ps.get(1), "Path"))), - // meta::pure::tds::project(set:K[*], functions:Function<{K[1]->Any[*]}>[*], ids:String[*]):TabularDataSet[1] - grp(LambdaCollectionInference, h("meta::pure::tds::project_K_MANY__Function_MANY__String_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> ps.size() == 3)), - grp(LambdaColCollectionInference, - //meta::pure::tds::project(tds:TabularDataSet[1], columnFunctions:ColumnSpecification[*]):TabularDataSet[1] - h("meta::pure::tds::project_TabularDataSet_1__ColumnSpecification_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> typeOne(ps.get(0), "TabularDataSet")), - // meta::pure::tds::project(set:T[*], columnSpecifications:ColumnSpecification[*]):TabularDataSet[1] - h("meta::pure::tds::project_T_MANY__ColumnSpecification_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> true) - ) + // meta::pure::tds::project(set:T[*], paths:Path[*]):TabularDataSet[1] + m(h("meta::pure::tds::project_T_MANY__Path_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> ps.size() == 2 && typeMany(ps.get(1), "Path"))), + // meta::pure::tds::project(set:K[*], functions:Function<{K[1]->Any[*]}>[*], ids:String[*]):TabularDataSet[1] + grp(LambdaCollectionInference, h("meta::pure::tds::project_K_MANY__Function_MANY__String_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> ps.size() == 3)), + grp(LambdaColCollectionInference, + //meta::pure::tds::project(tds:TabularDataSet[1], columnFunctions:ColumnSpecification[*]):TabularDataSet[1] + h("meta::pure::tds::project_TabularDataSet_1__ColumnSpecification_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> typeOne(ps.get(0), "TabularDataSet")), + // meta::pure::tds::project(set:T[*], columnSpecifications:ColumnSpecification[*]):TabularDataSet[1] + h("meta::pure::tds::project_T_MANY__ColumnSpecification_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> true) + ) ) ); register(m( - // meta::pure::tds::groupBy(tds:TabularDataSet[1], columns:String[*], aggValues:meta::pure::tds::AggregateValue[*]):TabularDataSet[1] - grp(TDSAggInference, h("meta::pure::tds::groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> typeOne(ps.get(0), "TabularDataSet"))), - // meta::pure::functions::collection::groupBy(set:K[*], functions:meta::pure::metamodel::function::Function<{K[1]->Any[*]}>[*], aggValues:meta::pure::functions::collection::AggregateValue[*], ids:String[*]):TabularDataSet[1] - grp(LambdaAndAggInference, h("meta::pure::tds::groupBy_K_MANY__Function_MANY__AggregateValue_MANY__String_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> true)) + // meta::pure::tds::groupBy(tds:TabularDataSet[1], columns:String[*], aggValues:meta::pure::tds::AggregateValue[*]):TabularDataSet[1] + grp(TDSAggInference, h("meta::pure::tds::groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> typeOne(ps.get(0), "TabularDataSet"))), + // meta::pure::functions::collection::groupBy(set:K[*], functions:meta::pure::metamodel::function::Function<{K[1]->Any[*]}>[*], aggValues:meta::pure::functions::collection::AggregateValue[*], ids:String[*]):TabularDataSet[1] + grp(LambdaAndAggInference, h("meta::pure::tds::groupBy_K_MANY__Function_MANY__AggregateValue_MANY__String_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> true)) ) ); @@ -415,25 +415,25 @@ public Handlers(PureModel pureModel) register(grp(LambdaAndAggInference, h("meta::pure::tds::groupByWithWindowSubset_K_MANY__Function_MANY__AggregateValue_MANY__String_MANY__String_MANY__String_MANY__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> true))); register(m( - // meta::pure::functions::lang::eval(func:Function<{T[n]->V[m]}>[1], param:T[n]):V[m]; - grp(EvalInference, h("meta::pure::functions::lang::eval_Function_1__T_n__V_m_", true, ps -> res(funcReturnType(ps.get(0)), funcReturnMul(ps.get(0))), ps -> ps.size() == 2)), - // meta::pure::functions::lang::eval(func:Function<{->V[m]}>[1]):V[m]; - m(h("meta::pure::functions::lang::eval_Function_1__V_m_", true, ps -> res(funcReturnType(ps.get(0)), funcReturnMul(ps.get(0))), ps -> ps.size() == 1)) + // meta::pure::functions::lang::eval(func:Function<{T[n]->V[m]}>[1], param:T[n]):V[m]; + grp(EvalInference, h("meta::pure::functions::lang::eval_Function_1__T_n__V_m_", true, ps -> res(funcReturnType(ps.get(0)), funcReturnMul(ps.get(0))), ps -> ps.size() == 2)), + // meta::pure::functions::lang::eval(func:Function<{->V[m]}>[1]):V[m]; + m(h("meta::pure::functions::lang::eval_Function_1__V_m_", true, ps -> res(funcReturnType(ps.get(0)), funcReturnMul(ps.get(0))), ps -> ps.size() == 1)) ) ); // Inference in the context of the parent register(m(m(h("meta::pure::tds::agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType")) - ._rawType(this.pureModel.getType("meta::pure::tds::AggregateValue")) - ._typeArguments(Lists.fixedSize.of(funcReturnType(ps.get(1)), funcReturnType(ps.get(2)))), + ._rawType(this.pureModel.getType("meta::pure::tds::AggregateValue")) + ._typeArguments(Lists.fixedSize.of(funcReturnType(ps.get(1)), funcReturnType(ps.get(2)))), "one"), ps -> Lists.fixedSize.of(funcReturnType(ps.get(1)), funcReturnType(ps.get(2))), ps -> ps.size() == 3 && typeOne(ps.get(0), "String"))), m(h("meta::pure::functions::collection::agg_FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_", false, ps -> res("meta::pure::functions::collection::AggregateValue", "one"), ps -> true)))); register(m(m(h("meta::pure::tds::col_Function_1__String_1__String_1__BasicColumnSpecification_1_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType")) - ._rawType(this.pureModel.getType("meta::pure::tds::BasicColumnSpecification")) - ._typeArguments(Lists.fixedSize.of(funcType(ps.get(0)._genericType())._parameters().getOnly()._genericType())), - "one"), ps -> Lists.fixedSize.of(funcType(ps.get(0)._genericType())._parameters().getOnly()._genericType()), ps -> ps.size() == 3)), + ._rawType(this.pureModel.getType("meta::pure::tds::BasicColumnSpecification")) + ._typeArguments(Lists.fixedSize.of(funcType(ps.get(0)._genericType())._parameters().getOnly()._genericType())), + "one"), ps -> Lists.fixedSize.of(funcType(ps.get(0)._genericType())._parameters().getOnly()._genericType()), ps -> ps.size() == 3)), m(h("meta::pure::tds::col_Function_1__String_1__BasicColumnSpecification_1_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType")) ._rawType(this.pureModel.getType("meta::pure::tds::BasicColumnSpecification")) ._typeArguments(Lists.fixedSize.of(funcType(ps.get(0)._genericType())._parameters().getOnly()._genericType())), @@ -499,8 +499,8 @@ public Handlers(PureModel pureModel) register(m(m(m(h("meta::pure::functions::collection::removeDuplicates_T_MANY__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> ps.size() == 1)), - // meta::pure::functions::collection::removeDuplicates(col:T[*], eql:Function<{T[1],T[1]->Boolean[1]}>[1]):T[*] - grp(TwoParameterLambdaInference, h("meta::pure::functions::collection::removeDuplicates_T_MANY__Function_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), p -> p.size() == 2))), + // meta::pure::functions::collection::removeDuplicates(col:T[*], eql:Function<{T[1],T[1]->Boolean[1]}>[1]):T[*] + grp(TwoParameterLambdaInference, h("meta::pure::functions::collection::removeDuplicates_T_MANY__Function_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), p -> p.size() == 2))), grp(TwoParameterLambdaInference, h("meta::pure::functions::collection::removeDuplicates_T_MANY__Function_$0_1$__Function_$0_1$__T_MANY_", true, ps -> res(ps.get(0)._genericType(), "zeroMany"), p -> p.size() == 3)))); register(h("meta::pure::tds::concatenate_TabularDataSet_1__TabularDataSet_1__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> "TabularDataSet".equals(ps.get(0)._genericType()._rawType()._name())), @@ -533,8 +533,8 @@ public Handlers(PureModel pureModel) register(m( - m(h("meta::pure::functions::collection::isDistinct_T_MANY__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> ps.size() == 1)), - m(h("meta::pure::functions::collection::isDistinct_T_MANY__RootGraphFetchTree_1__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> ps.size() == 2)) + m(h("meta::pure::functions::collection::isDistinct_T_MANY__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> ps.size() == 1)), + m(h("meta::pure::functions::collection::isDistinct_T_MANY__RootGraphFetchTree_1__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> ps.size() == 2)) ) ); @@ -560,24 +560,24 @@ public Handlers(PureModel pureModel) register("meta::pure::functions::collection::at_T_MANY__Integer_1__T_1_", true, ps -> res(ps.get(0)._genericType(), "one")); register(m( - m(h("meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> ps.size() == 2)), - m(h("meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> ps.size() == 3)) + m(h("meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> ps.size() == 2)), + m(h("meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> ps.size() == 3)) ) ); - + register("meta::pure::executionPlan::featureFlag::withFeatureFlags_T_MANY__Enum_MANY__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany")); register(m( - m(h("meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Checked_MANY_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.pureModel.getType("meta::pure::dataQuality::Checked"))._typeArgumentsAdd(ps.get(0)._genericType()), "zeroMany"), ps -> Lists.mutable.with(ps.get(0)._genericType()._typeArguments().getFirst()), ps -> ps.size() == 2)), - m(h("meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.pureModel.getType("meta::pure::dataQuality::Checked"))._typeArgumentsAdd(ps.get(0)._genericType()), "zeroMany"), ps -> Lists.mutable.with(ps.get(0)._genericType()._typeArguments().getFirst()), ps -> ps.size() == 3)) + m(h("meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Checked_MANY_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.pureModel.getType("meta::pure::dataQuality::Checked"))._typeArgumentsAdd(ps.get(0)._genericType()), "zeroMany"), ps -> Lists.mutable.with(ps.get(0)._genericType()._typeArguments().getFirst()), ps -> ps.size() == 2)), + m(h("meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.pureModel.getType("meta::pure::dataQuality::Checked"))._typeArgumentsAdd(ps.get(0)._genericType()), "zeroMany"), ps -> Lists.mutable.with(ps.get(0)._genericType()._typeArguments().getFirst()), ps -> ps.size() == 3)) ) ); register("meta::pure::graphFetch::execution::graphFetchUnexpanded_T_MANY__RootGraphFetchTree_1__T_MANY_", false, ps -> res(ps.get(0)._genericType(), "zeroMany")); register("meta::pure::graphFetch::execution::graphFetchCheckedUnexpanded_T_MANY__RootGraphFetchTree_1__Checked_MANY_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.pureModel.getType("meta::pure::dataQuality::Checked"))._typeArgumentsAdd(ps.get(0)._genericType()), "zeroMany")); register(m( - m(h("meta::pure::graphFetch::execution::serialize_Checked_MANY__RootGraphFetchTree_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 2 && "Checked".equals(ps.get(0)._genericType()._rawType()._name()))), - m(h("meta::pure::graphFetch::execution::serialize_T_MANY__RootGraphFetchTree_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 2)), - m(h("meta::pure::graphFetch::execution::serialize_Checked_MANY__RootGraphFetchTree_1__AlloySerializationConfig_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 3 && "Checked".equals(ps.get(0)._genericType()._rawType()._name()) && "AlloySerializationConfig".equals(ps.get(2)._genericType()._rawType()._name()))), - m(h("meta::pure::graphFetch::execution::serialize_T_MANY__RootGraphFetchTree_1__AlloySerializationConfig_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 3)) + m(h("meta::pure::graphFetch::execution::serialize_Checked_MANY__RootGraphFetchTree_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 2 && "Checked".equals(ps.get(0)._genericType()._rawType()._name()))), + m(h("meta::pure::graphFetch::execution::serialize_T_MANY__RootGraphFetchTree_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 2)), + m(h("meta::pure::graphFetch::execution::serialize_Checked_MANY__RootGraphFetchTree_1__AlloySerializationConfig_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 3 && "Checked".equals(ps.get(0)._genericType()._rawType()._name()) && "AlloySerializationConfig".equals(ps.get(2)._genericType()._rawType()._name()))), + m(h("meta::pure::graphFetch::execution::serialize_T_MANY__RootGraphFetchTree_1__AlloySerializationConfig_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 3)) ) ); @@ -893,7 +893,7 @@ private void registerStrings() register(m(m(h("meta::pure::functions::string::isLetter_String_1__Integer_1__Integer_1__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> ps.size() == 3)), m(h("meta::pure::functions::string::isLetter_String_1__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> true)))); register(m(m(h("meta::pure::functions::string::makeString_Pair_MANY__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 1 && typeMany(ps.get(0), "Pair")), - h("meta::pure::functions::string::makeString_Any_MANY__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 1)), + h("meta::pure::functions::string::makeString_Any_MANY__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 1)), m(h("meta::pure::functions::string::makeString_Any_MANY__String_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 2)), m(h("meta::pure::functions::string::makeString_Any_MANY__String_1__String_1__String_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 4)))); register("meta::pure::functions::string::splitOnCamelCase_String_1__String_MANY_", false, ps -> res("String", "zeroMany")); @@ -1081,7 +1081,7 @@ private void registerAlgebra() register(m(m(h("meta::pure::functions::math::divide_Number_1__Number_1__Float_1_", true, ps -> res("Float", "one"), ps -> ps.size() == 2)), - m(h("meta::pure::functions::math::divide_Decimal_1__Decimal_1__Integer_1__Decimal_1_", true, ps -> res("Decimal", "one"), ps -> ps.size() == 3)))); + m(h("meta::pure::functions::math::divide_Decimal_1__Decimal_1__Integer_1__Decimal_1_", true, ps -> res("Decimal", "one"), ps -> ps.size() == 3)))); register(h("meta::pure::functions::string::plus_String_MANY__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 1 && typeMany(ps.get(0), "String")), @@ -1191,38 +1191,38 @@ private void registerUnitFunctions() private void registerCalendarFunctions() { - register("meta::pure::functions::date::calendar::annualized_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::cme_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::cw_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::cw_fm_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::CYMinus2_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::CYMinus3_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::mtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p12wa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p12mtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p12wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p4wa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p4wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p52wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::p52wa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pma_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pmtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pqtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::priorDay_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::priorYear_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pw_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pw_fm_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pwa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pwtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pymtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pyqtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pytd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pywa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::pywtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::qtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::reportEndDay_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); - register("meta::pure::functions::date::calendar::ytd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number","zeroOne")); + register("meta::pure::functions::date::calendar::annualized_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::cme_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::cw_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::cw_fm_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::CYMinus2_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::CYMinus3_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::mtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p12wa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p12mtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p12wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p4wa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p4wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p52wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::p52wa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pma_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pmtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pqtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::priorDay_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::priorYear_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pw_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pw_fm_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pwa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pwtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pymtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pyqtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pytd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pywa_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::pywtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::qtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::reportEndDay_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::wtd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); + register("meta::pure::functions::date::calendar::ytd_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_", false, ps -> res("Number", "zeroOne")); } public Pair> buildFunctionExpression(String functionName, List parameters, MutableList openVariables, SourceInformation sourceInformation, CompileContext compileContext, ProcessingContext processingContext) @@ -1235,7 +1235,7 @@ private void registerMetaPackage(FunctionHandler... handlers) { for (FunctionHandler handler : handlers) { - org.finos.legend.pure.m3.coreinstance.Package pkg = handler.getFunc() instanceof org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement ? ((org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement)handler.getFunc())._package() : null; + org.finos.legend.pure.m3.coreinstance.Package pkg = handler.getFunc() instanceof org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement ? ((org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement) handler.getFunc())._package() : null; if (pkg != null) { String path = Root_meta_pure_functions_meta_elementToPath_PackageableElement_1__String_1_(pkg, pureModel.getExecutionSupport()); @@ -1579,6 +1579,7 @@ private Map buildDispatch() map.put("meta::pure::executionPlan::engine::java::convert_Any_1__Unit_1__Any_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Unit".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::executionPlan::engine::java::unitType_Any_1__String_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity())); map.put("meta::pure::executionPlan::engine::java::unitValue_Any_1__Number_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity())); + map.put("meta::pure::executionPlan::featureFlag::withFeatureFlags_T_MANY__Enum_MANY__T_MANY_", (List ps) -> ps.size() == 2); map.put("meta::json::toJSON_Any_MANY__String_1_", (List ps) -> ps.size() == 1); map.put("meta::json::toJSON_T_MANY__LambdaFunction_MANY__String_1_", (List ps) -> ps.size() == 2 && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "LambdaFunction".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::asserts::assertContains_Any_MANY__Any_1__Boolean_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(1)._multiplicity())); @@ -1780,7 +1781,7 @@ private Map buildDispatch() map.put("meta::pure::functions::collection::reverse_T_m__T_m_", (List ps) -> ps.size() == 1); map.put("meta::pure::functions::collection::size_Any_MANY__Integer_1_", (List ps) -> ps.size() == 1); map.put("meta::pure::functions::collection::slice_T_MANY__Integer_1__Integer_1__T_MANY_", (List ps) -> ps.size() == 3 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); - map.put("meta::pure::functions::collection::paginated_T_MANY__Integer_1__Integer_1__T_MANY_",(List ps) -> ps.size() == 3 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); + map.put("meta::pure::functions::collection::paginated_T_MANY__Integer_1__Integer_1__T_MANY_", (List ps) -> ps.size() == 3 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::sortBy_T_m__Function_$0_1$__T_m_", (List ps) -> ps.size() == 2 && matchZeroOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || check(funcType(ps.get(1)._genericType()), (FunctionType ft) -> isOne(ft._returnMultiplicity()) && check(ft._parameters().toList(), (List nps) -> nps.size() == 1 && isOne(nps.get(0)._multiplicity()))))); map.put("meta::pure::functions::collection::sort_T_m__Function_$0_1$__Function_$0_1$__T_m_", (List ps) -> ps.size() == 3 && matchZeroOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || check(funcType(ps.get(1)._genericType()), (FunctionType ft) -> isOne(ft._returnMultiplicity()) && check(ft._parameters().toList(), (List nps) -> nps.size() == 1 && isOne(nps.get(0)._multiplicity())))) && matchZeroOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || check(funcType(ps.get(2)._genericType()), (FunctionType ft) -> isOne(ft._returnMultiplicity()) && ("Nil".equals(ft._returnType()._rawType()._name()) || "Integer".equals(ft._returnType()._rawType()._name())) && check(ft._parameters().toList(), (List nps) -> nps.size() == 2 && isOne(nps.get(0)._multiplicity()) && isOne(nps.get(1)._multiplicity()))))); map.put("meta::pure::functions::collection::sort_T_m__Function_$0_1$__T_m_", (List ps) -> ps.size() == 2 && matchZeroOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || check(funcType(ps.get(1)._genericType()), (FunctionType ft) -> isOne(ft._returnMultiplicity()) && ("Nil".equals(ft._returnType()._rawType()._name()) || "Integer".equals(ft._returnType()._rawType()._name())) && check(ft._parameters().toList(), (List nps) -> nps.size() == 2 && isOne(nps.get(0)._multiplicity()) && isOne(nps.get(1)._multiplicity()))))); @@ -2063,10 +2064,10 @@ private Map buildDispatch() 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::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::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()))); @@ -2108,7 +2109,7 @@ private Map buildDispatch() map.put("meta::pure::tds::restrict_TabularDataSet_1__String_MANY__TabularDataSet_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::tds::restrictDistinct_TabularDataSet_1__String_MANY__TabularDataSet_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::tds::slice_TabularDataSet_1__Integer_1__Integer_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()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); - map.put("meta::pure::tds::paginated_TabularDataSet_1__Integer_1__Integer_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()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); + map.put("meta::pure::tds::paginated_TabularDataSet_1__Integer_1__Integer_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()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::tds::sort_TabularDataSet_1__SortInformation_MANY__TabularDataSet_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "SortInformation".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::tds::sort_TabularDataSet_1__String_1__SortDirection_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()) || "String".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "SortDirection".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::tds::sort_TabularDataSet_1__String_MANY__TabularDataSet_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name()))); @@ -2118,38 +2119,38 @@ private Map buildDispatch() map.put("meta::pure::tds::tdsContains_T_1__Function_MANY__TabularDataSet_1__Boolean_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || check(funcType(ps.get(1)._genericType()), (FunctionType ft) -> matchZeroOne(ft._returnMultiplicity()) && check(ft._parameters().toList(), (List nps) -> nps.size() == 1 && isOne(nps.get(0)._multiplicity())))) && isOne(ps.get(2)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(2)._genericType()._rawType()._name())); map.put("meta::pure::tds::tdsRows_TabularDataSet_1__TDSRow_MANY_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name())); map.put("meta::pure::tds::extensions::firstNotNull_T_MANY__T_$0_1$_", (List ps) -> ps.size() == 1); - map.put("meta::pure::functions::date::calendar::annualized_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::cme_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::cw_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::cw_fm_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::CYMinus2_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::CYMinus3_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::mtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p12wa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p12mtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p12wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p4wa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p4wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p52wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::p52wa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pma_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pmtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pqtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::priorDay_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::priorYear_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pw_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pw_fm_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pwa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pwtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pymtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pyqtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pytd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pywa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::pywtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::qtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::reportEndDay_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); - map.put("meta::pure::functions::date::calendar::ytd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").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()) && Sets.immutable.with("Nil","Date","StrictDate","DateTime","LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil","Number","Integer","Float","Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::annualized_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::cme_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::cw_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::cw_fm_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::CYMinus2_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::CYMinus3_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::mtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p12wa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p12mtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p12wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p4wa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p4wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p52wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::p52wa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pma_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pmtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pqtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::priorDay_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::priorYear_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pw_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pw_fm_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pwa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pwtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pymtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pyqtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pytd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pywa_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::pywtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::qtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::reportEndDay_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::wtd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); + map.put("meta::pure::functions::date::calendar::ytd_Date_1__String_1__Date_1__Number_$0_1$", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").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()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(2)._genericType()._rawType()._name()) && matchZeroOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(3)._genericType()._rawType()._name())); // ------------------------------------------------------------------------------------------------ diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlanFeature.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlanFeature.pure new file mode 100644 index 00000000000..1966e468ccc --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlanFeature.pure @@ -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. + +import meta::pure::executionPlan::*; +import meta::pure::runtime::*; +import meta::pure::router::routing::*; +import meta::pure::extension::*; +import meta::pure::executionPlan::featureFlag::*; + + +Enum meta::pure::executionPlan::features::Feature +{ + PUSH_DOWN_ENUM_TRANSFORM +} + +function meta::pure::executionPlan::featureFlag::withFeatureFlags(object:T[*],e:Enum[*]):T[*] +{ + $object; +} + +Class meta::pure::executionPlan::featureFlag::FeatureFlagOption extends meta::pure::executionPlan::ExecutionOption +{ + flags:Enum[*]; +} + + +function meta::pure::executionPlan::featureFlag::contextHasFlag(context:ExecutionContext[1],flag:Enum[1]) : Boolean[1] +{ + $context ->getContexts()->filter(c|$c->instanceOf(ExecutionOptionContext))->cast(@ExecutionOptionContext)->map(c| $c.executionOptions->filter(f| $f->instanceOf(FeatureFlagOption))->cast(@FeatureFlagOption).flags)->contains($flag); +} + +function meta::pure::executionPlan::featureFlag::addFlagToContext(context:ExecutionContext[1],flag:Enum[*]) : ExecutionContext[1] +{ + let flagOption =^FeatureFlagOption(flags = $flag); + if($context->instanceOf(ExecutionOptionContext), + |let optionContext = $context->cast(@ExecutionOptionContext); + ^$optionContext(executionOptions += $flagOption);, + | let option = ^ExecutionOptionContext(executionOptions=$flagOption); + $context->meta::pure::executionPlan::mergeContext($option); + ); +} + + +function meta::pure::executionPlan::featureFlag::wrapFnWithFeatureFlag(function:Function[1],flags:Enum[*]) : Function[1] +{ + $function; +} + + + + +function meta::pure::executionPlan::featureFlag::ExecutionPlanFeatureFlagExtension() : Extension[1] +{ + let shared = ^Extension( + type = 'featureFlag', + availableFeatures = ^FeatureExtension + ( + id = 'featureFlag', + routeFunctionExpressions = [ + pair( + fe:FunctionExpression[1] | $fe.func == meta::pure::executionPlan::featureFlag::withFeatureFlags_T_MANY__Enum_MANY__T_MANY_, + {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 flags = $fe.parametersValues->at(1)->match([ s: SimpleFunctionExpression[1] | $s->at(0)->cast(@SimpleFunctionExpression)->reactivate()->cast(@Enum);, + i :InstanceValue[*] | $i.values->map(v|$v->cast(@SimpleFunctionExpression)->reactivate()->cast(@Enum));, + a :Any[*] | fail('Found unsupported feature flag Specification, Parameters are not supported for feature flags'); @Enum; + ]); + + + let updatedContext =meta::pure::executionPlan::featureFlag::addFlagToContext($executionContext,$flags); + routeFunctionExpressionFunctionDefinition($f, $fe, ^$state(executionContext=$updatedContext), $updatedContext, $vars, $inScopeVars, $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/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..54f6251ca50 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 @@ -66,7 +66,50 @@ Class meta::pure::executionPlan::ExecutionOption { } -Class meta::pure::executionPlan::ExecutionOptionContext extends ExecutionContext +Class meta::pure::executionPlan::MultiExecutionContext extends ExecutionContext +{ + childExecutionContext:ExecutionContext[*]; + allContexts() {$this.childExecutionContext->map(e |if($e->instanceOf(MultiExecutionContext), + | $e->concatenate($e->cast(@MultiExecutionContext)->collectionMultiExecutionContexts([])), + |$e) + ); + }:ExecutionContext[*]; +} +function meta::pure::executionPlan::getContexts(context:ExecutionContext[1]):ExecutionContext[*] +{ + if($context->instanceOf(MultiExecutionContext), + | $context->concatenate($context->cast(@MultiExecutionContext).allContexts()), + |$context); +} + +function meta::pure::executionPlan::allContextsOfType(context:ExecutionContext[1],contextFilter:Class[1]):T[*] +{ + $context->getContexts()->filter(c|$c->instanceOf($contextFilter))->cast(@T); +} + + +function meta::pure::executionPlan::mergeContext(rootContext:ExecutionContext[1],childContext:ExecutionContext[1]):MultiExecutionContext[1] + { + if($rootContext->instanceOf(MultiExecutionContext), + | let mult = $rootContext->cast(@MultiExecutionContext); + ^$mult(childExecutionContext+=$childContext );, + |^MultiExecutionContext(childExecutionContext =$rootContext ->concatenate($childContext) ); + + ); + + } + + + +function <> meta::pure::executionPlan::collectionMultiExecutionContexts(context:MultiExecutionContext[1], visited : ExecutionContext[*]):ExecutionContext[*] +{ + $context.childExecutionContext->map(e |if($e->instanceOf(MultiExecutionContext) && !$e->in($visited), + |$e->concatenate( $e->cast(@MultiExecutionContext)->collectionMultiExecutionContexts( $visited->concatenate($e) )), + |$e) + ) +} + +Class meta::pure::executionPlan::ExecutionOptionContext extends MultiExecutionContext { executionOptions : ExecutionOption[*]; } @@ -103,7 +146,7 @@ function meta::pure::executionPlan::executionPlan(routedFunction:FunctionDefinit 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); } @@ -162,6 +205,7 @@ function meta::pure::executionPlan::generatePlatformCode(plan:ExecutionPlan[1], function meta::pure::executionPlan::generatePlatformCode(plan:ExecutionPlan[1], platformId:String[1], config:meta::pure::executionPlan::platformBinding::PlatformBindingConfig[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExecutionPlan[1] { let platformBinding = $extensions->meta::pure::executionPlan::platformBinding::extractPlatformBindingById($platformId); + $platformBinding.bindPlanToPlatform->eval($plan, $config, $extensions, $debug); } @@ -224,14 +268,14 @@ function meta::pure::executionPlan::nodeFromConnection(c:Connection[1], tree:Roo function meta::pure::executionPlan::isExecutionOptionPresent(execCtx: ExecutionOptionContext[1], execOption: Class[1]):Boolean[1] { - let executionOptionsList = $execCtx.executionOptions->filter(f| $f->instanceOf($execOption)); + let executionOptionsList = $execCtx->allContextsOfType(ExecutionOptionContext).executionOptions->filter(f| $f->instanceOf($execOption)); assert($executionOptionsList->size() <= 1, |'Execution Option :' + $execOption.name->toOne() + 'has more than one instance specified in the context'); $executionOptionsList->isNotEmpty(); } function meta::pure::executionPlan::validateAndReturnExecutionOptionOfType(execCtx: ExecutionOptionContext[1], execOption: Class[1]):ExecutionOption[1] { - let executionOptionsList = $execCtx.executionOptions->filter(f| $f->instanceOf($execOption)); + let executionOptionsList = $execCtx->allContextsOfType(ExecutionOptionContext).executionOptions->filter(f| $f->instanceOf($execOption)); assert($executionOptionsList->size() == 1, |'Execution Option:' + $execOption.name->toOne() + 'not mentioned or mentioned more than once as part of the context'); $executionOptionsList->head()->toOne(); } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/test/testExecutionPlanFeatureFlag.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/test/testExecutionPlanFeatureFlag.pure new file mode 100644 index 00000000000..c0b9129efe4 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/test/testExecutionPlanFeatureFlag.pure @@ -0,0 +1,52 @@ +import meta::pure::router::platform::metamodel::*; +import meta::pure::executionPlan::*; +import meta::pure::graphFetch::execution::*; +import meta::pure::functions::tests::model::*; +import meta::pure::router::platform::metamodel::clustering::*; +import meta::pure::executionPlan::featureFlag::*; + +Enum meta::pure::executionPlan::tests::ExampleFlag +{ + myFlag + +} +Enum meta::pure::executionPlan::tests::ExampleFlag2 +{ + AnotherFlag + +} + + +Class meta::pure::executionPlan::tests::featureFlag::Person +{ + +} + +function <> meta::pure::executionPlan::tests::featureFlag::testTwoFeatureFlags() : Boolean[1] +{ + let gft = #{Person{firstName}}#; + let fn = {|meta::pure::executionPlan::tests::featureFlag::Person.all()->graphFetch($gft)->withFeatureFlags([meta::pure::executionPlan::tests::ExampleFlag.myFlag ,meta::pure::executionPlan::tests::ExampleFlag2.AnotherFlag ])}; + let result = meta::pure::router::routeFunction($fn,meta::pure::executionPlan::featureFlag::ExecutionPlanFeatureFlagExtension()); + let context =$result.expressionSequence->evaluateAndDeactivate()->cast(@PlatformClusteredValueSpecification).val->cast(@PlatformRoutedValueSpecification).executionContext->toOne(); + + assert( $context ->contextHasFlag(meta::pure::executionPlan::tests::ExampleFlag.myFlag)); + assert( $context ->contextHasFlag(meta::pure::executionPlan::tests::ExampleFlag2.AnotherFlag)); +} + +function <> meta::pure::executionPlan::tests::featureFlag::testTwoFlagFunctions() : Boolean[1] +{ + let gft = #{Person{firstName}}#; + let fn = {|meta::pure::executionPlan::tests::featureFlag::Person.all()->withFeatureFlags([meta::pure::executionPlan::tests::ExampleFlag.myFlag ])->graphFetch($gft)->serialize($gft)->withFeatureFlags([meta::pure::executionPlan::tests::ExampleFlag2.AnotherFlag ])}; + let result = meta::pure::router::routeFunction($fn ,meta::pure::executionPlan::featureFlag::ExecutionPlanFeatureFlagExtension()); + let context =$result.expressionSequence->evaluateAndDeactivate()->cast(@PlatformClusteredValueSpecification).val->cast(@PlatformRoutedValueSpecification).executionContext->toOne(); + assert( $context ->contextHasFlag(meta::pure::executionPlan::tests::ExampleFlag.myFlag)); + assert( $context ->contextHasFlag(meta::pure::executionPlan::tests::ExampleFlag2.AnotherFlag)); + +} + +function <> meta::pure::executionPlan::tests::featureFlag::testContextHasFlag() : Boolean[1] +{ + let context1= ^ExecutionOptionContext(executionOptions=^FeatureFlagOption(flags=meta::pure::executionPlan::tests::ExampleFlag.myFlag)); + assert( $context1 ->contextHasFlag(meta::pure::executionPlan::tests::ExampleFlag.myFlag)); + +} \ 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 4bb260f1e66..5602cbdaef7 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 @@ -41,6 +41,7 @@ Class meta::pure::router::routing::RoutingState routingStrategy : RoutingStrategy[1]; shouldBeRouted : Boolean[1]; value : Any[0..1]; + executionContext: ExecutionContext[1] = ^ExecutionContext(); } Class meta::pure::router::routing::PropertyMap @@ -62,7 +63,7 @@ function meta::pure::router::routing::enrichFunctionExpressions(expressions:Func $processedFunctions->map(fxn | $fxn.value->match([ evs: ExtendedRoutedValueSpecification[1] | $evs, - vs: ValueSpecification[1] | $fxn.routingStrategy.wrapValueSpec($vs, 'strategy_wrapper', $executionContext, $extensions, $debug) + vs: ValueSpecification[1] | $fxn.routingStrategy.wrapValueSpec($vs, 'strategy_wrapper', $fxn.executionContext, $extensions, $debug) ])); } 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..977c5b743b9 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 @@ -229,9 +229,8 @@ function meta::relational::contract::planExecution(sq:meta::pure::mapping::Store let dbConn = $oldRuntime->connectionByElement($store)->cast(@DatabaseConnection); ^$oldRuntime(connections = $dbConn); ); - let queryExeCtx = if($exeCtx->instanceOf(RelationalExecutionContext),|$exeCtx,|[])->cast(@RelationalExecutionContext); - let originalQuery = $sq.fe->toSQLQuery($m->toOne(), $sq.inScopeVars, $queryExeCtx, $debug, $extensions); + let originalQuery = $sq.fe->toSQLQuery($m->toOne(), $sq.inScopeVars,$debug,$queryExeCtx->relationalExecutionContextToState(defaultState($m->toOne(), $sq.inScopeVars, $exeCtx, $extensions)), $extensions); $originalQuery->postProcessSQLQuery($store, $ext, $m->toOne(), $storeRuntime, $exeCtx, $extensions) ->generateExecutionNodeForPostProcessedResult($sq, $store, $ext, $m->toOne(), $storeRuntime, $exeCtx, $debug, $extensions); ); 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..6f62802f189 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 @@ -2175,8 +2175,8 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanWithL } - function <> meta::pure::executionPlan::tests::testRelationalProjectionWithExternalFormat():Boolean[1] - { +function <> meta::pure::executionPlan::tests::testRelationalProjectionWithExternalFormat():Boolean[1] +{ 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); 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 87262c48cc9..a1671eccd2a 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 @@ -205,13 +205,13 @@ 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)}}, - validTestPackages = 'meta::relational::tests' - - ) + validTestPackages = 'meta::relational::tests', + availableFeatures = meta::pure::executionPlan::featureFlag::ExecutionPlanFeatureFlagExtension().availableFeatures + ) } 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..9e282a3a84f 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 @@ -372,7 +372,7 @@ function meta::relational::graphFetch::executionPlan::planRootGraphFetchExecutio /* Generate SQL Query */ print(if($debug.debug,|$debug.space+' >Process left expression (with properties - '+$simplePrimitiveProperties->map(p|$p.name)->removeDuplicates()->joinStrings('[',', ',']')+'): '+$lhsFe->meta::pure::router::printer::asString()+'\n',|'')); - let pureToSqlState = createPureToSqlState($simplePrimitiveProperties, $sq.inScopeVars, $mapping, $exeCtx); + let pureToSqlState = createPureToSqlState($simplePrimitiveProperties, $sq.inScopeVars, $mapping, $exeCtx,$extensions); let selectWithCursor = $lhsFe->toSelectWithCursor($mapping, $sq.inScopeVars, $debug->indent(2), $pureToSqlState, $extensions); let postProcessorResult = $selectWithCursor.select->toOne()->cast(@SelectSQLQuery)->postProcessSQLQuery($store, $ext, $mapping, $oneRuntime, $exeCtx, $extensions); let postProcessedQuery = $postProcessorResult.query->cast(@SelectSQLQuery); @@ -429,11 +429,11 @@ function <> meta::relational::graphFetch::executionPlan::planGra /* Generate Sql Query */ print(if($debug.debug,|$debug.space+' >Generate local store property query\n',|'')); - let primitiveQuery = generatePrimitivePropertyQuery($parentSets, $currentTree, $parentTree, $mapping, $inScopeVars, $mc, $debug->indent(2), $extensions); + let primitiveQuery = generatePrimitivePropertyQuery($parentSets, $currentTree, $parentTree, $mapping, $inScopeVars, $mc, $debug->indent(2), $exeCtx, $extensions); let resultColumnnName = '"node_' + $currentIdxString + '_result"'; let namedColumnQuery = ^$primitiveQuery(columns = ^Alias(name = $resultColumnnName, relationalElement = $primitiveQuery.columns->toOne())); let changedDriverQuery = $namedColumnQuery->changeDriverToTempWithPkProjection(tempTableName($parentIdx), $parentSets, $extensions); - let shouldManageAgg = $currentTree.property->instanceOf(QualifiedProperty) && $currentTree.property->containsAggregationFunctionInFunction(defaultState($mapping, $inScopeVars).supportedFunctions); + let shouldManageAgg = $currentTree.property->instanceOf(QualifiedProperty) && $currentTree.property->containsAggregationFunctionInFunction(defaultState($mapping, $inScopeVars, $exeCtx, $extensions).supportedFunctions); let managedAggQuery = if ($shouldManageAgg, | ^$changedDriverQuery ( @@ -508,7 +508,7 @@ function <> meta::relational::graphFetch::executionPlan::planGra let wrappedNode = generateExecutionNodeForPostProcessedResult($sqlNode, $allExecNodes, $postProcessorResult, $extensions); let newVars = newVarsForMilestoningContext($currentTree, $inScopeVars); - let mcForProperty = milestoningContextFromPropertyTree($currentTree, $parentTree, $mc, defaultState($mapping, $inScopeVars->putAll($newVars)), $debug->indent(), $extensions); + let mcForProperty = milestoningContextFromPropertyTree($currentTree, $parentTree, $mc, defaultState($mapping, $inScopeVars->putAll($newVars), $exeCtx ,$extensions),$debug->indent(), $extensions); let children = $currentTree->generateRelationalChildGraphNodes($currentPath, $setImpls, $simplePrimitiveProperties, $orderedPaths, $store, $mapping, $runtime, $inScopeVars, $mcForProperty, $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; @@ -669,9 +669,9 @@ function <> meta::relational::graphFetch::executionPlan::assertC }); } -function <> meta::relational::graphFetch::executionPlan::createPureToSqlState(simplePrimitiveProperties: Property[*], inScopeVars: Map>[1], mapping: Mapping[1], exeCtx: ExecutionContext[1]):State[1] +function <> meta::relational::graphFetch::executionPlan::createPureToSqlState(simplePrimitiveProperties: Property[*], inScopeVars: Map>[1], mapping: Mapping[1], exeCtx: ExecutionContext[1],extensions:Extension[*]):State[1] { - let defaultPureToSqlState = defaultState($mapping, $inScopeVars); + let defaultPureToSqlState = defaultState($mapping, $inScopeVars, $exeCtx, $extensions); let sqlStateAsPerContext = if($exeCtx->isNotEmpty() && $exeCtx->toOne()->instanceOf(RelationalExecutionContext), | let relContext = $exeCtx->toOne()->cast(@RelationalExecutionContext); ^$defaultPureToSqlState @@ -735,10 +735,10 @@ function <> meta::relational::graphFetch::executionPlan::generat }); } -function <> meta::relational::graphFetch::executionPlan::generatePrimitivePropertyQuery(setImpls: RelationalInstanceSetImplementation[*], propTree: RoutedPropertyGraphFetchTree[1], parentTree: GraphFetchTree[1], mapping:Mapping[1], inScopeVars: Map>[1], mc: TemporalMilestoningContext[0..1], debug: DebugContext[1], extensions:Extension[*]):SelectSQLQuery[1] +function <> meta::relational::graphFetch::executionPlan::generatePrimitivePropertyQuery(setImpls: RelationalInstanceSetImplementation[*], propTree: RoutedPropertyGraphFetchTree[1], parentTree: GraphFetchTree[1], mapping:Mapping[1], inScopeVars: Map>[1], mc: TemporalMilestoningContext[0..1], debug: DebugContext[1], exeCtx:ExecutionContext[1], extensions:Extension[*]):SelectSQLQuery[1] { let isQualified = $propTree.property->instanceOf(QualifiedProperty); - let pureToSqlState = defaultState($mapping, $inScopeVars); + let pureToSqlState = defaultState($mapping, $inScopeVars, $exeCtx, $extensions); let srcSetImpl = $setImpls->match([ s:RootRelationalInstanceSetImplementation[1] | $s, s:EmbeddedRelationalInstanceSetImplementation[1] | $s.setMappingOwner; 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 984af1381b7..44080d869e7 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 @@ -108,6 +108,7 @@ Class meta::relational::functions::pureToSqlQuery::State preserveJoinOrder : Boolean[0..1]; graphFetchFlow : Boolean[0..1]; graphFetchProperties : Property[*]; + pushDownEnumTransformations :Boolean[1] = false; } Class meta::relational::functions::pureToSqlQuery::FunctionParamScope @@ -156,7 +157,8 @@ Class meta::relational::functions::pureToSqlQuery::ColumnGroup function meta::relational::functions::pureToSqlQuery::toSQLQuery(functionExpression:FunctionExpression[1], mapping:Mapping[1], inScopeVars:Map>[1], execCtx: RelationalExecutionContext[0..1], debug:DebugContext[1], extensions:Extension[*]):SQLQuery[1] { - toSQLQuery($functionExpression, $mapping, $inScopeVars, $debug, $execCtx->relationalExecutionContextToState(defaultState($mapping, $inScopeVars)), $extensions); + + toSQLQuery($functionExpression, $mapping, $inScopeVars, $debug, $execCtx->relationalExecutionContextToState(defaultState($mapping, $inScopeVars, $execCtx, $extensions)), $extensions); } function <> meta::relational::functions::pureToSqlQuery::processQuery(functionExpression:FunctionExpression[1], state:State[1], debug:DebugContext[1], extensions:Extension[*]):SelectWithCursor[1] @@ -196,7 +198,7 @@ function meta::relational::functions::pureToSqlQuery::toSQLQuery(functionExpress function meta::relational::functions::pureToSqlQuery::toSelectWithCursor(functionExpression:FunctionExpression[1], mapping:Mapping[1], inScopeVars:Map>[1], execCtx: RelationalExecutionContext[0..1], debug:DebugContext[1], extensions:Extension[*]):SelectWithCursor[1] { - toSelectWithCursor($functionExpression, $mapping, $inScopeVars, $debug, $execCtx->relationalExecutionContextToState(defaultState($mapping, $inScopeVars)), $extensions); + toSelectWithCursor($functionExpression, $mapping, $inScopeVars, $debug, $execCtx->relationalExecutionContextToState(defaultState($mapping, $inScopeVars, $execCtx, $extensions)), $extensions); } function meta::relational::functions::pureToSqlQuery::toSelectWithCursor(functionExpression:FunctionExpression[1], mapping:Mapping[1], inScopeVars:Map>[1], debug:DebugContext[1], state:State[1], extensions:Extension[*]):SelectWithCursor[1] @@ -258,7 +260,7 @@ function meta::relational::functions::pureToSqlQuery::printNodeWithChildren(t:Re $t->printNode()+'['+if($t->isEmpty(),|'',|$t->map(x|$x->children())->map(c|$c->printNodeWithChildren())->makeString(','))+']'; } -function <> meta::relational::functions::pureToSqlQuery::relationalExecutionContextToState(execCtx:RelationalExecutionContext[0..1], s:State[1]):State[1] +function meta::relational::functions::pureToSqlQuery::relationalExecutionContextToState(execCtx:RelationalExecutionContext[0..1], s:State[1]):State[1] { if ($execCtx->isEmpty(), |$s, @@ -282,6 +284,20 @@ function meta::relational::functions::pureToSqlQuery::defaultState(mapping:Mappi } + +function meta::relational::functions::pureToSqlQuery::defaultState(mapping:Mapping[1], inScopeVars:Map>[1], exeCtx:meta::pure::runtime::ExecutionContext[0..1], extensions:Extension[*]):State[1] +{ + let initialState = defaultState($mapping,$inScopeVars); + let context = if($exeCtx->isEmpty(), + | $initialState, + | if($exeCtx->toOne()->meta::pure::executionPlan::featureFlag::contextHasFlag(meta::pure::executionPlan::features::Feature.PUSH_DOWN_ENUM_TRANSFORM), + | ^$initialState(pushDownEnumTransformations=true);, + |$initialState + ); + ); +} + + function meta::relational::functions::pureToSqlQuery::pushSavedFilteringOperation(s:SelectSQLQuery[1], extensions:Extension[*]):SelectSQLQuery[1] { if ($s.savedFilteringOperation->isEmpty(), @@ -490,7 +506,7 @@ function meta::relational::functions::pureToSqlQuery::processInstanceValue(i:Ins function meta::relational::functions::pureToSqlQuery::processValue(vals:Any[*], 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[*] { - let select = $operation.select; + let select = $operation.select; if ($vals->isEmpty(), | ^$operation(select = $state.inFilter->if(|^$select(filteringOperation = ^Literal(value=^SQLNull())),|^$select(columns = ^Literal(value=^SQLNull())))) , | $vals->map(v | $v->match([ @@ -1552,10 +1568,11 @@ Class meta::relational::functions::pureToSqlQuery::MissingColProcessigRes selectWC:SelectWithCursor[1]; } -function meta::relational::functions::pureToSqlQuery::processRelationalPropertyMapping(relationalPropertyMappings:RelationalPropertyMapping[*], property:AbstractProperty[1], propertyOwnerClass:Class[1], oldSrcOperation:SelectWithCursor[1], state:State[1], joinType:JoinType[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*]):RelationalOperationElement[1] +function meta::relational::functions::pureToSqlQuery::processRelationalPropertyMapping(OrigrelationalPropertyMappings:RelationalPropertyMapping[*], property:AbstractProperty[1], propertyOwnerClass:Class[1], oldSrcOperation:SelectWithCursor[1], state:State[1], joinType:JoinType[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*]):RelationalOperationElement[1] { let propertyReturnType = $property->cast(@Property).genericType.rawType->toOne(); - let firstStep = $propertyReturnType->match( + let relationalPropertyMappings = $OrigrelationalPropertyMappings->map(p|$p->buildPossibleEnumMappingPushDown($state)); + let firstStep = $propertyReturnType->match( [ p:DataType[1] | let currentTreeNode = $oldSrcOperation.currentTreeNode->toOne(); // --------------------------------------------------- @@ -1581,7 +1598,6 @@ function meta::relational::functions::pureToSqlQuery::processRelationalPropertyM // --------------------------------------------------- let mappingImpl = $relationalPropertyMappings->at(0).relationalOperationElement; - let newCurrentTreeNode = $srcOperation.currentTreeNode->toOne(); let relElement = $newCurrentTreeNode.alias.relationalElement; let res = if ( @@ -3339,13 +3355,11 @@ function meta::relational::functions::pureToSqlQuery::processGetAll(viewSpecific function meta::relational::functions::pureToSqlQuery::processRelationalMappingSpecification(viewSpecification:RelationalMappingSpecification[1], c:Class[0..1], nodeId:String[1], addPk:Boolean[1], pkOffset:Integer[1], addAllColumns:Boolean[1], milestoningContext: TemporalMilestoningContext[0..1], state:State[1], context:DebugContext[1], extensions:Extension[*]):SelectWithCursor[1] { let mainTable = $viewSpecification->mainRelation()->processRelation($c, $nodeId, $addPk, $pkOffset, $addAllColumns, $milestoningContext, $state, $context, $extensions); - let innerJoinFilterExists = $viewSpecification->getFilter().joinTreeNode.joinType == JoinType.INNER; let currentRelationalElement = if ($innerJoinFilterExists, | getRelationalElementWithInnerJoin($viewSpecification, $mainTable, $c, $nodeId, $state, $context, $extensions), | $mainTable ); - let currentNode = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $currentRelationalElement)); let base = ^SelectWithCursor( @@ -3361,7 +3375,7 @@ function meta::relational::functions::pureToSqlQuery::processRelationalMappingSp let properties = if($requiresAllProperties, | columnNamesWithRelationalElement($viewSpecification, $c, $state)->map(c | let newQuery = $c.second->processColumnsInRelationalOperationElements($state, $base, $nodeId, ^List(), false, $context, $extensions); rebuildSelectWithCursor($c.first, [], $newQuery, $quoteColumnAliases);) , | [] ); - + let pks = if($addPk && $viewSpecification->getGroupBy()->isEmpty() && ($viewSpecification->getDistinct()->isEmpty() || $viewSpecification->getDistinct()->toOne() == false), | let pks = viewSpecificationPrimaryKey($viewSpecification); $pks->map(pm|let offset = $pks->indexOf($pm); @@ -3400,7 +3414,6 @@ function meta::relational::functions::pureToSqlQuery::processRelationalMappingSp ); let addedFks = if ($state.importDataFlowAddFks == true, |$fks->map(a|^$a(name='fk_'+$a.name)), |$fks); - let s = ^SelectWithCursor( select = ^SelectSQLQuery( distinct = $viewSpecification->getDistinct(), @@ -3453,10 +3466,30 @@ function meta::relational::functions::pureToSqlQuery::relationalmappingspecifica $vs->match([ r:RootRelationalInstanceSetImplementation[1] | $r->dataTypePropertyMappings() ->filter(x | if($state.graphFetchFlow == true, | $x.property->in($state.graphFetchProperties), | true)) - ->map(pm|pair($pm.property.name->toOne(),$pm->cast(@RelationalPropertyMapping).relationalOperationElement)), + ->map(pm| pair($pm.property.name->toOne(), buildPossibleEnumMappingPushDown($pm->cast(@RelationalPropertyMapping),$state).relationalOperationElement);) + , v:View[1] | $v.columnMappings->map(cm|pair($cm.columnName, $cm.relationalOperationElement)); ]); } +function meta::relational::functions::pureToSqlQuery::buildPossibleEnumMappingPushDown(mapping: RelationalPropertyMapping[1], state: State[1]): RelationalPropertyMapping[1] +{ + let relationalElement = $mapping.relationalOperationElement; + if($state.pushDownEnumTransformations && $mapping.transformer ->isNotEmpty() && $mapping.transformer->toOne()->instanceOf(EnumerationMapping) && !$state.inFilter , + |let caseParams = $mapping.transformer->cast(@EnumerationMapping).enumValueMappings + ->map(ev | if($ev.sourceValues->size() == 1, + | ^DynaFunction(name = 'equal', parameters=[$relationalElement, ^Literal(value=$ev.sourceValues->at(0))]), + | ^DynaFunction(name = 'in', parameters = [$relationalElement, ^LiteralList(values=$ev.sourceValues->map(v|^Literal(value=$v)))]); + )->concatenate(^Literal(value=$ev.enum.name)); + ); + + ^$mapping(transformer = [], relationalOperationElement=^DynaFunction(name = 'case', parameters = $caseParams->concatenate(^DynaFunction(name = 'sqlNull')))); + , + |$mapping + ); +} + + + function meta::relational::functions::pureToSqlQuery::relationalmappingspecification::viewSpecificationPrimaryKey(vs: RelationalMappingSpecification[1]):RelationalOperationElement[*] { @@ -4395,7 +4428,7 @@ function <> meta::relational::functions::pureToSqlQuery::process let mainTable = $f.parametersValues->at(0)->cast(@FunctionExpression)->getTableFromParameter(); let mainTableAliasTDS = ^TableAlias(name = 'root', relationalElement = $mainTable->processRelation([], $nodeId, false, 0, false, [], $state, $context, $extensions)); - let joinTreeNode = ^RootJoinTreeNode(alias=$mainTableAliasTDS); + let joinTreeNode = ^RootJoinTreeNode(alias=$mainTableAliasTDS); ^SelectWithCursor( select = ^TdsSelectSqlQuery( data =$joinTreeNode, @@ -5285,7 +5318,7 @@ function meta::relational::functions::pureToSqlQuery::isSupported(f:FunctionDefi function meta::relational::functions::pureToSqlQuery::processProject(ids:String[*], functions:meta::pure::metamodel::function::Function[*], docs:String[*], expression:FunctionExpression[1], operation:SelectWithCursor[1], vars:Map[1], state:State[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1],wc:WindowColumnSpecification[*], extensions:Extension[*]):RelationalOperationElement[1] -{ +{ assertEquals($ids->size(), $functions->size(), | 'The number of column names must match the number of functions. Please provide a column name for each projection function ('+$ids->size()->toString()+' != '+$functions->size()->toString()+')'); assertEquals($ids->size(), $ids->removeDuplicates()->size(), 'The list of Paths provided to project can\'t contain duplicate names. Please use ! to provide an alias. Example:#/Person/lastName!newAlias#'); @@ -5300,7 +5333,6 @@ function meta::relational::functions::pureToSqlQuery::processProject(ids:String[ print(if(!$context.debug, |'', | $context.space+'*>Process Project: '+$functions->map(f|$f->match([p:Path[1]|$p->printPath('/'), f:FunctionDefinition[1]|'\'Function\'']))->makeString(', ')+'\n'+ $context.space+' (P)Source Operation> '+$operation->cast(@SelectWithCursor).select->meta::relational::functions::sqlQueryToString::processOperation(meta::relational::runtime::DatabaseType.H2, $extensions)+'\n')); - let sourceQuery = processValueSpecification($expression.parametersValues->at(0), [], $operation, $vars, ^$state(inProject=true), JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context->shift(), $extensions)->toOne()->cast(@SelectWithCursor); let sourceSelect = $sourceQuery.select; @@ -5344,12 +5376,15 @@ function meta::relational::functions::pureToSqlQuery::processProject(ids:String[ let newColumnsWithPossiblePKs = $newColumns->concatenate($possiblePKsWithUpdatedData.first.values); + let pathInformation = $processedFuncsAndProperties->map(p|let index = $processedFuncsAndProperties->indexOf($p); ^PathInformation(propertyMapping = if($p.currentPropertyMapping->isEmpty(),|[],|$p.currentPropertyMapping->at(0)), - type = $functions->at($index)->functionReturnType().rawType->toOne(), + type = $functions->at($index)->functionReturnType().rawType->toOne()->updateEnumerationType($state), documentation = if ($docs->isEmpty(),|[],|let val=$docs->at($index);if($val=='',|[],|$val);) ); ); + + // $pathInformation->println(); []->toOne(); let windowColPaths = $wc->map(w| let pureType = $w.func->match([a:OlapAggregation[1]|$a.aggregateFn->functionReturnType().rawType->toOne(),r:OlapRank[1]|Integer ]); let path = ^PathInformation(type = $pureType,documentation = $w.documentation,relationalType = meta::relational::transform::fromPure::pureTypeToDataType($pureType)); pair($w.name,$path); @@ -5376,7 +5411,7 @@ function meta::relational::functions::pureToSqlQuery::processProject(ids:String[ ^$operation( select = ^TdsSelectSqlQuery( distinct = $merge.distinct, - columns = $nonOlap->concatenate($importDataFlowCols)->cast(@Alias)->removeDuplicates({a,b|$a.name == $b.name})->concatenate($olapCols),//->concatenate($olapCols), + columns = $nonOlap->concatenate($importDataFlowCols)->cast(@Alias)->removeDuplicates({a,b|$a.name == $b.name})->concatenate($olapCols), data = $possiblePKsWithUpdatedData.second, savedFilteringOperation = $merge.savedFilteringOperation, filteringOperation = $merge.filteringOperation, @@ -5415,6 +5450,11 @@ function meta::relational::functions::pureToSqlQuery::processProject(ids:String[ ); ); } +function<> meta::relational::functions::pureToSqlQuery::updateEnumerationType(inputType:Type[1], state:State[1]):Type[1] +{ + if($state.pushDownEnumTransformations && $inputType->instanceOf(Enumeration),|String,|$inputType); + +} function meta::relational::functions::pureToSqlQuery::joinToTemp(select:SelectSQLQuery[1], table: Table[1], tempTableName:String[1], indexInUnion:Integer[0..1], context:DebugContext[1], extensions:Extension[*]):SelectSQLQuery[1] { 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..f8d758576f5 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 @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::executionPlan::featureFlag::*; import meta::pure::executionPlan::connection::*; import meta::relational::translation::*; import meta::relational::functions::typeInference::*; @@ -48,7 +49,7 @@ function meta::relational::mapping::generateExecutionNodeForPostProcessedResult( function meta::relational::mapping::generateExecutionNodeForPostProcessedResult(postProcessorResult:PostProcessorResult[1], sq:meta::pure::mapping::StoreQuery[1], store:Database[1], ext:RoutedValueSpecification[0..1], m:Mapping[1], runtime:Runtime[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], wrapInInstantiationNode: Boolean[1], extensions:Extension[*]):ExecutionNode[1] { let sqlNode = generateSQLExecutionNode($postProcessorResult.query, $runtime->toOne()->connectionByElement($store)->cast(@DatabaseConnection), addEnumMapSupportFunctions($sq, $m), $extensions); - let relationalNode = if($wrapInInstantiationNode, | generateInstantiationExecutionNode($sq, $ext, $postProcessorResult.query, $sqlNode, $m), | $sqlNode); + let relationalNode = if($wrapInInstantiationNode, | generateInstantiationExecutionNode($sq, $ext, $postProcessorResult.query, $sqlNode, $m,$exeCtx), | $sqlNode); let nodes = $postProcessorResult.executionNodes->concatenate($relationalNode)->concatenate($postProcessorResult.postExecutionNodes); if($nodes->size()>1, | if($nodes->map(node | $node->allNodes($extensions))->exists(node | $node->instanceOf(CreateAndPopulateTempTableExecutionNode)) || $postProcessorResult.finallyExecutionNodes->isNotEmpty(), @@ -58,7 +59,7 @@ function meta::relational::mapping::generateExecutionNodeForPostProcessedResult( ); } -function meta::relational::mapping::generateInstantiationExecutionNode(sq:meta::pure::mapping::StoreQuery[1], ext:RoutedValueSpecification[0..1], query:SQLQuery[1], node:ExecutionNode[1], m:Mapping[1]):ExecutionNode[1] +function meta::relational::mapping::generateInstantiationExecutionNode(sq:meta::pure::mapping::StoreQuery[1], ext:RoutedValueSpecification[0..1], query:SQLQuery[1], node:ExecutionNode[1], m:Mapping[1],exeCtx:ExecutionContext[1]):ExecutionNode[1] { let possibleClass = $sq.fe.genericType.rawType->toOne(); let class = if ($possibleClass == Any, | let getAllClass = findMainClassInGetAllExpression($sq.fe); if($getAllClass->isEmpty(), | $possibleClass, | $getAllClass);, | $possibleClass ); @@ -67,13 +68,13 @@ function meta::relational::mapping::generateInstantiationExecutionNode(sq:meta:: ^TDSResultType ( type = $class, - tdsColumns = $paths->map(p| + tdsColumns = $paths->map(p| ^TDSColumn ( name = $p.first, type = $p.second.type->cast(@meta::pure::metamodel::type::DataType), documentation = $p.second.documentation, - enumMappingId = $p.second.propertyMapping->match([r:RelationalPropertyMapping[0..1] | $r.transformer->cast(@EnumerationMapping).name, p:PropertyMapping[0..1] | []]), + enumMappingId = if($exeCtx->contextHasFlag(meta::pure::executionPlan::features::Feature.PUSH_DOWN_ENUM_TRANSFORM),|[] ,| $p.second.propertyMapping->match([r:RelationalPropertyMapping[0..1] | $r.transformer->cast(@EnumerationMapping).name, p:PropertyMapping[0..1] | []])), offset = $paths->indexOf($p), sourceDataType = if($p.second.relationalType->isNotEmpty(), | $p.second.relationalType, @@ -168,7 +169,7 @@ function <> meta::relational::mapping::getRelationalTypeFromRela t:TableAliasColumn[1] | $t.column.type, a:Alias[1] | $a.relationalElement->getRelationalTypeFromRelationalOperationElement(), c:Column[1] | $c.type, - a:Any[1] | []// TOFIX - support all possible Types fail($a->type().name ->toOne() + ' is not supported in planExecution yet') + a:Any[1] | [];// TOFIX - support all possible Types fail($a->type().name ->toOne() + ' is not supported in planExecution yet') meta::relational::functions::typeInference::inferRelationalType ])->cast(@meta::relational::metamodel::datatype::DataType); } 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/testWithEnumPushDown.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEnumPushDown.pure new file mode 100644 index 00000000000..0ccda38c8c3 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEnumPushDown.pure @@ -0,0 +1,64 @@ +// 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::runtime::*; +import meta::pure::executionPlan::toString::*; +import meta::pure::mapping::*; +import meta::pure::executionPlan::*; +import meta::pure::executionPlan::featureFlag::*; +import meta::relational::functions::asserts::*; +import meta::relational::mapping::*; +import meta::relational::runtime::*; +import meta::relational::tests::model::simple::*; +import meta::relational::tests::*; +import meta::pure::profiles::*; +import meta::relational::functions::sqlstring::*; + + +function <> meta::relational::tests::query::enumPushDown::testPushDownProject():Boolean[1] +{ + +let fn = {|Synonym.all()->project([s|$s.type,s|$s.name],['type','name'])->filter(t|$t.getEnum('type')==meta::relational::tests::model::simple::ProductSynonymType.CUSIP)->withFeatureFlags(meta::pure::executionPlan::features::Feature.PUSH_DOWN_ENUM_TRANSFORM )}; + + let extensions = meta::relational::extension::relationalExtensions(); + let result = execute($fn, simpleRelationalMapping, testRuntime() ,$extensions); + assertSameElements(['CUSIP,CUSIP1','CUSIP,CUSIP2', 'CUSIP,CUSIP3'], $result.values.rows->map(r|$r.values->makeString(','))); + assertSize($result.values.rows, 3); +} + +function <> meta::relational::tests::query::enumPushDown::testPushDownProjectWithParameter():Boolean[1] +{ + let fn = {syn:ProductSynonymType[1]|Synonym.all()->filter(t|$t.type==$syn)->project([s|$s.type,s|$s.name],['syntype','name'])->withFeatureFlags(meta::pure::executionPlan::features::Feature.PUSH_DOWN_ENUM_TRANSFORM)->from( simpleRelationalMapping, testRuntime())}; + let extensions = meta::relational::extension::relationalExtensions(); + let plan = executionPlan($fn,$extensions)->planToString($extensions); + let expected = 'Sequence\n'+ +'(\n'+ +' type = TDS[(syntype, String, VARCHAR(200), ""), (name, String, VARCHAR(200), "")]\n'+ +' (\n'+ +' FunctionParametersValidationNode\n'+ +' (\n'+ +' functionParameters = [syn:meta::relational::tests::model::simple::ProductSynonymType[1]]\n'+ +' )\n'+ +' Relational\n'+ +' (\n'+ +' type = TDS[(syntype, String, VARCHAR(200), ""), (name, String, VARCHAR(200), "")]\n'+ +' resultColumns = [("syntype", ""), ("name", VARCHAR(200))]\n'+ +' sql = select case when "root".TYPE = \'CUSIP\' then \'CUSIP\' when "root".TYPE = \'ISIN\' then \'ISIN\' else null end as "syntype", "root".NAME as "name" from productSchema.synonymTable as "root" where (${optionalVarPlaceHolderOperationSelector(syn, equalEnumOperationSelector(enumMap_meta_relational_tests_simpleRelationalMapping_SynonymEnum(syn), \'"root".TYPE in (${enumMap_meta_relational_tests_simpleRelationalMapping_SynonymEnum(syn)})\', \'"root".TYPE = ${enumMap_meta_relational_tests_simpleRelationalMapping_SynonymEnum(syn)}\'), \'0 = 1\')})\n'+ +' connection = TestDatabaseConnection(type = "H2")\n'+ +' )\n'+ +' )\n'+ +')\n' ; +assertEquals($expected,$plan); + +} \ No newline at end of file From d720bffddf611765ded51afbcc11e98957bbf912 Mon Sep 17 00:00:00 2001 From: afine-gs Date: Fri, 20 Oct 2023 10:20:41 -0400 Subject: [PATCH 02/54] fix testruntime --- .../relational/tests/query/testWithEnumPushDown.pure | 1 + 1 file changed, 1 insertion(+) 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/testWithEnumPushDown.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEnumPushDown.pure index 0ccda38c8c3..5c8cc11b17d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEnumPushDown.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEnumPushDown.pure @@ -24,6 +24,7 @@ import meta::relational::tests::model::simple::*; import meta::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::query::enumPushDown::testPushDownProject():Boolean[1] From 4dc04e29644500feab61c11eccdc460aa24da372 Mon Sep 17 00:00:00 2001 From: elopezcastro <82950460+elopezcastro@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:43:51 +0100 Subject: [PATCH 03/54] - (#2462) * - * - * - * - --- .gitlab-ci.yml | 11 +++++++++++ .gs-project.yml | 1 + 2 files changed, 12 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 .gs-project.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000000..6dbfe7efc3e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,11 @@ +stages: + - clmscan + + +clm_scan: + stage: clmscan + tags: [sdlc] + image: ${CI_REGISTRY}/dx/sdlc-tools/aws-gitlab-clm-plugin/aws-gitlab-clm-plugin:current + before_script: [] + script: + - /opt/clm/request-clmscan.sh "${CI_PROJECT_DIR}" \ No newline at end of file diff --git a/.gs-project.yml b/.gs-project.yml new file mode 100644 index 00000000000..395a8ca8cd5 --- /dev/null +++ b/.gs-project.yml @@ -0,0 +1 @@ +productGuid: "product::315850" From 49d997a61cee30ffa11f76ba4d7d82ef3d4cdf0f Mon Sep 17 00:00:00 2001 From: Sahil Shah Date: Wed, 22 Nov 2023 10:24:56 +0000 Subject: [PATCH 04/54] fix mastery composer - extra comma being added (#2469) --- .../to/HelperMasteryGrammarComposer.java | 2 +- .../TestMasteryCompilationFromGrammar.java | 67 +++++++++++++++++++ .../test/TestMasteryGrammarRoundtrip.java | 6 ++ 3 files changed, 74 insertions(+), 1 deletion(-) 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/HelperMasteryGrammarComposer.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/HelperMasteryGrammarComposer.java index 39f33ca4252..bc007bc9631 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/HelperMasteryGrammarComposer.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/HelperMasteryGrammarComposer.java @@ -252,7 +252,7 @@ private static String renderPrecedenceRules(List precedenceRules { String precedenceRuleString = precedenceRule.accept(new PrecedenceRuleComposer(indentLevel + 1, context, uniqueSourcePrecedenceRules)); nonSourcePrecedenceRulesBuilder.append(precedenceRuleString); - nonSourcePrecedenceRulesBuilder.append(i < precedenceRules.size() && !precedenceRuleString.equals("") ? "," : ""); + nonSourcePrecedenceRulesBuilder.append(i < precedenceRules.size() - 1 && !precedenceRuleString.equals("") ? "," : ""); }); return combinePrecedenceRules(uniqueSourcePrecedenceRules, nonSourcePrecedenceRulesBuilder.toString(), indentLevel); } 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 f93c109d262..850329abd7c 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 @@ -373,6 +373,60 @@ public class TestMasteryCompilationFromGrammar extends TestCompilationFromGramma " }#;\n" + "}\n"; + public static String MASTERY_MODEL_WITH_ONE_RULE = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + " identifiers: org::dataeng::MilestonedIdentifier[*];\n" + + "}\n\n" + + "Class org::dataeng::MilestonedIdentifier\n" + + "{\n" + + " identifierType: String[1];\n" + + " identifier: String[1];\n" + + " FROM_Z: StrictDate[0..1];\n" + + " THRU_Z: StrictDate[0..1];\n" + + "}\n\n\n" + + MAPPING_AND_CONNECTION + + "###Service\n" + + "Service org::dataeng::ParseWidget\n" + WIDGET_SERVICE_BODY + "\n" + + "Service org::dataeng::TransformWidget\n" + WIDGET_SERVICE_BODY + "\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.identifiers.identifier;\n" + + " ruleScope: [\n" + + " RecordSourceScope {widget-producer}\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"; + public static String MINIMUM_CORRECT_MASTERY_MODEL = "###Pure\n" + "Class org::dataeng::Widget\n" + "{\n" + @@ -926,6 +980,19 @@ public void testMasteryMinimumCorrectModel() assertEquals("Widget", masterRecordDefinition._modelClass()._name()); } + @Test + public void testMasteryModelWithOneRule() + { + Pair result = test(MASTERY_MODEL_WITH_ONE_RULE); + PureModel model = result.getTwo(); + + PackageableElement packageableElement = model.getPackageableElement("alloy::mastery::WidgetMasterRecord"); + assertNotNull(packageableElement); + assertTrue(packageableElement instanceof Root_meta_pure_mastery_metamodel_MasterRecordDefinition); + Root_meta_pure_mastery_metamodel_MasterRecordDefinition masterRecordDefinition = (Root_meta_pure_mastery_metamodel_MasterRecordDefinition) packageableElement; + assertEquals(1, masterRecordDefinition._precedenceRules().size()); + } + @Test public void testMasteryDeprecatedModelCanStillCompile() { diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/test/TestMasteryGrammarRoundtrip.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/test/TestMasteryGrammarRoundtrip.java index 36a6e0a74f6..94ead970261 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/test/TestMasteryGrammarRoundtrip.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/test/TestMasteryGrammarRoundtrip.java @@ -27,6 +27,12 @@ public void masteryRoundTripFull() testWithSectionInfoPreserved(TestMasteryCompilationFromGrammar.COMPLETE_CORRECT_MASTERY_MODEL); } + @Test + public void masteryRoundTripWithOneRule() + { + testWithSectionInfoPreserved(TestMasteryCompilationFromGrammar.MASTERY_MODEL_WITH_ONE_RULE); + } + @Test public void masteryRoundTripMinimum() { From d1b72a3611021d54771c5dd1d99016fe59e5c325 Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Wed, 22 Nov 2023 13:14:46 +0000 Subject: [PATCH 05/54] Update legend-pure version (#2471) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 609904e7d25..04e462d1a1d 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ - 4.10.0 + 4.10.1 0.24.1 From 273b95b2da2ded03d2c449a3ab9b192f3fad3a23 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 22 Nov 2023 13:17:56 +0000 Subject: [PATCH 06/54] [maven-release-plugin] prepare release legend-engine-4.35.4 --- 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 +- .../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 +- .../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 | 5 ++--- 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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/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 | 5 ++--- 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-deployment/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-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-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 ++-- 393 files changed, 398 insertions(+), 400 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index e892e4cf443..8283d6b608a 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.35.4-SNAPSHOT + 4.35.4 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 dbc53d392c2..47eaa53f62f 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.35.4-SNAPSHOT + 4.35.4 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 82f6fb194d7..7acc089d495 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.35.4-SNAPSHOT + 4.35.4 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 febeb4fe0ab..6dc73daa152 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.35.4-SNAPSHOT + 4.35.4 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 e702972ddc2..9ab97a8c401 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.35.4-SNAPSHOT + 4.35.4 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 a4bf5ea6603..f829d893dc2 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.35.4-SNAPSHOT + 4.35.4 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 ba650774c0b..e857ca51f28 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.35.4-SNAPSHOT + 4.35.4 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 a99e1cfb149..bc847afb231 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 37ed8f3b41e..d561105387e 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.35.4-SNAPSHOT + 4.35.4 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 6601f367d97..372e5f4f668 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 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 8dd18ff4551..992a54da8e6 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.35.4-SNAPSHOT + 4.35.4 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 20755af5f9a..cd20322608f 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.35.4-SNAPSHOT + 4.35.4 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 4c35141a25a..322ae90a2b9 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.35.4-SNAPSHOT + 4.35.4 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 6ca535cad77..15c2e6bbc1d 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.35.4-SNAPSHOT + 4.35.4 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 89769027a29..4ac4b6235ff 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.35.4-SNAPSHOT + 4.35.4 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 be7ee9c7ce9..eaa956f3a4e 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.35.4-SNAPSHOT + 4.35.4 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 ba0fff434fc..303721a2481 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.35.4-SNAPSHOT + 4.35.4 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 d89976c25cb..749dee6e90c 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.35.4-SNAPSHOT + 4.35.4 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 5c8f58f3a04..4d8c31f90e1 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.35.4-SNAPSHOT + 4.35.4 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 3f391d204f9..6afd73ddd7e 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.35.4-SNAPSHOT + 4.35.4 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 1d294c8a7ad..1cfa4c2eff7 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.35.4-SNAPSHOT + 4.35.4 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 0ba068241e7..67c0bb97034 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.35.4-SNAPSHOT + 4.35.4 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 f77d7ed2ef7..30091592805 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.35.4-SNAPSHOT + 4.35.4 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 a9ba1412713..fe99aaf0a98 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.35.4-SNAPSHOT + 4.35.4 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 23ec895b294..6c77a56665c 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.35.4-SNAPSHOT + 4.35.4 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 396194e3633..518e179f0ba 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.35.4-SNAPSHOT + 4.35.4 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 98a0ebdbc0b..f767093739c 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.35.4-SNAPSHOT + 4.35.4 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 5651e0f131e..ab90175c4c0 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.35.4-SNAPSHOT + 4.35.4 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 0087d0f6f18..1c19ef8a033 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.35.4-SNAPSHOT + 4.35.4 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 08cea3c2fa0..3a7862da2da 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.35.4-SNAPSHOT + 4.35.4 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 5fa2d8a0d74..fa5b8a64a0c 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.35.4-SNAPSHOT + 4.35.4 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 41534e5d6ec..5d146079f83 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.35.4-SNAPSHOT + 4.35.4 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 fadab77e656..bfdae780eab 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.35.4-SNAPSHOT + 4.35.4 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 ad7609fc061..23236ad91d9 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.35.4-SNAPSHOT + 4.35.4 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 bd31e3ef550..27995d850b4 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.35.4-SNAPSHOT + 4.35.4 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 c1140e7193f..e35a4cc4e3f 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.35.4-SNAPSHOT + 4.35.4 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 3b19fae1fd6..09677d45743 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.35.4-SNAPSHOT + 4.35.4 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 33b98d58ee8..9ccca536466 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.35.4-SNAPSHOT + 4.35.4 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 7a555052b84..2ea0d32f211 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.35.4-SNAPSHOT + 4.35.4 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 3344ab5f87a..5c4163d54b8 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.35.4-SNAPSHOT + 4.35.4 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 978a685b682..6ef4245f23f 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.35.4-SNAPSHOT + 4.35.4 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 983fded224f..e96f38ce2be 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.35.4-SNAPSHOT + 4.35.4 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 bd291804b58..ab51627ea6f 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index d2d5783f50d..79151d88dbf 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 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 abcfaa09029..0cb38f1872f 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.35.4-SNAPSHOT + 4.35.4 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 1b548aaad6d..7c6c000619c 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.35.4-SNAPSHOT + 4.35.4 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 43fa36225c8..a7fcb1b7df3 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.35.4-SNAPSHOT + 4.35.4 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 bf7a7802ed1..7b746b544bc 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.35.4-SNAPSHOT + 4.35.4 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 94119e44ec4..d6ccd013ff8 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.35.4-SNAPSHOT + 4.35.4 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 902e3b9a872..19a306e7ae9 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.35.4-SNAPSHOT + 4.35.4 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 943af4072c7..05721a11966 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.35.4-SNAPSHOT + 4.35.4 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 db9b7685a12..3cafb4773ea 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.35.4-SNAPSHOT + 4.35.4 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 7d977c23f1c..2a2decaf939 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.35.4-SNAPSHOT + 4.35.4 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 4e794efe7e4..1c2b341ea5c 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.35.4-SNAPSHOT + 4.35.4 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 9292eebdca4..d1397d0c258 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.35.4-SNAPSHOT + 4.35.4 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 b4d57b5ef77..ca903dec564 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.35.4-SNAPSHOT + 4.35.4 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 e121d7d02c8..343a268f096 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.35.4-SNAPSHOT + 4.35.4 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 05a6fb366fa..a04da97efaf 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.35.4-SNAPSHOT + 4.35.4 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 ad841e4923b..1a27271e4d1 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.35.4-SNAPSHOT + 4.35.4 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 3293c9491bb..9bf2aa442b3 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.35.4-SNAPSHOT + 4.35.4 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 e85cf24b8e4..b523ff763a9 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.35.4-SNAPSHOT + 4.35.4 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 375cf80e8d6..6a2c0f86d4e 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.35.4-SNAPSHOT + 4.35.4 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 35beccf887d..24482680744 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.35.4-SNAPSHOT + 4.35.4 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 c4d2abed6d2..5ae6398d331 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.35.4-SNAPSHOT + 4.35.4 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 e5449b79ac0..3c166fbc5e8 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.35.4-SNAPSHOT + 4.35.4 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 04e055772e1..b6545f04779 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index f44b083da6e..1151e2e5f27 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 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 560c9747ba8..75b55caaa50 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.35.4-SNAPSHOT + 4.35.4 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 cc9cb7761e9..3ba6ff20a5b 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.35.4-SNAPSHOT + 4.35.4 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 1c5ad184d2a..f9076c94575 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.35.4-SNAPSHOT + 4.35.4 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 236419909d9..68cf3c4498a 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.35.4-SNAPSHOT + 4.35.4 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 a5b87b70295..938e5826b96 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.35.4-SNAPSHOT + 4.35.4 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 81a400683f4..42ead667d31 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.35.4-SNAPSHOT + 4.35.4 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 8bfae5633b8..a3a76ca90ee 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.35.4-SNAPSHOT + 4.35.4 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 b5674331734..d868709b42a 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.35.4-SNAPSHOT + 4.35.4 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 cf8427ebbf7..4168d6e1980 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.35.4-SNAPSHOT + 4.35.4 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 73ad805d9dd..fb7fb33105b 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.35.4-SNAPSHOT + 4.35.4 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 1baf84e4088..3c77fdd7b09 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.35.4-SNAPSHOT + 4.35.4 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 5f437ed1733..b7ddd88fb1b 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.35.4-SNAPSHOT + 4.35.4 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 55b054729fe..6b9152f3f2d 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.35.4-SNAPSHOT + 4.35.4 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 8691aed6548..b0cf81ebae3 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.35.4-SNAPSHOT + 4.35.4 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 1fa255c0d6e..da57c586257 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.35.4-SNAPSHOT + 4.35.4 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 6aca9cd512f..8c49961a67e 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.35.4-SNAPSHOT + 4.35.4 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 9e5c2b619b2..b80f38cb510 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.35.4-SNAPSHOT + 4.35.4 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 a747c5a2ded..c39de3e82de 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.35.4-SNAPSHOT + 4.35.4 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 5e38c424c7d..76d11d7dec7 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.35.4-SNAPSHOT + 4.35.4 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 9fd99c8c5e9..c2b5bdfc012 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.35.4-SNAPSHOT + 4.35.4 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 4997496a343..8913cec5d4d 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.35.4-SNAPSHOT + 4.35.4 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 8850eca838d..bce234ca40f 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 45d257de6ee..915f138ff66 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.35.4-SNAPSHOT + 4.35.4 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 0bcbb78ef25..6f1f3b33ee2 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.35.4-SNAPSHOT + 4.35.4 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 417dc7e7f9d..a7186b029dc 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 8e1f2e008e0..04ca28a88dd 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.35.4-SNAPSHOT + 4.35.4 legend-engine-xts-arrow 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 8c63af6d882..34d9a9ac72f 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.35.4-SNAPSHOT + 4.35.4 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 2f6d6a7aa7d..82a44d79e2e 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.35.4-SNAPSHOT + 4.35.4 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 c8aae068c31..1b5564d5f6c 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.35.4-SNAPSHOT + 4.35.4 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 681b8673670..ebbce54d439 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.35.4-SNAPSHOT + 4.35.4 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 02efc5f4179..148707f81a9 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.35.4-SNAPSHOT + 4.35.4 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 91ce8fefd78..04961fbd76e 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 6df60d90e1c..c9e2cd9d999 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -14,12 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. --> - + org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 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 8da89c74c34..b3f3c76fcab 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.35.4-SNAPSHOT + 4.35.4 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 a7a72c1b369..bae7b55b99f 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 080390f01f5..242f70ecc78 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.35.4-SNAPSHOT + 4.35.4 4.0.0 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 f7b825763cc..a703174016b 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 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 index 025c97a21a3..6998ab3d4d6 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 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 index cef65fa04f2..b9c16025903 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 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 index 71a5db746db..f2d3339a026 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 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 index ccabe4842a4..a8a5360c7e6 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 9a4969c1220..46aa920a76d 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 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 4c340522714..a384cd24a61 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.35.4-SNAPSHOT + 4.35.4 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 e6d40325a45..d557bd6dc4f 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 5d1cef3261d..994fd8eb346 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index b9f95efb51d..f8a131ab749 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 363f8907ab9..66c954502c6 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index 02369bc2133..15f8edd0609 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index ca8c0255238..1e8c56ebf26 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 0052f847951..592bd172129 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index 3dda8473e68..77dc67a6ee1 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 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 533e6a9cd49..89c826c4d6d 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.35.4-SNAPSHOT + 4.35.4 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 a5cb8ae416a..1c50206b301 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.35.4-SNAPSHOT + 4.35.4 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 c4571a79ee2..ed2c414ebea 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 64883f211ec..953984ebeaf 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.35.4-SNAPSHOT + 4.35.4 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 e4e0d7652e9..b9e6675360a 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 @@ -1,10 +1,9 @@ - + legend-engine-xts-data-push org.finos.legend.engine - 4.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 57fa7a9eddf..518275c1aa5 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.35.4-SNAPSHOT + 4.35.4 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 9c09af1c995..542b048932a 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.35.4-SNAPSHOT + 4.35.4 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 3190c3ab4d6..6fbec72d132 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.35.4-SNAPSHOT + 4.35.4 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 c6bafc6d8e6..3a771991055 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.35.4-SNAPSHOT + 4.35.4 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 0004ac4d9ca..f5d45d94e76 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.35.4-SNAPSHOT + 4.35.4 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 b5ba3b55ec6..6c71755dc3f 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.35.4-SNAPSHOT + 4.35.4 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 ac7f2d481fa..db230fe3987 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.35.4-SNAPSHOT + 4.35.4 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 ffd270c924e..e915f54ed57 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 874e4086d1f..24e449fb2ea 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.35.4-SNAPSHOT + 4.35.4 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 4bae4126130..9989ad9706c 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.35.4-SNAPSHOT + 4.35.4 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 eeb374821b3..5ce1952603c 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.35.4-SNAPSHOT + 4.35.4 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 67936906248..58af2dce069 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.35.4-SNAPSHOT + 4.35.4 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 89613a599f7..edf84fe2704 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.35.4-SNAPSHOT + 4.35.4 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 de2de27311e..f1834e53411 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.35.4-SNAPSHOT + 4.35.4 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 7321c380b38..6765f221204 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 4909a290dfc..4b6ce8ddf25 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.35.4-SNAPSHOT + 4.35.4 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 04786a77495..03974a1eda9 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.35.4-SNAPSHOT + 4.35.4 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 92bc3062a6c..dfd60310475 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.35.4-SNAPSHOT + 4.35.4 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 298212689cb..44ac032cbfe 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.35.4-SNAPSHOT + 4.35.4 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 c47506b2850..3e8208b2abd 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.35.4-SNAPSHOT + 4.35.4 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 a078bda2d13..f3310a2fd2e 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.35.4-SNAPSHOT + 4.35.4 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 a43de61a6fb..9c1fe857bd4 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.35.4-SNAPSHOT + 4.35.4 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 3fc963d8d10..d60f9db1f42 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 5bc940d0bf0..3eb7f6c4be3 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.35.4-SNAPSHOT + 4.35.4 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 1c15c4e64d7..a1f3d3fe14a 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.35.4-SNAPSHOT + 4.35.4 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 532bacb63cd..83cd8c42bbd 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.35.4-SNAPSHOT + 4.35.4 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 846a1db9e1a..bb9ef6fd96f 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.35.4-SNAPSHOT + 4.35.4 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 a22390fcea4..c7fb456cdf5 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.35.4-SNAPSHOT + 4.35.4 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 773ce856600..b6e09bddec8 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.35.4-SNAPSHOT + 4.35.4 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 aa563eef360..69aade07053 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.35.4-SNAPSHOT + 4.35.4 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 ddfde02af48..08a6a11e4df 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index ab00161e972..184b3e04795 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.35.4-SNAPSHOT + 4.35.4 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 fbf5a212946..72ac89aef71 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.35.4-SNAPSHOT + 4.35.4 4.0.0 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 index a96c9ea83cb..d80e4c60513 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.35.4-SNAPSHOT + 4.35.4 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 547861e3478..f3c0404060a 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.35.4-SNAPSHOT + 4.35.4 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 4976cc4b767..5c7e81719e0 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 37ba63f8306..44853420d86 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.35.4-SNAPSHOT + 4.35.4 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 6baac4e4596..00226228e67 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.35.4-SNAPSHOT + 4.35.4 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 244c5a169fe..634e4544b91 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.35.4-SNAPSHOT + 4.35.4 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 bc9b3b28adb..0abc5a0690f 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.35.4-SNAPSHOT + 4.35.4 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 51363f114ff..333eb130f6a 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 0b8732b3da0..a3d381d1c5a 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.35.4-SNAPSHOT + 4.35.4 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 8b9847512a6..c3d949b3632 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.35.4-SNAPSHOT + 4.35.4 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.4-SNAPSHOT + 4.35.4 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 0b5cb5828b9..64c4db62c88 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.35.4-SNAPSHOT + 4.35.4 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 6e9544de553..7b16f475cf3 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.35.4-SNAPSHOT + 4.35.4 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 6aebde8f1ef..59474482e5a 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.35.4-SNAPSHOT + 4.35.4 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 e2ebdadf8f3..db64af1a9e3 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.35.4-SNAPSHOT + 4.35.4 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 90eac1ecb6b..1b7c319d080 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.35.4-SNAPSHOT + 4.35.4 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 c99a73129fa..c63c2964873 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.35.4-SNAPSHOT + 4.35.4 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 0685c7f3623..956584e26a3 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 6e0f2b730fb..c43e7e0b879 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.35.4-SNAPSHOT + 4.35.4 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 06839b0d20d..fed344156ef 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.35.4-SNAPSHOT + 4.35.4 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 84348cf8bce..bf290861d18 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.35.4-SNAPSHOT + 4.35.4 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 0d8e6dbc449..52e13733500 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 324a69c89bb..d8bacc2306f 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.35.4-SNAPSHOT + 4.35.4 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 5e80e38f94f..f4c87e39cb9 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.35.4-SNAPSHOT + 4.35.4 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 ccf0afc1250..c80e5c88666 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.35.4-SNAPSHOT + 4.35.4 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 ca33ecc7591..a1f708672ab 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.35.4-SNAPSHOT + 4.35.4 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 25fe6e4a6f9..42fc44af3eb 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.35.4-SNAPSHOT + 4.35.4 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 8e008f4afb4..306bcd20e09 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.35.4-SNAPSHOT + 4.35.4 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 906addfd4db..ac0c0de2a5c 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 290586cc5ee..04be20aa36d 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.35.4-SNAPSHOT + 4.35.4 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 37354fadfbb..540876a2c22 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.35.4-SNAPSHOT + 4.35.4 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 6ef693b35e1..cd41fe4257b 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 978185473c0..6f1f411a2b4 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.35.4-SNAPSHOT + 4.35.4 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 458b750eea1..63a891be598 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.35.4-SNAPSHOT + 4.35.4 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 2b836572060..70b7ce755dc 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.35.4-SNAPSHOT + 4.35.4 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 e7035bfbe86..69529e577af 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.35.4-SNAPSHOT + 4.35.4 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 6b56285d9a5..91984a1c06a 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 1f3a4424ac9..b9e2de12687 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.35.4-SNAPSHOT + 4.35.4 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 daa7a0e0b30..6dc39c6baee 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.35.4-SNAPSHOT + 4.35.4 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 0790e451370..2c402a8b545 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.35.4-SNAPSHOT + 4.35.4 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 13c02c5c7bb..fb27e1dfb2e 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.35.4-SNAPSHOT + 4.35.4 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 43fe25f72ce..a3aaa72b15a 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.35.4-SNAPSHOT + 4.35.4 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 0a7ce85ce10..ecfb1589985 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.35.4-SNAPSHOT + 4.35.4 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 cf4b2df04af..d5d18b91c05 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index e5a5bf73e61..cdf32dc0672 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.35.4-SNAPSHOT + 4.35.4 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 d427cc6d85d..5e6e6f808dc 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.35.4-SNAPSHOT + 4.35.4 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 68114e95f16..b57e39b7a59 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.35.4-SNAPSHOT + 4.35.4 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 bebd99bdaa5..13d685d97ba 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 74bace7d5d6..e78a8bd0269 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.35.4-SNAPSHOT + 4.35.4 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 e82229078f7..8d485057b7b 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.35.4-SNAPSHOT + 4.35.4 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 f60850adf41..86f68a8c46a 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.35.4-SNAPSHOT + 4.35.4 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 32246d51982..580cda3e0c1 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.35.4-SNAPSHOT + 4.35.4 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 639a081093e..ab7162b420b 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.35.4-SNAPSHOT + 4.35.4 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 c7f7cee884e..cfca07106d5 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.35.4-SNAPSHOT + 4.35.4 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 6629054858c..2c91ffcd772 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.35.4-SNAPSHOT + 4.35.4 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 4de0709c3f6..f4f5621e83f 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.35.4-SNAPSHOT + 4.35.4 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 46f11a713f2..69a5338313c 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.35.4-SNAPSHOT + 4.35.4 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 416882d766a..6f8aedcaadb 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.35.4-SNAPSHOT + 4.35.4 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 9daa9369904..6a1f1d59cec 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index d7813f68987..8b82bd68e18 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.35.4-SNAPSHOT + 4.35.4 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 460aff0b2f9..50e24dbfe81 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.35.4-SNAPSHOT + 4.35.4 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 fcf2f9ce59f..1384828b1a1 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.35.4-SNAPSHOT + 4.35.4 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index a3b67f5230c..31802ae6364 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.35.4-SNAPSHOT + 4.35.4 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 ccbff963eae..1db9409d1e4 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.35.4-SNAPSHOT + 4.35.4 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 a3821cff2c2..0ff8d329aac 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.35.4-SNAPSHOT + 4.35.4 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 025a9f59796..288c75ccc3f 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.35.4-SNAPSHOT + 4.35.4 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 a5b17478509..f1bc71de58c 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.35.4-SNAPSHOT + 4.35.4 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 2410fcd8b8a..5687d214da0 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.35.4-SNAPSHOT + 4.35.4 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 5763153d243..3daeb112bc4 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.35.4-SNAPSHOT + 4.35.4 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 679941384b5..df7c01c25c7 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.35.4-SNAPSHOT + 4.35.4 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 92784d1c6a8..04ad874458f 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.35.4-SNAPSHOT + 4.35.4 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 b11b40a2909..4093b1c4441 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.35.4-SNAPSHOT + 4.35.4 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 0c052881d75..9b8781e0004 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.35.4-SNAPSHOT + 4.35.4 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 35deaaa24ff..49ba28ff9ec 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.35.4-SNAPSHOT + 4.35.4 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 72822a9a00e..b8816a6b686 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.35.4-SNAPSHOT + 4.35.4 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 1e5352d9da8..587d508fe93 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.35.4-SNAPSHOT + 4.35.4 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 f1d7764c511..9adb0478317 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.35.4-SNAPSHOT + 4.35.4 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 7e38d0fb124..5cee9c8c638 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.35.4-SNAPSHOT + 4.35.4 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 cdac2629896..a793dce3331 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.35.4-SNAPSHOT + 4.35.4 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 05140ff3d40..9ab22d13061 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.35.4-SNAPSHOT + 4.35.4 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 f8118f3ddea..b2ca79a539c 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.35.4-SNAPSHOT + 4.35.4 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 82a2fd0790a..9aee4e14e7b 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.35.4-SNAPSHOT + 4.35.4 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 120867dcec1..b6e12d74d4d 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.35.4-SNAPSHOT + 4.35.4 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 63f19b54c07..8b14569aa96 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 135091e59a9..ca38cb323e0 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.35.4-SNAPSHOT + 4.35.4 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 bae302a3221..ab5867dcd72 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.35.4-SNAPSHOT + 4.35.4 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 74221f43181..9afe9b47b5b 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.35.4-SNAPSHOT + 4.35.4 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 fe770ee85f1..080a1df6b0b 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.35.4-SNAPSHOT + 4.35.4 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 4d3a003dfe0..0d7e0e851df 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.35.4-SNAPSHOT + 4.35.4 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.4-SNAPSHOT + 4.35.4 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 994167c3f78..9dfecda6650 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.35.4-SNAPSHOT + 4.35.4 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 de8db33ef42..d165e1e7985 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.35.4-SNAPSHOT + 4.35.4 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 008a77e2f89..712fba1fecc 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.35.4-SNAPSHOT + 4.35.4 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 94952e826c3..fbb3a6d6890 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.35.4-SNAPSHOT + 4.35.4 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 4ad10b16753..05eff187fd8 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.35.4-SNAPSHOT + 4.35.4 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 9c93f6bd6ef..7555e8cdbb9 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.35.4-SNAPSHOT + 4.35.4 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 ef796e2f6da..f38e43aeb89 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.35.4-SNAPSHOT + 4.35.4 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 9656a62ff83..036c3b52ca4 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.35.4-SNAPSHOT + 4.35.4 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 6a5470e853e..15cfb06dbb5 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.35.4-SNAPSHOT + 4.35.4 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 d4ba94bcd77..4c7c420fb3f 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.35.4-SNAPSHOT + 4.35.4 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 2accf2b9803..10e1b5d1baa 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.35.4-SNAPSHOT + 4.35.4 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 6943097b517..19d91277c4d 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.35.4-SNAPSHOT + 4.35.4 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 5973fe05bba..93ea0db20f7 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.35.4-SNAPSHOT + 4.35.4 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 8c0efb7ed16..ed6c110ba20 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.35.4-SNAPSHOT + 4.35.4 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 5c3f0cd17a3..b0290b86d22 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.35.4-SNAPSHOT + 4.35.4 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 ce19e3be1f5..c8826ac6a15 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.35.4-SNAPSHOT + 4.35.4 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 56ccac48f13..fb501d19506 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.35.4-SNAPSHOT + 4.35.4 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 2592b5f5d03..2282dd64ce6 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.35.4-SNAPSHOT + 4.35.4 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 a39350fd32a..b0e269d2884 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.35.4-SNAPSHOT + 4.35.4 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 8e151982bc3..2673ad08dde 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.35.4-SNAPSHOT + 4.35.4 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 ab584d88f62..7e073408f4f 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.35.4-SNAPSHOT + 4.35.4 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 144037e552f..2d0b391950a 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.35.4-SNAPSHOT + 4.35.4 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 70f05d06f75..d9c8c6927f5 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.35.4-SNAPSHOT + 4.35.4 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 809d786e3df..9f678030ea2 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.35.4-SNAPSHOT + 4.35.4 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 e74d9de4f0c..375dc96185c 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.35.4-SNAPSHOT + 4.35.4 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 74439f2d708..9cdf1d7e3a0 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.35.4-SNAPSHOT + 4.35.4 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 4687f0cab38..a57cea747a1 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.35.4-SNAPSHOT + 4.35.4 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 eea1b95281e..27b46fa1061 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.35.4-SNAPSHOT + 4.35.4 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 3f7fcd87630..60e11a1c8b0 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.35.4-SNAPSHOT + 4.35.4 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 92b41259806..0fbcf25e7f9 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.35.4-SNAPSHOT + 4.35.4 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 9fae3e44975..06422adbb25 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.35.4-SNAPSHOT + 4.35.4 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 338e10a6e25..18e735ddb7d 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.35.4-SNAPSHOT + 4.35.4 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 f462fb57ff6..31d53e93d0e 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.35.4-SNAPSHOT + 4.35.4 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 be9121c570f..6c1dc99c3b2 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.35.4-SNAPSHOT + 4.35.4 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 367c3fe3476..8e5f492f0de 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.35.4-SNAPSHOT + 4.35.4 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 2ed974bc997..912fa1c43c6 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.35.4-SNAPSHOT + 4.35.4 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 67695dbdf9a..657961de0bb 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.35.4-SNAPSHOT + 4.35.4 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 94fa54ca6a5..20fca5b4faf 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.35.4-SNAPSHOT + 4.35.4 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 43e2bee48a0..e336ba522b1 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.35.4-SNAPSHOT + 4.35.4 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 79c8ad0887e..b755e5f2994 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.35.4-SNAPSHOT + 4.35.4 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 9b991a6274f..a66281ad769 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.35.4-SNAPSHOT + 4.35.4 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 55c80d01dc1..dcadeb06be9 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.35.4-SNAPSHOT + 4.35.4 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 2876d1ec4ff..dd4520b99f4 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.35.4-SNAPSHOT + 4.35.4 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 d9b014e2a07..f3ebc2c371a 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.35.4-SNAPSHOT + 4.35.4 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 ff63e076668..548324c659b 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.35.4-SNAPSHOT + 4.35.4 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 bd87a1ee8ef..2a397ed0170 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.35.4-SNAPSHOT + 4.35.4 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 7b2aec87e68..0ec4b3a8f29 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.35.4-SNAPSHOT + 4.35.4 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 c55c72deaa3..8d636419240 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.35.4-SNAPSHOT + 4.35.4 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 e4f902b9b49..dc3b5ae3604 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.35.4-SNAPSHOT + 4.35.4 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 c3232be1328..4514531c556 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.35.4-SNAPSHOT + 4.35.4 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 28c36759c8b..66b1b698b80 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.35.4-SNAPSHOT + 4.35.4 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 0dc7294f9db..ae2aa03b381 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.35.4-SNAPSHOT + 4.35.4 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 5b29090a4f1..d5df97bcbb2 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.35.4-SNAPSHOT + 4.35.4 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 81698a8364f..45854ecd430 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.35.4-SNAPSHOT + 4.35.4 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 0ab9d32af7c..29385b21c49 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.35.4-SNAPSHOT + 4.35.4 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 52d2390c744..7581ca3b698 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.35.4-SNAPSHOT + 4.35.4 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 52a348d6623..68ce39a8723 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.35.4-SNAPSHOT + 4.35.4 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 9fa2f3ae9ed..4826ed60e46 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.35.4-SNAPSHOT + 4.35.4 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 be3a2eacc66..18985343bbd 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.35.4-SNAPSHOT + 4.35.4 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 0356a4c5c77..942dfcf541b 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.35.4-SNAPSHOT + 4.35.4 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 bbaff1d3d04..5eb1a79c32d 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.35.4-SNAPSHOT + 4.35.4 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 8e6aa76c247..b84551a5d1e 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.35.4-SNAPSHOT + 4.35.4 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 36deab7f39d..54d00bc8c01 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.35.4-SNAPSHOT + 4.35.4 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 ff6603d7e07..2cb38600ce9 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.35.4-SNAPSHOT + 4.35.4 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 e1f9d56926b..77af744f47d 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.35.4-SNAPSHOT + 4.35.4 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 e7a9643d7a1..8e271d8180e 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.35.4-SNAPSHOT + 4.35.4 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 8a3f1e8d0d2..76bc53705fd 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.35.4-SNAPSHOT + 4.35.4 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 608eb197d28..8397a80408a 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.35.4-SNAPSHOT + 4.35.4 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 346802ecadb..1bb5dc679f6 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.35.4-SNAPSHOT + 4.35.4 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 993d0ec71f5..5e556951aaf 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.35.4-SNAPSHOT + 4.35.4 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 be403d4acc7..1f89502aebb 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.35.4-SNAPSHOT + 4.35.4 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 7d47f47317a..d07a8674c35 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.35.4-SNAPSHOT + 4.35.4 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 d4d26be7efe..ea30266cebd 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.35.4-SNAPSHOT + 4.35.4 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 5cf930a1f0e..e1b3782c284 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.35.4-SNAPSHOT + 4.35.4 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 20f848d15ba..f8849ce54bd 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.35.4-SNAPSHOT + 4.35.4 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 52ade6a5c2a..ac9deac4920 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.35.4-SNAPSHOT + 4.35.4 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 cf49ce419ae..a924149585e 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.35.4-SNAPSHOT + 4.35.4 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 ff1486040d6..788840e0ece 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.35.4-SNAPSHOT + 4.35.4 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 6ffb777053c..f512688c48f 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.35.4-SNAPSHOT + 4.35.4 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 a76445fc61a..127478e81d0 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.35.4-SNAPSHOT + 4.35.4 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 d55faf9dc4b..c66c7daeade 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.35.4-SNAPSHOT + 4.35.4 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 30241fe8a54..c88a7484398 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.35.4-SNAPSHOT + 4.35.4 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 5fe6207fca9..e394d344499 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.35.4-SNAPSHOT + 4.35.4 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 ce8d2c1d2f9..a905c9c6536 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.35.4-SNAPSHOT + 4.35.4 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 2d976c8870c..bb30aa6ad9e 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.35.4-SNAPSHOT + 4.35.4 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 292995db609..2c8fbba3be5 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.35.4-SNAPSHOT + 4.35.4 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 3bf6bcd6b60..6c01e6672b7 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.35.4-SNAPSHOT + 4.35.4 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 164be8d4d15..17d742cb92c 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.35.4-SNAPSHOT + 4.35.4 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 060c9ed1e51..80038d5adce 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.35.4-SNAPSHOT + 4.35.4 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 dc6ca86ab7d..a4a2caa91c1 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.35.4-SNAPSHOT + 4.35.4 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 d990cb6e05c..511397d1089 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.35.4-SNAPSHOT + 4.35.4 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 40bcf4b8a99..00982b0e9c9 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.35.4-SNAPSHOT + 4.35.4 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 67221f7ee43..70d921a542d 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.35.4-SNAPSHOT + 4.35.4 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 6fcd4ec012f..b2da638bc7e 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.35.4-SNAPSHOT + 4.35.4 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 8c00fb62853..0a27d3af684 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 896de283376..9da3128e872 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.35.4-SNAPSHOT + 4.35.4 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 e9b198a0fc7..e3612300218 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 16fbccff784..b5a91bfdcdd 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.35.4-SNAPSHOT + 4.35.4 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 f6eee505bfc..ee460b0e7ad 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.35.4-SNAPSHOT + 4.35.4 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 bd7c3622b67..c9da204c958 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 1ff6b2f15e9..786940ebf4a 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.35.4-SNAPSHOT + 4.35.4 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 e1cc8832154..613c12f1b64 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.35.4-SNAPSHOT + 4.35.4 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 2e9b8e31414..83c786d37e1 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.35.4-SNAPSHOT + 4.35.4 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 8dc9f3233d4..5a4e1363b80 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.35.4-SNAPSHOT + 4.35.4 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 169d289d2bc..40c75f8389c 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.35.4-SNAPSHOT + 4.35.4 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 69e4f2b93bd..707d2cf5f9f 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.35.4-SNAPSHOT + 4.35.4 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 cb08c300f61..e337926c132 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.35.4-SNAPSHOT + 4.35.4 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 69d18da1973..e30bbba7e63 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.35.4-SNAPSHOT + 4.35.4 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 c13292482f5..412feff34c6 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 534a101228e..07dc745f5cf 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.35.4-SNAPSHOT + 4.35.4 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 16028670fa1..a41d0522e91 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.35.4-SNAPSHOT + 4.35.4 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 280bfdcd434..10e9a03976c 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.35.4-SNAPSHOT + 4.35.4 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 3ee5a8ed416..740d78c6d43 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.35.4-SNAPSHOT + 4.35.4 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 7b335d67af0..77171ae4645 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.35.4-SNAPSHOT + 4.35.4 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 4a8eb240701..657db21e7c3 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 61889d9cf01..5ffb41d7602 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.35.4-SNAPSHOT + 4.35.4 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 0194f80d44f..04df4fa0f09 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.35.4-SNAPSHOT + 4.35.4 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 8559c0b3b4a..bc4ea051a5a 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.35.4-SNAPSHOT + 4.35.4 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 66ae6d76403..80c363a6497 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.35.4-SNAPSHOT + 4.35.4 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 17aeda460d3..5de998767a4 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.35.4-SNAPSHOT + 4.35.4 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 8f5cf8bed64..d21bedbd97f 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.35.4-SNAPSHOT + 4.35.4 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 7a8da1dcb5f..4f358a20908 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index a26c28dd940..feb95dafdf6 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.35.4-SNAPSHOT + 4.35.4 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 991a55bca69..af5503b2c51 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.35.4-SNAPSHOT + 4.35.4 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 9ec6c5f63fe..4b28cfb48bb 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.35.4-SNAPSHOT + 4.35.4 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 6b66c473a1e..5782a127c33 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.35.4-SNAPSHOT + 4.35.4 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 0369db0ff79..ae8b36fdb49 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.35.4-SNAPSHOT + 4.35.4 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 01b9b50acca..0b1ca67bffa 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.35.4-SNAPSHOT + 4.35.4 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 d8ffdc39ae4..99eb4991f2d 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.35.4-SNAPSHOT + 4.35.4 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 bbc76de9cab..698295387a9 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.35.4-SNAPSHOT + 4.35.4 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 6a347f9fa45..e8b21b1c4b9 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.35.4-SNAPSHOT + 4.35.4 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 455b9176d2e..e7f1782ae9d 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.35.4-SNAPSHOT + 4.35.4 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 733eeb61c96..85cd2d30285 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.35.4-SNAPSHOT + 4.35.4 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 6be69c00b32..361208cf968 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.35.4-SNAPSHOT + 4.35.4 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 6434c6e2585..1db41342ad0 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.35.4-SNAPSHOT + 4.35.4 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 e45230c06ce..9076ac1ecdd 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index c4bcbf14f1d..3b3e0178458 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.35.4-SNAPSHOT + 4.35.4 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 73563850afd..df9703238c2 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.35.4-SNAPSHOT + 4.35.4 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 c236fc6356d..f4e220035fc 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.35.4-SNAPSHOT + 4.35.4 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 a790bcdcae9..1c238f62030 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.35.4-SNAPSHOT + 4.35.4 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 772144c3eb0..5e528645536 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 837f271672a..3585458e3da 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.35.4-SNAPSHOT + 4.35.4 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 a655017d4b3..919b4456d94 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.35.4-SNAPSHOT + 4.35.4 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 3fc0640c9df..9452e6ac26b 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.35.4-SNAPSHOT + 4.35.4 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 850e459f5e2..243e5cc9eef 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.35.4-SNAPSHOT + 4.35.4 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 1c6c2454b1f..eb3a6857ea6 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.35.4-SNAPSHOT + 4.35.4 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 24f172269df..f0e0481e26c 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 61a42aaac04..d7e94731ea9 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.35.4-SNAPSHOT + 4.35.4 4.0.0 diff --git a/pom.xml b/pom.xml index 04e462d1a1d..58ceb1caf30 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.35.4-SNAPSHOT + 4.35.4 pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.35.4 From 62e1e618a7581a885e33a273645a325aa4d7c1db Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 22 Nov 2023 13:18:01 +0000 Subject: [PATCH 07/54] [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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/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-deployment/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 ++-- 393 files changed, 396 insertions(+), 396 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 8283d6b608a..f7ab45c79c5 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.35.4 + 4.35.5-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 47eaa53f62f..63c9d6da6b8 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.35.4 + 4.35.5-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 7acc089d495..2d2301b7b2e 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.35.4 + 4.35.5-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 6dc73daa152..377405fa9cd 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.35.4 + 4.35.5-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 9ab97a8c401..f6cfbc0ab3f 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.35.4 + 4.35.5-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 f829d893dc2..092917c22f4 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.35.4 + 4.35.5-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 e857ca51f28..1b50c660f68 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.35.4 + 4.35.5-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 bc847afb231..5ca1fe09a25 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.35.4 + 4.35.5-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 d561105387e..cf873414257 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 372e5f4f668..06893e3f452 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4 + 4.35.5-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 992a54da8e6..21df6918ce6 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.35.4 + 4.35.5-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 cd20322608f..84e32db2e98 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.35.4 + 4.35.5-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 322ae90a2b9..493643bfa55 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.35.4 + 4.35.5-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 15c2e6bbc1d..20bfbf06970 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.35.4 + 4.35.5-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 4ac4b6235ff..725356b71d4 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.35.4 + 4.35.5-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 eaa956f3a4e..3edba51be32 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.35.4 + 4.35.5-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 303721a2481..2bea19c0bf3 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.35.4 + 4.35.5-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 749dee6e90c..15745335c01 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.35.4 + 4.35.5-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 4d8c31f90e1..0b87cc6b9e6 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.35.4 + 4.35.5-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 6afd73ddd7e..aff6e96f926 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.35.4 + 4.35.5-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 1cfa4c2eff7..6523b0df7e1 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.35.4 + 4.35.5-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 67c0bb97034..7bb2f1d0f00 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.35.4 + 4.35.5-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 30091592805..a201975846e 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.35.4 + 4.35.5-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 fe99aaf0a98..5863251785f 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.35.4 + 4.35.5-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 6c77a56665c..0dbc7525172 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.35.4 + 4.35.5-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 518e179f0ba..e3b76a0dcbd 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.35.4 + 4.35.5-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 f767093739c..6a32a615bd9 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.35.4 + 4.35.5-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 ab90175c4c0..87e22dba699 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.35.4 + 4.35.5-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 1c19ef8a033..8909cbff705 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.35.4 + 4.35.5-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 3a7862da2da..8f193038da9 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.35.4 + 4.35.5-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 fa5b8a64a0c..846b19b7884 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.35.4 + 4.35.5-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 5d146079f83..fab9af6128a 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.35.4 + 4.35.5-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 bfdae780eab..fd7c406c276 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.35.4 + 4.35.5-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 23236ad91d9..255b52b3b25 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.35.4 + 4.35.5-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 27995d850b4..d2bec4dc883 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.35.4 + 4.35.5-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 e35a4cc4e3f..b2bec68e13e 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.35.4 + 4.35.5-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 09677d45743..789e0ec732c 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.35.4 + 4.35.5-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 9ccca536466..58f1b79145a 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.35.4 + 4.35.5-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 2ea0d32f211..3f0dc5dc957 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.35.4 + 4.35.5-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 5c4163d54b8..127f6a0ffc1 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.35.4 + 4.35.5-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 6ef4245f23f..63b51284fae 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.35.4 + 4.35.5-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 e96f38ce2be..0ed257d3c94 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.35.4 + 4.35.5-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 ab51627ea6f..4c3bd157e26 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 79151d88dbf..23ba28ba0ad 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4 + 4.35.5-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 0cb38f1872f..149c55ed302 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.35.4 + 4.35.5-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 7c6c000619c..016173e3f3c 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.35.4 + 4.35.5-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 a7fcb1b7df3..b2776a26fd2 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.35.4 + 4.35.5-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 7b746b544bc..8b1031e4575 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.35.4 + 4.35.5-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 d6ccd013ff8..ac5d2a4e18c 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.35.4 + 4.35.5-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 19a306e7ae9..f05a366c1ab 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.35.4 + 4.35.5-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 05721a11966..7089c3ab7fa 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.35.4 + 4.35.5-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 3cafb4773ea..2d355e3536c 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.35.4 + 4.35.5-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 2a2decaf939..a82f34798a5 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.35.4 + 4.35.5-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 1c2b341ea5c..38ae80091e0 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.35.4 + 4.35.5-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 d1397d0c258..f68a977164f 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.35.4 + 4.35.5-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 ca903dec564..833fd9383be 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.35.4 + 4.35.5-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 343a268f096..8e968302b5b 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.35.4 + 4.35.5-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 a04da97efaf..a4782ff6147 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.35.4 + 4.35.5-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 1a27271e4d1..24d9bfb8929 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.35.4 + 4.35.5-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 9bf2aa442b3..b4f9ad4f00e 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.35.4 + 4.35.5-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 b523ff763a9..9e3f7f33f61 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.35.4 + 4.35.5-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 6a2c0f86d4e..c7c20567ead 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.35.4 + 4.35.5-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 24482680744..a6a2ca2df67 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.35.4 + 4.35.5-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 5ae6398d331..eaf8d4bac14 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.35.4 + 4.35.5-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 3c166fbc5e8..c1d9104fdd8 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.35.4 + 4.35.5-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 b6545f04779..b5d35a44643 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 1151e2e5f27..8b250cc5028 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4 + 4.35.5-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 75b55caaa50..d0f48ab6ffc 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.35.4 + 4.35.5-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 3ba6ff20a5b..66a8bb925a4 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.35.4 + 4.35.5-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 f9076c94575..c1117122dd7 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.35.4 + 4.35.5-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 68cf3c4498a..61fd04898d2 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.35.4 + 4.35.5-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 938e5826b96..986168e1ae9 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.35.4 + 4.35.5-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 42ead667d31..9e5b2b50b8a 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.35.4 + 4.35.5-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 a3a76ca90ee..01dc9e933dd 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.35.4 + 4.35.5-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 d868709b42a..5fa20fa4e02 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.35.4 + 4.35.5-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 4168d6e1980..8ecf0792b29 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.35.4 + 4.35.5-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 fb7fb33105b..03b172b33e3 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.35.4 + 4.35.5-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 3c77fdd7b09..42fac39fbdd 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.35.4 + 4.35.5-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 b7ddd88fb1b..805f769c976 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.35.4 + 4.35.5-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 6b9152f3f2d..8996e5d1fcd 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.35.4 + 4.35.5-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 b0cf81ebae3..1bf796cc808 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.35.4 + 4.35.5-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 da57c586257..58362f060f0 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.35.4 + 4.35.5-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 8c49961a67e..df6245d343e 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.35.4 + 4.35.5-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 b80f38cb510..773b859bc64 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.35.4 + 4.35.5-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 c39de3e82de..4ceb82c1fc6 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.35.4 + 4.35.5-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 76d11d7dec7..3d690027066 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.35.4 + 4.35.5-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 c2b5bdfc012..2d7d7962f33 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.35.4 + 4.35.5-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 8913cec5d4d..b2d7b6a6e26 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.35.4 + 4.35.5-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 bce234ca40f..66d96f4d72c 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 915f138ff66..9c5195afe99 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.35.4 + 4.35.5-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 6f1f3b33ee2..b23dd10a678 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.35.4 + 4.35.5-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 a7186b029dc..c4bf68692bc 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 04ca28a88dd..31fade510d4 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.35.4 + 4.35.5-SNAPSHOT legend-engine-xts-arrow 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 34d9a9ac72f..77d02f2d1ac 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.35.4 + 4.35.5-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 82a44d79e2e..444f1ea7533 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.35.4 + 4.35.5-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 1b5564d5f6c..0a8d63ca003 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.35.4 + 4.35.5-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 ebbce54d439..6e8818a5463 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.35.4 + 4.35.5-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 148707f81a9..40acfc0cd9f 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.35.4 + 4.35.5-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 04961fbd76e..033b8ad0198 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index c9e2cd9d999..81ebea33d82 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.35.4 + 4.35.5-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 b3f3c76fcab..fe36599c27f 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.35.4 + 4.35.5-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 bae7b55b99f..acef5e3061b 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 242f70ecc78..d69a9bfd97c 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 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 a703174016b..f1c0f972342 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 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 index 6998ab3d4d6..864050e7ea3 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 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 index b9c16025903..a3eef798d32 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 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 index f2d3339a026..40bf067fe49 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 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 index a8a5360c7e6..bc311eab04a 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 46aa920a76d..03ad09de83a 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4 + 4.35.5-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 a384cd24a61..3d335d64920 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.35.4 + 4.35.5-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 d557bd6dc4f..d6d8b750ef7 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 994fd8eb346..05d56279243 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index f8a131ab749..94f22dd5036 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 66c954502c6..4f3df7a7145 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index 15f8edd0609..51b8f24026e 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index 1e8c56ebf26..10e7e591f46 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 592bd172129..978548d0751 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index 77dc67a6ee1..0f979d0150d 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.4 + 4.35.5-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 89c826c4d6d..7bf2383f236 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.35.4 + 4.35.5-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 1c50206b301..3dd380f2167 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.35.4 + 4.35.5-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 ed2c414ebea..0d76c07a08a 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 953984ebeaf..40536f682b7 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.35.4 + 4.35.5-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 b9e6675360a..7c70be2467e 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 518275c1aa5..f8099be0b88 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.35.4 + 4.35.5-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 542b048932a..edf9cb2f7a5 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.35.4 + 4.35.5-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 6fbec72d132..f111d7e071d 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.35.4 + 4.35.5-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 3a771991055..3efa65d1192 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.35.4 + 4.35.5-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 f5d45d94e76..2fce9cd2583 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.35.4 + 4.35.5-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 6c71755dc3f..4e910fc5ef8 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.35.4 + 4.35.5-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 db230fe3987..1421bc8bc4f 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.35.4 + 4.35.5-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 e915f54ed57..fb6fd7a837b 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 24e449fb2ea..0e4c6c876c8 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.35.4 + 4.35.5-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 9989ad9706c..593558169d9 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.35.4 + 4.35.5-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 5ce1952603c..f5b9648f077 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.35.4 + 4.35.5-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 58af2dce069..fa0d9716df9 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.35.4 + 4.35.5-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 edf84fe2704..b5936f1599d 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.35.4 + 4.35.5-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 f1834e53411..7957fb384f4 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.35.4 + 4.35.5-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 6765f221204..c3312e14bb5 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 4b6ce8ddf25..ffd5009c9a2 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.35.4 + 4.35.5-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 03974a1eda9..a4709a0f3e8 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.35.4 + 4.35.5-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 dfd60310475..6e8b5c2c2ad 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.35.4 + 4.35.5-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 44ac032cbfe..d41fc45f29c 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.35.4 + 4.35.5-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 3e8208b2abd..22dc0584536 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.35.4 + 4.35.5-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 f3310a2fd2e..45937accfde 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.35.4 + 4.35.5-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 9c1fe857bd4..607089bf3ba 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.35.4 + 4.35.5-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 d60f9db1f42..2841478c550 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 3eb7f6c4be3..3e37348527b 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.35.4 + 4.35.5-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 a1f3d3fe14a..c4db5d3edfd 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.35.4 + 4.35.5-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 83cd8c42bbd..a06b17d516a 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.35.4 + 4.35.5-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 bb9ef6fd96f..1570d04505e 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.35.4 + 4.35.5-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 c7fb456cdf5..187626ec721 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.35.4 + 4.35.5-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 b6e09bddec8..9c111be3476 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.35.4 + 4.35.5-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 69aade07053..f33d33d67fc 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.35.4 + 4.35.5-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 08a6a11e4df..40a5d375045 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 184b3e04795..3eb332bbfb3 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.35.4 + 4.35.5-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 72ac89aef71..f2e8dcbc264 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 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 index d80e4c60513..27465319519 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.35.4 + 4.35.5-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 f3c0404060a..41b5d7b3408 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.35.4 + 4.35.5-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 5c7e81719e0..1fc5e730cab 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 44853420d86..85642507004 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.35.4 + 4.35.5-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 00226228e67..d6cfc126a5b 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.35.4 + 4.35.5-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 634e4544b91..5330c8fa45e 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.35.4 + 4.35.5-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 0abc5a0690f..89ba2922f23 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.35.4 + 4.35.5-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 333eb130f6a..9f2ded7c791 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index a3d381d1c5a..66309b27b7e 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.35.4 + 4.35.5-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 c3d949b3632..3293852b915 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.4 + 4.35.5-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 64c4db62c88..587759c86d9 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.35.4 + 4.35.5-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 7b16f475cf3..35fe2a149ca 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.35.4 + 4.35.5-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 59474482e5a..429b335f37e 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.35.4 + 4.35.5-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 db64af1a9e3..14a45357706 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.35.4 + 4.35.5-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 1b7c319d080..356942860bb 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.35.4 + 4.35.5-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 c63c2964873..d52abe64c1d 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.35.4 + 4.35.5-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 956584e26a3..27258ac7861 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index c43e7e0b879..25b0b6e70d0 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.35.4 + 4.35.5-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 fed344156ef..b03945df45c 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.35.4 + 4.35.5-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 bf290861d18..ecc14177d3c 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.35.4 + 4.35.5-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 52e13733500..b59a3451001 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index d8bacc2306f..2e857c4fa19 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.35.4 + 4.35.5-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 f4c87e39cb9..94034984329 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.35.4 + 4.35.5-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 c80e5c88666..52d9daf7265 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.35.4 + 4.35.5-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 a1f708672ab..17734f2e90f 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.35.4 + 4.35.5-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 42fc44af3eb..803985179e8 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.35.4 + 4.35.5-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 306bcd20e09..2bc4125b355 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.35.4 + 4.35.5-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 ac0c0de2a5c..ed9e0465359 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 04be20aa36d..4673374c1bb 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.35.4 + 4.35.5-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 540876a2c22..859eecae7d1 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.35.4 + 4.35.5-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 cd41fe4257b..e19996d5ada 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 6f1f411a2b4..b3bcb41eb6b 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.35.4 + 4.35.5-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 63a891be598..3ef5f763d6e 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.35.4 + 4.35.5-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 70b7ce755dc..9b7a618961b 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.35.4 + 4.35.5-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 69529e577af..39082371caf 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.35.4 + 4.35.5-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 91984a1c06a..667c4bd7dd1 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index b9e2de12687..816d9eac8a2 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.35.4 + 4.35.5-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 6dc39c6baee..217af937794 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.35.4 + 4.35.5-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 2c402a8b545..a531ce07fbf 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.35.4 + 4.35.5-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 fb27e1dfb2e..33d4e8495e5 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.35.4 + 4.35.5-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 a3aaa72b15a..e7918fec3a6 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.35.4 + 4.35.5-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 ecfb1589985..5a6c804c25c 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.35.4 + 4.35.5-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 d5d18b91c05..793bf4cea75 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index cdf32dc0672..8aa604be6dd 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.35.4 + 4.35.5-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 5e6e6f808dc..2270a6a1884 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.35.4 + 4.35.5-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 b57e39b7a59..eff55bf323e 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.35.4 + 4.35.5-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 13d685d97ba..28066628b8d 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index e78a8bd0269..d8dc2429812 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.35.4 + 4.35.5-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 8d485057b7b..1cfe9e00344 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.35.4 + 4.35.5-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 86f68a8c46a..d82c9228ee2 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.35.4 + 4.35.5-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 580cda3e0c1..9718c2abdd7 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.35.4 + 4.35.5-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 ab7162b420b..14e543a948b 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.35.4 + 4.35.5-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 cfca07106d5..a9ae1f43721 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.35.4 + 4.35.5-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 2c91ffcd772..bd6a77d82bb 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.35.4 + 4.35.5-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 f4f5621e83f..b9d0451971d 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.35.4 + 4.35.5-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 69a5338313c..15c0806f12f 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.35.4 + 4.35.5-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 6f8aedcaadb..8feb5346752 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.35.4 + 4.35.5-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 6a1f1d59cec..99ce23f391f 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 8b82bd68e18..0c8f28e8f63 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.35.4 + 4.35.5-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 50e24dbfe81..a99ed6673e2 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.35.4 + 4.35.5-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 1384828b1a1..4967a88d5f1 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.35.4 + 4.35.5-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 31802ae6364..4a3729ae6a7 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.35.4 + 4.35.5-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 1db9409d1e4..3acda56961b 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.35.4 + 4.35.5-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 0ff8d329aac..5486025530e 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.35.4 + 4.35.5-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 288c75ccc3f..4ef834ede73 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.35.4 + 4.35.5-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 f1bc71de58c..7fa92081c7d 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.35.4 + 4.35.5-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 5687d214da0..c1cbb23bb7f 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.35.4 + 4.35.5-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 3daeb112bc4..3abc3034ff4 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.35.4 + 4.35.5-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 df7c01c25c7..d0d4c4bcd31 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.35.4 + 4.35.5-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 04ad874458f..9530e2043dc 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.35.4 + 4.35.5-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 4093b1c4441..b7d09f16b4c 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.35.4 + 4.35.5-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 9b8781e0004..9d15ae75ac8 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.35.4 + 4.35.5-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 49ba28ff9ec..d2f2ce4f865 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.35.4 + 4.35.5-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 b8816a6b686..97d9e5cc5ec 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.35.4 + 4.35.5-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 587d508fe93..d63b2e1ceaf 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.35.4 + 4.35.5-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 9adb0478317..80ebef577d3 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.35.4 + 4.35.5-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 5cee9c8c638..1b959c121da 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.35.4 + 4.35.5-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 a793dce3331..0db5dcf51ef 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.35.4 + 4.35.5-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 9ab22d13061..81e695335af 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.35.4 + 4.35.5-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 b2ca79a539c..9d791b6412f 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.35.4 + 4.35.5-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 9aee4e14e7b..652747852ae 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.35.4 + 4.35.5-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 b6e12d74d4d..db78dbe812f 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.35.4 + 4.35.5-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 8b14569aa96..88fc043545d 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index ca38cb323e0..94dc161aff7 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.35.4 + 4.35.5-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 ab5867dcd72..ae2275ae04b 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.35.4 + 4.35.5-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 9afe9b47b5b..6d902b110c9 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.35.4 + 4.35.5-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 080a1df6b0b..a21dd80eb83 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.35.4 + 4.35.5-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 0d7e0e851df..05dd507efa6 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.4 + 4.35.5-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 9dfecda6650..c44ca61f78c 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.35.4 + 4.35.5-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 d165e1e7985..cb7a8f25786 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.35.4 + 4.35.5-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 712fba1fecc..7d481a06275 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.35.4 + 4.35.5-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 fbb3a6d6890..6c4f74aca79 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.35.4 + 4.35.5-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 05eff187fd8..989f5bb14aa 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.35.4 + 4.35.5-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 7555e8cdbb9..e09910b7e10 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.35.4 + 4.35.5-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 f38e43aeb89..df8877f8b6c 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.35.4 + 4.35.5-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 036c3b52ca4..7dffe3119e0 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.35.4 + 4.35.5-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 15cfb06dbb5..ce26b090fc6 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.35.4 + 4.35.5-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 4c7c420fb3f..a49a3d0b31a 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.35.4 + 4.35.5-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 10e1b5d1baa..4053b73664e 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.35.4 + 4.35.5-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 19d91277c4d..001af6d99d0 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.35.4 + 4.35.5-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 93ea0db20f7..5beb1092e0a 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.35.4 + 4.35.5-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 ed6c110ba20..a72c1c7b7e8 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.35.4 + 4.35.5-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 b0290b86d22..a77063ddc6e 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.35.4 + 4.35.5-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 c8826ac6a15..0d125a2a025 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.35.4 + 4.35.5-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 fb501d19506..d815c2b7a6d 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.35.4 + 4.35.5-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 2282dd64ce6..02cd4f9370d 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.35.4 + 4.35.5-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 b0e269d2884..85f5bd5ae08 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.35.4 + 4.35.5-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 2673ad08dde..237b23d3660 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.35.4 + 4.35.5-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 7e073408f4f..4656fdc9529 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.35.4 + 4.35.5-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 2d0b391950a..5406dfc72a6 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.35.4 + 4.35.5-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 d9c8c6927f5..496a9e02031 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.35.4 + 4.35.5-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 9f678030ea2..4b937d67458 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.35.4 + 4.35.5-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 375dc96185c..f1a8d435f3b 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.35.4 + 4.35.5-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 9cdf1d7e3a0..c71cb442444 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.35.4 + 4.35.5-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 a57cea747a1..e5d73204666 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.35.4 + 4.35.5-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 27b46fa1061..b30733b58ca 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.35.4 + 4.35.5-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 60e11a1c8b0..3e3ea301973 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.35.4 + 4.35.5-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 0fbcf25e7f9..a6e234d6291 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.35.4 + 4.35.5-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 06422adbb25..169f49c72bb 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.35.4 + 4.35.5-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 18e735ddb7d..7aae4790184 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.35.4 + 4.35.5-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 31d53e93d0e..1251123ceac 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.35.4 + 4.35.5-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 6c1dc99c3b2..bc65f3e3a44 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.35.4 + 4.35.5-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 8e5f492f0de..f0f8043cd1e 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.35.4 + 4.35.5-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 912fa1c43c6..7db4f0de805 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.35.4 + 4.35.5-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 657961de0bb..96042ec9228 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.35.4 + 4.35.5-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 20fca5b4faf..7b2c672e999 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.35.4 + 4.35.5-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 e336ba522b1..fbb8caa2c4a 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.35.4 + 4.35.5-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 b755e5f2994..2e1eb1e3552 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.35.4 + 4.35.5-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 a66281ad769..ca6fe1bcd2d 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.35.4 + 4.35.5-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 dcadeb06be9..735dbef96f7 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.35.4 + 4.35.5-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 dd4520b99f4..b7341853c6c 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.35.4 + 4.35.5-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 f3ebc2c371a..40ba5cc1e33 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.35.4 + 4.35.5-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 548324c659b..45a86bd7699 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.35.4 + 4.35.5-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 2a397ed0170..5ea0a14e92c 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.35.4 + 4.35.5-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 0ec4b3a8f29..399c50e2422 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.35.4 + 4.35.5-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 8d636419240..cd3c3f7975f 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.35.4 + 4.35.5-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 dc3b5ae3604..0708edc9aa6 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.35.4 + 4.35.5-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 4514531c556..9be950a1e73 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.35.4 + 4.35.5-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 66b1b698b80..517b69adf08 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.35.4 + 4.35.5-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 ae2aa03b381..882231ff954 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.35.4 + 4.35.5-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 d5df97bcbb2..c4b18a7954b 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.35.4 + 4.35.5-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 45854ecd430..be11f37f382 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.35.4 + 4.35.5-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 29385b21c49..341cf8b49c8 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.35.4 + 4.35.5-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 7581ca3b698..9df8222815a 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.35.4 + 4.35.5-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 68ce39a8723..b5ea283cabb 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.35.4 + 4.35.5-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 4826ed60e46..30834e2aa76 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.35.4 + 4.35.5-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 18985343bbd..f36d122079e 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.35.4 + 4.35.5-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 942dfcf541b..c1db21092cf 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.35.4 + 4.35.5-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 5eb1a79c32d..81fd7e8cbb0 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.35.4 + 4.35.5-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 b84551a5d1e..54e59025f04 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.35.4 + 4.35.5-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 54d00bc8c01..4bd5e0c3457 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.35.4 + 4.35.5-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 2cb38600ce9..07d5f070cf8 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.35.4 + 4.35.5-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 77af744f47d..4a431b558db 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.35.4 + 4.35.5-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 8e271d8180e..eac48702eef 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.35.4 + 4.35.5-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 76bc53705fd..6fa256d55a2 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.35.4 + 4.35.5-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 8397a80408a..6378d681d3b 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.35.4 + 4.35.5-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 1bb5dc679f6..b35aa9fa6c4 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.35.4 + 4.35.5-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 5e556951aaf..f0105abbf2c 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.35.4 + 4.35.5-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 1f89502aebb..dce28fce03b 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.35.4 + 4.35.5-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 d07a8674c35..4d469e8c0eb 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.35.4 + 4.35.5-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 ea30266cebd..81ed1975b04 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.35.4 + 4.35.5-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 e1b3782c284..0ef61fd4873 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.35.4 + 4.35.5-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 f8849ce54bd..9cda7ed4081 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.35.4 + 4.35.5-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 ac9deac4920..e368e6bc6e8 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.35.4 + 4.35.5-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 a924149585e..12dfd53eb69 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.35.4 + 4.35.5-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 788840e0ece..135ae64d473 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.35.4 + 4.35.5-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 f512688c48f..39fa4432022 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.35.4 + 4.35.5-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 127478e81d0..2c8a30fe2b4 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.35.4 + 4.35.5-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 c66c7daeade..c4e604f42cb 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.35.4 + 4.35.5-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 c88a7484398..944bdbfc3c5 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.35.4 + 4.35.5-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 e394d344499..e741512a3a3 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.35.4 + 4.35.5-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 a905c9c6536..ab8682e19f1 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.35.4 + 4.35.5-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 bb30aa6ad9e..642534b5d00 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.35.4 + 4.35.5-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 2c8fbba3be5..fe2e223021a 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.35.4 + 4.35.5-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 6c01e6672b7..1bbb79eca5a 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.35.4 + 4.35.5-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 17d742cb92c..8176271db2f 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.35.4 + 4.35.5-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 80038d5adce..622c2246fa4 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.35.4 + 4.35.5-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 a4a2caa91c1..b0e80680571 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.35.4 + 4.35.5-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 511397d1089..88a253dde31 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.35.4 + 4.35.5-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 00982b0e9c9..81493117446 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.35.4 + 4.35.5-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 70d921a542d..70ad0e63e8d 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.35.4 + 4.35.5-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 b2da638bc7e..939311c280a 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.35.4 + 4.35.5-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 0a27d3af684..f9bbfa340b1 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 9da3128e872..2440b73bcf1 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.35.4 + 4.35.5-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 e3612300218..309bc63b2bb 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index b5a91bfdcdd..c788e9905ce 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.35.4 + 4.35.5-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 ee460b0e7ad..ef850bc2c5f 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.35.4 + 4.35.5-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 c9da204c958..46b1d7551dd 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 786940ebf4a..2fc99f153d0 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.35.4 + 4.35.5-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 613c12f1b64..8ac25fd4fa1 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.35.4 + 4.35.5-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 83c786d37e1..a1e499fc862 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.35.4 + 4.35.5-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 5a4e1363b80..c1b509769c7 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.35.4 + 4.35.5-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 40c75f8389c..efb4f9af9f9 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.35.4 + 4.35.5-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 707d2cf5f9f..02cac8b656b 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.35.4 + 4.35.5-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 e337926c132..6524a563c1e 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.35.4 + 4.35.5-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 e30bbba7e63..49d5a1b7271 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.35.4 + 4.35.5-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 412feff34c6..693a4e5c925 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 07dc745f5cf..3faf5acb3cc 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.35.4 + 4.35.5-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 a41d0522e91..6f9b5bd2e38 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.35.4 + 4.35.5-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 10e9a03976c..84895998999 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.35.4 + 4.35.5-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 740d78c6d43..0c22fe37300 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.35.4 + 4.35.5-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 77171ae4645..0214deead6b 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.35.4 + 4.35.5-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 657db21e7c3..3dacdc06d6b 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 5ffb41d7602..67873bd07ad 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.35.4 + 4.35.5-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 04df4fa0f09..20212c47557 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.35.4 + 4.35.5-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 bc4ea051a5a..bdd2b44b95e 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.35.4 + 4.35.5-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 80c363a6497..b50cdbdfac5 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.35.4 + 4.35.5-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 5de998767a4..f24c662e3ca 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.35.4 + 4.35.5-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 d21bedbd97f..a8860e3c6a9 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.35.4 + 4.35.5-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 4f358a20908..b87e8c33600 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index feb95dafdf6..46be8a51229 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.35.4 + 4.35.5-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 af5503b2c51..1459301bd37 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.35.4 + 4.35.5-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 4b28cfb48bb..b7d308ab323 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.35.4 + 4.35.5-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 5782a127c33..19482b6d4f6 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.35.4 + 4.35.5-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 ae8b36fdb49..3507d7f2e7a 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.35.4 + 4.35.5-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 0b1ca67bffa..7bb107ad67f 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.35.4 + 4.35.5-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 99eb4991f2d..bff7742ac81 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.35.4 + 4.35.5-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 698295387a9..b49456ec4fd 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.35.4 + 4.35.5-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 e8b21b1c4b9..8cc5ea03325 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.35.4 + 4.35.5-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 e7f1782ae9d..7acd9fa3ff8 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.35.4 + 4.35.5-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 85cd2d30285..35f6b18d490 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.35.4 + 4.35.5-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 361208cf968..8fe83443d18 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.35.4 + 4.35.5-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 1db41342ad0..18a754bc6f0 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.35.4 + 4.35.5-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 9076ac1ecdd..b2186f6babc 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 3b3e0178458..1481e685be4 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.35.4 + 4.35.5-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 df9703238c2..f2009f9682a 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.35.4 + 4.35.5-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 f4e220035fc..7a9b87aed9e 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.35.4 + 4.35.5-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 1c238f62030..5ee73ca6747 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.35.4 + 4.35.5-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 5e528645536..e902fc445dc 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 3585458e3da..c654bc1c9c4 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.35.4 + 4.35.5-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 919b4456d94..a055fe71a5c 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.35.4 + 4.35.5-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 9452e6ac26b..60e2c8d83c5 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.35.4 + 4.35.5-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 243e5cc9eef..e8b256c91c2 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.35.4 + 4.35.5-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 eb3a6857ea6..112f196cd44 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.35.4 + 4.35.5-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 f0e0481e26c..1ba370c924e 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index d7e94731ea9..5b2327dc131 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.35.4 + 4.35.5-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 58ceb1caf30..864dee22b60 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.35.4 + 4.35.5-SNAPSHOT pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.35.4 + HEAD From ae7dad679587e1e144ae46fb23568e77a73cf91f Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Wed, 22 Nov 2023 16:29:54 +0000 Subject: [PATCH 08/54] Legend SQL - assortment of fixes (#2473) 1. do not possibly cast all function parameters by default 2. further alias adjustments 3. handle in filter using subbselect column 4. add greatest/least --- .../toPureGraph/handlers/Handlers.java | 11 +- .../core/legend/test/handlersTest.pure | 5 + .../corefunctions/collectionExtension.pure | 30 ++ .../pure/router/routing/router_routing.pure | 6 +- .../planConventions/collectionsLibrary.pure | 7 + .../sqlQueryToString/sybaseASEExtension.pure | 2 + .../sqlQueryToString/sybaseIQExtension.pure | 2 + .../tests/testSybaseIQWithFunction.pure | 17 ++ .../pureToSQLQuery/pureToSQLQuery.pure | 14 +- .../relational/relationalExtension.pure | 20 ++ .../sqlQueryToString/dbExtension.pure | 6 +- .../sqlQueryToString/extensionDefaults.pure | 11 + .../testSuite/dynaFunctions/misc.pure | 56 ++++ .../relational/tds/tests/testTDSFilter.pure | 14 + .../fromPure/tests/testToSQLString.pure | 14 + .../binding/fromPure/fromPure.pure | 282 ++++++++++++------ .../binding/fromPure/tests/testTranspile.pure | 81 +++-- 17 files changed, 451 insertions(+), 127 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/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 9f2ddfd01dc..26dc7bc4a4f 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 @@ -506,6 +506,11 @@ public Handlers(PureModel pureModel) register(h("meta::pure::tds::concatenate_TabularDataSet_1__TabularDataSet_1__TabularDataSet_1_", false, ps -> res("meta::pure::tds::TabularDataSet", "one"), ps -> "TabularDataSet".equals(ps.get(0)._genericType()._rawType()._name())), h("meta::pure::functions::collection::concatenate_T_MANY__T_MANY__T_MANY_", true, ps -> res(ps.get(0)._genericType(), "zeroMany"), ps -> true)); + register(m(h("meta::pure::functions::collection::greatest_X_$1_MANY$__X_1_", false, ps -> res(ps.get(0)._genericType(), "one"), ps -> matchOneMany(ps.get(0)._multiplicity())), + h("meta::pure::functions::collection::greatest_X_MANY__X_$0_1$_", false, ps -> res(ps.get(0)._genericType(), "zeroOne"), ps -> true))); + + register(m(h("meta::pure::functions::collection::least_X_$1_MANY$__X_1_", false, ps -> res(ps.get(0)._genericType(), "one"), ps -> matchOneMany(ps.get(0)._multiplicity())), + h("meta::pure::functions::collection::least_X_MANY__X_$0_1$_", false, ps -> res(ps.get(0)._genericType(), "zeroOne"), ps -> true))); register("meta::pure::functions::collection::first_T_MANY__T_$0_1$_", true, ps -> res(ps.get(0)._genericType(), "zeroOne")); register("meta::pure::functions::collection::last_T_MANY__T_$0_1$_", true, ps -> res(ps.get(0)._genericType(), "zeroOne")); @@ -1873,6 +1878,10 @@ private Map buildDispatch() map.put("meta::pure::functions::date::min_Date_MANY__Date_$0_1$_", (List ps) -> ps.size() == 1 && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(0)._genericType()._rawType()._name())); map.put("meta::pure::functions::date::min_StrictDate_1__StrictDate_1__StrictDate_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "StrictDate".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "StrictDate".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::date::min_StrictDate_MANY__StrictDate_$0_1$_", (List ps) -> ps.size() == 1 && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "StrictDate".equals(ps.get(0)._genericType()._rawType()._name()))); + map.put("meta::pure::functions::collection::greatest_X_$1_MANY$__X_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity())); + map.put("meta::pure::functions::collection::greatest_X_MANY__X_$0_1$_", (List ps) -> ps.size() == 1); + map.put("meta::pure::functions::collection::least_X_$1_MANY$__X_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity())); + map.put("meta::pure::functions::collection::least_X_MANY__X_$0_1$_", (List ps) -> ps.size() == 1); map.put("meta::pure::functions::date::minute_Date_1__Integer_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(0)._genericType()._rawType()._name())); map.put("meta::pure::functions::date::monthNumber_Date_$0_1$__Integer_$0_1$_", (List ps) -> ps.size() == 1 && matchZeroOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(0)._genericType()._rawType()._name())); map.put("meta::pure::functions::date::monthNumber_Date_1__Integer_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Date", "StrictDate", "DateTime", "LatestDate").contains(ps.get(0)._genericType()._rawType()._name())); @@ -1928,8 +1937,8 @@ private Map buildDispatch() map.put("meta::pure::functions::math::log_Number_1__Float_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(0)._genericType()._rawType()._name())); map.put("meta::pure::functions::math::log10_Number_1__Float_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Number", "Integer", "Float", "Decimal").contains(ps.get(0)._genericType()._rawType()._name())); map.put("meta::pure::functions::math::max_Float_$1_MANY$__Float_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Float".equals(ps.get(0)._genericType()._rawType()._name()))); - map.put("meta::pure::functions::math::max_Float_1__Float_1__Float_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Float".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Float".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::math::max_Float_MANY__Float_$0_1$_", (List ps) -> ps.size() == 1 && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Float".equals(ps.get(0)._genericType()._rawType()._name()))); + map.put("meta::pure::functions::math::max_Float_1__Float_1__Float_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Float".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Float".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::math::max_Integer_$1_MANY$__Integer_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Integer".equals(ps.get(0)._genericType()._rawType()._name()))); map.put("meta::pure::functions::math::max_Integer_1__Integer_1__Integer_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Integer".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::math::max_Integer_MANY__Integer_$0_1$_", (List ps) -> ps.size() == 1 && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Integer".equals(ps.get(0)._genericType()._rawType()._name()))); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure index 09e3d2fbff2..145fab5829f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure @@ -128,6 +128,11 @@ Class meta::legend::test::handlers::model::TestMaxMin minDateTime() {$this.dateTimes->min()}:DateTime[0..1]; minTwoDateTime() {$this.dateTime->min($this.dateTime)}:DateTime[1]; + + greatest() {$this.numbers->greatest()}:Number[0..1]; + greatestMinOne() {$this.numbersMinOne->greatest()}:Number[1]; + least() {$this.numbers->least()}:Number[0..1]; + leastMinOne() {$this.numbersMinOne->least()}:Number[1]; } Class meta::legend::test::handlers::model::TestAlgebra diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure index b44c31ce858..eaeca1b26c2 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure @@ -177,6 +177,36 @@ function meta::pure::functions::collection::uniqueValueOnly(values : T[*], de ); } +function meta::pure::functions::collection::greatest(values : X[*]):X[0..1] +{ + max($values); +} + +function meta::pure::functions::collection::least(values : X[*]):X[0..1] +{ + min($values); +} + +function meta::pure::functions::collection::greatest(values : X[1..*]):X[1] +{ + max($values); +} + +function meta::pure::functions::collection::least(values : X[1..*]):X[1] +{ + min($values); +} + +function meta::pure::functions::collection::max(values : X[1..*]):X[1] +{ + $values->sort()->last()->toOne(); +} + +function meta::pure::functions::collection::min(values : X[1..*]):X[1] +{ + $values->sort()->first()->toOne(); +} + function meta::pure::functions::collection::max(values : X[*]):X[0..1] { $values->sort()->last(); 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 7e7aebb9845..dde530de2be 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 @@ -595,7 +595,7 @@ function meta::pure::router::routing::isGetAllFunction(f:Function[1]):Boole function meta::pure::router::routing::shouldStop(f:Function[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] { - shouldStopFunctions($extensions)->contains($f); + shouldStopFunctions($extensions)->contains($f); } function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure::extension::Extension[*]):Function[*] @@ -621,6 +621,8 @@ function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure: max_Float_$1_MANY$__Float_1_, max_Number_MANY__Number_$0_1$_, max_Number_$1_MANY$__Number_1_, + greatest_X_MANY__X_$0_1$_, + greatest_X_$1_MANY$__X_1_, getAllForEachDate_Class_1__Date_MANY__T_MANY_, greaterThan_Number_1__Number_1__Boolean_1_, greaterThan_String_1__String_1__Boolean_1_, @@ -684,6 +686,8 @@ function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure: min_Date_MANY__Date_$0_1$_, min_StrictDate_MANY__StrictDate_$0_1$_, min_DateTime_MANY__DateTime_$0_1$_, + least_X_MANY__X_$0_1$_, + least_X_$1_MANY$__X_1_, variancePopulation_Number_MANY__Number_1_, varianceSample_Number_MANY__Number_1_, makeString_Any_MANY__String_1__String_1_, 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 6cb0f936ce1..f625b1ab4cc 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 @@ -47,6 +47,13 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec fc2(min_T_$1_MANY$__Function_1__T_1_, {ctx,collection,comp | if( $collection.type->isJavaList(), | minComp($ctx, $collection, $comp, $library), | $collection )}), 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 )}), + fc(max_X_$1_MANY$__X_1_, fcAlias( max_X_MANY__X_$0_1$_)), + fc(min_X_$1_MANY$__X_1_, fcAlias( min_X_MANY__X_$0_1$_)), + + fc(greatest_X_MANY__X_$0_1$_, fcAlias( max_X_MANY__X_$0_1$_)), + fc(least_X_MANY__X_$0_1$_, fcAlias( min_X_MANY__X_$0_1$_)), + fc(greatest_X_$1_MANY$__X_1_, fcAlias( max_X_MANY__X_$0_1$_)), + fc(least_X_$1_MANY$__X_1_, fcAlias( min_X_MANY__X_$0_1$_)), 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', [])}), 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 1cb86366689..7e069c49a80 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 @@ -105,6 +105,7 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='dateadd(DAY, -(datepart(dayofyear, today()) - 1), today())%s', transform={p:String[*] | ''})), dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, -(mod(datepart(weekday, %s)+5, 7)), %s)', transform={p:String[1] | $p->repeat(2)})), dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='dateadd(DAY, -(datepart(dayofyear, %s) - 1), %s)', transform={p:String[1] | $p->repeat(2)})), + dynaFnToSql('greatest', $allStates, ^ToSql(format='%s', transform={p:String[*] | convertGreatestLeastToCaseStatement('>=', $p)})), 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)), @@ -117,6 +118,7 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti dynaFnToSql('isNull', $notSelectOutsideWhen, ^ToSql(format='%s is null')), dynaFnToSql('isNumeric', $allStates, ^ToSql(format='isnumeric(%s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='list(%s,%s)')), + dynaFnToSql('least', $allStates, ^ToSql(format='%s', transform={p:String[*] | convertGreatestLeastToCaseStatement('<=', $p)})), dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), 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 a167de9a353..0f64b03218e 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 @@ -102,6 +102,7 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio 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('greatest', $allStates, ^ToSql(format='%s', transform={p:String[*] | convertGreatestLeastToCaseStatement('>=', $p)})), 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)), @@ -114,6 +115,7 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio dynaFnToSql('isNull', $notSelectOutsideWhen, ^ToSql(format='%s is null')), dynaFnToSql('isNumeric', $allStates, ^ToSql(format='isnumeric(%s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='list(%s,%s)')), + dynaFnToSql('least', $allStates, ^ToSql(format='%s', transform={p:String[*] | convertGreatestLeastToCaseStatement('<=', $p)})), dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), 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 61d826295ee..3d414336487 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 @@ -88,3 +88,20 @@ function <> meta::relational::tests::query::function::sybaseIQ::testD let s = toSQLString($fn, simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select datename(WEEKDAY,"root".tradeDate) as "WeekDay Name" from tradeTable as "root"',$s); } + +function <> meta::relational::tests::query::function::sybaseIQ::testGreatestLeast():Boolean[1] +{ + let fn = {|Trade.all() + ->project([ + col(t| greatest([$t.quantity, 1, 3]), 'greatest'), + col(t| greatest([]->cast(@String)), 'greatest_empty'), + col(t| least([$t.quantity, 1, 3]), 'least'), + col(t| least([]->cast(@String)), 'least_empty') + ])}; + + let s = toSQLString($fn, simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); + assertEquals('select case when "root".quantity >= "root".quantity and "root".quantity >= 1 and "root".quantity >= 3 then "root".quantity when 1 >= "root".quantity and 1 >= 1 and 1 >= 3 then 1 when 3 >= "root".quantity and 3 >= 1 and 3 >= 3 then 3 else null end as "greatest", ' + + 'null as "greatest_empty", ' + + 'case when "root".quantity <= "root".quantity and "root".quantity <= 1 and "root".quantity <= 3 then "root".quantity when 1 <= "root".quantity and 1 <= 1 and 1 <= 3 then 1 when 3 <= "root".quantity and 3 <= 1 and 3 <= 3 then 3 else null end as "least", ' + + 'null as "least_empty" from tradeTable as "root"',$s); +} \ 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 9bb692ea631..2e2c2783c67 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 @@ -2685,6 +2685,7 @@ function meta::relational::functions::pureToSqlQuery::processTdsOlapOperation(o: function meta::relational::functions::pureToSqlQuery::processTdsFilter(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 mainQuery = processValueSpecification($f.parametersValues->at(0), $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor); + let mainSelect = $mainQuery.select; if($state.insertDriverTablePkInTempTable->isNotEmpty(), @@ -2693,6 +2694,7 @@ function meta::relational::functions::pureToSqlQuery::processTdsFilter(f:Functio let select = $res.select; let mainQueryFilter=$mainQuery.select.filteringOperation->concatenate($mainQuery.select.extraFilteringOperation)->andFilters($extensions); let mainQueryColumns = $mainQuery.select.columns; + let finalColumns = $mainQueryColumns->map(c| $c->match( [ @@ -4183,7 +4185,6 @@ function meta::relational::functions::pureToSqlQuery::processIn(f:FunctionExpres function meta::relational::functions::pureToSqlQuery::processIn(valueArg:ValueSpecification[1], collectionArg:ValueSpecification[1], currentPropertyMapping:PropertyMapping[*], operation:SelectWithCursor[1], vars:Map[1], state:State[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*]):RelationalOperationElement[1] { let processedValueArg = $valueArg->processValueSpecificationReturnPropertyMapping($currentPropertyMapping, $operation, $vars, $state, JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions)->toOne(); - let processedCollectionArg = $collectionArg->processValueSpecification($currentPropertyMapping, $operation, $vars, ^$state(shouldIsolate=false), JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions)->cast(@SelectWithCursor); let singleProcessedCollectionArg = $processedCollectionArg->size() == 1; let reprocessedCollectionArg = if($singleProcessedCollectionArg, @@ -4195,6 +4196,8 @@ function meta::relational::functions::pureToSqlQuery::processIn(valueArg:ValueSp let firstSelect = $first.select; ^$first(select=if($state.inFilter, |^$firstSelect(filteringOperation=$list), |^$firstSelect(columns=$list)));); + + let mergedSQL = mergeSQLQueryData([$processedValueArg.element->cast(@SelectWithCursor), $reprocessedCollectionArg, $operation]->map(x|$x->extractSelectSQLQuery()), $nodeId, $state, $context, $extensions); let leftTable = if ($reprocessedCollectionArg.parent == [], |[],|$reprocessedCollectionArg.parent.alias.relationalElement); @@ -4203,7 +4206,8 @@ function meta::relational::functions::pureToSqlQuery::processIn(valueArg:ValueSp let isJoinToFilterTable = $state.inFilter && $leftTable != [] && $leftTable != $filterTable && $processedCollectionArg->at(0).select.filteringOperation->at(0)->instanceOf(TableAliasColumn); let valueFilter = if ($isJoinToFilterTable, | $reprocessedCollectionArg.select ,| $mergedSQL); - let value = if($state.inFilter,|$valueFilter.filteringOperation->filter(p|$p->instanceOf(TableAliasColumn) || $p->instanceOf(DynaFunction) || $p->instanceOf(JoinStrings) || $p->instanceOf(SemiStructuredArrayFlattenOutput) || $p->instanceOf(SemiStructuredObjectNavigation))->at(0),|$mergedSQL.columns->at(0)); + + let value = if($state.inFilter,|$valueFilter.filteringOperation->filter(p|$p->instanceOf(TableAliasColumn) || $p->instanceOf(ColumnName) || $p->instanceOf(DynaFunction) || $p->instanceOf(JoinStrings) || $p->instanceOf(SemiStructuredArrayFlattenOutput) || $p->instanceOf(SemiStructuredObjectNavigation))->at(0),|$mergedSQL.columns->at(0)); let collection = if($state.inFilter, |$mergedSQL.filteringOperation->filter(p|$p->instanceOf(Literal) || $p->instanceOf(LiteralList) || $p->instanceOf(FreeMarkerOperationHolder))->at(0),|$mergedSQL.columns->at(1)); let selectWithCursor = $value->extractSelectWithCursor($operation); @@ -4287,6 +4291,8 @@ function meta::relational::functions::pureToSqlQuery::processObjectReferenceIn(f let reProcessedleftSide = $objectReferenceInImp->processColumnsInRelationalOperationElements($state, $processedLeftSide, $nodeId, $aggFromMap, true, $context->shift(), $extensions); let processedCollectionArg = $f.parametersValues->at(1)->processValueSpecification($currentPropertyMapping, $operation, $vars, ^$state(shouldIsolate=false), JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context->shift(), $extensions)->cast(@SelectWithCursor); + + let processedCollection = if($state.inFilter, |$processedCollectionArg->map(s | $s.select.filteringOperation), |$processedCollectionArg->map(s | $s.select.columns)); assert($processedCollection->forAll(pc | $pc->instanceOf(Literal)), 'ObjectReferenceIn is supported only for Literal'); let isPostProcessingReq = !$processedCollection->forAll(pc | $pc->cast(@Literal).value->instanceOf(String) || $pc->cast(@Literal).value->instanceOf(SQLNull)); @@ -7657,6 +7663,10 @@ function meta::relational::functions::pureToSqlQuery::getSupportedFunctions():Ma ^PureFunctionToRelationalFunctionPair(first=meta::pure::functions::collection::first_T_MANY__T_$0_1$_, 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::collection::concatenate_T_MANY__T_MANY__T_MANY_, second=meta::relational::functions::pureToSqlQuery::processConcatenate_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::collection::union_T_MANY__T_MANY__T_MANY_, second=meta::relational::functions::pureToSqlQuery::processConcatenate_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::collection::greatest_X_MANY__X_$0_1$_, second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::greatest_X_$1_MANY$__X_1_, second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::least_X_MANY__X_$0_1$_, second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::least_X_$1_MANY$__X_1_, second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::lang::cast_Any_m__T_1__T_m_, 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::lang::if_Boolean_1__Function_1__Function_1__T_m_,second=meta::relational::functions::pureToSqlQuery::processIf_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::boolean::greaterThan_Number_1__Number_1__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_), 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 96e257fa526..741eee09f4b 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 @@ -729,6 +729,16 @@ function <> meta::relational::functions::typeInference::getDynaF ]) ), + pair( + 'greatest', + list([ + pair( + {params: RelationalOperationElement[*] | true}, + {params: RelationalOperationElement[*] | $params->at(0)->inferRelationalType()} + ) + ]) + ), + pair( 'hour', list([ @@ -829,6 +839,16 @@ function <> meta::relational::functions::typeInference::getDynaF ]) ), + pair( + 'least', + list([ + pair( + {params: RelationalOperationElement[*] | true}, + {params: RelationalOperationElement[*] | $params->at(0)->inferRelationalType()} + ) + ]) + ), + pair( 'left', list([ 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 deb07bafd16..870dad211c5 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 @@ -938,6 +938,8 @@ Enum meta::relational::functions::sqlQueryToString::DynaFunctionRegistry equal, exists, exp, + explodeSemiStructured, + extractFromSemiStructured, firstDayOfMonth, firstDayOfQuarter, firstDayOfThisMonth, @@ -950,10 +952,9 @@ Enum meta::relational::functions::sqlQueryToString::DynaFunctionRegistry firstSecondOfMinute, firstMillisecondOfSecond, floor, - extractFromSemiStructured, - explodeSemiStructured, greaterThan, greaterThanEqual, + greatest, group, hour, if, @@ -967,6 +968,7 @@ Enum meta::relational::functions::sqlQueryToString::DynaFunctionRegistry isNull, isNumeric, joinStrings, + least, left, length, lessThan, 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 7a1fabd8994..07e6de10a8c 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 @@ -150,6 +150,15 @@ function meta::relational::functions::sqlQueryToString::default::convertDateToSq | format('%t{[' + $timeZone + ']yyyy-MM-dd}', $date)); } +function meta::relational::functions::sqlQueryToString::default::convertGreatestLeastToCaseStatement(func:String[1], params:String[*]):String[1] +{ + let nonNullParams = $params->filter(p | $p->toLower() != 'null'); + + if ($nonNullParams->isEmpty(), | 'null', | $nonNullParams->filter(p | $p != 'null')->map(p | + 'when ' + $nonNullParams->map(c | $p + ' ' + $func + ' ' + $c)->joinStrings(' and ') + ' then ' + $p + )->joinStrings('case ', ' ', ' else null end')); +} + function meta::relational::functions::sqlQueryToString::default::processJoinStringsOperationWithConcatCall(js:JoinStrings[1], sgc:SqlGenerationContext[1]): String[1] { processJoinStringsOperation($js, $sgc, [], {strs, sep| $strs->joinStrings('concat(', if('\'\'' == $sep, |', ', |',' + $sep + ',') , ')')}); @@ -187,6 +196,7 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('floor', $allStates, ^ToSql(format='floor(%s)')), dynaFnToSql('greaterThan', $allStates, ^ToSql(format='%s > %s')), dynaFnToSql('greaterThanEqual', $allStates, ^ToSql(format='%s >= %s')), + dynaFnToSql('greatest', $allStates, ^ToSql(format='greatest(%s)', transform={p:String[*]|$p->joinStrings(', ')})), dynaFnToSql('group', $allStates, ^ToSql(format='(%s)')), dynaFnToSql('if', $allStates, ^ToSql(format='case when %s then %s else %s end', parametersWithinWhenClause = [true, false, false])), dynaFnToSql('in', $allStates, ^ToSql(format='%s in %s', transform={p:String[2] | if($p->at(1)->startsWith('(') && $p->at(1)->endsWith(')'), | $p, | [$p->at(0), ('(' + $p->at(1) + ')')])})), @@ -196,6 +206,7 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('isNotEmpty', $allStates, ^ToSql(format='%s is not null')), dynaFnToSql('isNotNull', $allStates, ^ToSql(format='%s is not null')), dynaFnToSql('isNull', $allStates, ^ToSql(format='%s is null')), + dynaFnToSql('least', $allStates, ^ToSql(format='least(%s)', transform={p:String[*]|$p->joinStrings(', ')})), dynaFnToSql('lessThan', $allStates, ^ToSql(format='%s < %s')), dynaFnToSql('lessThanEqual', $allStates, ^ToSql(format='%s <= %s')), dynaFnToSql('log', $allStates, ^ToSql(format='ln(%s)')), 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/dynaFunctions/misc.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/dynaFunctions/misc.pure index 99f922b5e7c..508aec3f9da 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/dynaFunctions/misc.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/dynaFunctions/misc.pure @@ -50,3 +50,59 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe let expected = ^Literal(value='2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'); runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); } + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::greatest::string(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='greatest', parameters=[^Literal(value = 'b'), ^Literal(value = 'c'), ^Literal(value = 'a')]); + let expected = ^Literal(value = 'c'); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::greatest::number(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='greatest', parameters=[^Literal(value = 2), ^Literal(value = 3), ^Literal(value = 1)]); + let expected = ^Literal(value = 3); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::greatest::date(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='greatest', parameters=[^Literal(value = %2023-06-01), ^Literal(value = %2023-12-01), ^Literal(value = %2023-01-01)]); + let expected = ^Literal(value = %2023-12-01); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::greatest::boolean(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='greatest', parameters=[^Literal(value = true), ^Literal(value = false)]); + let expected = ^Literal(value = true); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::least::string(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='least', parameters=[^Literal(value = 'b'), ^Literal(value = 'a'), ^Literal(value = 'c')]); + let expected = ^Literal(value = 'a'); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::least::number(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='least', parameters=[^Literal(value = 2), ^Literal(value = 1), ^Literal(value = 3)]); + let expected = ^Literal(value = 1); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::least::date(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='least', parameters=[^Literal(value = %2023-06-01), ^Literal(value = %2023-01-01), ^Literal(value = %2023-12-01)]); + let expected = ^Literal(value = %2023-01-01); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::least::boolean(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='least', parameters=[^Literal(value = true), ^Literal(value = false)]); + let expected = ^Literal(value = false); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} \ 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/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 93aabe30d04..cad496d8d1c 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 @@ -209,6 +209,20 @@ function <> meta::relational::tests::tds::tdsFilter::testEvalInFilter assertEquals('select "root".FIRSTNAME as "first", "root".LASTNAME as "last" from personTable as "root" where ("root".LASTNAME = \'Johnson\' or "root".LASTNAME = \'Hill\')', $result->sqlRemoveFormatting()); } +function <> meta::relational::tests::tds::tdsFilter::testInOnColumnInSubselect():Boolean[1] +{ + let result = execute(|Person.all()->project([ + col(p | $p.firstName, 'name'), + col(p | $p.age, 'age') + ]) + ->olapGroupBy('name', desc('age'), x | $x->meta::pure::functions::math::olap::rank(), 'rank') + ->filter({r | $r.getString('name')->in(['John', 'Peter'])}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + + assertEquals('select "name" as "name", "age" as "age", "rank" as "rank" from (select "root".FIRSTNAME as "name", "root".AGE as "age", rank() OVER (Partition By "root".FIRSTNAME Order By "root".AGE DESC) as "rank" from personTable as "root") as "subselect" where "name" in (\'John\', \'Peter\')', $result->sqlRemoveFormatting()); + assertSize($result.values.rows, 3); + assertEquals(['John', 22, 1, 'John', 12, 2, 'Peter', 23, 1], $result.values.rows->map(r|$r.values)); +} + function <> meta::relational::tests::tds::tdsFilter::testFilterOnQuotedColumnFromTableToTds():Boolean[1] { let queryWithoutQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db,'default','tableWithQuotedColumns')) 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 ce101f8b7fb..01a668a1a26 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 @@ -674,6 +674,20 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS assertEquals('select cast("root".quantity as decimal) as "decimal", cast("root".quantity as double precision) as "float" from tradeTable as "root"', $result); } +function <> meta::relational::tests::functions::sqlstring::testGreatestLeast():Boolean[1] +{ + let result = toSQLString( + |Trade.all() + ->project([ + col(t| greatest([$t.quantity, 1, 3]), 'greatest'), + col(t| greatest([]->cast(@String)), 'greatest_empty'), + col(t| least([$t.quantity, 1, 3]), 'least'), + col(t| least([]->cast(@String)), 'least_empty') + ]), simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); + + assertEquals('select greatest("root".quantity, 1, 3) as "greatest", greatest(null) as "greatest_empty", least("root".quantity, 1, 3) as "least", least(null) as "least_empty" from tradeTable as "root"', $result); +} + function <> meta::relational::tests::functions::sqlstring::testToSQLStringForTDSStringJoin():Boolean[1] { let result = toSQLString( 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 c1c38849f61..42c90cb498a 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 @@ -258,17 +258,21 @@ function <> meta::external::query::sql::transformation::queryToP s:SingleColumn[1] | let name = extractNameFromSingleColumn($s, []); let nonAliasedName = extractNamePartsFromSingleColumn(^$s(alias = []), []); - let alias = $query.alias($nonAliasedName, $s.alias, true)->toOne(); let finalAlias = $query.alias($alias.name, $s.alias, false); - let realias = if ($alias.realias->isNotEmpty(), | $alias.realias, | $finalAlias.realias); - + //if the final alias has an alias, we know that it has already been renamed + let realias = if ($alias.realias->isNotEmpty() && $finalAlias->isEmpty(), | $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), - | $query.context($a.prefix).aliases); + | $query.aliases;,//$query.contexts->map(c | $c.aliases)->concatenate($query.aliases), + | $query.context($a.prefix).aliases->map(alias | + let finalAlias = $query.alias($alias.name, $alias.alias, false); + let realias = if ($alias.realias->isNotEmpty() && $finalAlias->isEmpty(), | $alias.realias, | $finalAlias.realias); + + ^$alias(alias = if ($finalAlias->isEmpty(), | $alias.alias, | $finalAlias.alias), realias = $realias); + );); ]) ); @@ -281,11 +285,15 @@ function <> meta::external::query::sql::transformation::queryToP let currentSchema = $query.columns.name; - let renamed = if ($expected.alias != $currentSchema, | ^$query(expression = processRename($expected->filter(e | !$e.alias->in($currentSchema)), $query)), | $query); + let restrict = if ($currentSchema != $expectedWithRealias.actual, + | ^$query(expression = processRestrict($expectedWithRealias.actual, $query)), + | $query); - let final = if ($renamed.columns.name != $expected.alias->removeDuplicates() && $expected.alias->isNotEmpty(), - | ^$query(expression = processRestrict($expected.alias, $renamed)), - | $renamed); + let restrictSchema = $restrict.columns.name; + + let final = if ($expected.alias != $restrictSchema, + | ^$restrict(expression = processRename($expected->filter(e | !$e.alias->in($restrictSchema)), $restrict)), + | $restrict); let aliases = $final.columns.name->map(c | ^SQLColumnAlias(name = $c)); @@ -294,23 +302,19 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::extractAggregatesFromExpression(expression:meta::external::query::sql::metamodel::Expression[0..1]):meta::external::query::sql::metamodel::Expression[*] { - $expression->match([ - a:ArithmeticExpression[1] | $a.left->extractAggregatesFromExpression()->concatenate($a.right->extractAggregatesFromExpression()), - b:BetweenPredicate[1] | $b.min->extractAggregatesFromExpression()->concatenate($b.value->extractAggregatesFromExpression())->concatenate($b.max->extractAggregatesFromExpression()), - c:Cast[1] | $c.expression->extractAggregatesFromExpression(), - c:ComparisonExpression[1] | $c.left->extractAggregatesFromExpression()->concatenate($c.right->extractAggregatesFromExpression()), - e:Extract[1] | $e.expression->extractAggregatesFromExpression(), - f:FunctionCall[1] | if (isExpressionAggregate($f, false, false), | $f, | $f.arguments->map(a | $a->extractAggregatesFromExpression())), - i:IsNotNullPredicate[1] | $i.value->extractAggregatesFromExpression(), - i:IsNullPredicate[1] | $i.value->extractAggregatesFromExpression(), - l:LogicalBinaryExpression[1] | $l.left->extractAggregatesFromExpression()->concatenate($l.right->extractAggregatesFromExpression()), - n:NegativeExpression[1] | $n.value->extractAggregatesFromExpression(), - 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());, - e:meta::external::query::sql::metamodel::Expression[0..1] | [] - ]); + + walk($expression, + t | $t, + f:FunctionCall[1] | if (isExpressionAggregate($f, false, false), | $f, | $f.arguments->map(a | $a->extractAggregatesFromExpression())) + ) +} + +function <> meta::external::query::sql::transformation::queryToPure::extractUsedColumnNames(expression:meta::external::query::sql::metamodel::Expression[*]):String[*] +{ + walk($expression, + q | $q, + q:QualifiedNameReference[1] | $q->extractNameFromExpression([]) + )->removeDuplicates() } @@ -318,54 +322,73 @@ function <> meta::external::query::sql::transformation::queryToP { debug('processProjection', $context.debug); - let aggregates = $originalSelect.selectItems->filter(si | $si->isSelectItemAggregate()); + let aggregates = $originalSelect.selectItems->filter(si | $si->isSelectItemAggregate())->cast(@SingleColumn); 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->isNonAliasedSelectItemColumnReference() && !$si->isSelectItemAggregate()); + let standardExtensions = $standard->filter(si | !$si->isNonAliasedSelectItemColumnReference() && !$si->isSelectItemAggregate())->cast(@SingleColumn); let windowExtensions = extractWindowExtensionExpressions($windows); + let isAggregate = $groupBy->isNotEmpty() || anyColumnAggregate($originalSelect); + let isWindow = $windows->isNotEmpty(); + let columns = $context.columns.name; + let extensionNames = $standardExtensions->concatenate($windowExtensions)->map(s | $s->extractNameFromSingleColumn($context)); + + //we pull all columns used within the scope to then understand which ones we need to realias in extend. We only need to re-alias a column if + //1. it clashes with existing column + //2. we need to carry a column through the lambda to be used in a group/agg/order/having clause + let usedColumns = extractUsedColumnNames($groupBy->concatenate($orderBy)->concatenate($having) + ->concatenate($aggregates.expression)->concatenate($aggregates.expression)->concatenate($havingExtensions.expression) + )->filter(c | $columns->contains($c)); + + 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)); + pair($sc, if ($columns->contains($name) || $usedColumns->contains($name), | ^$sc(alias = $name + '_1'), | $sc)); ); + let extensions = $extensionPairs.second; + + let extendRequired = $extensions->isNotEmpty() && ($isAggregate || $isWindow || $havingExtensions->isNotEmpty()); + let selectItems = $originalSelect.selectItems->map(si | let extension = $extensionPairs->filter(e | $e.first == $si)->first(); - if ($extension.first == $extension.second, | $si, | $extension->toOne().second); + + if (!$extendRequired || $extension.first == $extension.second, + | $si, + | $extension->toOne().second); ); - let extensions = $extensionPairs.second; + let select = ^$originalSelect(selectItems = $selectItems); + 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 foundAlias = $context.alias($s->extractNamePartsFromSingleColumn([]), $s.alias, false); + let alias = if ($foundAlias->isEmpty(), | extractAliasFromColumn($s), | $foundAlias->toOne()); 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)) + pair($s, if ($si != $eis, | ^$alias(realias = $ealias.actual), | $alias));, + a:AllColumns[1] | + let contexts = if ($a.prefix->isEmpty(), | $context.contexts->concatenate($context), | $context.context($a.prefix)); + $contexts.aliases->map(a | pair(^SingleColumn(expression = ^QualifiedNameReference(name=^QualifiedName(parts = $a.expected))), $a)); ]); ); - let select = ^$originalSelect(selectItems = $selectItems); - - let isAggregate = $groupBy->isNotEmpty() || anyColumnAggregate($select); - let isWindow = $windows->isNotEmpty(); - - let project = if ($standard->isNotEmpty() && !($isAggregate || $isWindow || $havingExtensions->isNotEmpty()), - | processSelect(^$select(selectItems = $standard), true, $context), + let project = if ($selectItems->isNotEmpty() && !($isAggregate || $isWindow || $havingExtensions->isNotEmpty()), + | processSelect($select, true, $context), | $context.expression->toOne()); - let extend = if ($extensions->isNotEmpty() && ($isAggregate || $isWindow || $havingExtensions->isNotEmpty()), - | processExtend(^$select(selectItems = $extensions), ^$context(expression = $project)), + let extend = if ($extendRequired, + | processExtend($extensions, $usedColumns, ^$context(expression = $project)), | $project); let group = if ($isAggregate || $havingExtensions->isNotEmpty(), @@ -380,9 +403,29 @@ function <> meta::external::query::sql::transformation::queryToP | appendTdsFunc($olapGroupBy, distinct_TabularDataSet_1__TabularDataSet_1_, []), | $olapGroupBy); - pair(^$context(expression = $distinctExp, aliases = $aliases), $select); + let newContext = ^$context(expression = $distinctExp); + + let newColumns = $newContext.columns.name; + + //we now want to add the current schema to the context aliases, to do this we lookup to see whether an aliased column has been re-named throughout + //this projection code (eg in project) and update the alias accordingly + let newAliases = $aliases->map(pair | + let si = $pair.first; + let alias = $pair.second; + + let found = $newColumns->contains($alias.actual->toOne()); + + ^$alias( + name = if (!$found, | $si->extractNameFromSingleColumn([]), | $alias.name), + alias = if (!$found, | $si.alias, | $alias.alias), + realias = if (!$found, | [], | $alias.realias) + ); + ); + + pair(^$newContext(aliases = $newAliases), $select); } + function <> meta::external::query::sql::transformation::queryToPure::extractColumnNameFromExpression(expression:meta::external::query::sql::metamodel::Expression[1], selectItems: SelectItem[*], context: SqlTransformContext[1]):String[1] { $expression->match([ @@ -565,15 +608,13 @@ function <> meta::external::query::sql::transformation::queryToP $functionCall; } -function <> meta::external::query::sql::transformation::queryToPure::processExtend(select: Select[1], context: SqlTransformContext[1]):FunctionExpression[1] +function <> meta::external::query::sql::transformation::queryToPure::processExtend(items: SelectItem[*], columnsToRealias:String[*], context: SqlTransformContext[1]):FunctionExpression[1] { debug('processExtend', $context.debug); - let selectItems = $select.selectItems->processSelectItems($context, false); - - let columns = $context.columns.name; + let selectItems = $items->processSelectItems($context, false); let args = $selectItems->map(item | - let rename = $columns->contains($item.second); + let rename = $columnsToRealias->contains($item.second); let name = if ($rename, | $item.second + '_1', | $item.second); createCol($item.first, $name); ); @@ -584,7 +625,7 @@ function <> meta::external::query::sql::transformation::queryToP function meta::external::query::sql::transformation::queryToPure::createCol(lambda:LambdaFunction[1], name:String[1]):SimpleFunctionExpression[1] { let typeArguments = ^GenericType(rawType = TDSRow); - let genericType = ^GenericType(rawType = BasicColumnSpecification, typeArguments = $typeArguments); + let genericType = ^GenericType(rawType = BasicColumnSpecification, typeArguments = $typeArguments); sfe(col_Function_1__String_1__BasicColumnSpecification_1_, $genericType, $typeArguments, [iv($lambda), iv($name)]); } @@ -612,26 +653,12 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::isExpressionAggregate(e:meta::external::query::sql::metamodel::Expression[0..1], includeParameters:Boolean[1], includeWindow:Boolean[1]):Boolean[1] { - $e->match([ - a:ArithmeticExpression[1] | $a.left->isExpressionAggregate($includeParameters, $includeWindow) || $a.right->isExpressionAggregate($includeParameters, $includeWindow), - b:BetweenPredicate[1] | $b.min->isExpressionAggregate($includeParameters, $includeWindow) || $b.value->isExpressionAggregate($includeParameters, $includeWindow) || $b.max->isExpressionAggregate($includeParameters, $includeWindow), - c:Cast[1] | $c.expression->isExpressionAggregate($includeParameters, $includeWindow), - c:ComparisonExpression[1] | $c.left->isExpressionAggregate($includeParameters, $includeWindow) || $c.right->isExpressionAggregate($includeParameters, $includeWindow), - e:Extract[1] | $e.expression->isExpressionAggregate($includeParameters, $includeWindow), + walk($e, + t | $t->exists(v | $v), f:FunctionCall[1] | - let functionProcessor = functionProcessor($f.name); - $functionProcessor.isAggregate || ($includeWindow && $functionProcessor.isWindow) || ($includeParameters && $f.arguments->exists(a | $a->isExpressionAggregate($includeParameters, $includeWindow)));, - i:IsNotNullPredicate[1] | $i.value->isExpressionAggregate($includeParameters, $includeWindow), - i:IsNullPredicate[1] | $i.value->isExpressionAggregate($includeParameters, $includeWindow), - l:LogicalBinaryExpression[1] | $l.left->isExpressionAggregate($includeParameters, $includeWindow) || $l.right->isExpressionAggregate($includeParameters, $includeWindow), - n:NegativeExpression[1] | $n.value->isExpressionAggregate($includeParameters, $includeWindow), - 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.defaultValue->isExpressionAggregate($includeParameters, $includeWindow), - e:meta::external::query::sql::metamodel::Expression[0..1] | false - ]) + let functionProcessor = functionProcessor($f.name); + $functionProcessor.isAggregate || ($includeWindow && $functionProcessor.isWindow) || ($includeParameters && $f.arguments->exists(a | $a->isExpressionAggregate($includeParameters, $includeWindow))); + ) } function <> meta::external::query::sql::transformation::queryToPure::isSelectItemWindow(si: SelectItem[1]):Boolean[1] @@ -641,11 +668,13 @@ function <> meta::external::query::sql::transformation::queryToP && $si->cast(@SingleColumn).expression->cast(@FunctionCall).window->isNotEmpty() } +//we determins nonAliased as a column that either has no alias, or the alias is the same as the column name itself function <> meta::external::query::sql::transformation::queryToPure::isNonAliasedSelectItemColumnReference(si:SelectItem[1]):Boolean[1] { $si->match([ a:AllColumns[1] | true, - s:SingleColumn[1] | $s.expression->instanceOf(QualifiedNameReference) && $s.alias->isEmpty() + s:SingleColumn[1] | + ($s.expression->instanceOf(QualifiedNameReference) && $s.alias->isEmpty()) || ($s.expression->instanceOf(QualifiedNameReference) && $s.alias == $s.expression->extractNameFromExpression([])) ]) } @@ -877,7 +906,7 @@ function <> meta::external::query::sql::transformation::queryToP 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.FULL, meta::relational::metamodel::join::JoinType.FULL_OUTER) + pair(JoinType.FULL, meta::relational::metamodel::join::JoinType.FULL_OUTER) ]->getValue($joinType); } @@ -1387,16 +1416,19 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processExpression(expression: meta::external::query::sql::metamodel::Expression[1], expContext:SqlTransformExpressionContext[1], context: SqlTransformContext[1]):ValueSpecification[1] { - debug('processExpression', $context.debug); + + //we do not want to maintain type casting if we enter a function as it could cast any param incorrectly + let functionalContext = ^$expContext(type = []); + let exp = $expression->match([ a:ArithmeticExpression[1] | processArithmeticExpression($a, $expContext, $context), b:BetweenPredicate[1] | processBetweenPredicate($b, $expContext, $context), c:Cast[1] | processCast($c, $expContext, $context), c:ComparisonExpression[1] | processComparisonExpression($c, $expContext, $context), c:CurrentTime[1] | processCurrentTime($c, $expContext, $context), - e:Extract[1] | processExtract($e, $expContext, $context), - f:FunctionCall[1] | processFunctionCall($f, $expContext, $context), + e:Extract[1] | processExtract($e, $functionalContext, $context), + f:FunctionCall[1] | processFunctionCall($f, $functionalContext, $context), i:InListExpression[1] | processInListExpression($i, $expContext, $context), i:InPredicate[1] | processInPredicate($i, $expContext, $context), i:IsNullPredicate[1] | processIsNullPredicate($i, $expContext, $context), @@ -2057,6 +2089,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('date_trunc', Date, {args, fc, ctx | assertEquals(2, $args->size(), 'incorrect number of args for date_trunc'); let part = $args->at(0); + let value = $part->reactivate()->toOne()->cast(@String); let func = [ @@ -2075,19 +2108,33 @@ function meta::external::query::sql::transformation::queryToPure::functionProces //COLLECTION processor('coalesce', false, false, [], {args, fc, ctx | - let filteredArgs = $args->filter(a | $a->match([ - i:InstanceValue[1] | !($i.genericType.rawType == Nil && $i.values->isEmpty()), - v:ValueSpecification[1] | true - ])); - + let filteredArgs = getNonNullArguments($args); let type = $filteredArgs.genericType->first().rawType; sfe(meta::pure::tds::extensions::firstNotNull_T_MANY__T_$0_1$_, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $filteredArgs->iv()); }), + processor('greatest', false, false, [], {args, fc, ctx | + let filteredArgs = getNonNullArguments($args); + let type = $filteredArgs.genericType->first().rawType; + + let func = if ($filteredArgs->isEmpty(), | greatest_X_MANY__X_$0_1$_, | greatest_X_$1_MANY$__X_1_); + + sfe($func, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $filteredArgs->iv()); + }), + + processor('least', false, false, [], {args, fc, ctx | + let filteredArgs = getNonNullArguments($args); + let type = $filteredArgs.genericType->first().rawType; + + let func = if ($filteredArgs->isEmpty(), | least_X_MANY__X_$0_1$_, | least_X_$1_MANY$__X_1_); + + sfe($func, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $filteredArgs->iv()); + }), + //FORMAT processor('to_char', String, {args, fc, ctx | - assertEquals(2, $args->size(), 'incorrect number of args for t-_char'); + assertEquals(2, $args->size(), 'incorrect number of args for to_char'); let arg = $args->at(0); let type = $arg.genericType.rawType; @@ -2114,6 +2161,14 @@ function meta::external::query::sql::transformation::queryToPure::functionProces ] } +function <> meta::external::query::sql::transformation::queryToPure::getNonNullArguments(args:ValueSpecification[*]):ValueSpecification[*] +{ + $args->filter(a | $a->match([ + i:InstanceValue[1] | !($i.genericType.rawType == Nil && $i.values->isEmpty()), + v:ValueSpecification[1] | true + ])); +} + function <> meta::external::query::sql::transformation::queryToPure::toCharFormats():Pair ValueSpecification[1]}>>[*] { [ @@ -2225,20 +2280,20 @@ function <> meta::external::query::sql::transformation::queryToP let prefixes = toCharPrefixes(); let suffixes = toCharSuffixes(); - if ($format->length() == 0, + if ($format->length() == 0, | if ($result->isEmpty(), | $arg, | $result->toOne()), - | - let prefix = $prefixes->fold({p, acc | + | + let prefix = $prefixes->fold({p, acc | if ($format->startsWith($p.first) && $p.second->eval(), | pair($format->substring($p.first->length(), $format->length()), $p.first), | $acc); }, pair($format, '')); - let scan = $formats->fold({token, acc | - if (!$acc.matched && $acc.format->startsWith($token.first), - | + let scan = $formats->fold({token, acc | + if (!$acc.matched && $acc.format->startsWith($token.first), + | let newFormat = $acc.format->substring($token.first->length(), $acc.format->length()); - let suffix = $suffixes->fold({s, acc | + let suffix = $suffixes->fold({s, acc | if ($newFormat->startsWith($s.first) && $s.second->eval(), | pair($newFormat->substring($s.first->length(), $newFormat->length()), $s.first), | $acc); }, pair($newFormat, '')); @@ -2248,7 +2303,7 @@ function <> meta::external::query::sql::transformation::queryToP | $acc); }, ^ToCharContext(format = $prefix.first, result = $result->evaluateAndDeactivate(), matched = false, prefix = if ($prefix.second != '', | $prefix.second, | []))); - if ($scan.matched, + if ($scan.matched, | toChar($scan.format, $scan.result->evaluateAndDeactivate(), $arg), | toChar($scan.format->substring(1, $scan.format->length()), toCharCombine($scan.result->evaluateAndDeactivate(), iv($scan.format->chunk(1)->at(0))), $arg)); ); @@ -2281,11 +2336,11 @@ function <> meta::external::query::sql::transformation::queryTo let f = nullOrSfe($func, $arg->evaluateAndDeactivate())->evaluateAndDeactivate(); let type = $func->functionReturnType().rawType->toOne(); - let str = if ($type != String, | nullOrSfe(toString_Any_1__String_1_, $f), | $f); + let str = if ($type != String, | nullOrSfe(toString_Any_1__String_1_, $f), | $f); - let cased = if ($upper, + let cased = if ($upper, | nullOrSfe(toUpper_String_1__String_1_, $str), - | if ($lower, + | if ($lower, | nullOrSfe(toLower_String_1__String_1_, $str), | $str)); @@ -2848,6 +2903,49 @@ function <> meta::external::query::sql::transformation::queryToP nullOrSfe($func, [$left, $right]); } +function <> meta::external::query::sql::transformation::queryToPure::walk(e:meta::external::query::sql::metamodel::Expression[0..1], accumulator:Function<{T[*]->T[m]}>[1], extras:Function<{Nil[1]->T[m]}>[1]):T[m] +{ + let result = $e->match($extras->concatenate([ + a:ArithmeticExpression[1] | walk($a.left, $a.right, $accumulator, $extras), + b:BetweenPredicate[1] | walk($b.min, $b.value, $b.max, $accumulator, $extras), + c:Cast[1] | walk($c.expression, $accumulator, $extras), + c:ComparisonExpression[1] | walk($c.left, $c.right, $accumulator, $extras), + e:Extract[1] | walk($e.expression, $accumulator, $extras), + f:FunctionCall[1] | + let w1 = walk($f.window.partitions, $f.window.orderBy.sortKey, $f.group.orderBy.sortKey, $accumulator, $extras); + let w2 = walk($f.arguments, $f.filter, $accumulator, $extras); + $w1->concatenate($w2);, + i:InListExpression[1] | walk($i.values, $accumulator, $extras), + i:IsNotNullPredicate[1] | walk($i.value, $accumulator, $extras), + i:IsNullPredicate[1] | walk($i.value, $accumulator, $extras), + l:LikePredicate[1] | walk($l.value, $l.pattern, $l.escape, $accumulator, $extras), + l:LogicalBinaryExpression[1] | walk($l.left, $l.right, $accumulator, $extras), + n:NegativeExpression[1] | walk($n.value, $accumulator, $extras), + n:NotExpression[1] | walk($n.value, $accumulator, $extras), + s:SimpleCaseExpression[1] | $s->convertToSearchedCaseExpression()->walk($accumulator, $extras), + s:SearchedCaseExpression[1] | $s.whenClauses->map(w | walk($w.operand, $w.result, $accumulator, $extras))->concatenate(walk($s.defaultValue, $accumulator, $extras)), + e:meta::external::query::sql::metamodel::Expression[0..1] | [] + ])->toOneMany()); + + $accumulator->eval($result); +} + +function <> meta::external::query::sql::transformation::queryToPure::walk(e1:meta::external::query::sql::metamodel::Expression[*], e2:meta::external::query::sql::metamodel::Expression[*], accumulator:Function<{T[*]->T[m]}>[1], extras:Function<{Nil[1]->T[m]}>[1]):T[*] +{ + walk($e1, $e2, [], $accumulator, $extras); +} + + +function <> meta::external::query::sql::transformation::queryToPure::walk(e1:meta::external::query::sql::metamodel::Expression[*], e2:meta::external::query::sql::metamodel::Expression[*], e3:meta::external::query::sql::metamodel::Expression[*], accumulator:Function<{T[*]->T[m]}>[1], extras:Function<{Nil[1]->T[m]}>[1]):T[*] +{ + walk($e1->concatenate($e2)->concatenate($e3), $accumulator, $extras); +} + +function <> meta::external::query::sql::transformation::queryToPure::walk(expressions:meta::external::query::sql::metamodel::Expression[*], accumulator:Function<{T[*]->T[m]}>[1], extras:Function<{Nil[1]->T[m]}>[1]):T[*] +{ + $expressions->map(e | $e->walk($accumulator, $extras)); +} + function meta::external::query::sql::transformation::queryToPure::appendTdsFunc(lambda:LambdaFunction[1], execFunc: meta::pure::metamodel::function::Function[1], args: List[*]): LambdaFunction[1] { @@ -2983,7 +3081,7 @@ function <> meta::external::query::sql::transformation::queryToP ^Multiplicity(lowerBound = $mv, upperBound = $mv); ]); - + ^InstanceValue(multiplicity = $multiplicity, genericType = $genericType, values = $value); } 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 926356cd1e2..cd8787fe0e7 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 @@ -77,7 +77,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: pair('Integer', 'Integer_table2'), pair('String', 'String_table2') ]), meta::relational::metamodel::join::JoinType.LEFT_OUTER, {row1:TDSRow[1], row2:TDSRow[1] | $row1.getInteger('Integer_table1') == $row2.getInteger('Integer_table2')} - )->renameColumns([ + ) + ->restrict(['Boolean_table1', 'Integer_table1', 'Float_table1', 'Decimal_table1', 'StrictDate_table1', 'DateTime_table1', 'String_table1']) + ->renameColumns([ pair('Boolean_table1', 'Boolean'), pair('Integer_table1', 'Integer'), pair('Float_table1', 'Float'), @@ -85,7 +87,7 @@ function <> meta::external::query::sql::transformation::queryToPure:: pair('StrictDate_table1', 'StrictDate'), pair('DateTime_table1', 'DateTime'), pair('String_table1', 'String') - ])->restrict(['Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String']) + ]) } ) } @@ -234,16 +236,11 @@ function <> meta::external::query::sql::transformation::queryToPure:: [ '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') + col(row:TDSRow[1] | $row.getString('String'), 'col2') ])->groupBy( - ['StrictDate_1', 'String_1', 'col1', 'col2'], + ['StrictDate', 'String', 'col1', 'col2'], agg('sum', row | $row.getInteger('Integer'), y | $y->sum()) - )->renameColumns([ - pair('StrictDate_1', 'StrictDate'), - pair('String_1', 'String') - ])->restrict([ + )->restrict([ 'col1', 'col2', 'StrictDate', 'String', 'sum' ]) }, false @@ -480,23 +477,42 @@ function <> meta::external::query::sql::transformation::queryToPure:: }) } -function <> meta::external::query::sql::transformation::queryToPure::tests::testOrderByWithExtendAlias():Boolean[1] +function <> meta::external::query::sql::transformation::queryToPure::tests::testOrderByColumnRealiasWithGroupBy():Boolean[1] { - test( + 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', + 'SELECT Calc AS Calc, Calc AS Calc2 FROM (select 1 AS Calc from service."/service/service1") GROUP BY 1 ORDER BY Calc, 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']) + ->restrict(['Calc', 'Calc2']) ->distinct() - ->sort([asc('Calc_1'), asc('Calc2')]) - ->renameColumns(pair('Calc_1', 'Calc')) + ->sort([asc('Calc'), asc('Calc2')]) + }) +} + +function <> meta::external::query::sql::transformation::queryToPure::tests::testOrderByColumnRealiasWithNoGroupBy():Boolean[1] +{ + test([ + 'SELECT Calc AS Calc, Calc AS Calc2 FROM (select 1 AS Calc from service."/service/service1") ORDER BY 1, Calc2 ASC', + 'SELECT Calc AS Calc, Calc AS Calc2 FROM (select 1 AS Calc from service."/service/service1") ORDER BY Calc, 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')) + ->project([ + col(row:TDSRow[1] | $row.getInteger('Calc'), 'Calc'), + col(row:TDSRow[1] | $row.getInteger('Calc'), 'Calc2') + ]) + ->sort([asc('Calc'), asc('Calc2')]) }) } @@ -605,13 +621,16 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testComparisonOperatorsDate():Boolean[1] { test( - 'SELECT * FROM service."/service/service1" WHERE StrictDate > TIMESTAMP \'2023-01-01\' OR StrictDate < CURRENT_DATE OR StrictDate >= TIMESTAMP \'2023-01-02\' OR StrictDate <= CURRENT_DATE OR StrictDate > \'2023-01-03\'', + 'SELECT * FROM service."/service/service1" WHERE StrictDate > TIMESTAMP \'2023-01-01\' OR StrictDate < CURRENT_DATE OR StrictDate >= TIMESTAMP \'2023-01-02\' ' + + 'OR StrictDate <= CURRENT_DATE OR StrictDate > \'2023-01-03\' OR StrictDate > date_trunc(\'month\', StrictDate)', {| 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' ]) ->filter(row | ($row.getStrictDate('StrictDate') > parseDate('2023-01-01')) || ($row.getStrictDate('StrictDate') < today()) - || ($row.getStrictDate('StrictDate') >= parseDate('2023-01-02')) || ($row.getStrictDate('StrictDate') <= today()) || ($row.getStrictDate('StrictDate') > parseDate('2023-01-03'))) + || ($row.getStrictDate('StrictDate') >= parseDate('2023-01-02')) || ($row.getStrictDate('StrictDate') <= today()) + || ($row.getStrictDate('StrictDate') > parseDate('2023-01-03')) + || ($row.getStrictDate('StrictDate') > firstDayOfMonth($row.getStrictDate('StrictDate')))) }, false) } @@ -726,7 +745,7 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testGroupByWithAlias():Boolean[1] { test( - 'SELECT String, sum(Integer) AS "sum", Boolean AS "bool" FROM service."/service/service1" GROUP BY String, "bool"', + 'SELECT String, sum(Integer) AS "sum", Boolean AS "bool" FROM service."/service/service1" GROUP BY String, bool', {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], @@ -846,11 +865,11 @@ function <> meta::external::query::sql::transformation::queryToPure:: agg('Count', row | $row.getInteger('Integer'), y | $y->count()), agg('Float Count', row | $row.getFloat('Float'), y | $y->count()) ]) + ->restrict(['Count', 'Float Count', 'String_1', 'Float_1', 'Original Float']) ->renameColumns([ pair('String_1', 'String'), pair('Float_1', 'Float') ]) - ->restrict(['Count', 'Float Count', 'String', 'Float', 'Original Float']) }, false ) } @@ -929,6 +948,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: 'str' ], agg('COUNT(1)', row | 1, y | $y->count())) ->filter(row | $row.getInteger('COUNT(1)') > 0) + ->restrict([ + 'Boolean_table1', 'Integer_table1', 'Float_table1', 'Decimal_table1', 'StrictDate_table1', 'DateTime_table1', 'String_table1', 'str' + ]) ->renameColumns([ pair('Boolean_table1', 'Boolean'), pair('Integer_table1', 'Integer'), @@ -938,7 +960,6 @@ function <> meta::external::query::sql::transformation::queryToPure:: pair('DateTime_table1', 'DateTime'), pair('String_table1', 'String') ]) - ->restrict(['Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String', 'str']) }, false) } @@ -1324,11 +1345,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' ]) - ->extend([ - col(row:TDSRow[1]|$row.getString('String'), 'String_1') - ]) - ->restrict('String_1')->distinct() - ->renameColumns(pair('String_1', 'String')) + ->restrict('String')->distinct() ->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 ], @@ -1904,7 +1921,11 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testCollectionFunctions():Boolean[1] { test( - 'SELECT coalesce(NULL, Integer, 1) AS "COALESCE" FROM service."/service/service1"', + 'SELECT ' + + 'coalesce(NULL, Integer, 1) AS "COALESCE", ' + + 'greatest(NULL, Integer, 1) AS "GREATEST", ' + + 'least(NULL, Integer, 1) AS "LEAST" ' + + 'FROM service."/service/service1"', {| FlatInput.all() @@ -1912,7 +1933,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: [ 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] | meta::pure::tds::extensions::firstNotNull([$row.getInteger('Integer'), 1]), 'COALESCE') + col(row:TDSRow[1] | meta::pure::tds::extensions::firstNotNull([$row.getInteger('Integer'), 1]), 'COALESCE'), + col(row:TDSRow[1] | greatest([$row.getInteger('Integer'), 1]), 'GREATEST'), + col(row:TDSRow[1] | least([$row.getInteger('Integer'), 1]), 'LEAST') ]) }) } @@ -2374,7 +2397,7 @@ function meta::external::query::sql::transformation::queryToPure::tests::test(sq { $sqls->forAll(sql | let sqlTransformContext = $sql->processQuery($sources, $scopeWithFrom); - let actual = $sqlTransformContext.lambda(); + let actual = $sqlTransformContext.lambda(); if ($assertLambda, | assertLambdaEquals($expected, $actual), | true); if ($assertJSON, | assertLambdaJSONEquals($expected, $actual), | true); From 9feef9fcb27472d69c7127f200c117f616303ae9 Mon Sep 17 00:00:00 2001 From: tanujgirdhar <113665660+tanujgirdhar@users.noreply.github.com> Date: Fri, 24 Nov 2023 18:44:28 +0530 Subject: [PATCH 09/54] Semi structured flatten - Unit testing support (#2475) * add udf for flattening in H2 * Update h2Extension1_4_200.pure --------- Co-authored-by: Sai Sriharsha Annepu <72639930+gs-ssh16@users.noreply.github.com> --- ...TestSnowflakeSemiStructuredFlattening.java | 16 + .../stores/relational/LegendH2Extensions.java | 166 ++++++- .../DefaultH2AuthenticationStrategy.java | 2 + .../TestExplodeSemiStructured.java | 246 ++++++++++ .../TestSemiStructuredFlattening.java | 245 ++++++++++ .../explodeSemiStructuredMapping.pure | 458 ++++++++++++++++++ .../semiStructuredFlattening.pure | 298 ++++++++++++ .../LegendH2Extensions_1_4_200.java | 163 +++++++ .../pureToSQLQuery/pureToSQLQuery.pure | 18 + .../dbSpecific/h2/h2Extension1_4_200.pure | 92 +++- .../dbSpecific/h2/h2Extension2_1_214.pure | 102 +++- 11 files changed, 1782 insertions(+), 24 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/test/semiStructured/TestExplodeSemiStructured.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/test/semiStructured/TestSemiStructuredFlattening.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/explodeSemiStructuredMapping.pure 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/semiStructuredFlattening.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/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredFlattening.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/TestSnowflakeSemiStructuredFlattening.java index 8a6a9d8b514..dbbf7b2594d 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/TestSnowflakeSemiStructuredFlattening.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/TestSnowflakeSemiStructuredFlattening.java @@ -198,6 +198,22 @@ public void testSemiStructuredSubAggregationDeep() Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); } + @Test + public void testSemiStructuredMultiLevelFlatten() + { + String snowflakePlan = this.buildExecutionPlanString("flatten::semiStructuredMultiLevelFlattening__TabularDataSet_1_", snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = + " Relational\n" + + " (\n" + + " type = TDS[(First Name, String, VARCHAR(100), \"\"), (Firm Name, String, \"\", \"\"), (Firm Address Name Line No, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"First Name\", VARCHAR(100)), (\"Firm Name\", \"\"), (\"Firm Address Name Line No\", \"\")]\n" + + " sql = select \"root\".FIRSTNAME as \"First Name\", \"root\".FIRM_DETAILS['legalName']::varchar as \"Firm Name\", \"ss_flatten_1\".value['lineno'] as \"Firm Address Name Line No\" from PERSON_SCHEMA.PERSON_TABLE as \"root\" inner join lateral flatten(input => \"root\".FIRM_DETAILS['addresses'], outer => true, recursive => false, mode => 'array') as \"ss_flatten_0\" inner join lateral flatten(input => \"ss_flatten_0\".value['lines'], outer => true, recursive => false, mode => 'array') as \"ss_flatten_1\"\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n"; + String TDSType = " type = TDS[(First Name, String, VARCHAR(100), \"\"), (Firm Name, String, \"\", \"\"), (Firm Address Name Line No, Integer, \"\", \"\")]\n"; + Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); + } + @Test public void testSemiStructuredMultiFlatten() { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions.java index ec98e7b74b5..c0d03b3ea44 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions.java @@ -19,7 +19,9 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.h2.tools.SimpleResultSet; import org.h2.value.Value; +import org.h2.value.ValueArray; import org.h2.value.ValueBigint; import org.h2.value.ValueBoolean; import org.h2.value.ValueDouble; @@ -28,9 +30,15 @@ import org.h2.value.ValueReal; import org.h2.value.ValueVarchar; +import java.math.BigDecimal; import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Types; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -132,12 +140,12 @@ public static String legend_h2_extension_reverse_string(String string) public static String legend_h2_extension_split_part(String string, String token, Integer part) { - if (part < 1) + if (part < 1) { throw new IllegalArgumentException("Split part must be greater than zero"); } - if (string == null) + if (string == null) { return null; } @@ -147,4 +155,158 @@ public static String legend_h2_extension_split_part(String string, String token, return parts.length > readjustedPart ? parts[readjustedPart] : null; } + + private static HashSet extractProperty(HashSet resultSet, Object pathToExtract) + { + HashSet res = new HashSet<>(); + if (pathToExtract instanceof String) + { + String property = (String) pathToExtract; + if (property.equals("*")) + { + for (Object r: resultSet) + { + if (!(r instanceof Iterable)) + { + continue; + } + for (Object o : (Iterable) r) + { + res.add(o); + } + } + } + else + { + for (Object r: resultSet) + { + try + { + Object o = ((HashMap)(r)).get(property); + if (o != null) + { + res.add(o); + } + } + catch (Exception e) + { + e.printStackTrace(); // don't stop execution + } + } + } + } + else + { + int index = (int) pathToExtract; + for (Object r: resultSet) + { + try + { + res.add(((ArrayList)(r)).get(index)); + } + catch (Exception e) + { + e.printStackTrace(); + } + + } + } + return res; + } + + public static ResultSet legend_h2_extension_flatten_array(Connection conn, String tableName, String toFlattenColumnName, ValueArray jsonPaths) + { + try + { + String sql = String.format("select distinct %s as flat from %s", toFlattenColumnName, tableName); + ResultSet resultSet = conn.createStatement().executeQuery(sql); + HashSet toFlatten = new HashSet<>(); + while (resultSet.next()) + { + String json = resultSet.getString("flat"); + toFlatten.add(OBJECT_MAPPER.readValue(json, HashMap.class)); + } + + ArrayList pathsToExtract = OBJECT_MAPPER.readValue(jsonPaths.getString(), ArrayList.class); + + for (Object path: pathsToExtract) + { + toFlatten = extractProperty(toFlatten, path); + } + + SimpleResultSet flattenedResultSet = new SimpleResultSet(); + + flattenedResultSet.addColumn("__INPUT__", Types.VARCHAR, 1000, 0); // using the original array as joinKey + + // use first non-null object to infer the type of value + boolean resolvedFlattenedType = false; + + for (Object o: toFlatten) + { + if (!(o instanceof Iterable)) + { + continue; + } + for (Object value : (Iterable) o) + { + if (value instanceof Map || value instanceof List || value instanceof String) + { + flattenedResultSet.addColumn("VALUE", Types.VARCHAR, 1000, 0); + } + else if (value instanceof Boolean) + { + flattenedResultSet.addColumn("VALUE", Types.BOOLEAN, 0, 0); + } + else if (value instanceof Double || value instanceof Float || value instanceof BigDecimal) + { + flattenedResultSet.addColumn("VALUE", Types.DOUBLE, 20, 20); + } + else if (value instanceof Integer || value instanceof Long) + { + flattenedResultSet.addColumn("VALUE", Types.BIGINT, 0, 0); + } + else + { + throw new RuntimeException("unsupported data type in h2 extension"); + } + resolvedFlattenedType = true; + break; + } + if (resolvedFlattenedType) + { + break; + } + } + + if (!resolvedFlattenedType) + { + flattenedResultSet.addColumn("VALUE", Types.VARCHAR, 1000, 0); + return flattenedResultSet; + } + + for (Object o: toFlatten) + { + if (!(o instanceof Iterable)) + { + continue; + } + for (Object value : (Iterable) o) + { + if (value instanceof Map || value instanceof List) + { + flattenedResultSet.addRow(Arrays.asList(OBJECT_MAPPER.writeValueAsString(o), OBJECT_MAPPER.writeValueAsString(value)).toArray()); + } + else + { + flattenedResultSet.addRow(Arrays.asList(OBJECT_MAPPER.writeValueAsString(o), value).toArray()); + } + } + } + return flattenedResultSet; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/authentication/strategy/DefaultH2AuthenticationStrategy.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/authentication/strategy/DefaultH2AuthenticationStrategy.java index f63987ef7bd..8e919a9f625 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/authentication/strategy/DefaultH2AuthenticationStrategy.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/authentication/strategy/DefaultH2AuthenticationStrategy.java @@ -107,6 +107,7 @@ private static List getLegendH2ExtensionSQLs() "CREATE ALIAS IF NOT EXISTS legend_h2_extension_base64_decode FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions.legend_h2_extension_base64_decode\";", "CREATE ALIAS IF NOT EXISTS legend_h2_extension_base64_encode FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions.legend_h2_extension_base64_encode\";", "CREATE ALIAS IF NOT EXISTS legend_h2_extension_reverse_string FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions.legend_h2_extension_reverse_string\";", + "CREATE ALIAS IF NOT EXISTS legend_h2_extension_flatten_array FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions.legend_h2_extension_flatten_array\";", "CREATE ALIAS IF NOT EXISTS legend_h2_extension_split_part FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions.legend_h2_extension_split_part\";" ); } @@ -121,6 +122,7 @@ private static List getLegendH2_1_4_200_ExtensionSQLs() "CREATE ALIAS IF NOT EXISTS legend_h2_extension_reverse_string FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions_1_4_200.legend_h2_extension_reverse_string\";", "CREATE ALIAS IF NOT EXISTS legend_h2_extension_hash_md5 FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions_1_4_200.legend_h2_extension_hash_md5\";", "CREATE ALIAS IF NOT EXISTS legend_h2_extension_hash_sha1 FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions_1_4_200.legend_h2_extension_hash_sha1\";", + "CREATE ALIAS IF NOT EXISTS legend_h2_extension_flatten_array FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions_1_4_200.legend_h2_extension_flatten_array\";", "CREATE ALIAS IF NOT EXISTS legend_h2_extension_split_part FOR \"org.finos.legend.engine.plan.execution.stores.relational.LegendH2Extensions_1_4_200.legend_h2_extension_split_part\";" ); } 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/TestExplodeSemiStructured.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/TestExplodeSemiStructured.java new file mode 100644 index 00000000000..81835786adc --- /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/TestExplodeSemiStructured.java @@ -0,0 +1,246 @@ +// 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 TestExplodeSemiStructured extends AbstractTestSemiStructured +{ + private static final String h2Mapping = "simple::mapping::semistructured"; + private static final String h2Runtime = "simple::runtime::runtime"; + + @Test + public void testSimplePrimitivePropertiesProjectExplodeSource() + { + String queryFunction = "simple::query::getOrdersForBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,a1,o1,i1,100.0\n" + + "2,a1,o2,i2,10.0\n" + + "2,a1,o1,i1,100.0\n" + + "3,a2,o3,i3,100.0\n" + + "4,a2,o4,i1,100.0\n" + + "5,a1,o5,i4,50.0\n" + + "5,a1,o6,i4,50.0\n" + + "6,a3,,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSimplePrimitivePropertiesProjectExplodeTarget() + { + String queryFunction = "simple::query::getBlockForTrade__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("t1,accepted,1,a1\n" + + "t2,rejected,2,a1\n" + + "t3,accepted,3,a2\n" + + "t4,accepted,3,a2\n" + + "t5,accepted,4,a2\n" + + "t6,rejected,4,a2\n" + + "t7,accepted,5,a1\n" + + "t8,invalid,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testComplexProjectFlattenedAndExplodedPropertiesInProject() + { + String queryFunction = "simple::query::getOrdersAndRelatedEntitiesForBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,trade,t1,o1\n" + + "1,order,o1,o1\n" + + "2,trade,t2,o2\n" + + "2,trade,t2,o1\n" + + "2,order,o2,o2\n" + + "2,order,o2,o1\n" + + "2,order,o1,o2\n" + + "2,order,o1,o1\n" + + "3,trade,t3,o3\n" + + "3,trade,t4,o3\n" + + "3,order,o3,o3\n" + + "4,trade,t5,o4\n" + + "4,trade,t6,o4\n" + + "4,order,o4,o4\n" + + "5,trade,t7,o5\n" + + "5,trade,t7,o6\n" + + "5,order,o5,o5\n" + + "5,order,o5,o6\n" + + "5,order,o6,o5\n" + + "5,order,o6,o6\n" + + "6,,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testComplexProjectMultiplePropertiesToExplodeInProject() + { + String queryFunction = "simple::query::getTradesAndOrdersInBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,a1,o1,i1,t1,accepted\n" + + "2,a1,o2,i2,t2,rejected\n" + + "2,a1,o1,i1,t2,rejected\n" + + "3,a2,o3,i3,t3,accepted\n" + + "3,a2,o3,i3,t4,accepted\n" + + "4,a2,o4,i1,t5,accepted\n" + + "4,a2,o4,i1,t6,rejected\n" + + "5,a1,o5,i4,t7,accepted\n" + + "5,a1,o6,i4,t7,accepted\n" + + "6,a3,,,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSimplePrimitivePropertiesProjectWithFilterOnSource() + { + String queryFunction = "simple::query::getTradesForNonCancelledBlocks__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,a1,t1,accepted\n" + + "3,a2,t3,accepted\n" + + "3,a2,t4,accepted\n" + + "4,a2,t5,accepted\n" + + "4,a2,t6,rejected\n" + + "5,a1,t7,accepted\n" + + "6,a3,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSimplePrimitivePropertiesProjectWithFilterOnTarget() + { + String queryFunction = "simple::query::getNonCancelledBlocksForTrades__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("t1,accepted,1,a1\n" + + "t3,accepted,3,a2\n" + + "t4,accepted,3,a2\n" + + "t5,accepted,4,a2\n" + + "t6,rejected,4,a2\n" + + "t7,accepted,5,a1\n" + + "t8,invalid,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testProjectWithExplodedPropertyAccessOnlyInFilter() + { + String queryFunction = "simple::query::getNonCancelledBlocksForTradesNoProject__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("t1,accepted\n" + + "t3,accepted\n" + + "t4,accepted\n" + + "t5,accepted\n" + + "t6,rejected\n" + + "t7,accepted\n" + + "t8,invalid\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testFilterOnExplodedPropertyFilteringInsideProject() + { + String queryFunction = "simple::query::getBigBuyOrdersInBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,a1,,o1\n" + + "2,a1,o2,o2\n" + + "2,a1,o2,o1\n" + + "3,a2,o3,o3\n" + + "4,a2,,o4\n" + + "5,a1,,o5\n" + + "5,a1,,o6\n" + + "6,a3,,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testAggregationAggregateExplodedPropertyUsingGroupBy() + { + String queryFunction = "simple::query::getTradeVolumeInBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,a1,100\n" + + "2,a1,100\n" + + "3,a2,200\n" + + "4,a2,150\n" + + "5,a1,60\n" + + "6,a3,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testAggregationAggregateExplodedPropertyInsideProject() + { + String queryFunction = "simple::query::getTotalBuyOrderVolumeInBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("1,a1,\n" + + "2,a1,100\n" + + "3,a2,200\n" + + "4,a2,\n" + + "5,a1,\n" + + "6,a3,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSimpleJoinChainOneJoin() + { + String queryFunction = "simple::query::getAccountForOrders__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("o1,a1,1\n" + + "o1,a1,2\n" + + "o2,a1,2\n" + + "o3,a2,3\n" + + "o4,a2,4\n" + + "o5,a1,5\n" + + "o6,a1,5\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testJoinChainMultipleJoinsSingleExplode() + { + String queryFunction = "simple::query::getProductsForOrdersInBlock__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("p1,1\n" + + "p2,2\n" + + "p1,2\n" + + "p3,3\n" + + "p1,4\n" + + "p1,5\n" + + "p1,5\n" + + ",6\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testJoinChainMultipleJoinsMultipleExplode() + { + String queryFunction = "simple::query::getRelatedTradesForOrder__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("o1,t1\n" + + "o1,t2\n" + + "o2,t2\n" + + "o3,t3\n" + + "o3,t4\n" + + "o4,t5\n" + + "o4,t6\n" + + "o5,t7\n" + + "o6,t7\n", h2Result.replace("\r\n", "\n")); + } + + @Override + public String modelResourcePath() + { + return "/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/explodeSemiStructuredMapping.pure"; + } +} 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/TestSemiStructuredFlattening.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/TestSemiStructuredFlattening.java new file mode 100644 index 00000000000..3bd0f8f97bc --- /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/TestSemiStructuredFlattening.java @@ -0,0 +1,245 @@ +// 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.Ignore; +import org.junit.Test; + +public class TestSemiStructuredFlattening extends AbstractTestSemiStructured +{ + private static final String h2Mapping = "flatten::mapping::H2Mapping"; + private static final String h2Runtime = "flatten::runtime::H2Runtime"; + + @Test + public void testSemiStructuredPrimitivePropertyFlattening() + { + String queryFunction = "flatten::semiStructuredPrimitivePropertyFlattening__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,O1\n" + + "Peter,Firm X,O2\n" + + "John,Firm X,O1\n" + + "John,Firm X,O2\n" + + "John,Firm X,O1\n" + + "John,Firm X,O2\n" + + "Anthony,Firm X,O1\n" + + "Anthony,Firm X,O2\n" + + "Fabrice,Firm A,O3\n" + + "Fabrice,Firm A,O4\n" + + "Oliver,Firm B,O5\n" + + "Oliver,Firm B,O6\n" + + "David,Firm B,O5\n" + + "David,Firm B,O6\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredComplexPropertyFlattening() + { + String queryFunction = "flatten::semiStructuredComplexPropertyFlattening__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,A1\n" + + "Peter,Firm X,A11\n" + + "John,Firm X,A2\n" + + "John,Firm X,A22\n" + + "John,Firm X,A3\n" + + "John,Firm X,A32\n" + + "Anthony,Firm X,A4\n" + + "Fabrice,Firm A,A5\n" + + "Fabrice,Firm A,A52\n" + + "Oliver,Firm B,A6\n" + + "David,Firm B,A7\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredPrimitivePropertyArrayIndexing() + { + String queryFunction = "flatten::semiStructuredPrimitivePropertyArrayIndexing__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,O1,\n" + + "John,Firm X,O1,\n" + + "John,Firm X,O1,\n" + + "Anthony,Firm X,O1,\n" + + "Fabrice,Firm A,O3,\n" + + "Oliver,Firm B,O5,\n" + + "David,Firm B,O5,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredComplexPropertyArrayIndexing() + { + String queryFunction = "flatten::semiStructuredComplexPropertyArrayIndexing__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,A1,\n" + + "John,Firm X,A2,\n" + + "John,Firm X,A3,\n" + + "Anthony,Firm X,A4,\n" + + "Fabrice,Firm A,A5,\n" + + "Oliver,Firm B,A6,\n" + + "David,Firm B,A7,\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredComplexPropertyFlatteningFollowedBySubType() + { + String queryFunction = "flatten::semiStructuredComplexPropertyFlatteningFollowedBySubType__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,1\n" + + "Peter,Firm X,1\n" + + "John,Firm X,1\n" + + "John,Firm X,1\n" + + "John,Firm X,1\n" + + "John,Firm X,1\n" + + "Anthony,Firm X,1\n" + + "Fabrice,Firm A,1\n" + + "Fabrice,Firm A,1\n" + + "Oliver,Firm B,1\n" + + "David,Firm B,1\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredComplexPropertyArrayIndexingFollowedBySubType() + { + String queryFunction = "flatten::semiStructuredComplexPropertyArrayIndexingFollowedBySubType__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,1\n" + + "John,Firm X,1\n" + + "John,Firm X,1\n" + + "Anthony,Firm X,1\n" + + "Fabrice,Firm A,1\n" + + "Oliver,Firm B,1\n" + + "David,Firm B,1\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredPrimitivePropertyFiltering() + { + String queryFunction = "flatten::semiStructuredPrimitivePropertyFiltering__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("", h2Result.replace("\r\n", "\n")); + } + + @Test + @Ignore + public void testSemiStructuredPrimitivePropertyFilteringInProject() + { + String queryFunction = "flatten::semiStructuredPrimitivePropertyFilteringInProject__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredSubAggregation() + { + String queryFunction = "flatten::semiStructuredSubAggregation__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,A1;A11\n" + + "John,Firm X,A2;A22\n" + + "John,Firm X,A3;A32\n" + + "Anthony,Firm X,A4\n" + + "Fabrice,Firm A,A5;A52\n" + + "Oliver,Firm B,A6\n" + + "David,Firm B,A7\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredSubAggregationDeep() + { + String queryFunction = "flatten::semiStructuredSubAggregationDeep__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,6\n" + + "John,Firm X,6\n" + + "John,Firm X,6\n" + + "Anthony,Firm X,3\n" + + "Fabrice,Firm A,6\n" + + "Oliver,Firm B,3\n" + + "David,Firm B,3\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredMultiLevelFlatten() + { + String queryFunction = "flatten::semiStructuredMultiLevelFlattening__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,Firm X,1\n" + + "Peter,Firm X,2\n" + + "Peter,Firm X,1\n" + + "Peter,Firm X,2\n" + + "John,Firm X,1\n" + + "John,Firm X,2\n" + + "John,Firm X,1\n" + + "John,Firm X,2\n" + + "John,Firm X,1\n" + + "John,Firm X,2\n" + + "John,Firm X,1\n" + + "John,Firm X,2\n" + + "Anthony,Firm X,1\n" + + "Anthony,Firm X,2\n" + + "Fabrice,Firm A,1\n" + + "Fabrice,Firm A,2\n" + + "Fabrice,Firm A,1\n" + + "Fabrice,Firm A,2\n" + + "Oliver,Firm B,1\n" + + "Oliver,Firm B,2\n" + + "David,Firm B,1\n" + + "David,Firm B,2\n", h2Result.replace("\r\n", "\n")); + } + + @Test + public void testSemiStructuredMultiFlatten() + { + String queryFunction = "flatten::semiStructuredMultiFlatten__TabularDataSet_1_"; + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("Peter,A1,1,O1\n" + + "Peter,A1,1,O2\n" + + "Peter,A11,1,O1\n" + + "Peter,A11,1,O2\n" + + "John,A2,1,O1\n" + + "John,A2,1,O2\n" + + "John,A22,1,O1\n" + + "John,A22,1,O2\n" + + "John,A3,1,O1\n" + + "John,A3,1,O2\n" + + "John,A32,1,O1\n" + + "John,A32,1,O2\n" + + "Anthony,A4,1,O1\n" + + "Anthony,A4,1,O2\n" + + "Fabrice,A5,1,O3\n" + + "Fabrice,A5,1,O4\n" + + "Fabrice,A52,1,O3\n" + + "Fabrice,A52,1,O4\n" + + "Oliver,A6,1,O5\n" + + "Oliver,A6,1,O6\n" + + "David,A7,1,O5\n" + + "David,A7,1,O6\n", h2Result.replace("\r\n", "\n")); + } + + @Override + public String modelResourcePath() + { + return "/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredFlattening.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/explodeSemiStructuredMapping.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/explodeSemiStructuredMapping.pure new file mode 100644 index 00000000000..466845de85c --- /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/explodeSemiStructuredMapping.pure @@ -0,0 +1,458 @@ +// 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 simple::model::order +{ + id: String[1]; + identifier: String[1]; + quantity: Integer[1]; + side: String[1]; + price: Float[1]; + account: String[1]; + tradeId: String[1]; + product: simple::model::Product[1]; + block: simple::model::block[1]; +} + +Class simple::model::trade +{ + id: String[1]; + tradeSummary: simple::model::tradeSummary[1]; + status: String[1]; + block: simple::model::block[1]; +} + +Class simple::model::tradeSummary +{ + identifier: String[1]; + execQuantity: Integer[1]; + price: String[1]; + side: String[1]; + orderId: String[1]; +} + +Class simple::model::block +{ + id: String[1]; + account: String[1]; + blockData: simple::model::blockData[1]; + trades: simple::model::trade[*]; + orders: simple::model::order[*]; + products: String[*]; +} + +Class simple::model::relatedEntity +{ + tag: String[1]; + tagId: String[1]; +} + +Class simple::model::blockData +{ + relatedEntities: simple::model::relatedEntity[1..*]; + status: String[1]; +} + +Class simple::model::Product +{ + product: String[1]; + identifier: String[1]; + version: String[1]; +} + +###ExternalFormat +Binding simple::binding::binding +{ + contentType: 'application/json'; + modelIncludes: [ + simple::model::tradeSummary, + simple::model::relatedEntity, + simple::model::blockData + ]; +} + +###Relational +Database simple::store::semistructured +( + Schema Semistructured + ( + Table Blocks + ( + ID varchar(100) PRIMARY KEY, + ACCOUNT varchar(100), + BLOCKDATA SEMISTRUCTURED + ) + Table Trades + ( + ID varchar(100) PRIMARY KEY, + STATUS varchar(100), + TRADESUMMARY SEMISTRUCTURED + ) + Table Orders + ( + ID varchar(100) PRIMARY KEY, + IDENTIFIER varchar(100), + QUANTITY INTEGER, + SIDE varchar(100), + PRICE DOUBLE + ) + Table Product + ( + IDENTIFIER varchar(100) PRIMARY KEY, + VERSION varchar(100) PRIMARY KEY, + PRODUCT varchar(100) + ) + ) + + Join Block_Order(extractFromSemiStructured(explodeSemiStructured(Semistructured.Blocks.BLOCKDATA, 'relatedEntities', 'SEMISTRUCTURED'), 'tag', 'VARCHAR') = 'order' + and extractFromSemiStructured(explodeSemiStructured(Semistructured.Blocks.BLOCKDATA, 'relatedEntities', 'SEMISTRUCTURED'), 'tagId', 'VARCHAR') = Semistructured.Orders.ID) + Join Block_Trade(extractFromSemiStructured(explodeSemiStructured(Semistructured.Blocks.BLOCKDATA, 'relatedEntities', 'SEMISTRUCTURED'), 'tag', 'VARCHAR') = 'trade' + and extractFromSemiStructured(explodeSemiStructured(Semistructured.Blocks.BLOCKDATA, 'relatedEntities', 'SEMISTRUCTURED'), 'tagId', 'VARCHAR') = Semistructured.Trades.ID) + Join Order_Product(Semistructured.Orders.IDENTIFIER = Semistructured.Product.IDENTIFIER) +) + +###Mapping +Mapping simple::mapping::semistructured +( + *simple::model::block: Relational + { + ~primaryKey + ( + [simple::store::semistructured]Semistructured.Blocks.ID + ) + ~mainTable [simple::store::semistructured]Semistructured.Blocks + id: [simple::store::semistructured]Semistructured.Blocks.ID, + account: [simple::store::semistructured]Semistructured.Blocks.ACCOUNT, + trades[simple_model_trade]: [simple::store::semistructured]@Block_Trade, + orders[simple_model_order]: [simple::store::semistructured]@Block_Order, + products: [simple::store::semistructured]@Block_Order > [simple::store::semistructured]@Order_Product | [simple::store::semistructured]Semistructured.Product.PRODUCT, + blockData: Binding simple::binding::binding : [simple::store::semistructured]Semistructured.Blocks.BLOCKDATA + } + *simple::model::order: Relational + { + ~primaryKey + ( + [simple::store::semistructured]Semistructured.Orders.ID + ) + ~mainTable [simple::store::semistructured]Semistructured.Orders + id: [simple::store::semistructured]Semistructured.Orders.ID, + quantity: [simple::store::semistructured]Semistructured.Orders.QUANTITY, + side: [simple::store::semistructured]Semistructured.Orders.SIDE, + price: [simple::store::semistructured]Semistructured.Orders.PRICE, + block[simple_model_block]: [simple::store::semistructured]@Block_Order, + account: [simple::store::semistructured]@Block_Order | [simple::store::semistructured]Semistructured.Blocks.ACCOUNT, + tradeId: [simple::store::semistructured]@Block_Order > [simple::store::semistructured]@Block_Trade | [simple::store::semistructured]Semistructured.Trades.ID, + identifier: [simple::store::semistructured]Semistructured.Orders.IDENTIFIER, + product: [simple::store::semistructured]@Order_Product + } + *simple::model::trade: Relational + { + ~primaryKey + ( + [simple::store::semistructured]Semistructured.Trades.ID + ) + ~mainTable [simple::store::semistructured]Semistructured.Trades + id: [simple::store::semistructured]Semistructured.Trades.ID, + status: [simple::store::semistructured]Semistructured.Trades.STATUS, + block[simple_model_block]: [simple::store::semistructured]@Block_Trade, + tradeSummary: Binding simple::binding::binding : [simple::store::semistructured]Semistructured.Trades.TRADESUMMARY + } + *simple::model::Product: Relational + { + ~primaryKey + ( + [simple::store::semistructured]Semistructured.Product.IDENTIFIER + ) + ~mainTable [simple::store::semistructured]Semistructured.Product + identifier: [simple::store::semistructured]Semistructured.Product.IDENTIFIER, + version: [simple::store::semistructured]Semistructured.Product.VERSION, + product: [simple::store::semistructured]Semistructured.Product.PRODUCT + } +) + +###Connection +RelationalDatabaseConnection simple::connection::snowflake +{ + store: simple::store::semistructured; + type: H2; + specification: LocalH2 + { + testDataSetupSqls: + [ + 'drop schema if exists semistructured cascade;', + 'create schema semistructured;', + 'create table if not exists semistructured.blocks ( id int primary key, account varchar(100), blockData varchar(1000) ) as values (1, \'a1\', \'{"status": "fulfilled", "relatedEntities": [{"tag": "trade", "tagId": "t1"}, {"tag": "order", "tagId": "o1"}]}\'), (2, \'a1\', \'{"status": "cancelled", "relatedEntities": [{"tag": "trade", "tagId": "t2"}, {"tag": "order", "tagId": "o2"}, {"tag": "order", "tagId": "o1"}]}\'), (3, \'a2\', \'{"status": "fulfilled", "relatedEntities": [{"tag": "trade", "tagId": "t3"}, {"tag": "trade", "tagId": "t4"}, {"tag": "order", "tagId": "o3"}]}\'), (4, \'a2\', \'{"status": "accepted", "relatedEntities": [{"tag": "trade", "tagId": "t5"}, {"tag": "trade", "tagId": "t6"}, {"tag": "order", "tagId": "o4"}]}\'), (5, \'a1\', \'{"status": "fulfilled", "relatedEntities": [{"tag": "trade", "tagId": "t7"}, {"tag": "order", "tagId": "o5"}, {"tag": "order", "tagId": "o6"}]}\'), (6, \'a3\', \'{"status": "rejected", "relatedEntities": []}\');', + 'create table if not exists semistructured.trades ( id varchar(100) primary key, status varchar(100), tradeSummary varchar(1000) ) as values (\'t1\', \'accepted\', \'{"identifier": "i1", "execQuantity": 100, "execPrice": 100, "side": "SELL"}\'), (\'t2\', \'rejected\', \'{"identifier": "i2", "execQuantity": 100, "execPrice": 10, "side": "BUY"}\'), (\'t3\', \'accepted\', \'{"identifier": "i3", "execQuantity": 100, "execPrice": 100, "side": "BUY"}\'), (\'t4\', \'accepted\', \'{"identifier": "i3", "execQuantity": 100, "execPrice": 105, "side": "BUY"}\'), (\'t5\', \'accepted\', \'{"identifier": "i1", "execQuantity": 70, "execPrice": 100, "side": "SELL"}\'), (\'t6\', \'rejected\', \'{"identifier": "i1", "execQuantity": 80, "execPrice": 90, "side": "SELL"}\'), (\'t7\', \'accepted\', \'{"identifier": "i4", "execQuantity": 60, "execPrice": 50, "side": "SELL"}\'), (\'t8\', \'invalid\', \'{"identifier": "i4", "execQuantity": 60, "execPrice": 50, "side": "SELL"}\');', + 'create table if not exists semistructured.orders ( id varchar(100) primary key, identifier varchar(100), quantity int, side varchar(10), price double ) as values (\'o1\', \'i1\', 100, \'SELL\', 100), (\'o2\', \'i2\', 100, \'BUY\', 10), (\'o3\', \'i3\', 200, \'BUY\', 100), (\'o4\', \'i1\', 150, \'SELL\', 100), (\'o5\', \'i4\', 60, \'SELL\', 50), (\'o6\', \'i4\', 60, \'SELL\', 50);', + 'create table if not exists semistructured.product ( product varchar(100), identifier varchar(100), version varchar(100)) as values (\'p1\', \'i1\', \'v1\'), (\'p2\', \'i2\', \'v1\'), (\'p3\', \'i3\', \'v1\'), (\'p1\', \'i4\', \'v1\');' + ]; + }; + auth: Test; +} + +###Runtime +Runtime simple::runtime::runtime +{ + mappings: + [ + simple::mapping::semistructured + ]; + connections: + [ + simple::store::semistructured: + [ + connection_1: simple::connection::snowflake + ] + ]; +} + +###Pure +function simple::query::getOrdersForBlock():TabularDataSet[1] +{ + simple::model::block.all()->project( + [ + x|$x.id, + x|$x.account, + x|$x.orders.id, + x|$x.orders.identifier, + x|$x.orders.price + ], + [ + 'Id', + 'Account', + 'Orders/Id', + 'Orders/Identifier', + 'Orders/Price' + ] + ); +} + +function simple::query::getBlockForTrade():TabularDataSet[1] +{ + simple::model::trade.all()->project( + [ + x|$x.id, + x|$x.status, + x|$x.block.id, + x|$x.block.account + ], + [ + 'Id', + 'Status', + 'Block/Id', + 'Block/Account' + ] + ); +} + +function simple::query::getTradesForNonCancelledBlocks():TabularDataSet[1] +{ + simple::model::block.all()->filter( + x|!($x.blockData.status == 'cancelled') + )->project( + [ + x|$x.id, + x|$x.account, + x|$x.trades.id, + x|$x.trades.status + ], + [ + 'Id', + 'Account', + 'Trades/Id', + 'Trades/Status' + ] + ); +} + +function simple::query::getNonCancelledBlocksForTrades():TabularDataSet[1] +{ + simple::model::trade.all()->filter( + x|!($x.block.blockData.status == 'cancelled') + )->project( + [ + x|$x.id, + x|$x.status, + x|$x.block.id, + x|$x.block.account + ], + [ + 'Id', + 'Status', + 'Block/Id', + 'Block/Account' + ] + ); +} + +function simple::query::getNonCancelledBlocksForTradesNoProject():TabularDataSet[1] +{ + simple::model::trade.all()->filter( + x|!($x.block.blockData.status == 'cancelled') + )->project( + [ + x|$x.id, + x|$x.status + ], + [ + 'Id', + 'Status' + ] + ); +} + +function simple::query::getOrdersAndRelatedEntitiesForBlock():TabularDataSet[1] +{ + simple::model::block.all()->project( + [ + x|$x.id, + x|$x.blockData.relatedEntities.tag, + x|$x.blockData.relatedEntities.tagId, + x|$x.orders.id + ], + [ + 'Id', + 'Entity Tag', + 'Entity Tag Id', + 'Orders/Id' + ] + ); +} + +function simple::query::getBigBuyOrdersInBlock():TabularDataSet[1] +{ + simple::model::block.all()->project( + [ + x|$x.id, + x|$x.account, + x|$x.orders->filter( + x_1|($x_1.quantity >= 100) && + ($x_1.side == 'BUY') + ).id, + x|$x.orders.id + ], + [ + 'Block/Id', + 'Block/Account', + 'Big Buy Orders', + 'Orders/Id' + ] + ); +} + +function simple::query::getTradeVolumeInBlock():TabularDataSet[1] +{ + simple::model::block.all()->groupBy( + [ + x|$x.id, + x|$x.account + ], + [ + agg( + x|$x.trades.tradeSummary.execQuantity, + x|$x->sum() + ) + ], + [ + 'Id', + 'Account', + 'quantity' + ] + ); +} + +function simple::query::getTotalBuyOrderVolumeInBlock():TabularDataSet[1] +{ + simple::model::block.all()->project( + [ + x|$x.id, + x|$x.account, + x|$x.orders->filter( + x_1|$x_1.side == 'BUY' + ).quantity->sum() + ], + [ + 'Id', + 'Account', + 'Buy Order' + ] + ); +} + +function simple::query::getTradesAndOrdersInBlock():TabularDataSet[1] +{ + simple::model::block.all()->project( + [ + x|$x.id, + x|$x.account, + x|$x.orders.id, + x|$x.orders.identifier, + x|$x.trades.id, + x|$x.trades.status + ], + [ + 'Id', + 'Account', + 'Orders/Id', + 'Orders/Identifier', + 'Trades/Id', + 'Trades/Status' + ] + ); +} + +function simple::query::getAccountForOrders():TabularDataSet[1] +{ + simple::model::order.all()->project( + [ + x|$x.id, + x|$x.account, + x|$x.block.id + ], + [ + 'Id', + 'Account', + 'Block/Id' + ] + ); +} + +function simple::query::getRelatedTradesForOrder():TabularDataSet[1] +{ + simple::model::order.all()->project( + [ + x|$x.id, + x|$x.tradeId + ], + [ + 'Id', + 'Trade Id' + ] + ); +} + +function simple::query::getProductsForOrdersInBlock():TabularDataSet[1] +{ + simple::model::block.all()->project( + [ + x|$x.products, + x|$x.id + ], + [ + 'Product', + 'Id' + ] + ); +} \ 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/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredFlattening.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/semiStructuredFlattening.pure new file mode 100644 index 00000000000..87dec296fd3 --- /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/semiStructuredFlattening.pure @@ -0,0 +1,298 @@ +// 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 flatten::model::Person +{ + firstName: String[1]; + lastName: String[1]; + firm: flatten::model::Firm[1]; + manager: flatten::model::Person[1]; +} + +Class flatten::model::Firm +{ + legalName: String[1]; + otherNames: String[*]; + addresses: flatten::model::Address[*]; +} + +Class flatten::model::Address +{ + name: String[1]; +} + +Class flatten::model::AddressWithLines extends flatten::model::Address +{ + lines: flatten::model::AddressLine[*]; +} + +Class flatten::model::AddressLine +{ + lineno: Integer[1]; +} + +Class flatten::model::StreetAddressLine extends flatten::model::AddressLine +{ + street: String[1]; +} + +Class flatten::model::CityAddressLine extends flatten::model::AddressLine +{ + city: String[1]; +} + +Class flatten::model::StateAddressLine extends flatten::model::AddressLine +{ + state: String[1]; +} + +###Relational +Database flatten::store::H2DB +( + Schema PERSON_SCHEMA + ( + Table PERSON_TABLE + ( + ID INTEGER PRIMARY KEY, + FIRSTNAME VARCHAR(100), + LASTNAME VARCHAR(100), + FIRM_DETAILS VARCHAR(1000), + MANAGERID INTEGER + ) + ) + + Join manager(PERSON_SCHEMA.PERSON_TABLE.MANAGERID = {target}.ID) +) + + +###ExternalFormat +Binding flatten::store::FirmBinding +{ + contentType: 'application/json'; + modelIncludes: [ + flatten::model::Firm, + flatten::model::Address, + flatten::model::AddressWithLines, + flatten::model::AddressLine, + flatten::model::StreetAddressLine, + flatten::model::CityAddressLine, + flatten::model::StateAddressLine + ]; +} + +###Mapping +Mapping flatten::mapping::H2Mapping +( + flatten::model::Person: Relational + { + ~primaryKey + ( + [flatten::store::H2DB]PERSON_SCHEMA.PERSON_TABLE.ID + ) + ~mainTable [flatten::store::H2DB]PERSON_SCHEMA.PERSON_TABLE + firstName: [flatten::store::H2DB]PERSON_SCHEMA.PERSON_TABLE.FIRSTNAME, + lastName: [flatten::store::H2DB]PERSON_SCHEMA.PERSON_TABLE.LASTNAME, + firm: Binding flatten::store::FirmBinding : [flatten::store::H2DB]PERSON_SCHEMA.PERSON_TABLE.FIRM_DETAILS, + manager[flatten_model_Person]: [flatten::store::H2DB]@manager + } +) + +###Runtime +Runtime flatten::runtime::H2Runtime +{ + mappings : + [ + flatten::mapping::H2Mapping + ]; + connections : + [ + flatten::store::H2DB : + [ + connection_1 : #{ + RelationalDatabaseConnection { + store: flatten::store::H2DB; + type: H2; + specification: LocalH2{ + testDataSetupSqls: [ + 'DROP SCHEMA IF EXISTS PERSON_SCHEMA CASCADE;', + 'CREATE SCHEMA PERSON_SCHEMA;', + 'CREATE TABLE PERSON_SCHEMA.PERSON_TABLE(ID INT PRIMARY KEY, FIRSTNAME VARCHAR(100), LASTNAME VARCHAR(100), FIRM_DETAILS VARCHAR(1000), MANAGERID INT);', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (1,\'Peter\',\'Smith\',\'{"legalName": "Firm X", "otherNames": ["O1", "O2"], "addresses": [{"name": "A1", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C1"}]}, {"name": "A11", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C2"}]}]}\',2);', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (2,\'John\',\'Johnson\',\'{"legalName": "Firm X", "otherNames": ["O1", "O2"], "addresses": [{"name": "A2", "lines": [{"lineno": 1, "street": "S2"}, {"lineno": 2, "city": "C2"}]}, {"name": "A22", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C3"}]}]}\',4);', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (3,\'John\',\'Hill\',\'{"legalName": "Firm X", "otherNames": ["O1", "O2"], "addresses": [{"name": "A3", "lines": [{"lineno": 1, "street": "S3"}, {"lineno": 2, "city": "C1"}]}, {"name": "A32", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C1"}]}]}\',2);', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (4,\'Anthony\',\'Allen\',\'{"legalName": "Firm X", "otherNames": ["O1", "O2"], "addresses": [{"name": "A4", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C3"}]}]}\',null)', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (5,\'Fabrice\',\'Roberts\',\'{"legalName": "Firm A", "otherNames": ["O3", "O4"], "addresses": [{"name": "A5", "lines": [{"lineno": 1, "street": "S4"}, {"lineno": 2, "city": "C2"}]}, {"name": "A52", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C4"}]}]}\',null)', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (6,\'Oliver\',\'Hill\',\'{"legalName": "Firm B", "otherNames": ["O5", "O6"], "addresses": [{"name": "A6", "lines": [{"lineno": 1, "street": "S5"}, {"lineno": 2, "city": "C4"}]}]}\',7)', + 'INSERT INTO PERSON_SCHEMA.PERSON_TABLE(ID,FIRSTNAME,LASTNAME,FIRM_DETAILS,MANAGERID) VALUES (7,\'David\',\'Harris\',\'{"legalName": "Firm B", "otherNames": ["O5", "O6"], "addresses": [{"name": "A7", "lines": [{"lineno": 1, "street": "S1"}, {"lineno": 2, "city": "C1"}]}]}\',null)' + ]; + }; + auth: Test; + } + }# + ] + ]; +} + + +###Pure +function flatten::semiStructuredPrimitivePropertyFlattening(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.otherNames, 'Firm Other Name') + + ]) +} + +function flatten::semiStructuredComplexPropertyFlattening(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses.name, 'Firm Address Name') + ]) +} + +function flatten::semiStructuredPrimitivePropertyArrayIndexing(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.otherNames->at(0), 'Firm Other Name 0'), + col(x | $x.firm.otherNames->at(2), 'Firm Other Name 2') + ]) +} + +function flatten::semiStructuredComplexPropertyArrayIndexing(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->at(0).name, 'Firm Address 0 Name'), + col(x | $x.firm.addresses->at(2).name, 'Firm Address 2 Name') + ]) +} + +function flatten::semiStructuredComplexPropertyFlatteningFollowedBySubType(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->subType(@flatten::model::AddressWithLines)->map(a | $a.lines->at(0).lineno), 'Firm Address Line 0 Line No') + ]) +} + +function flatten::semiStructuredComplexPropertyArrayIndexingFollowedBySubType(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->at(0)->subType(@flatten::model::AddressWithLines).lines->at(0).lineno, 'Firm Address 0 Line 0 Line No') + ]) +} + +function flatten::semiStructuredPrimitivePropertyFiltering(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->filter(x | $x.firm.otherNames->contains('A')) + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name') + ]) + ->distinct() +} + +function flatten::semiStructuredPrimitivePropertyFilteringInProject(): TabularDataSet[1] +{ + flatten::model::Person.all()->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.otherNames->filter(x | $x->startsWith('A')), 'Firm Other Name') + ]) +} + +function flatten::semiStructuredComplexPropertyFiltering(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->filter(p | $p.firm.addresses->exists(a | $a.name == 'B')) + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name') + ]) +} + +function flatten::semiStructuredComplexPropertyFilteringInProject(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->filter(a | $a.name == 'A').name, 'Firm Address Name 1'), + col(x | $x.firm.addresses->filter(a | $a.name == 'B').name, 'Firm Address Name 2') + ]) +} + +function flatten::semiStructuredComplexPropertyFilteringInProjectFollowedBySubType(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->filter(a | $a.name == 'A')->subType(@flatten::model::AddressWithLines).lines->at(0).lineno, 'Firm Address Name 1'), + col(x | $x.firm.addresses->filter(a | $a.name == 'B').name, 'Firm Address Name 2') + ]) +} + +function flatten::semiStructuredMultiLevelFlattening(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->filter(a | $a.name == 'A')->subType(@flatten::model::AddressWithLines).lines.lineno, 'Firm Address Name Line No') + ]) +} + +function flatten::semiStructuredSubAggregation(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses.name->joinStrings(';'), 'Firm Address Names') + ]) +} + +function flatten::semiStructuredSubAggregationDeep(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.legalName, 'Firm Name'), + col(x | $x.firm.addresses->subType(@flatten::model::AddressWithLines).lines.lineno->sum(), 'Firm Address Line No Sum') + ]) +} + +function flatten::semiStructuredMultiFlatten(): TabularDataSet[1] +{ + flatten::model::Person.all() + ->project([ + col(x | $x.firstName, 'First Name'), + col(x | $x.firm.addresses.name, 'Firm Address Name'), + col(x | $x.firm.addresses->subType(@flatten::model::AddressWithLines).lines->at(0).lineno, 'Firm Address Line 0 No'), + col(x | $x.firm.otherNames, 'Firm Other Name') + ]) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions_1_4_200.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions_1_4_200.java index 17038e00a4d..22e2a1d1101 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions_1_4_200.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/LegendH2Extensions_1_4_200.java @@ -20,7 +20,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.codec.digest.DigestUtils; import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.h2.tools.SimpleResultSet; import org.h2.value.Value; +import org.h2.value.ValueArray; import org.h2.value.ValueBoolean; import org.h2.value.ValueDouble; import org.h2.value.ValueFloat; @@ -29,9 +31,15 @@ import org.h2.value.ValueNull; import org.h2.value.ValueString; +import java.math.BigDecimal; import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Types; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -158,4 +166,159 @@ public static String legend_h2_extension_split_part(String string, String token, return parts.length > readjustedPart ? parts[readjustedPart] : null; } + + + private static HashSet extractProperty(HashSet resultSet, Object pathToExtract) + { + HashSet res = new HashSet<>(); + if (pathToExtract instanceof String) + { + String property = (String) pathToExtract; + if (property.equals("*")) + { + for (Object r: resultSet) + { + if (!(r instanceof Iterable)) + { + continue; + } + for (Object o : (Iterable) r) + { + res.add(o); + } + } + } + else + { + for (Object r: resultSet) + { + try + { + Object o = ((HashMap)(r)).get(property); + if (o != null) + { + res.add(o); + } + } + catch (Exception e) + { + e.printStackTrace(); // don't stop execution + } + } + } + } + else + { + int index = (int) pathToExtract; + for (Object r: resultSet) + { + try + { + res.add(((ArrayList)(r)).get(index)); + } + catch (Exception e) + { + e.printStackTrace(); + } + + } + } + return res; + } + + public static ResultSet legend_h2_extension_flatten_array(Connection conn, String tableName, String toFlattenColumnName, ValueArray jsonPaths) + { + try + { + String sql = String.format("select distinct %s as flat from %s", toFlattenColumnName, tableName); + ResultSet resultSet = conn.createStatement().executeQuery(sql); + HashSet toFlatten = new HashSet<>(); + while (resultSet.next()) + { + String json = resultSet.getString("flat"); + toFlatten.add(OBJECT_MAPPER.readValue(json, HashMap.class)); + } + + ArrayList pathsToExtract = OBJECT_MAPPER.readValue(jsonPaths.getString(), ArrayList.class); + + for (Object path: pathsToExtract) + { + toFlatten = extractProperty(toFlatten, path); + } + + SimpleResultSet flattenedResultSet = new SimpleResultSet(); + + flattenedResultSet.addColumn("__INPUT__", Types.VARCHAR, 1000, 0); // using the original array as joinKey + + // use first non-null object to infer the type of value + boolean resolvedFlattenedType = false; + + for (Object o: toFlatten) + { + if (!(o instanceof Iterable)) + { + continue; + } + for (Object value : (Iterable) o) + { + if (value instanceof Map || value instanceof List || value instanceof String) + { + flattenedResultSet.addColumn("VALUE", Types.VARCHAR, 1000, 0); + } + else if (value instanceof Boolean) + { + flattenedResultSet.addColumn("VALUE", Types.BOOLEAN, 0, 0); + } + else if (value instanceof Double || value instanceof Float || value instanceof BigDecimal) + { + flattenedResultSet.addColumn("VALUE", Types.DOUBLE, 20, 20); + } + else if (value instanceof Integer || value instanceof Long) + { + flattenedResultSet.addColumn("VALUE", Types.BIGINT, 0, 0); + } + else + { + throw new RuntimeException("unsupported data type in h2 extension"); + } + resolvedFlattenedType = true; + break; + } + if (resolvedFlattenedType) + { + break; + } + } + + if (!resolvedFlattenedType) + { + flattenedResultSet.addColumn("VALUE", Types.VARCHAR, 1000, 0); + return flattenedResultSet; + } + + for (Object o: toFlatten) + { + if (!(o instanceof Iterable)) + { + continue; + } + for (Object value : (Iterable) o) + { + if (value instanceof Map || value instanceof List) + { + flattenedResultSet.addRow(Arrays.asList(OBJECT_MAPPER.writeValueAsString(o), OBJECT_MAPPER.writeValueAsString(value)).toArray()); + } + else + { + flattenedResultSet.addRow(Arrays.asList(OBJECT_MAPPER.writeValueAsString(o), value).toArray()); + } + } + } + return flattenedResultSet; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } } 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 2e2c2783c67..483f8c49c43 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 @@ -7424,6 +7424,24 @@ function meta::relational::functions::pureToSqlQuery::extractTableAliasColumns(e ); } +/* +* Given a relationalElement and columnName c0, Returns the root Table and the columnName in the root table for the column +*/ +function meta::relational::functions::pureToSqlQuery::findTableForColumnInAlias(z:RelationalOperationElement[1], columnName:String[0..1]):Pair[1] +{ + $z->match([ + s:SelectSQLQuery[1] | let tac = $s.columns->filter(c|$c->extractColumnName() == $columnName->toOne())->extractTableAliasColumns()->toOne(); $tac->findTableForColumnInAlias($columnName);, + a:Alias[1] | $a.relationalElement->findTableForColumnInAlias($columnName), + s:SemiStructuredObjectNavigation[1]| $s.operand->findTableForColumnInAlias($columnName), + s:SemiStructuredArrayFlatten[1]|$s.navigation->findTableForColumnInAlias($columnName), + s:SemiStructuredArrayFlattenOutput[1]|$s.tableAliasColumn->findTableForColumnInAlias($columnName), + r:RelationalOperationElementWithJoin[1] | let tac = $r.relationalOperationElement->extractTableAliasColumns()->toOne(); $tac->findTableForColumnInAlias($columnName);, + tac:TableAliasColumn[1] | $tac.alias.relationalElement->findTableForColumnInAlias($tac.column.name);, // ignore passed columnName + v:View[1] | let rop = $v.columnMappings->filter(c|$c.columnName == $columnName->toOne())->toOne(); $rop.relationalOperationElement->findTableForColumnInAlias([]);, + t:Table[1] | assert($t.columns->cast(@Column).name->contains($columnName->toOne()), 'can\'t find ' + $columnName->toOne() + ' in Table: ' + $t.schema.name + '.' + $t.name); pair($t, $columnName->toOne()); + ]); +} + function meta::relational::functions::pureToSqlQuery::getJoinTreeNode(relationalPropertyMapping:RelationalPropertyMapping[1]):JoinTreeNode[0..1] { $relationalPropertyMapping.relationalOperationElement->match([r:RelationalOperationElementWithJoin[1] | $r.joinTreeNode, a:Any[*] | []]); 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 03f6056e828..55e4ace58fe 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,3 +1,6 @@ +import meta::relational::metamodel::relation::*; +import meta::pure::extension::*; +import meta::relational::metamodel::join::*; import meta::relational::functions::sqlQueryToString::default::*; import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; @@ -20,6 +23,7 @@ function meta::relational::functions::sqlQueryToString::h2::v1_4_200::createDbEx isDbReservedIdentifier = {str:String[1]| $str->toLower()->in($reservedWords)}, literalProcessor = $literalProcessor, windowColumnProcessor = processWindowColumn_WindowColumn_1__SqlGenerationContext_1__String_1_, + lateralJoinProcessor = processJoinTreeNodeWithLateralJoinForH2_JoinTreeNode_1__DbConfig_1__Format_1__Extension_MANY__String_1_, semiStructuredElementProcessor = processSemiStructuredElementForH2_RelationalOperationElement_1__SqlGenerationContext_1__String_1_, joinStringsProcessor = processJoinStringsOperationForH2_JoinStrings_1__SqlGenerationContext_1__String_1_, selectSQLQueryProcessor = processSelectSQLQueryDefault_SelectSQLQuery_1__SqlGenerationContext_1__Boolean_1__String_1_, @@ -149,6 +153,24 @@ function <> meta::relational::functions::sqlQueryToString::h2::v 'merge into ' + $upsertQuery.data.name + ' (' + $columnNames + ') values (' + $literalValues + ')'; } +function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processJoinTreeNodeWithLateralJoinForH2(j:JoinTreeNode[1], dbConfig : DbConfig[1], format:Format[1], extensions:Extension[*]):String[1] +{ + // keeping consistent with snowflake + assert(processOperation($j.join.operation, $dbConfig, $format->indent(), ^Config(), $extensions) == '1 = 1', | 'Filter in column projections is not supported. Use a Post Filter if filtering is necessary'); + + assert($j.alias.relationalElement->instanceOf(SemiStructuredArrayFlatten), | 'Lateral join in H2 should be followed by flatten operation'); + + let lhs = ^TableAliasColumn(column = ^Column(name = '__INPUT__', type = ^meta::relational::metamodel::datatype::SemiStructured()),alias = $j.alias); + let rhs = $j.alias.relationalElement->cast(@SemiStructuredArrayFlatten).navigation->cast(@SemiStructuredObjectNavigation); + let joinOperation = ^DynaFunction(name= 'equal', parameters = [$lhs, ^$rhs(returnType=String)]); + + ' ' + $format.separator() + 'left outer join ' + + $j.alias + ->map(a|^$a(name = '"' + $a.name + '"')) + ->toOne()->processOperation($dbConfig, $format->indent(), $extensions) + $format.separator() + + ' ' + 'on (' + processOperation($joinOperation, $dbConfig, $format->indent(), ^Config(), $extensions) + ')'; +} + function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processExtractFromSemiStructuredParamsForH2(params:String[3]):String[1] { let baseRelationalOp = $params->at(0); @@ -187,10 +209,69 @@ function <> meta::relational::functions::sqlQueryToString::h2::v function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processSemiStructuredElementForH2(s:RelationalOperationElement[1], sgc:SqlGenerationContext[1]): String[1] { $s->match([ - o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForH2($sgc) + o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForH2($sgc), + a:SemiStructuredArrayFlatten[1] | $a->processSemiStructuredArrayFlattenForH2($sgc), + a:SemiStructuredArrayFlattenOutput[1] | $a->processSemiStructuredArrayFlattenOutputForH2($sgc) ]) } +/* +* returns property accesses to extract the semi structured property starting from root +*/ +function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::propertyAccessForSemiStructuredObjectNavigationH2(z:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[*] +{ + let elementAccess = $z->match([ + p: SemiStructuredPropertyAccess[1] | + let propertyAccess = '"' + $p.property->cast(@Literal).value->cast(@String) + '"'; + if ($p.index->isNotEmpty(), + | $propertyAccess->concatenate($p.index->toOne()->cast(@Literal).value->toString()), + | $propertyAccess + );, + a: SemiStructuredArrayElementAccess[1] | $a.index->toOne()->cast(@Literal).value->toString() + ]); + $z.operand->match([ + s: SemiStructuredObjectNavigation[1] | $s->propertyAccessForSemiStructuredObjectNavigationH2($sgc), + a: SemiStructuredArrayFlatten[1] | $a.navigation->cast(@SemiStructuredObjectNavigation)->propertyAccessForSemiStructuredObjectNavigationH2($sgc)->concatenate('"*"'), + s: SemiStructuredArrayFlattenOutput[1] | let flattening = $s.tableAliasColumn.alias.relationalElement->cast(@SemiStructuredArrayFlatten); + $flattening.navigation->cast(@SemiStructuredObjectNavigation)->propertyAccessForSemiStructuredObjectNavigationH2($sgc)->concatenate('"*"');, + a: Any[1] | [] + ])->concatenate($elementAccess); +} + +function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processSemiStructuredArrayFlattenForH2(s:SemiStructuredArrayFlatten[1], sgc:SqlGenerationContext[1]): String[1] +{ + let rootTableAndColumnName = $s->meta::relational::functions::pureToSqlQuery::findTableForColumnInAlias([]); + + let jsonPaths = $s.navigation->match([ // assumes input to ssaf is always sson + s: SemiStructuredObjectNavigation[1] | $s->propertyAccessForSemiStructuredObjectNavigationH2($sgc) + ]); + + let schema = $rootTableAndColumnName.first.schema.name; + + let processedNavigation = $s.navigation->processOperation($sgc); + 'legend_h2_extension_flatten_array(' + '\'' + $rootTableAndColumnName.first->processOperation($sgc) + '\',\'' + $rootTableAndColumnName.second->processColumnName($sgc.dbConfig) + '\',ARRAY[\'' + $jsonPaths->joinStrings('\',\'') + '\'])'; +} + +function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processSemiStructuredArrayFlattenOutputForH2(s:SemiStructuredArrayFlattenOutput[1], sgc:SqlGenerationContext[1]): String[1] +{ + let doubleQuote = if($sgc.config.useQuotesForTableAliasColumn == false, |'', |'"'); + let processedIdentifier = $sgc.dbConfig.identifierProcessor($doubleQuote + $s.tableAliasColumn.alias.name->toOne() + $doubleQuote); + let elementAccess = $processedIdentifier + '.' + processColumnName('VALUE', $sgc.dbConfig); + $elementAccess->castToReturnTypeForSemiStructuredData($s.returnType); +} + +function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::castToReturnTypeForSemiStructuredData(elementAccess:String[1], returnType:Type[0..1]): String[1] +{ + if ($returnType == String, | 'cast(' + $elementAccess + ' as varchar)', | + if ($returnType == Boolean, | 'cast(' + $elementAccess + ' as boolean)', | + if ($returnType == Float, | 'cast(' + $elementAccess + ' as float)', | + if ($returnType == Integer, | 'cast(' + $elementAccess + ' as integer)', | + if ($returnType == StrictDate, | 'cast(' + $elementAccess + ' as date)', | + if ($returnType->isNotEmpty() && $returnType->toOne()->_subTypeOf(Date), | 'cast(' + $elementAccess + ' as timestamp)', | + if ($returnType->isNotEmpty() && $returnType->toOne()->instanceOf(Enumeration), | 'cast(' + $elementAccess + ' as varchar)', | + $elementAccess))))))); +} + function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processSemiStructuredObjectNavigationForH2(s:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[1] { // Use a user defined function for H2 (testing purpose) @@ -210,14 +291,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v a: SemiStructuredArrayElementAccess[1] | semiStructuredArrayElementAccessForH2($processedOperand, $a.index->cast(@Literal).value->toString()) ]); - if ($s.returnType == String, | 'cast(' + $elementAccess + ' as varchar)', | - if ($s.returnType == Boolean, | 'cast(' + $elementAccess + ' as boolean)', | - if ($s.returnType == Float, | 'cast(' + $elementAccess + ' as float)', | - if ($s.returnType == Integer, | 'cast(' + $elementAccess + ' as integer)', | - if ($s.returnType == StrictDate, | 'cast(' + $elementAccess + ' as date)', | - if ($s.returnType->isNotEmpty() && $s.returnType->toOne()->_subTypeOf(Date), | 'cast(' + $elementAccess + ' as timestamp)', | - if ($s.returnType->isNotEmpty() && $s.returnType->toOne()->instanceOf(Enumeration), | 'cast(' + $elementAccess + ' as varchar)', | - $elementAccess))))))); + $elementAccess->castToReturnTypeForSemiStructuredData($s.returnType); } function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processJoinStringsOperationForH2(js:JoinStrings[1], sgc:SqlGenerationContext[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 0e9124cb439..6401750cfd8 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,3 +1,6 @@ +import meta::relational::functions::pureToSqlQuery::*; +import meta::relational::metamodel::relation::*; +import meta::pure::extension::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::functions::sqlQueryToString::default::*; import meta::external::store::relational::runtime::*; @@ -24,6 +27,7 @@ function meta::relational::functions::sqlQueryToString::h2::v2_1_214::createDbEx isDbReservedIdentifier = {str:String[1]| $str->toLower()->in($reservedWords)}, literalProcessor = $literalProcessor, windowColumnProcessor = processWindowColumn_WindowColumn_1__SqlGenerationContext_1__String_1_, + lateralJoinProcessor = processJoinTreeNodeWithLateralJoinForH2_JoinTreeNode_1__DbConfig_1__Format_1__Extension_MANY__String_1_, semiStructuredElementProcessor = processSemiStructuredElementForH2_RelationalOperationElement_1__SqlGenerationContext_1__String_1_, joinStringsProcessor = processJoinStringsOperationForH2_JoinStrings_1__SqlGenerationContext_1__String_1_, selectSQLQueryProcessor = processSelectSQLQueryForH2_SelectSQLQuery_1__SqlGenerationContext_1__Boolean_1__String_1_, @@ -262,6 +266,24 @@ function <> meta::relational::functions::sqlQueryToString::h2::v 'merge into ' + $upsertQuery.data.name + ' (' + $columnNames + ') values (' + $literalValues + ')'; } +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processJoinTreeNodeWithLateralJoinForH2(j:JoinTreeNode[1], dbConfig : DbConfig[1], format:Format[1], extensions:Extension[*]):String[1] +{ + // keeping consistent with snowflake + assert(processOperation($j.join.operation, $dbConfig, $format->indent(), ^Config(), $extensions) == '1 = 1', | 'Filter in column projections is not supported. Use a Post Filter if filtering is necessary'); + + assert($j.alias.relationalElement->instanceOf(SemiStructuredArrayFlatten), | 'Lateral join in H2 should be followed by flatten operation'); + + let lhs = ^TableAliasColumn(column = ^Column(name = '__INPUT__', type = ^meta::relational::metamodel::datatype::SemiStructured()),alias = $j.alias); + let rhs = $j.alias.relationalElement->cast(@SemiStructuredArrayFlatten).navigation->cast(@SemiStructuredObjectNavigation); + let joinOperation = ^DynaFunction(name= 'equal', parameters = [$lhs, ^$rhs(returnType=String)]); + + ' ' + $format.separator() + 'left outer join ' + + $j.alias + ->map(a|^$a(name = '"' + $a.name + '"')) + ->toOne()->processOperation($dbConfig, $format->indent(), $extensions) + $format.separator() + + ' ' + 'on (' + processOperation($joinOperation, $dbConfig, $format->indent(), ^Config(), $extensions) + ')'; +} + function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processExtractFromSemiStructuredParamsForH2(params:String[3]):String[1] { let baseRelationalOp = $params->at(0); @@ -300,10 +322,69 @@ function <> meta::relational::functions::sqlQueryToString::h2::v function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSemiStructuredElementForH2(s:RelationalOperationElement[1], sgc:SqlGenerationContext[1]): String[1] { $s->match([ - o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForH2($sgc) + o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForH2($sgc), + a:SemiStructuredArrayFlatten[1] | $a->processSemiStructuredArrayFlattenForH2($sgc), + a:SemiStructuredArrayFlattenOutput[1] | $a->processSemiStructuredArrayFlattenOutputForH2($sgc) ]) } +/* +* returns property accesses to extract the semi structured property starting from root +*/ +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::propertyAccessForSemiStructuredObjectNavigationH2(z:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[*] +{ + let elementAccess = $z->match([ + p: SemiStructuredPropertyAccess[1] | + let propertyAccess = '"' + $p.property->cast(@Literal).value->cast(@String) + '"'; + if ($p.index->isNotEmpty(), + | $propertyAccess->concatenate($p.index->toOne()->cast(@Literal).value->toString()), + | $propertyAccess + );, + a: SemiStructuredArrayElementAccess[1] | $a.index->toOne()->cast(@Literal).value->toString() + ]); + $z.operand->match([ + s: SemiStructuredObjectNavigation[1] | $s->propertyAccessForSemiStructuredObjectNavigationH2($sgc), + a: SemiStructuredArrayFlatten[1] | $a.navigation->cast(@SemiStructuredObjectNavigation)->propertyAccessForSemiStructuredObjectNavigationH2($sgc)->concatenate('"*"'), + s: SemiStructuredArrayFlattenOutput[1] | let flattening = $s.tableAliasColumn.alias.relationalElement->cast(@SemiStructuredArrayFlatten); + $flattening.navigation->cast(@SemiStructuredObjectNavigation)->propertyAccessForSemiStructuredObjectNavigationH2($sgc)->concatenate('"*"');, + a: Any[1] | [] + ])->concatenate($elementAccess); +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSemiStructuredArrayFlattenForH2(s:SemiStructuredArrayFlatten[1], sgc:SqlGenerationContext[1]): String[1] +{ + let rootTableAndColumnName = $s->meta::relational::functions::pureToSqlQuery::findTableForColumnInAlias([]); + + let jsonPaths = $s.navigation->match([ // assumes input to ssaf is always sson + s: SemiStructuredObjectNavigation[1] | $s->propertyAccessForSemiStructuredObjectNavigationH2($sgc) + ]); + + let schema = $rootTableAndColumnName.first.schema.name; + + let processedNavigation = $s.navigation->processOperation($sgc); + 'legend_h2_extension_flatten_array(' + '\'' + $rootTableAndColumnName.first->processOperation($sgc) + '\',\'' + $rootTableAndColumnName.second->processColumnName($sgc.dbConfig) + '\',ARRAY[\'' + $jsonPaths->joinStrings('\',\'') + '\'])'; +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSemiStructuredArrayFlattenOutputForH2(s:SemiStructuredArrayFlattenOutput[1], sgc:SqlGenerationContext[1]): String[1] +{ + let doubleQuote = if($sgc.config.useQuotesForTableAliasColumn == false, |'', |'"'); + let processedIdentifier = $sgc.dbConfig.identifierProcessor($doubleQuote + $s.tableAliasColumn.alias.name->toOne() + $doubleQuote); + let elementAccess = $processedIdentifier + '.' + processColumnName('VALUE', $sgc.dbConfig); + $elementAccess->castToReturnTypeForSemiStructuredData($s.returnType); +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::castToReturnTypeForSemiStructuredData(elementAccess:String[1], returnType:Type[0..1]): String[1] +{ + if ($returnType == String, | 'cast(' + $elementAccess + ' as varchar)', | + if ($returnType == Boolean, | 'cast(' + $elementAccess + ' as boolean)', | + if ($returnType == Float, | 'cast(' + $elementAccess + ' as float)', | + if ($returnType == Integer, | 'cast(' + $elementAccess + ' as integer)', | + if ($returnType == StrictDate, | 'cast(' + $elementAccess + ' as date)', | + if ($returnType->isNotEmpty() && $returnType->toOne()->_subTypeOf(Date), | 'cast(' + $elementAccess + ' as timestamp)', | + if ($returnType->isNotEmpty() && $returnType->toOne()->instanceOf(Enumeration), | 'cast(' + $elementAccess + ' as varchar)', | + $elementAccess))))))); +} + function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSemiStructuredObjectNavigationForH2(s:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[1] { // Use a user defined function for H2 (testing purpose) @@ -323,14 +404,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v a: SemiStructuredArrayElementAccess[1] | semiStructuredArrayElementAccessForH2($processedOperand, $a.index->cast(@Literal).value->toString()) ]); - if ($s.returnType == String, | 'cast(' + $elementAccess + ' as varchar)', | - if ($s.returnType == Boolean, | 'cast(' + $elementAccess + ' as boolean)', | - if ($s.returnType == Float, | 'cast(' + $elementAccess + ' as float)', | - if ($s.returnType == Integer, | 'cast(' + $elementAccess + ' as integer)', | - if ($s.returnType == StrictDate, | 'cast(' + $elementAccess + ' as date)', | - if ($s.returnType->isNotEmpty() && $s.returnType->toOne()->_subTypeOf(Date), | 'cast(' + $elementAccess + ' as timestamp)', | - if ($s.returnType->isNotEmpty() && $s.returnType->toOne()->instanceOf(Enumeration), | 'cast(' + $elementAccess + ' as varchar)', | - $elementAccess))))))); + $elementAccess->castToReturnTypeForSemiStructuredData($s.returnType); } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processJoinStringsOperationForH2(js:JoinStrings[1], sgc:SqlGenerationContext[1]): String[1] @@ -614,18 +688,20 @@ function <> meta::relational::functions::sqlQueryToString::h2::v ->processOperation($dbConfig, $format->indent(), $extensions), j:JoinTreeNode[1] | if($j.joinType == JoinType.FULL_OUTER, - | - // This should have been converted earlier to avoid a FULL_OUTER reaching this point + | + // This should have been converted earlier to avoid a FULL_OUTER reaching this point fail($j.joinType->toOne()->toString() + ' join not supported in H2'); ''; , + | + if($j.lateral == true, + | $dbConfig.lateralJoinProcessor($j, $dbConfig, $format, $extensions), | $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) + ')'; - ), + )), a:Any[1] | '' ] ); From c09e90d14b57bd151bfac3efe8ee47abb010c979 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Tue, 28 Nov 2023 09:03:07 +0000 Subject: [PATCH 10/54] Legend SQL assortment of updates (#2478) - handle standard aggregation functions in window context - bool_and/bool_or support - extra tracing - do not fail on duplicate sources - explicit fail handling of function orderby --- .../toPureGraph/handlers/Handlers.java | 4 +- .../corefunctions/collectionExtension.pure | 5 + .../pure/router/routing/router_routing.pure | 1 + .../pure/serialization/toPureGrammar.pure | 4 +- .../planConventions/collectionsLibrary.pure | 1 + .../toBeRefactored/jsonSchemaConstraints.pure | 1 + .../sqlQueryToString/athenaExtension.pure | 2 + .../sqlQueryToString/bigQueryExtension.pure | 2 + .../sqlQueryToString/memSQLExtension.pure | 2 + .../sqlQueryToString/postgresExtension.pure | 2 + .../sqlQueryToString/prestoExtension.pure | 2 + .../sqlQueryToString/redshiftExtension.pure | 2 + .../sqlQueryToString/snowflakeExtension.pure | 2 + .../sqlQueryToString/spannerExtension.pure | 2 + .../sqlQueryToString/sybaseASEExtension.pure | 2 + .../sqlQueryToString/sybaseIQExtension.pure | 2 + .../pureToSQLQuery/pureToSQLQuery.pure | 20 +- .../relational/relationalExtension.pure | 20 + .../sqlQueryToString/dbExtension.pure | 2 + .../dbSpecific/h2/h2Extension1_4_200.pure | 2 + .../dbSpecific/h2/h2Extension2_1_214.pure | 2 + .../sqlQueryToString/extensionDefaults.pure | 7 + .../selectSubClauses/aggregationDynaFns.pure | 38 ++ .../relational/tds/tests/testGroupBy.pure | 37 ++ .../sql/grammar/from/antlr4/SqlBaseParser.g4 | 2 +- .../language/sql/grammar/from/SqlVisitor.java | 1 + .../sql/grammar/to/SQLGrammarComposer.java | 5 +- .../test/roundtrip/TestSQLRoundTrip.java | 6 + .../metamodel.pure | 1 + .../binding/fromPure/fromPure.pure | 354 +++++++++++++----- .../binding/fromPure/tests/testTranspile.pure | 43 ++- .../legend-engine-xt-sql-query/pom.xml | 4 + .../engine/query/sql/api/SQLExecutor.java | 59 ++- 33 files changed, 503 insertions(+), 136 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/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 26dc7bc4a4f..f482f6f4063 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 @@ -479,7 +479,8 @@ public Handlers(PureModel pureModel) m(h("meta::pure::functions::collection::and_Boolean_MANY__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> true)))); register(m(m(h("meta::pure::functions::boolean::or_Boolean_1__Boolean_1__Boolean_1_", true, ps -> res("Boolean", "one"), ps -> ps.size() == 2)), - m(h("meta::pure::functions::collection::or_Boolean_$1_MANY$__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> true)))); + m(h("meta::pure::functions::collection::or_Boolean_$1_MANY$__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity())), + h("meta::pure::functions::collection::or_Boolean_MANY__Boolean_1_", false, ps -> res("Boolean", "one"), ps -> true)))); register("meta::pure::tds::tdsRows_TabularDataSet_1__TDSRow_MANY_", false, ps -> res("meta::pure::tds::TDSRow", "zeroMany")); register("meta::pure::functions::boolean::not_Boolean_1__Boolean_1_", true, ps -> res("Boolean", "one")); @@ -1785,6 +1786,7 @@ private Map buildDispatch() map.put("meta::pure::functions::collection::objectReferenceIn_Any_1__String_MANY__Boolean_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::oneOf_Boolean_MANY__Boolean_1_", (List ps) -> ps.size() == 1 && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Boolean".equals(ps.get(0)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::or_Boolean_$1_MANY$__Boolean_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Boolean".equals(ps.get(0)._genericType()._rawType()._name()))); + map.put("meta::pure::functions::collection::or_Boolean_MANY__Boolean_1_", (List ps) -> ps.size() == 1 && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Boolean".equals(ps.get(0)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::range_Integer_1__Integer_1__Integer_1__Integer_MANY_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Integer".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::range_Integer_1__Integer_1__Integer_MANY_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "Integer".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::removeDuplicatesBy_T_MANY__Function_1__T_MANY_", (List ps) -> ps.size() == 2 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || check(funcType(ps.get(1)._genericType()), (FunctionType ft) -> isOne(ft._returnMultiplicity()) && check(ft._parameters().toList(), (List nps) -> nps.size() == 1 && isOne(nps.get(0)._multiplicity()))))); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure index eaeca1b26c2..fb0ff2c2e64 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/collectionExtension.pure @@ -123,6 +123,11 @@ function meta::pure::functions::collection::and(vals:Boolean[*]):Boolean[1] $vals->fold({i,a|$i && $a}, true) } +function meta::pure::functions::collection::or(vals:Boolean[*]):Boolean[1] +{ + $vals->fold({i,a|$i || $a}, false) +} + function meta::pure::functions::collection::or(vals:Boolean[1..*]):Boolean[1] { $vals->fold({i,a|$i || $a}, false) 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 dde530de2be..fade4869da1 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 @@ -732,6 +732,7 @@ function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure: func_FunctionDefinition_1__TdsOlapRank_1_, and_Boolean_MANY__Boolean_1_, or_Boolean_$1_MANY$__Boolean_1_, + or_Boolean_MANY__Boolean_1_, tdsContains_T_1__Function_MANY__TabularDataSet_1__Boolean_1_, tdsContains_T_1__Function_MANY__String_MANY__TabularDataSet_1__Function_1__Boolean_1_, splitPart_String_$0_1$__String_1__Integer_1__String_$0_1$_, diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure index 15276f395d5..d238e57f433 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure @@ -132,7 +132,9 @@ function meta::pure::metamodel::serialization::grammar::printFunctionExpression( ); if ($name == 'minus' && $vals->size() == 1, | $m->get($name)->toOne() + $functionExpression.parametersValues->at(0)->printValueSpecification($space), - | '(' + $vals->at(0)->printValueSpecification($space) + ' ' + $m->get($name)->toOne() + ' ' + $vals->at(1)->printValueSpecification($space) + ')' + | if ($name->in(['and', 'or']) && $vals->size() == 1, + | $name + '(' + $vals->at(0)->printValueSpecification($space) + ')', + | '(' + $vals->at(0)->printValueSpecification($space) + ' ' + $m->get($name)->toOne() + ' ' + $vals->at(1)->printValueSpecification($space) + ')') ); ); ); 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 f625b1ab4cc..781dc6dba27 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 @@ -107,6 +107,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec fc1(and_Boolean_MANY__Boolean_1_, {ctx,collection | $collection->j_streamOf()->js_reduce(j_true(), j_lambda([$x, $y], $x->j_and($y)))}), fc1(or_Boolean_$1_MANY$__Boolean_1_, {ctx,collection | $collection->j_streamOf()->js_reduce(j_false(), j_lambda([$x, $y], $x->j_or($y)))}), + fc1(or_Boolean_MANY__Boolean_1_, {ctx,collection | $collection->j_streamOf()->js_reduce(j_false(), j_lambda([$x, $y], $x->j_or($y)))}), fc1(size_Any_MANY__Integer_1_, {ctx,collection | $collection->j_streamOf()->js_count()}), fc (count_Any_MANY__Integer_1_, fcAlias( size_Any_MANY__Integer_1_)), diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/transformation/toBeRefactored/jsonSchemaConstraints.pure b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/transformation/toBeRefactored/jsonSchemaConstraints.pure index 1d9a654d0f3..c972ed25d01 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/transformation/toBeRefactored/jsonSchemaConstraints.pure +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/transformation/toBeRefactored/jsonSchemaConstraints.pure @@ -130,6 +130,7 @@ function <> meta::external::format::json::schema::constraint::to pair('meta::json::schema::discriminateOneOf_Any_1__Any_1__Type_MANY__DiscriminatorMapping_MANY__Boolean_1_',meta::external::format::json::schema::constraint::buildSubTypeDiscriminator_SimpleFunctionExpression_1__JSONSchemaConfigInternal_1__SchemaConstraint_1_), pair('meta::pure::functions::string::isUUID_String_$0_1$__Boolean_1_',meta::external::format::json::schema::constraint::buildUUID_SimpleFunctionExpression_1__JSONSchemaConfigInternal_1__SchemaConstraint_1_), pair('meta::pure::functions::collection::or_Boolean_$1_MANY$__Boolean_1_', meta::external::format::json::schema::constraint::buildOr_SimpleFunctionExpression_1__JSONSchemaConfigInternal_1__SchemaConstraint_1_), + pair('meta::pure::functions::collection::or_Boolean_MANY__Boolean_1_', meta::external::format::json::schema::constraint::buildOr_SimpleFunctionExpression_1__JSONSchemaConfigInternal_1__SchemaConstraint_1_), pair('meta::pure::functions::math::rem_Number_1__Number_1__Number_1_', meta::external::format::json::schema::constraint::builtMultipleOf_SimpleFunctionExpression_1__JSONSchemaConfigInternal_1__SchemaConstraint_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/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 771a9001413..8c0b53dc00c 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 @@ -139,6 +139,8 @@ function <> meta::relational::functions::sqlQueryToString::athen [ dynaFnToSql('and', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' and ')})), + dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)')), dynaFnToSql('count', $allStates, ^ToSql(format='count(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), dynaFnToSql('equal', $allStates, ^ToSql(format='%s = %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/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 ca719387db3..6fb907e875a 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 @@ -54,6 +54,8 @@ function <> meta::relational::functions::sqlQueryToString::bigQu [ dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | $p->at(0) + ', INTERVAL ' + $p->at(1) + ' ' + $p->at(2)->mapToDBUnitType()})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='logical_and(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='logical_or(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), dynaFnToSql('hour', $allStates, ^ToSql(format='extract(hour from %s)')), 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 c1f1adda84d..4b60f726428 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 @@ -78,6 +78,8 @@ function <> meta::relational::functions::sqlQueryToString::memsq [ dynaFnToSql('adjust', $allStates, ^ToSql(format='adddate(%s)', transform={p:String[3] | $p->at(0) + ', INTERVAL ' + $p->at(1) + ' ' + $p->at(2)->mapToDBUnitType()})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), 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)')), 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 6b2051e742c..db340cecdda 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 @@ -163,6 +163,8 @@ function <> meta::relational::functions::sqlQueryToString::postg [ dynaFnToSql('adjust', $allStates, ^ToSql(format='(%s + (INTERVAL \'1 %s\' * %s))', transform={p:String[3] | [$p->at(0), $p->at(2)->replace('Text', '')->removeQuotesIfExist(), $p->at(1)]})), //https://www.postgresql.org/message-id/2B704E31-B533-4159-B6F0-EC284CFE824C%40skype.net, dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)', transform={p:String[*] | joinStrings($p, ', ')})), + dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)', transform={p:String[*] | joinStrings($p, ', ')})), dynaFnToSql('dateDiff', $allStates, ^ToSql(format='%s', transform={p:String[*]|generateDateDiffExpressionForPostgres($p)})), dynaFnToSql('datePart', $allStates, ^ToSql(format='Date(%s)')), dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='date_part(\'day\', %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/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 92c28c34b4a..67634276e1b 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 @@ -52,6 +52,8 @@ function <> meta::relational::functions::sqlQueryToString::prest [ dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | '\'' + $p->at(2)->mapToDBUnitType() + '\', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDatePresto()})), dynaFnToSql('convertDateTime', $allStates, ^ToSql(format='%s' , transform={p:String[*] | $p->convertToDateTimePresto()})), 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 6d03e9c5220..d31ae218f89 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 @@ -50,6 +50,8 @@ function <> meta::relational::functions::sqlQueryToString::redsh [ dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), dynaFnToSql('datePart', $allStates, ^ToSql(format='trunc(%s)')), dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='to_char(%s, \'FMDay\')')), 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 31bece49761..303c8677fd6 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 @@ -103,6 +103,8 @@ function <> meta::relational::functions::sqlQueryToString::snowf [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='booland(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='boolor(%s)')), dynaFnToSql('ceiling', $allStates, ^ToSql(format='ceil(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateSnowflake()})), 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 83a9dee3f67..61ae1279969 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 @@ -78,6 +78,8 @@ function <> meta::relational::functions::sqlQueryToString::spann dynaFnToSql('asin', $allStates, ^ToSql(format='asin(%s)')), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('atan', $allStates, ^ToSql(format='atan(%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='logical_and(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='logical_or(%s)')), dynaFnToSql('average', $allStates, ^ToSql(format='avg(1.0 * %s)')), dynaFnToSql('ceiling', $allStates, ^ToSql(format='ceiling(%s)')), dynaFnToSql('coalesce', $allStates, ^ToSql(format='coalesce%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), 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 7e069c49a80..f8909fb9592 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 @@ -90,6 +90,8 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, true)})), + dynaFnToSql('boolor', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, false)})), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateIQ()})), dynaFnToSql('convertDateTime', $allStates, ^ToSql(format='%s' , transform={p:String[*] | $p->convertToDateTimeIQ()})), 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 0f64b03218e..042dfb76ea1 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 @@ -82,6 +82,8 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, true)})), + dynaFnToSql('boolor', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, false)})), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateIQ()})), 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 483f8c49c43..c600e7cd98a 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 @@ -4464,10 +4464,25 @@ function meta::relational::functions::pureToSqlQuery::processAggFn(v:ValueSpecif if($f.func == cast_Any_m__T_1__T_m_, | $f.parametersValues->at(1)->cast(@ValueSpecification)->processAggFn($params), | + + let fn = $f.func.functionName->toOne(); + let singleArgument = $f.parametersValues->match([ + i:InstanceValue[1] | $i.values->size() == 1, + v:ValueSpecification[1] | true, + v:ValueSpecification[*] | false + ]); + + let name = [ + pair($f.func == and_Boolean_MANY__Boolean_1_ && $singleArgument, 'booland'), + pair($f.func == or_Boolean_$1_MANY$__Boolean_1_ && $singleArgument, 'boolor'), + pair($f.func == or_Boolean_MANY__Boolean_1_ && $singleArgument, 'boolor'), + pair(true, $fn) + ]->filter(p | $p.first)->first()->toOne().second; + newDynaFunction( - $f.func.functionName->toOne(), + $name, $f.parametersValues->map(p|$p->processAggFn($params)) - ) + ); ), a:VariableExpression[1]|$params, i:InstanceValue[1]| if($i.values->isEmpty(), @@ -7701,6 +7716,7 @@ function meta::relational::functions::pureToSqlQuery::getSupportedFunctions():Ma ^PureFunctionToRelationalFunctionPair(first=meta::pure::functions::boolean::lessThanEqual_Date_1__Date_1__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::and_Boolean_MANY__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::or_Boolean_$1_MANY$__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::or_Boolean_MANY__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::boolean::and_Boolean_1__Boolean_1__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::boolean::or_Boolean_1__Boolean_1__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::collection::isNotEmpty_Any_$0_1$__Boolean_1_,second=meta::relational::functions::pureToSqlQuery::processIsNotEmpty_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_), 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 741eee09f4b..95b05bcdd6b 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 @@ -299,6 +299,26 @@ function <> meta::relational::functions::typeInference::getDynaF ]) ), + pair( + 'booland', + list([ + pair( + {params: RelationalOperationElement[*] | true}, + {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Bit()} + ) + ]) + ), + + pair( + 'boolor', + list([ + pair( + {params: RelationalOperationElement[*] | true}, + {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Bit()} + ) + ]) + ), + pair( 'case', list([ 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 870dad211c5..45770ee46fa 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 @@ -907,6 +907,8 @@ Enum meta::relational::functions::sqlQueryToString::DynaFunctionRegistry asin, atan, atan2, + booland, + boolor, average, averageRank, case, 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 55e4ace58fe..89f3d8efc4f 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 @@ -76,6 +76,8 @@ function <> meta::relational::functions::sqlQueryToString::h2::v [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateH2()})), 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 6401750cfd8..9ad24f49407 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 @@ -184,6 +184,8 @@ function <> meta::relational::functions::sqlQueryToString::h2::v [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateH2()})), 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 07e6de10a8c..50a45d00173 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 @@ -159,6 +159,13 @@ function meta::relational::functions::sqlQueryToString::default::convertGreatest )->joinStrings('case ', ' ', ' else null end')); } +function meta::relational::functions::sqlQueryToString::default::convertBoolAndOrToCaseStatement(param:String[1], and:Boolean[1]):String[1] +{ + let fn = if ($and, | 'min', | 'max'); + + 'case when ' + $fn + '(' + $param + ') = \'true\' then \'true\' else \'false\' end'; +} + function meta::relational::functions::sqlQueryToString::default::processJoinStringsOperationWithConcatCall(js:JoinStrings[1], sgc:SqlGenerationContext[1]): String[1] { processJoinStringsOperation($js, $sgc, [], {strs, sep| $strs->joinStrings('concat(', if('\'\'' == $sep, |', ', |',' + $sep + ',') , ')')}); 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/aggregationDynaFns.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/aggregationDynaFns.pure index 4e4fc264f84..016b40ed99a 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/aggregationDynaFns.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/aggregationDynaFns.pure @@ -139,3 +139,41 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe let equalityComparator = floatEqualityComparatorGenerator([0.01]); runSqlQueryTest($sqlQuery, $expected,$equalityComparator, $config); } + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::booland::testTrue(config:DbTestConfig[1]):Boolean[1] +{ + meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::bool::boolTest('booland', 10, true, $config) +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::booland::testFalse(config:DbTestConfig[1]):Boolean[1] +{ + meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::bool::boolTest('booland', 20, false, $config) +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::boolor::testTrue(config:DbTestConfig[1]):Boolean[1] +{ + meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::bool::boolTest('boolor', 20, true, $config) +} + +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::boolor::testFalse(config:DbTestConfig[1]):Boolean[1] +{ + meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::bool::boolTest('boolor', 40, false, $config) +} + +function meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::aggregationDynaFns::bool::boolTest(func:String[1], value:Integer[1], expectedValue:Boolean[1], config:DbTestConfig[1]): Boolean[1] +{ + let table= meta::relational::tests::db->cast(@Database)->schema('default')->map(x|$x->table('personTable'))->toOne(); + let column = $table.columns->cast(@Column)->filter(c | $c.name->toLower() == 'age')->toOne(); + + let dynaFunc = ^DynaFunction(name = $func , parameters=[ + ^DynaFunction(name = 'greaterThan', parameters = [ + ^TableAliasColumn(column = $column,alias = ^TableAlias(name = 'myTable', relationalElement = $table)), + ^Literal(value = $value)])]); + + let sqlQuery = ^SelectSQLQuery(columns=[$dynaFunc], + data= ^meta::relational::metamodel::join::RootJoinTreeNode( + alias=^TableAlias(name= 'myTable' , relationalElement=$table))); + + let expected = ^Literal(value=$expectedValue); + runSqlQueryTest($sqlQuery, $expected,[], $config); +} 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 97df136e370..83045924012 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 @@ -252,6 +252,43 @@ function <> meta::relational::tests::tds::groupBy::simpleGroupByMin() assertEquals('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->sqlRemoveFormatting()); } +function <> meta::relational::tests::tds::groupBy::simpleGroupByAnd():Boolean[1] +{ + let result = execute(|Trade.all() + ->project([#/Trade/quantity!quantity#, #/Trade/product/name!prodName#]) + ->groupBy('prodName', [ + agg('and', x|$x.getFloat('quantity') > 20, y| $y->and()) + ]) + ->sort(desc('prodName')), + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + let tds = $result.values->at(0); + assertEquals(4, $tds.rows->size()); + assertEquals(['Firm X', true], $tds.rows->at(0).values); + assertEquals(['Firm C', true], $tds.rows->at(1).values); + assertEquals(['Firm A', false], $tds.rows->at(2).values); + assertEquals([^TDSNull(), false], $tds.rows->at(3).values); + assertEquals('select "producttable_0".NAME as "prodName", every("root".quantity > 20) as "and" 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::simpleGroupByOr():Boolean[1] +{ + let result = execute(|Trade.all() + ->project([#/Trade/quantity!quantity#, #/Trade/product/name!prodName#]) + ->groupBy('prodName', [ + agg('or', x|$x.getFloat('quantity') > 50, y| $y->or()) + ]) + ->sort(desc('prodName')), + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + let tds = $result.values->at(0); + assertEquals(4, $tds.rows->size()); + assertEquals(['Firm X', true], $tds.rows->at(0).values); + assertEquals(['Firm C', false], $tds.rows->at(1).values); + assertEquals(['Firm A', false], $tds.rows->at(2).values); + assertEquals([^TDSNull(), false], $tds.rows->at(3).values); + assertEquals('select "producttable_0".NAME as "prodName", any("root".quantity > 50) as "or" 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::GroupByWithMapFnConstant():Boolean[1] { let result = execute(|Trade.all() diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/antlr4/org/finos/legend/engine/language/sql/grammar/from/antlr4/SqlBaseParser.g4 b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/antlr4/org/finos/legend/engine/language/sql/grammar/from/antlr4/SqlBaseParser.g4 index 15481055271..0dc34ffead3 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/antlr4/org/finos/legend/engine/language/sql/grammar/from/antlr4/SqlBaseParser.g4 +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/antlr4/org/finos/legend/engine/language/sql/grammar/from/antlr4/SqlBaseParser.g4 @@ -318,7 +318,7 @@ primaryExpression | explicitFunction #explicitFunctionDefault | qname OPEN_ROUND_BRACKET ASTERISK CLOSE_ROUND_BRACKET within? filter? over? #functionCall | ident #columnReference - | qname OPEN_ROUND_BRACKET (setQuant? expr (COMMA expr)*)? CLOSE_ROUND_BRACKET within? filter? + | qname OPEN_ROUND_BRACKET (setQuant? expr (COMMA expr)*)? (ORDER BY sortItem (COMMA sortItem)*)? CLOSE_ROUND_BRACKET within? filter? ((IGNORE|RESPECT) NULLS)? over? #functionCall | subqueryExpression #subqueryExpressionDefault | OPEN_ROUND_BRACKET base=primaryExpression CLOSE_ROUND_BRACKET diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java index 0590eab315e..55ea8368590 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java @@ -1562,6 +1562,7 @@ public Node visitFunctionCall(SqlBaseParser.FunctionCallContext context) functionCall.distinct = isDistinct(context.setQuant()); functionCall.window = visitIfPresent(context.over(), Window.class).orElse(null); functionCall.group = visitIfPresent(context.within(), Group.class).orElse(null); + functionCall.orderBy = visitCollection(context.sortItem(), SortItem.class); return functionCall; } diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java index 57aaa1af936..a43e9461c29 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java @@ -102,7 +102,10 @@ public String visit(FunctionCall val) String args = visit(val.arguments, ", "); String window = val.window != null ? " OVER (" + visit(val.window) + ")" : ""; String group = val.group != null ? " " + visit(val.group) : ""; - return String.join(".", val.name.parts) + "(" + args + ")" + group + window; + String orderBy = val.orderBy != null && !val.orderBy.isEmpty() + ? " ORDER BY " + visit(val.orderBy, ", ") + : ""; + return String.join(".", val.name.parts) + "(" + args + orderBy + ")" + group + window; } @Override 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 2643bb292bc..762706172b2 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 @@ -315,6 +315,12 @@ public void testWithinGroup() check("SELECT percentile_cont(0.1) WITHIN GROUP (ORDER BY a ASC) FROM myTable"); } + @Test + public void testFunctionCallWithOrder() + { + check("SELECT string_agg(Col1, ', ' ORDER BY Col2 ASC, Col3 DESC) FROM myTable"); + } + @Test public void testNested() { diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure index f412a054db9..da34ebef02c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure @@ -240,6 +240,7 @@ Class meta::external::query::sql::metamodel::FunctionCall extends meta::external <> filter: meta::external::query::sql::metamodel::Expression[0..1]; <> window: meta::external::query::sql::metamodel::Window[0..1]; <> group: meta::external::query::sql::metamodel::Group[0..1]; + <> orderBy: meta::external::query::sql::metamodel::SortItem[*]; } Class meta::external::query::sql::metamodel::SimpleCaseExpression extends meta::external::query::sql::metamodel::Expression 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 42c90cb498a..0ce699dcb50 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 @@ -107,7 +107,7 @@ function meta::external::query::sql::transformation::queryToPure::getPlan( let lambda = $context.lambda()->meta::pure::router::preeval::preval($extensions); - meta::pure::executionPlan::executionPlan($lambda, $mapping, $runtime, $extensions); + trace(| meta::pure::executionPlan::executionPlan($lambda, $mapping, $runtime, $extensions), 'generating plan'); } function meta::external::query::sql::transformation::queryToPure::parameterConstantValue(value:ValueSpecification[1], many:Boolean[1]):Any[0..1] @@ -182,7 +182,7 @@ function meta::external::query::sql::transformation::queryToPure::processRootQue function meta::external::query::sql::transformation::queryToPure::processRootQuery(query: Query[1], context: SqlTransformContext[1]): SqlTransformContext[1] { debug('processRootQuery', $context.debug); - wrapWithFrom($query->cast(@Query)->processQuery($context)); + trace(| wrapWithFrom($query->cast(@Query)->processQuery($context)), 'converting query'); } function <> meta::external::query::sql::transformation::queryToPure::processQuery(query: Query[1], context: SqlTransformContext[1]): SqlTransformContext[1] @@ -305,7 +305,7 @@ function <> meta::external::query::sql::transformation::queryToP walk($expression, t | $t, - f:FunctionCall[1] | if (isExpressionAggregate($f, false, false), | $f, | $f.arguments->map(a | $a->extractAggregatesFromExpression())) + f:FunctionCall[1] | if (isExpressionAggregate($f, false), | $f, | $f.arguments->map(a | $a->extractAggregatesFromExpression())) ) } @@ -491,12 +491,16 @@ function <> meta::external::query::sql::transformation::queryToP ])->cast(@FunctionCall); // we take the first as the map only cares about the argument and we ensure they are the same above - let mapExpression = processMapFunction($functionCalls->at(0), $context); + let aggregationFunctionCall = $functionCalls->at(0); + let processor = aggregateProcessor($aggregationFunctionCall.name); + let adjusted = $processor.preProcess($column.expression, $aggregationFunctionCall); + + let mapExpression = processMapFunctionArgument($adjusted.map, $context); let mapReturnType = $mapExpression.genericType.rawType->toOne(); let mapFunctionType = functionType('row', TDSRow, PureOne, $mapReturnType, ZeroOne); let mapLambda = lambda($mapFunctionType, $mapExpression); - let aggLambda = processAggregationLambda($column.expression, $mapReturnType, $context); + let aggLambda = processAggregationLambda($adjusted.aggregate, $mapReturnType, $context); let aggReturnType = $aggLambda->functionReturnType(); let typeParameters = [^GenericType(rawType = $mapReturnType), $aggReturnType]; @@ -538,9 +542,9 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processAggregationLambda(expression:meta::external::query::sql::metamodel::Expression[1], type:Type[1], context:SqlTransformContext[1]):LambdaFunction[1] { - let expContext = expressionContext(^VariableExpression(genericType = ^GenericType(rawType = $type),name = 'y', multiplicity = PureOne), ^Map()); + let expContext = expressionContext(^VariableExpression(genericType = ^GenericType(rawType = $type),name = 'y', multiplicity = ZeroMany), ^Map()); - let aggExpression = processExpression($expression, ^$expContext(withinAggregate = true), $context); + let aggExpression = processExpression($expression, $expContext, $context); let aggReturnType = $aggExpression.genericType.rawType->toOne(); @@ -569,14 +573,29 @@ function <> meta::external::query::sql::transformation::queryToP assert($window.orderBy->size() <= 1, | 'multiple window sort items not yet supported'); assert($window.windowFrame->isEmpty(), | 'window frame not yet supported'); - let func = processAggregationLambda(^$functionCall(window = []), TDSRow, $context); + let processor = functionProcessor($functionCall.name); + + let func = if ($processor.isAggregate, + | let extacted = $processor->cast(@AggregateFunctionProcessor).preProcess(^$functionCall(window = []), ^$functionCall(window = [])); + let aggregation = processAggregationLambda($extacted.aggregate, Number, $context); + + let type = $aggregation->functionReturnType().rawType->toOne()->normalizeType(); + assertEquals(Number, $type, | 'only numberic aggregations supported in window aggregation expression'); + + let map = $extacted.map->match([ + q:QualifiedNameReference[1] | $q.name.parts->joinStrings(''), + e:meta::external::query::sql::metamodel::Expression[1] | fail('unsupported window aggregation expression') + ]); + sfe(func_String_1__FunctionDefinition_1__TdsOlapAggregation_1_, [iv($map), iv($aggregation)]);, + | let aggregation = processAggregationLambda(^$functionCall(window = []), TDSRow, $context); + sfe(func_FunctionDefinition_1__TdsOlapRank_1_, iv($aggregation));); let partitions = $window.partitions->map(partition | $partition->extractNameFromExpression($context)); let sort = $window.orderBy->map(si | $si->createSortItemFunction($context)); - appendTdsFunc($tds, olapGroupBy_TabularDataSet_1__String_MANY__SortInformation_$0_1$__FunctionDefinition_1__String_1__TabularDataSet_1_, [ - list(iv($partitions)), list(iv($sort)), list(iv($func)), list(iv($name)) + appendTdsFunc($tds, olapGroupBy_TabularDataSet_1__String_MANY__SortInformation_$0_1$__OlapOperation_1__String_1__TabularDataSet_1_, [ + list(iv($partitions)), list(iv($sort)), list($func), list(iv($name)) ]); } @@ -648,16 +667,16 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::isSelectItemAggregate(si: SelectItem[1]):Boolean[1] { - $si->instanceOf(SingleColumn) && isExpressionAggregate($si->cast(@SingleColumn).expression, true, false) + $si->instanceOf(SingleColumn) && isExpressionAggregate($si->cast(@SingleColumn).expression, true) } -function <> meta::external::query::sql::transformation::queryToPure::isExpressionAggregate(e:meta::external::query::sql::metamodel::Expression[0..1], includeParameters:Boolean[1], includeWindow:Boolean[1]):Boolean[1] +function <> meta::external::query::sql::transformation::queryToPure::isExpressionAggregate(e:meta::external::query::sql::metamodel::Expression[0..1], includeParameters:Boolean[1]):Boolean[1] { walk($e, t | $t->exists(v | $v), f:FunctionCall[1] | let functionProcessor = functionProcessor($f.name); - $functionProcessor.isAggregate || ($includeWindow && $functionProcessor.isWindow) || ($includeParameters && $f.arguments->exists(a | $a->isExpressionAggregate($includeParameters, $includeWindow))); + $f.window->isEmpty() && ($functionProcessor.isAggregate || ($includeParameters && $f.arguments->exists(a | $a->isExpressionAggregate($includeParameters)))); ) } @@ -1388,7 +1407,7 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::expressionContext(defaultVar:VariableExpression[0..1], vars:Map[1]):SqlTransformExpressionContext[1] { - let expContext = ^SqlTransformExpressionContext(defaultVar = $defaultVar, varMap = $vars, processFunctionCallAsIdentifier = false, doCastNonPrimitiveColumnAccessor = false, withinAggregate = false); + let expContext = ^SqlTransformExpressionContext(defaultVar = $defaultVar, varMap = $vars, processFunctionCallAsIdentifier = false, doCastNonPrimitiveColumnAccessor = false); } function <> meta::external::query::sql::transformation::queryToPure::createFilter(expression: meta::external::query::sql::metamodel::Expression[1], context: SqlTransformContext[1]):SqlTransformContext[1] @@ -1833,6 +1852,7 @@ function <> meta::external::query::sql::transformation::queryToP debug('processFunctionCall', $context.debug); assert($f.window->isEmpty(), | 'window functions not currently supported'); + assert($f.orderBy->isEmpty(), | 'order by in function calls not currently supported'); if ($expContext.processFunctionCallAsIdentifier, | processFunctionCallAsIdentifier($f, $expContext, $context), @@ -1855,13 +1875,11 @@ function <> meta::external::query::sql::transformation::queryToP { debug('processFunctionCallAsFunction', $context.debug); - let processed = if ($expContext.withinAggregate && isExpressionAggregate($f, false, true), | processAggregateFunctionCall($f), | $f); + let args = $f.arguments->map(a | $a->processExpression($expContext, $context)); - let args = $processed.arguments->map(a | $a->processExpression($expContext, $context)); - - if ($processed.distinct, - | processFunctionCallAsFunction(^$processed(distinct = false, arguments = ^FunctionCall(name = ^QualifiedName(parts = 'distinct'), arguments = $processed.arguments, distinct = false)), ^$expContext(withinAggregate = false), $context), - | functionCall($processed.name, $args, $f, $expContext)); + if ($f.distinct, + | processFunctionCallAsFunction(^$f(distinct = false, arguments = ^FunctionCall(name = ^QualifiedName(parts = 'distinct'), arguments = $f.arguments, distinct = false)), $expContext, $context), + | functionCall($f.name, $args, $f, $expContext)); } function <> meta::external::query::sql::transformation::queryToPure::functionCall(name:QualifiedName[1], args:ValueSpecification[*], f:FunctionCall[1], expContext:SqlTransformExpressionContext[1]):ValueSpecification[1] @@ -1885,6 +1903,19 @@ function meta::external::query::sql::transformation::queryToPure::functionProces $processor->toOne(); } +function meta::external::query::sql::transformation::queryToPure::aggregateProcessor(name:QualifiedName[1]):AggregateFunctionProcessor[1] +{ + assertEquals(1, $name.parts->size(), | 'function name has more than 1 part ' + $name->extractNameFromQualifiedName([])); + aggregateProcessor($name.parts->at(0)); +} + +function meta::external::query::sql::transformation::queryToPure::aggregateProcessor(name:String[1]):AggregateFunctionProcessor[1] +{ + let processor = functionProcessor($name); + assert($processor->instanceOf(AggregateFunctionProcessor), | 'processor for ' + $name + ' is not aggregate processor'); + $processor->cast(@AggregateFunctionProcessor); +} + function <> meta::external::query::sql::transformation::queryToPure::getAggregationArgumentType(args:ValueSpecification[*]):Type[1] { $args->match([ @@ -1896,13 +1927,12 @@ function <> meta::external::query::sql::transformation::queryToP 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 | - let type = getAggregationArgumentType($args); - let genericType = ^GenericType(rawType = $type); - sfe(distinct_T_MANY__T_MANY_, $genericType, $genericType, $args); - }), - processor('min', true, {args, fc, ctx | + //AGGREGATE FUNCTIONS + aggregate('count', count_Any_MANY__Integer_1_), + aggregate('bool_and', and_Boolean_MANY__Boolean_1_), + aggregate('bool_or', or_Boolean_MANY__Boolean_1_), + aggregate('every', and_Boolean_MANY__Boolean_1_), + aggregate('min', [], {args, fc, ctx | let type = getAggregationArgumentType($args); [ @@ -1915,7 +1945,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces pair(DateTime, |sfe(min_DateTime_MANY__DateTime_$0_1$_, $args)) ]->getValue($type, | sfe(min_X_MANY__X_$0_1$_, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $args))->eval(); }), - processor('max', true, {args, fc, ctx | + aggregate('max', [], {args, fc, ctx | let type = getAggregationArgumentType($args); [ @@ -1928,10 +1958,53 @@ function meta::external::query::sql::transformation::queryToPure::functionProces pair(DateTime, |sfe(max_DateTime_MANY__DateTime_$0_1$_, $args)) ]->getValue($type, | sfe(max_X_MANY__X_$0_1$_, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $args))->eval(); }), + aggregate('string_agg', String, {args, fc, ctx | + let func = [ + pair(1, joinStrings_String_MANY__String_1_), + pair(2, joinStrings_String_MANY__String_1__String_1_) + ]->getValue($args->size()); + + sfe($func, $args); + }), + + aggregate('avg', Float, {args, fc, ctx | + let type = getAggregationArgumentType($args); + + let func = [ + pair(Integer, average_Integer_MANY__Float_1_), + pair(Float, average_Float_MANY__Float_1_) + ]->getValue($type, average_Number_MANY__Float_1_); + + sfe($func, $args); + }), + aggregate('percentile_cont', Number, {args, fc, ctx | + processPercentile('percentile_cont', $args, true, $fc, $ctx) + }, percentilePreProcessor_Expression_1__FunctionCall_1__AggregateFunctionPreProcessorWrapper_1_), + aggregate('percentile_disc', Number, {args, fc, ctx | + processPercentile('percentile_disc', $args, false, $fc, $ctx) + }, percentilePreProcessor_Expression_1__FunctionCall_1__AggregateFunctionPreProcessorWrapper_1_), + aggregate('stddev_pop', stdDevPopulation_Number_MANY__Number_1_), + aggregate('stddev_samp', stdDevSample_Number_MANY__Number_1_), + aggregate('stddev', stdDevSample_Number_MANY__Number_1_), + aggregate('sum', Number, {args, fc, ctx | + let type = getAggregationArgumentType($args); + + let func = [ + pair(Integer, sum_Integer_MANY__Integer_1_), + pair(Float, sum_Float_MANY__Float_1_) + ]->getValue($type, sum_Number_MANY__Number_1_); + + sfe($func, $args); + }), + + aggregate('variance', varianceSample_Number_MANY__Number_1_), + aggregate('var_samp', varianceSample_Number_MANY__Number_1_), + aggregate('var_pop', variancePopulation_Number_MANY__Number_1_), //MATH processor('abs', Number, {args, fc, ctx | - let type = getAggregationArgumentType($args); + assert($args->size() == 1, 'incorrect number of args for abs'); + let type = $args->at(0).genericType.rawType->toOne(); let func = [ pair(Integer, abs_Integer_1__Integer_1_), @@ -1945,16 +2018,6 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('asin', asin_Number_1__Float_1_), processor('atan', atan_Number_1__Float_1_), processor('atan2', atan2_Number_1__Number_1__Float_1_), - processor('avg', true, false, Float, {args, fc, ctx | - let type = getAggregationArgumentType($args); - - let func = [ - pair(Integer, average_Integer_MANY__Float_1_), - pair(Float, average_Float_MANY__Float_1_) - ]->getValue($type, average_Number_MANY__Float_1_); - - sfe($func, $args); - }), processor('cbrt', cbrt_Number_1__Float_1_), processor('ceil', ceiling_Number_1__Integer_1_), processor('ceiling', ceiling_Number_1__Integer_1_), @@ -1968,12 +2031,6 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('log', log10_Number_1__Float_1_), processor('mod', rem_Number_1__Number_1__Number_1_), processor('pi', pi__Float_1_), - processor('percentile_cont', true, false, [], {args, fc, ctx | - processPercentile('percentile_cont', $args, true, $fc, $ctx) - }), - processor('percentile_disc', true, false, [], {args, fc, ctx | - processPercentile('percentile_disc', $args, false, $fc, $ctx) - }), processor('power', pow_Number_1__Number_1__Number_1_), processor('radians', toRadians_Number_1__Float_1_), processor('round', Number, {args, fc, ctx | @@ -1984,19 +2041,6 @@ function meta::external::query::sql::transformation::queryToPure::functionProces }), processor('sign', sign_Number_1__Integer_1_), processor('sin', sin_Number_1__Float_1_), - processor('stddev_pop', stdDevPopulation_Number_MANY__Number_1_, true), - processor('stddev_samp', stdDevSample_Number_MANY__Number_1_, true), - processor('stddev', stdDevSample_Number_MANY__Number_1_, true), - processor('sum', true, false, Number, {args, fc, ctx | - let type = getAggregationArgumentType($args); - - let func = [ - pair(Integer, sum_Integer_MANY__Integer_1_), - pair(Float, sum_Float_MANY__Float_1_) - ]->getValue($type, sum_Number_MANY__Number_1_); - - sfe($func, $args); - }), processor('sqrt', sqrt_Number_1__Float_1_), processor('tan', tan_Number_1__Float_1_), processor('trunc', Integer, {args, fc, ctx | @@ -2009,9 +2053,6 @@ function meta::external::query::sql::transformation::queryToPure::functionProces createIfStatement($condition, $truth, $else); }), - processor('variance', varianceSample_Number_MANY__Number_1_, true), - processor('var_samp', varianceSample_Number_MANY__Number_1_, true), - processor('var_pop', variancePopulation_Number_MANY__Number_1_, true), //STRING processor('ascii', ascii_String_1__Integer_1_), @@ -2049,18 +2090,9 @@ function meta::external::query::sql::transformation::queryToPure::functionProces sfe(splitPart_String_$0_1$__String_1__Integer_1__String_$0_1$_, $arguments); }), processor('starts_with', startsWith_String_1__String_1__Boolean_1_), - - processor('string_agg', true, false, String, {args, fc, ctx | - let func = [ - pair(1, joinStrings_String_MANY__String_1_), - pair(2, joinStrings_String_MANY__String_1__String_1_) - ]->getValue($args->size()); - - sfe($func, $args); - }), processor('strpos', indexOf_String_1__String_1__Integer_1_), - processor('substr', false, {args, fc, ctx | processSubstring($args)}), - processor('substring', false, {args, fc, ctx | processSubstring($args)}), + processor('substr', String, {args, fc, ctx | processSubstring($args)}), + processor('substring', String, {args, fc, ctx | processSubstring($args)}), processor('upper', toUpper_String_1__String_1_), //DATE processor('date', Date, {args, fc, ctx | @@ -2107,14 +2139,14 @@ function meta::external::query::sql::transformation::queryToPure::functionProces }), //COLLECTION - processor('coalesce', false, false, [], {args, fc, ctx | + processor('coalesce', [], {args, fc, ctx | let filteredArgs = getNonNullArguments($args); let type = $filteredArgs.genericType->first().rawType; sfe(meta::pure::tds::extensions::firstNotNull_T_MANY__T_$0_1$_, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $filteredArgs->iv()); }), - processor('greatest', false, false, [], {args, fc, ctx | + processor('greatest', [], {args, fc, ctx | let filteredArgs = getNonNullArguments($args); let type = $filteredArgs.genericType->first().rawType; @@ -2123,17 +2155,24 @@ function meta::external::query::sql::transformation::queryToPure::functionProces sfe($func, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $filteredArgs->iv()); }), - processor('least', false, false, [], {args, fc, ctx | + processor('least', [], {args, fc, ctx | let filteredArgs = getNonNullArguments($args); let type = $filteredArgs.genericType->first().rawType; let func = if ($filteredArgs->isEmpty(), | least_X_MANY__X_$0_1$_, | least_X_$1_MANY$__X_1_); sfe($func, ^GenericType(rawType = $type), ^GenericType(rawType = $type), $filteredArgs->iv()); - }), + }), + + processor('distinct', Any, {args, fc, ctx | + let type = getAggregationArgumentType($args); + let genericType = ^GenericType(rawType = $type); + sfe(distinct_T_MANY__T_MANY_, $genericType, $genericType, $args); + }), //FORMAT processor('to_char', String, {args, fc, ctx | + assertEquals(2, $args->size(), 'incorrect number of args for t-_char'); assertEquals(2, $args->size(), 'incorrect number of args for to_char'); let arg = $args->at(0); @@ -2146,15 +2185,15 @@ function meta::external::query::sql::transformation::queryToPure::functionProces }), //WINDOW - processor('row_number', false, true, [], {args, fc, ctx | + window('row_number', [], {args, fc, ctx | let values = $ctx.defaultVar->toOne()->concatenate($args); sfe(meta::pure::functions::math::olap::rowNumber_Any_MANY__Map_1_, ^GenericType(rawType = Map, typeArguments = [^GenericType(rawType = Any), ^GenericType(rawType = Integer)]), [^GenericType(rawType = Any), ^GenericType(rawType = Integer)], $values); }), - processor('dense_rank', false, true, [], {args, fc, ctx | + window('dense_rank', [], {args, fc, ctx | let values = $ctx.defaultVar->toOne()->concatenate($args); sfe(meta::pure::functions::math::olap::denseRank_Any_MANY__Map_1_, ^GenericType(rawType = Map, typeArguments = [^GenericType(rawType = Any), ^GenericType(rawType = Integer)]), [^GenericType(rawType = Any), ^GenericType(rawType = Integer)], $values); }), - processor('rank', false, true, [], {args, fc, ctx | + window('rank', [], {args, fc, ctx | let values = $ctx.defaultVar->toOne()->concatenate($args); sfe(meta::pure::functions::math::olap::rank_Any_MANY__Map_1_, ^GenericType(rawType = Map, typeArguments = [^GenericType(rawType = Any), ^GenericType(rawType = Integer)]), [^GenericType(rawType = Any), ^GenericType(rawType = Integer)], $values); }) @@ -2903,6 +2942,7 @@ function <> meta::external::query::sql::transformation::queryToP nullOrSfe($func, [$left, $right]); } +//this walk allows user to accumulate a result from walking through the expressions function <> meta::external::query::sql::transformation::queryToPure::walk(e:meta::external::query::sql::metamodel::Expression[0..1], accumulator:Function<{T[*]->T[m]}>[1], extras:Function<{Nil[1]->T[m]}>[1]):T[m] { let result = $e->match($extras->concatenate([ @@ -2946,6 +2986,49 @@ function <> meta::external::query::sql::transformation::queryToP $expressions->map(e | $e->walk($accumulator, $extras)); } +//this walk function walks all expressions and then allows caller to pass in matches to then perform some operation on the expression +function <> meta::external::query::sql::transformation::queryToPure::walk(e:meta::external::query::sql::metamodel::Expression[0..1], extras:Function<{Nil[1]->meta::external::query::sql::metamodel::Expression[1]}>[*]):meta::external::query::sql::metamodel::Expression[0..1] +{ + $e->match([ + a:ArithmeticExpression[1] | ^$a(left = $a.left->walk($extras)->toOne(), right = $a.right->walk($extras)->toOne()), + b:BetweenPredicate[1] | ^$b(min = $b.min->walk($extras)->toOne(), max = $b.max->walk($extras)->toOne(), value = $b.value->walk($extras)->toOne()), + c:Cast[1] | ^$c(expression = $c.expression->walk($extras)->toOne()), + c:ComparisonExpression[1] | ^$c(left = $c.left->walk($extras)->toOne(), right = $c.right->walk($extras)->toOne()), + e:Extract[1] | ^$e(expression = $e.expression->walk($extras)->toOne()), + f:FunctionCall[1] | + let window = if ($f.window->isNotEmpty(), | + let w = $f.window->toOne(); + ^$w( + partitions = $w.partitions->map(p | $p->walk($extras)), + orderBy = $w.orderBy->map(o | ^$o(sortKey = $o.sortKey->walk($extras)->toOne())));, | []); + + let group = if ($f.group->isNotEmpty(), | + let g = $f.group->toOne(); + let o = $g.orderBy; + ^$g(orderBy = ^$o(sortKey = $o.sortKey->walk($extras)->toOne()));, | []); + + ^$f(window = $window, group = $group, arguments = $f.arguments->map(a | $a->walk($extras)));, + i:InListExpression[1] | ^$i(values = $i.values->map(v | $v->walk($extras))), + i:IsNotNullPredicate[1] | ^$i(value = $i.value->walk($extras)->toOne()), + i:IsNullPredicate[1] | ^$i(value = $i.value->walk($extras)->toOne()), + l:LikePredicate[1] | ^$l(value = $l.value->walk($extras)->toOne(), pattern = $l.pattern->walk($extras)->toOne()), + l:LogicalBinaryExpression[1] | ^$l(left = $l.left->walk($extras)->toOne(), right = $l.right->walk($extras)->toOne()), + n:NegativeExpression[1] | ^$n(value = $n.value->walk($extras)->toOne()), + n:NotExpression[1] | ^$n(value = $n.value->walk($extras)->toOne()), + s:SimpleCaseExpression[1] | ^$s( + operand = $s.operand->walk($extras)->toOne(), + defaultValue = $s.defaultValue->walk($extras), + whenClauses = $s.whenClauses->map(wc | ^$wc(operand = $wc.operand->walk($extras)->toOne(), result = $wc.result->walk($extras)->toOne())) + ), + s:SearchedCaseExpression[1] | ^$s( + defaultValue = $s.defaultValue->walk($extras), + whenClauses = $s.whenClauses->map(wc | ^$wc(operand = $wc.operand->walk($extras)->toOne(), result = $wc.result->walk($extras)->toOne())) + ), + e:meta::external::query::sql::metamodel::Expression[1] | $e + ])->match($extras->concatenate([ + e:meta::external::query::sql::metamodel::Expression[1] | $e + ])->toOneMany()); +} function meta::external::query::sql::transformation::queryToPure::appendTdsFunc(lambda:LambdaFunction[1], execFunc: meta::pure::metamodel::function::Function[1], args: List[*]): LambdaFunction[1] { @@ -3001,6 +3084,11 @@ function <> meta::external::query::sql::transformation::queryToP $v->evaluateAndDeactivate().multiplicity == ZeroOne; } +function <> meta::external::query::sql::transformation::queryToPure::isZeroMany(v:ValueSpecification[1]):Boolean[1] +{ + $v->evaluateAndDeactivate().multiplicity == ZeroMany; +} + function <> meta::external::query::sql::transformation::queryToPure::sfe(func: meta::pure::metamodel::function::Function[1], pvs:ValueSpecification[*]):SimpleFunctionExpression[1] { @@ -3022,9 +3110,13 @@ 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(), - | sfe(toOne_T_MANY__T_1_, $p.second->evaluateAndDeactivate().genericType, [], PureOne, $p.second->evaluateAndDeactivate()), - | $p.second->evaluateAndDeactivate())); + let parameters = $zipped->map(p | + + [ + pair($p.first.multiplicity->hasLowerBound() && $p.second->isZeroOne(), | sfe(toOne_T_MANY__T_1_, $p.second->evaluateAndDeactivate().genericType, [], PureOne, $p.second->evaluateAndDeactivate())), + pair($p.first.multiplicity->hasLowerBound() && $p.second->isZeroMany(), | sfe(toOneMany_T_MANY__T_$1_MANY$_, $p.second->evaluateAndDeactivate().genericType, [], OneMany, $p.second->evaluateAndDeactivate())) + ]->getValue(true, | $p.second->evaluateAndDeactivate())->eval(); + ); ^SimpleFunctionExpression( func = $func, @@ -3222,11 +3314,10 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte ); }: LambdaFunction[1]; source(type:String[1], arguments:SQLSourceArgument[*]){ - let source = $this.sources->filter(s | $s.matches($type, $arguments)); + let source = $this.sources->filter(s | $s.matches($type, $arguments))->first(); assertNotEquals(0, $source->size(), 'No source found for type ' + $type); - assertFalse($source->size() > 1, 'Multiple sources found for type ' + $type); - + $source->toOne(); }:SQLSource[1]; } @@ -3238,7 +3329,6 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformExpre varMap:Map[1]; processFunctionCallAsIdentifier: Boolean[1]; doCastNonPrimitiveColumnAccessor: Boolean[1]; - withinAggregate: Boolean[1]; type: Type[0..1]; var() { @@ -3253,38 +3343,87 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformExpre }:VariableExpression[1]; } +Class meta::external::query::sql::transformation::queryToPure::AggregateFunctionProcessor extends FunctionProcessor +{ + preProcessor: Function<{meta::external::query::sql::metamodel::Expression[1], meta::external::query::sql::metamodel::FunctionCall[1] -> AggregateFunctionPreProcessorWrapper[1]}>[1]; + preProcess(column:meta::external::query::sql::metamodel::Expression[1], aggregate:meta::external::query::sql::metamodel::FunctionCall[1]){ + $this.preProcessor->eval($column, $aggregate) + }:AggregateFunctionPreProcessorWrapper[1]; +} + +Class meta::external::query::sql::transformation::queryToPure::WindowFunctionProcessor extends FunctionProcessor +{ +} + Class meta::external::query::sql::transformation::queryToPure::FunctionProcessor { name: String[1]; transform: Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1] ->ValueSpecification[1]}>[1]; - isAggregate: Boolean[1]; - isWindow: Boolean[1]; returnType: Type[0..1]; + isAggregate(){ + $this->instanceOf(AggregateFunctionProcessor); + }:Boolean[1]; + isWindow(){ + $this->instanceOf(WindowFunctionProcessor) + }:Boolean[1]; } function <> meta::external::query::sql::transformation::queryToPure::processor(name:String[1], func:Function[1]):FunctionProcessor[1] { - processor($name, false, false, $func->functionReturnType().rawType, simpleFunctionTransform($func)); + processor($name, $func->functionReturnType().rawType, simpleFunctionTransform($func)); } -function <> meta::external::query::sql::transformation::queryToPure::processor(name:String[1], func:Function[1], isAggregate:Boolean[1]):FunctionProcessor[1] +function <> meta::external::query::sql::transformation::queryToPure::processor(name:String[1], returnType:Type[0..1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1]):FunctionProcessor[1] { - processor($name, $isAggregate, false, $func->functionReturnType().rawType, simpleFunctionTransform($func)); + ^FunctionProcessor(name = $name, returnType = $returnType, transform = $transform); } -function <> meta::external::query::sql::transformation::queryToPure::processor(name:String[1], isAggregate:Boolean[1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1]):FunctionProcessor[1] +function <> meta::external::query::sql::transformation::queryToPure::aggregate(name:String[1], func:Function[1]):AggregateFunctionProcessor[1] { - processor($name, $isAggregate, false, [], $transform); + aggregate($name, $func->functionReturnType().rawType, simpleFunctionTransform($func)); } -function <> meta::external::query::sql::transformation::queryToPure::processor(name:String[1], returnType:Type[0..1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1]):FunctionProcessor[1] +function <> meta::external::query::sql::transformation::queryToPure::aggregate(name:String[1], returnType:Type[0..1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1]):AggregateFunctionProcessor[1] +{ + aggregate($name, $returnType, $transform, defaultAggregatePreProcessor_Expression_1__FunctionCall_1__AggregateFunctionPreProcessorWrapper_1_); +} + +function <> meta::external::query::sql::transformation::queryToPure::aggregate(name:String[1], returnType:Type[0..1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1], preProcessor:Function<{meta::external::query::sql::metamodel::Expression[1], meta::external::query::sql::metamodel::FunctionCall[1] -> AggregateFunctionPreProcessorWrapper[1]}>[1]):AggregateFunctionProcessor[1] +{ + ^AggregateFunctionProcessor(name = $name, returnType = $returnType, transform = $transform, preProcessor = $preProcessor); +} + +function <> meta::external::query::sql::transformation::queryToPure::window(name:String[1], returnType:Type[0..1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1]):WindowFunctionProcessor[1] { - processor($name, false, false, $returnType, $transform); + ^WindowFunctionProcessor(name = $name, returnType = $returnType, transform = $transform); } -function <> meta::external::query::sql::transformation::queryToPure::processor(name:String[1], isAggregate:Boolean[1], isWindow:Boolean[1], returnType:Type[0..1], transform:Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1]):FunctionProcessor[1] +Class meta::external::query::sql::transformation::queryToPure::AggregateFunctionPreProcessorWrapper { - ^FunctionProcessor(name = $name, isAggregate = $isAggregate, isWindow = $isWindow, returnType = $returnType, transform = $transform); + map:meta::external::query::sql::metamodel::Expression[0..1]; + aggregate:meta::external::query::sql::metamodel::Expression[1]; +} + +function meta::external::query::sql::transformation::queryToPure::percentilePreProcessor(column:meta::external::query::sql::metamodel::Expression[1], aggregate:FunctionCall[1]):AggregateFunctionPreProcessorWrapper[1] +{ + assert($aggregate.group->isNotEmpty(), 'percentile must be within group'); + assert($aggregate.orderBy->isEmpty(), 'aggregate order by not supported'); + + ^AggregateFunctionPreProcessorWrapper( + map = $aggregate.group.orderBy.sortKey->toOne(), + aggregate = $column + ); +} + +function meta::external::query::sql::transformation::queryToPure::defaultAggregatePreProcessor(column:meta::external::query::sql::metamodel::Expression[1], aggregate:FunctionCall[1]):AggregateFunctionPreProcessorWrapper[1] +{ + assert($aggregate.group->isEmpty(), 'aggregate within group not supported'); + assert($aggregate.orderBy->isEmpty(), 'aggregate order by not supported'); + + ^AggregateFunctionPreProcessorWrapper( + map = $aggregate.arguments->first(), + aggregate = $column->replaceAggregateArguments() + ); } function meta::external::query::sql::transformation::queryToPure::simpleFunctionTransform(func:Function[1]):Function<{ValueSpecification[*], FunctionCall[1], SqlTransformExpressionContext[1]->ValueSpecification[1]}>[1] @@ -3292,6 +3431,22 @@ function meta::external::query::sql::transformation::queryToPure::simpleFunction {args:ValueSpecification[*], f:FunctionCall[1], c:SqlTransformExpressionContext[1] | nullOrSfe($func, $args)} } +function meta::external::query::sql::transformation::queryToPure::replaceAggregateArguments(column:meta::external::query::sql::metamodel::Expression[1]):meta::external::query::sql::metamodel::Expression[1] +{ + $column->walk([ + f:FunctionCall[1] | + let processor = $f.name->functionProcessor(); + let var = ^QualifiedNameReference(name=^QualifiedName()); + if ($processor.isAggregate, + | ^$f(arguments = $f.arguments->match([ + a:meta::external::query::sql::metamodel::Expression[0..1] | $var, + a:meta::external::query::sql::metamodel::Expression[1..*] | $var->concatenate($a->tail()), + a:meta::external::query::sql::metamodel::Expression[*] | fail('aggregation type currently not supported'); []; + ])), + | $f); + ])->toOne() +} + //MISC function meta::external::query::sql::transformation::queryToPure::getValue(pairs : Pair[*], key : X[1]) : Y[1] { @@ -3322,6 +3477,11 @@ function meta::external::query::sql::transformation::queryToPure::getParameters( ]); } +function meta::external::query::sql::transformation::queryToPure::trace(func:Function<{->V[m]}>[1], name:String[1]):V[m] +{ + meta::pure::functions::tracing::traceSpan($func, 'Legend SQL: ' + $name); +} + function meta::external::query::sql::transformation::queryToPure::debug(a:String[1], debug:DebugContext[1]):Any[0] { debug({|$a}, $debug) 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 cd8787fe0e7..12b8850ab1a 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 @@ -760,12 +760,16 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testGroupByFunctions():Boolean[1] { - test('SELECT count(Integer) AS "count", count(DISTINCT Integer) AS "distinctCount", SUM(Integer) AS "sum", avg(Integer) AS "avg", ' + - 'stddev_pop(Integer) AS "stdDevPop", stddev_samp(Integer) AS "stdDevSamp", stddev(Integer) AS "stdDev", ' + - 'var_pop(Integer) AS "variancePop", var_samp(Integer) AS "varianceSamp", variance(Integer) AS "variance", ' + - 'min(Integer) AS "minInt", min(StrictDate) AS "minDate", min(String) AS "minString", ' + - 'max(Integer) AS "maxInt", max(StrictDate) AS "maxDate", max(String) AS "maxString", ' + - 'string_agg(String) AS "stringAgg", string_agg(cast(Integer AS VARCHAR), \' \') AS "stringAgg2" FROM service."/service/service1" GROUP BY String', + test('SELECT ' + + 'count(Integer) AS "count", count(DISTINCT Integer) AS "distinctCount", SUM(Integer) AS "sum", avg(Integer) AS "avg", ' + + 'stddev_pop(Integer) AS "stdDevPop", stddev_samp(Integer) AS "stdDevSamp", stddev(Integer) AS "stdDev", ' + + 'var_pop(Integer) AS "variancePop", var_samp(Integer) AS "varianceSamp", variance(Integer) AS "variance", ' + + 'min(Integer) AS "minInt", min(StrictDate) AS "minDate", min(String) AS "minString", ' + + 'max(Integer) AS "maxInt", max(StrictDate) AS "maxDate", max(String) AS "maxString", ' + + 'string_agg(String) AS "stringAgg", string_agg(cast(Integer AS VARCHAR), \' \') AS "stringAgg2", ' + + 'bool_and(Boolean) AS "boolAnd", bool_and(Integer > 1) AS "boolAndExp", ' + + 'every(Boolean) AS "every", every(Integer > 1) AS "everyExp" ' + + 'FROM service."/service/service1" GROUP BY String', {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], @@ -788,8 +792,13 @@ function <> meta::external::query::sql::transformation::queryToPure:: agg('maxDate', row | $row.getStrictDate('StrictDate'), y | $y->max()), agg('maxString', row | $row.getString('String'), y | $y->max()), agg('stringAgg', row | $row.getString('String'), y | $y->joinStrings()), - agg('stringAgg2', row | $row.getInteger('Integer')->toString(), y | $y->joinStrings(' ')) - ])->restrict(['count', 'distinctCount', 'sum', 'avg', 'stdDevPop', 'stdDevSamp', 'stdDev', 'variancePop', 'varianceSamp', 'variance', 'minInt', 'minDate', 'minString', 'maxInt', 'maxDate', 'maxString', 'stringAgg', 'stringAgg2']) + agg('stringAgg2', row | $row.getInteger('Integer')->toString(), y | $y->joinStrings(' ')), + agg('boolAnd', row | $row.getBoolean('Boolean'), y | $y->and()), + agg('boolAndExp', row | $row.getInteger('Integer') > 1, y | $y->and()), + agg('every', row | $row.getBoolean('Boolean'), y | $y->and()), + agg('everyExp', row | $row.getInteger('Integer') > 1, y | $y->and()) + ])->restrict(['count', 'distinctCount', 'sum', 'avg', 'stdDevPop', 'stdDevSamp', 'stdDev', 'variancePop', 'varianceSamp', 'variance', 'minInt', 'minDate', 'minString', + 'maxInt', 'maxDate', 'maxString', 'stringAgg', 'stringAgg2', 'boolAnd', 'boolAndExp', 'every', 'everyExp']) }, false) } @@ -1972,7 +1981,8 @@ function <> meta::external::query::sql::transformation::queryToPure:: 'SELECT String AS "string", Integer, ' + 'row_number() OVER (PARTITION BY String ORDER BY Integer ASC) AS "ROW", ' + 'dense_rank() OVER (PARTITION BY String ORDER BY Integer DESC) AS "DENSE RANK", ' + - 'rank() OVER (PARTITION BY String ORDER BY Integer ASC) AS "RANK" ' + + 'rank() OVER (PARTITION BY String ORDER BY Integer ASC) AS "RANK", ' + + 'max(Integer) OVER (PARTITION BY String ORDER BY String ASC) AS "MAX" ' + 'FROM service."/service/service1"', {| @@ -1983,10 +1993,11 @@ function <> meta::external::query::sql::transformation::queryToPure:: ->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') - ->restrict(['string', 'Integer', 'ROW', 'DENSE RANK', 'RANK']) + ->olapGroupBy(['String'], asc('Integer'), func(y | $y->meta::pure::functions::math::olap::rowNumber()), 'ROW') + ->olapGroupBy(['String'], desc('Integer'), func(y | $y->meta::pure::functions::math::olap::denseRank()), 'DENSE RANK') + ->olapGroupBy(['String'], asc('Integer'), func(y | $y->meta::pure::functions::math::olap::rank()), 'RANK') + ->olapGroupBy(['String'], asc('String'), func('Integer', y | $y->max()), 'MAX') + ->restrict(['string', 'Integer', 'ROW', 'DENSE RANK', 'RANK', 'MAX']) }, false) } @@ -2009,9 +2020,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | toUpper($row.getString('String')), 'upper(String)'), col(row:TDSRow[1] | year($row.getStrictDate('StrictDate')) + 10, 'EXTRACT(\'year\' FROM StrictDate) + 10') ]) - ->olapGroupBy(['upper(String)'], asc('EXTRACT(\'year\' FROM StrictDate) + 10'), 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') + ->olapGroupBy(['upper(String)'], asc('EXTRACT(\'year\' FROM StrictDate) + 10'), func(y | $y->meta::pure::functions::math::olap::rowNumber()), 'ROW') + ->olapGroupBy(['String'], desc('Integer'), func(y | $y->meta::pure::functions::math::olap::denseRank()), 'DENSE RANK') + ->olapGroupBy(['String'], asc('Integer'), func(y | $y->meta::pure::functions::math::olap::rank()), 'RANK') ->restrict(['String', 'ABS', 'ROW', 'DENSE RANK', 'RANK']) }, false) } 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 b2186f6babc..2cb6410e788 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 @@ -100,6 +100,10 @@ org.finos.legend.engine legend-engine-xt-sql-providers-core + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + 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 74bf4bbf455..00f80b9a45a 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 @@ -15,6 +15,8 @@ package org.finos.legend.engine.query.sql.api; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.block.function.Function3; @@ -52,6 +54,7 @@ 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.utils.TraceUtils; 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; @@ -76,6 +79,7 @@ import java.lang.reflect.Method; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import static org.finos.legend.engine.plan.generation.PlanGenerator.transformExecutionPlan; @@ -83,6 +87,8 @@ public class SQLExecutor { private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(SQLExecutor.class); + private static final ObjectMapper OBJECT_MAPPER = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + private final ModelManager modelManager; private final PlanExecutor planExecutor; private final Function> routerExtensions; @@ -142,7 +148,7 @@ public Result execute(Query query, String user, SQLContext context, MutableList< MetricsHandler.observe("execute", start, System.currentTimeMillis()); return result; - }, context, profiles); + }, "execute", context, profiles); } public Lambda lambda(Query query, SQLContext context, MutableList profiles) @@ -154,12 +160,12 @@ public Lambda lambda(Query query, SQLContext context, MutableList return transformLambda(lambda, pureModel); }, (sources, extensions, pureModel) -> core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_rootContext_SQLSource_MANY__Extension_MANY__SqlTransformContext_1_(sources, extensions, pureModel.getExecutionSupport())._scopeWithFrom(false), - context, profiles); + "lambda", context, profiles); } public SingleExecutionPlan plan(Query query, SQLContext context, MutableList profiles) { - return process(query, (transformedContext, pureModel, sources) -> transformExecutionPlan(planResult(transformedContext, pureModel, sources)._plan(), pureModel, PureClientVersions.production, profiles, routerExtensions.apply(pureModel), transformers), context, profiles); + return process(query, (transformedContext, pureModel, sources) -> transformExecutionPlan(planResult(transformedContext, pureModel, sources)._plan(), pureModel, PureClientVersions.production, profiles, routerExtensions.apply(pureModel), transformers), "plan", context, profiles); } public Schema schema(Query query, MutableList profiles) @@ -169,7 +175,7 @@ public Schema schema(Query query, MutableList profiles) { 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()); return new MetamodelToProtocolTranslator().translate(schema); - }, context, profiles); + }, "schema", context, profiles); } private Root_meta_external_query_sql_transformation_queryToPure_PlanGenerationResult planResult(Root_meta_external_query_sql_transformation_queryToPure_SqlTransformContext transformedContext, PureModel pureModel, RichIterable sources) @@ -177,32 +183,39 @@ private Root_meta_external_query_sql_transformation_queryToPure_PlanGenerationRe return core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_getPlanResult_SqlTransformContext_1__SQLSource_MANY__Extension_MANY__PlanGenerationResult_1_(transformedContext, sources, routerExtensions.apply(pureModel), pureModel.getExecutionSupport()); } - private T process(Query query, Function3, T> func, SQLContext context, MutableList profiles) + private T process(Query query, Function3, T> func, String name, SQLContext context, MutableList profiles) { - return process(query, func, (sources, extensions, pureModel) -> core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_rootContext_SQLSource_MANY__Extension_MANY__SqlTransformContext_1_(sources, extensions, pureModel.getExecutionSupport()), context, profiles); + return process(query, func, (sources, extensions, pureModel) -> core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_rootContext_SQLSource_MANY__Extension_MANY__SqlTransformContext_1_(sources, extensions, pureModel.getExecutionSupport()), name, context, profiles); } private T process(Query query, Function3, T> func, Function3, RichIterable, PureModel, Root_meta_external_query_sql_transformation_queryToPure_SqlTransformContext> transformContextFunc, + String name, SQLContext context, MutableList profiles) { - Pair, PureModelContext> sqlSourcesAndPureModel = getSourcesAndModel(query, context, profiles); - RichIterable sources = sqlSourcesAndPureModel.getOne(); - PureModelContext pureModelContext = sqlSourcesAndPureModel.getTwo(); + return TraceUtils.trace(name, span -> + { + span.setTag("queryHash", hash(query)); + + Pair, PureModelContext> sqlSourcesAndPureModel = getSourcesAndModel(query, context, profiles); + RichIterable sources = sqlSourcesAndPureModel.getOne(); + PureModelContext pureModelContext = sqlSourcesAndPureModel.getTwo(); - PureModel pureModel = modelManager.loadModel(pureModelContext, PureClientVersions.production, profiles, ""); + PureModel pureModel = modelManager.loadModel(pureModelContext, PureClientVersions.production, profiles, ""); - Root_meta_external_query_sql_metamodel_Query compiledQuery = new ProtocolToMetamodelTranslator().translate(query, pureModel); + Root_meta_external_query_sql_metamodel_Query compiledQuery = new ProtocolToMetamodelTranslator().translate(query, pureModel); - RichIterable compiledSources = new SQLSourceTranslator().translate(sources, pureModel); - LOGGER.info("{}", new LogInfo(profiles, LoggingEventType.GENERATE_PLAN_START)); + RichIterable compiledSources = new SQLSourceTranslator().translate(sources, pureModel); + LOGGER.info("{}", new LogInfo(profiles, LoggingEventType.GENERATE_PLAN_START)); - Root_meta_external_query_sql_transformation_queryToPure_SqlTransformContext transformedContext = core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_processRootQuery_Query_1__SqlTransformContext_1__SqlTransformContext_1_( - compiledQuery, transformContextFunc.value(compiledSources, routerExtensions.apply(pureModel), pureModel), pureModel.getExecutionSupport()); + Root_meta_external_query_sql_transformation_queryToPure_SqlTransformContext transformedContext = core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_processRootQuery_Query_1__SqlTransformContext_1__SqlTransformContext_1_( + compiledQuery, transformContextFunc.value(compiledSources, routerExtensions.apply(pureModel), pureModel), pureModel.getExecutionSupport()); + + return func.value(transformedContext, pureModel, compiledSources); + }); - return func.value(transformedContext, pureModel, compiledSources); } private Pair, PureModelContext> getSourcesAndModel(Query query, SQLContext context, MutableList profiles) @@ -289,4 +302,16 @@ public Object transformToVersionedModel(FunctionDefinition lambda, String ver throw new RuntimeException(e); } } -} + + private Integer hash(Query query) + { + try + { + return Objects.hash(OBJECT_MAPPER.writeValueAsString(query)); + } + catch (JsonProcessingException e) + { + return null; + } + } +} \ No newline at end of file From 643b441a9b8c43b6bbcd885a4ce30a4f6612d009 Mon Sep 17 00:00:00 2001 From: horbe Date: Tue, 28 Nov 2023 09:46:53 -0500 Subject: [PATCH 11/54] Update GraphQL extends directive to include class argument, include StrictDate in GraphQL SDL tests (#2480) * Update simpleTest.pure * Update simpleTest.pure * Update bindingCommon.pure * Update simpleTest.pure * Update simpleTest.pure --- .../binding/bindingCommon.pure | 4 ++-- .../binding/fromPure/sdl/tests/simpleTest.pure | 18 +++++++++++++----- .../binding/toPure/sdl/tests/simpleTest.pure | 6 +++++- 3 files changed, 20 insertions(+), 8 deletions(-) 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 7986292093f..43dc5f1a014 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 @@ -76,5 +76,5 @@ function meta::external::query::graphQL::binding::temporalityToDirectives(): Map function meta::external::query::graphQL::binding::hierarchyDirective(): DirectiveDefinition[1] { - ^DirectiveDefinition(name = 'extends', typeSystemLocation = [TypeSystemDirectiveLocation.OBJECT, TypeSystemDirectiveLocation.INPUT_OBJECT]); -} \ No newline at end of file + ^DirectiveDefinition(name = 'extends', argumentDefinitions = [^InputValueDefinition(name = 'class', type = ^NamedTypeReference(nullable = false, name = 'String'))], typeSystemLocation = [TypeSystemDirectiveLocation.OBJECT, TypeSystemDirectiveLocation.INPUT_OBJECT]); +} 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 44d469792c8..d4cbbf220c9 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 @@ -47,6 +47,7 @@ Class meta::external::query::graphQL::binding::fromPure::sdl::tests::model::Clas date: Date[1]; datetime: DateTime[1]; decimal: Decimal[1]; + strictDate: StrictDate[1]; } Class <> meta::external::query::graphQL::binding::fromPure::sdl::tests::model::MutationPrimitive @@ -178,11 +179,14 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t ' date: Date!\n' + ' datetime: DateTime!\n' + ' decimal: BigDecimal!\n' + + ' strictDate: StrictDate!\n' + '}\n' + '\n' + 'scalar Date\n' + '\n' + - 'scalar DateTime', $res); + 'scalar DateTime\n' + + '\n' + + 'scalar StrictDate', $res); } function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testNonBuiltInPrimitiveTypesAreNotDuplicated():Boolean[1] @@ -200,6 +204,7 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t ' date: Date!\n' + ' datetime: DateTime!\n' + ' decimal: BigDecimal!\n' + + ' strictDate: StrictDate!\n' + '}\n' + '\n' + 'input ClassWithPrimitiveTypesInput {\n' + @@ -210,6 +215,7 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t ' date: Date!\n' + ' datetime: DateTime!\n' + ' decimal: BigDecimal!\n' + + ' strictDate: StrictDate!\n' + '}\n' + '\n' + 'scalar Date\n' + @@ -220,6 +226,8 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t ' upsertClass(class: ClassWithPrimitiveTypesInput!): ClassWithPrimitiveTypes\n' + '}\n' + '\n' + + 'scalar StrictDate\n' + + '\n' + 'schema {\n' + ' mutation : MutationPrimitive\n' + '}', $res); @@ -265,7 +273,7 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t '\n' + 'scalar StrictDate\n' + '\n' + - 'directive @extends on OBJECT | INPUT_OBJECT', + 'directive @extends(class: String!) on OBJECT | INPUT_OBJECT', $res); } @@ -313,7 +321,7 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t '\n' + 'scalar StrictDate\n' + '\n' + - 'directive @extends on OBJECT | INPUT_OBJECT', + 'directive @extends(class: String!) on OBJECT | INPUT_OBJECT', $res); } @@ -349,7 +357,7 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t ' members: [Employee!]!\n' + '}\n' + '\n' + - 'directive @extends on OBJECT | INPUT_OBJECT', + 'directive @extends(class: String!) on OBJECT | INPUT_OBJECT', $res); } @@ -414,7 +422,7 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t ' members: [EmployeeInput!]!\n' + '}\n' + '\n' + - 'directive @extends on OBJECT | INPUT_OBJECT\n' + + 'directive @extends(class: String!) on OBJECT | INPUT_OBJECT\n' + '\n' + 'schema {\n' + ' query : QueryHierarchy\n' + 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 1f34e75abd9..f434f7e3a40 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 @@ -172,6 +172,7 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes ' date: Date!\n' + ' datetime: DateTime!\n' + ' decimal: BigDecimal!\n' + + ' strictDate: StrictDate!\n' + '}\n' + '\n' + 'scalar Date\n' + @@ -179,6 +180,8 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes 'scalar DateTime\n' + '\n' + 'scalar BigDecimal\n' + + '\n' + + 'scalar StrictDate\n' + '}#', 'meta::external::query::graphQL::metamodel::sql' ); @@ -193,6 +196,7 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes ' date : Date[1];\n' + ' datetime : DateTime[1];\n' + ' decimal : Decimal[1];\n' + + ' strictDate : StrictDate[1];\n' + '}', $pureTypes); } @@ -511,4 +515,4 @@ function <> meta::external::query::graphQL::binding::toPure::sdl ->sortBy(t | $t->elementToPath()) ->map(t | $t->meta::pure::metamodel::serialization::grammar::printType()) ->joinStrings('\n\n'); -} \ No newline at end of file +} From c1646515dba35f4a22161544303704c44a1728fc Mon Sep 17 00:00:00 2001 From: Mateusz Klatt Date: Tue, 28 Nov 2023 17:59:55 +0100 Subject: [PATCH 12/54] change tokens - do not mutate input map, do not cache output object type (#2479) * change tokens - do not mutate input map, do not cache output object type * fix issue with dependency plugin analyzer in changetoken pure module * refactor unit tests --- .../generation/GenerateCast2Test.java | 50 +-- .../generation/GenerateCast3Test.java | 80 ++--- .../generation/GenerateCast4Test.java | 80 ++--- .../GenerateCastBooleanStringTest.java | 39 +-- .../generation/GenerateCastBooleanTest.java | 39 +-- .../generation/GenerateCastChainTest.java | 38 +-- .../generation/GenerateCastCustomMapTest.java | 39 +-- .../GenerateCastCustomNestedTest.java | 39 +-- .../GenerateCastCustomObjectTest.java | 39 +-- ...GenerateCastCustomPrimitiveStringTest.java | 39 +-- .../GenerateCastCustomPrimitiveTest.java | 39 +-- .../generation/GenerateCastCustomTest.java | 39 +-- .../GenerateCastDoubleStringTest.java | 39 +-- .../generation/GenerateCastDoubleTest.java | 39 +-- .../generation/GenerateCastFromJsonTest.java | 52 +--- .../GenerateCastFromVersionsTest.java | 53 +--- .../GenerateCastIntegerStringTest.java | 39 +-- .../GenerateCastMoveExtractTest.java | 26 +- .../GenerateCastMoveNestedTest.java | 109 ++----- .../generation/GenerateCastMoveTest.java | 76 ++--- .../generation/GenerateCastRemoveTest.java | 51 +-- ...nerateCastRenameFieldRenamedClassTest.java | 293 ++++++++++++++++++ .../GenerateCastRenameNestedPropertyTest.java | 120 ++----- .../GenerateCastRenamePropertyTest.java | 120 ++----- .../generation/GenerateCastRenameTest.java | 120 ++----- ...nerateCastRenamedClassRenameFieldTest.java | 293 ++++++++++++++++++ .../GenerateCastRenamedClassTest.java | 53 +--- .../GenerateCastStringQuotesTest.java | 39 +-- .../generation/GenerateCastStringTest.java | 39 +-- .../generation/GenerateCastTest.java | 51 +-- .../generation/GenerateCastTestBase.java | 66 +++- .../generation/GenerateCastUtilTest.java | 18 +- .../legend-engine-xt-changetoken-pure/pom.xml | 20 ++ .../cast_generation.pure | 85 +++-- .../changetoken_test.pure | 7 - .../changetoken/test/Test_Pure_Suite.java | 32 ++ 36 files changed, 1154 insertions(+), 1246 deletions(-) create mode 100644 legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameFieldRenamedClassTest.java create mode 100644 legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassRenameFieldTest.java create mode 100644 legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/test/java/org/finos/legend/engine/changetoken/test/Test_Pure_Suite.java diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast2Test.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast2Test.java index 4cd128b3187..a2db314b027 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast2Test.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast2Test.java @@ -15,13 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.util.Map; public class GenerateCast2Test extends GenerateCastTestBase { @@ -63,23 +61,19 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - String input = "{\n" + - " \"version\": \"ftdm:abcdefg123\",\n" + - " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + - " \"array\": [\n" + - " {\n" + - " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + - " \"existingValue\": \"someValue\",\n" + - " \"innerObject\": {\n" + - " \"@type\": \"meta::pure::changetoken::tests::SampleClass\"\n" + - " }\n" + - " }\n" + - " ]\n" + - "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + expect(upcast("{\n" + + " \"version\": \"ftdm:abcdefg123\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + + " \"array\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + + " \"existingValue\": \"someValue\",\n" + + " \"innerObject\": {\n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\"\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n"), "{\n" + " \"version\": \"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + @@ -93,18 +87,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " }\n" + " }\n" + " ]\n" + - "}\n", Map.class); // copied 'someValue' from '../existingValue' - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); - - // assert that the input is not mutated - Assert.assertEquals(mapper.readValue(input, Map.class), jsonNode); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + " \"existingValue\": \"someValue\",\n" + @@ -112,17 +101,12 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"abc\": \"someValue\"\n" + " }\n" + - "}\n", Map.class); - - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class).invoke(null, jsonNode, "ftdm:abcdefg123"); - - Map expectedJsonNodeOut = mapper.readValue( + "}\n", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + " \"existingValue\": \"someValue\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}\n" + - "}\n", Map.class); // moved 'someValue' to '../existingValue' - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast3Test.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast3Test.java index adf0e20ef7b..bcf81fec6c3 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast3Test.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast3Test.java @@ -15,13 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.util.Map; public class GenerateCast3Test extends GenerateCastTestBase { @@ -56,24 +54,20 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - String input = "{\n" + - " \"version\": \"ftdm:abcdefg123\",\n" + - " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + - " \"array\": [\n" + - " {\n" + - " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + - " \"existingValue\": \"someValue\",\n" + - " \"innerObject\": {\n" + - " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + - " \"abc\": 123\n" + - " }\n" + - " }\n" + - " ]\n" + - "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + expect(upcast("{\n" + + " \"version\": \"ftdm:abcdefg123\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + + " \"array\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + + " \"existingValue\": \"someValue\",\n" + + " \"innerObject\": {\n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"abc\": 123\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n"), "{\n" + " \"version\": \"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + @@ -87,36 +81,26 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " }\n" + " }\n" + " ]\n" + - "}\n", Map.class); // 123 converted to "123" - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); - - // assert that the input is not mutated - Assert.assertEquals(mapper.readValue(input, Map.class), jsonNode); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - String input = "{\n" + - " \"version\": \"ftdm:abcdefg456\",\n" + - " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + - " \"array\": [\n" + - " {\n" + - " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + - " \"existingValue\": \"someValue\",\n" + - " \"innerObject\": {\n" + - " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + - " \"abc\": \"123\"\n" + - " }\n" + - " }\n" + - " ]\n" + - "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class).invoke(null, jsonNode, "ftdm:abcdefg123"); -// Map jsonNodeOut = TempGenerated.downcast(jsonNode, "ftdm:abcdefg123"); - - Map expectedJsonNodeOut = mapper.readValue( + expect(downcast("{\n" + + " \"version\": \"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + + " \"array\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + + " \"existingValue\": \"someValue\",\n" + + " \"innerObject\": {\n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"abc\": \"123\"\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n", "ftdm:abcdefg123"), "{\n" + " \"version\": \"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + @@ -130,10 +114,6 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " }\n" + " }\n" + " ]\n" + - "}\n", Map.class); // "123" converted to 123 - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); - - // assert that the input is not mutated - Assert.assertEquals(mapper.readValue(input, Map.class), jsonNode); + "}\n"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast4Test.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast4Test.java index abefa9ef9d5..44440ecbb1f 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast4Test.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCast4Test.java @@ -15,13 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.util.Map; public class GenerateCast4Test extends GenerateCastTestBase { @@ -56,24 +54,20 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - String input = "{\n" + - " \"version\": \"ftdm:abcdefg123\",\n" + - " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + - " \"array\": [\n" + - " {\n" + - " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + - " \"existingValue\": \"someValue\",\n" + - " \"innerObject\": {\n" + - " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + - " \"abc\": 123\n" + - " }\n" + - " }\n" + - " ]\n" + - "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + expect(upcast("{\n" + + " \"version\": \"ftdm:abcdefg123\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + + " \"array\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + + " \"existingValue\": \"someValue\",\n" + + " \"innerObject\": {\n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"abc\": 123\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n"), "{\n" + " \"version\": \"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + @@ -87,36 +81,26 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " }\n" + " }\n" + " ]\n" + - "}\n", Map.class); // 123 converted to 123 optional - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); - - // assert that the input is not mutated - Assert.assertEquals(mapper.readValue(input, Map.class), jsonNode); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - String input = "{\n" + - " \"version\": \"ftdm:abcdefg456\",\n" + - " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + - " \"array\": [\n" + - " {\n" + - " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + - " \"existingValue\": \"someValue\",\n" + - " \"innerObject\": {\n" + - " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + - " \"abc\": \"123\"\n" + - " }\n" + - " }\n" + - " ]\n" + - "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class).invoke(null, jsonNode, "ftdm:abcdefg123"); -// Map jsonNodeOut = TempGenerated.downcast(jsonNode, "ftdm:abcdefg123"); - - Map expectedJsonNodeOut = mapper.readValue( + expect(downcast("{\n" + + " \"version\": \"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + + " \"array\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::tests::OuterClass\",\n" + + " \"existingValue\": \"someValue\",\n" + + " \"innerObject\": {\n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"abc\": \"123\"\n" + + " }\n" + + " }\n" + + " ]\n" + + "}\n", "ftdm:abcdefg123"), "{\n" + " \"version\": \"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + @@ -130,10 +114,6 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " }\n" + " }\n" + " ]\n" + - "}\n", Map.class); // "123" optional converted to "123" - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); - - // assert that the input is not mutated - Assert.assertEquals(mapper.readValue(input, Map.class), jsonNode); + "}\n"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanStringTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanStringTest.java index ec0c4b4fec1..f1218adb444 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanStringTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanStringTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastBooleanStringTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true}]\n" + " ],\n" + " \"abc\": true\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true}]\n" + " ],\n" + " \"abc\": true\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true}]\n" + " ],\n" + " \"abc\": false\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:false", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:false"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanTest.java index 0e52c62d805..73af6a72109 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastBooleanTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastBooleanTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true}]\n" + " ],\n" + " \"abc\": true\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true}]\n" + " ],\n" + " \"abc\": true\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": true}]\n" + " ],\n" + " \"abc\": false\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:false", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:false"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastChainTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastChainTest.java index 74f17734b3f..bf8d11307e0 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastChainTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastChainTest.java @@ -15,19 +15,14 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastChainTest extends GenerateCastTestBase { @@ -92,8 +87,7 @@ public void testVersions() throws NoSuchMethodException, InvocationTargetExcepti @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -101,10 +95,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg789\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -114,16 +105,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100, \"def\": 200}]\n" + " ],\n" + " \"abc\": 100, \"def\": 200\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg789\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100, \"def\": 200},\n" + @@ -132,10 +120,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100, \"def\": 200}]\n" + " ],\n" + " \"abc\": 100, \"def\": 200\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -144,16 +129,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg789\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100, \"def\": 200},\n" + @@ -162,9 +144,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100, \"def\": 200}]\n" + " ],\n" + " \"abc\": 100, \"def\": 300\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:300", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:300"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomMapTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomMapTest.java index ec981f1bc7a..d72f00fbd06 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomMapTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomMapTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastCustomMapTest extends GenerateCastTestBase { @@ -38,8 +32,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -47,10 +40,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -60,16 +50,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}},\n" + @@ -78,10 +65,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -90,16 +74,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}},\n" + @@ -108,9 +89,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.0}, \"value\":1}}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:{@type=Custom, restricted=true, range={min=-1, max=1, @type=intMinMax, round=0.0}, value=1}", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:{@type=Custom, restricted=true, range={min=-1, round=0.0, max=1, @type=intMinMax}, value=1}"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomNestedTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomNestedTest.java index a418b3af4ce..3e7e2a39ffb 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomNestedTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomNestedTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastCustomNestedTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.0}, \"value\":1}}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:{@type=Custom, restricted=true, range={min=-1, max=1, @type=intMinMax, round=0.0}, value=1}", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:{@type=Custom, restricted=true, range={min=-1, round=0.0, max=1, @type=intMinMax}, value=1}"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomObjectTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomObjectTest.java index 9c3ce0197a9..0b81983ace2 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomObjectTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomObjectTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastCustomObjectTest extends GenerateCastTestBase { @@ -74,8 +68,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -83,10 +76,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -96,16 +86,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}},\n" + @@ -114,10 +101,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -126,16 +110,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}},\n" + @@ -144,9 +125,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.5}, \"value\":0}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"restricted\":true, \"range\":{\"min\":-1, \"max\":1, \"@type\":\"intMinMax\", \"round\":0.0}, \"value\":1}}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:{@type=Custom, restricted=true, range={min=-1, max=1, @type=intMinMax, round=0.0}, value=1}", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:{@type=Custom, restricted=true, range={min=-1, round=0.0, max=1, @type=intMinMax}, value=1}"); } } \ No newline at end of file diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveStringTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveStringTest.java index 93b612dfd90..89e157ecb15 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveStringTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveStringTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastCustomPrimitiveStringTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"}]\n" + " ],\n" + " \"abc\": \"1970-01-01T00:00:01Z\"\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"}]\n" + " ],\n" + " \"abc\": \"1970-01-01T00:00:01Z\"\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"}]\n" + " ],\n" + " \"abc\": \"2023-06-22T18:30:01Z\"\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:2023-06-22T18:30:01Z", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:2023-06-22T18:30:01Z"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveTest.java index 2c16eadd887..c8b2886e3c2 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomPrimitiveTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastCustomPrimitiveTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"}]\n" + " ],\n" + " \"abc\": \"1970-01-01T00:00:01Z\"\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"}]\n" + " ],\n" + " \"abc\": \"1970-01-01T00:00:01Z\"\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"1970-01-01T00:00:01Z\"}]\n" + " ],\n" + " \"abc\": \"2023-06-22T18:30:01Z\"\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:2023-06-22T18:30:01Z", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:2023-06-22T18:30:01Z"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomTest.java index df18411e728..4c3ba0d0ceb 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastCustomTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastCustomTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"0d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:{@type=Custom, value=1d}", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:{@type=Custom, value=1d}"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleStringTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleStringTest.java index 07124e68775..224fbc8ca6c 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleStringTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleStringTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastDoubleStringTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45}]\n" + " ],\n" + " \"abc\": 123.45\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45}]\n" + " ],\n" + " \"abc\": 123.45\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45}]\n" + " ],\n" + " \"abc\": 67.89\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:67.89", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:67.89"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleTest.java index 83ff399a302..df96a82d589 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastDoubleTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastDoubleTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45}]\n" + " ],\n" + " \"abc\": 123.45\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45}]\n" + " ],\n" + " \"abc\": 123.45\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 123.45}]\n" + " ],\n" + " \"abc\": 67.89\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:67.89", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:67.89"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromJsonTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromJsonTest.java index d93094a8ac0..4611d8d3a95 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromJsonTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromJsonTest.java @@ -15,18 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.finos.legend.pure.generated.*; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastFromJsonTest extends GenerateCastTestBase { @@ -65,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -74,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -87,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -105,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -117,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNull() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null},\n" + @@ -135,10 +115,7 @@ public void testDowncastNull() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null}]\n" + " ],\n" + " \"abc\": null\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -147,16 +124,13 @@ public void testDowncastNull() throws JsonProcessingException, NoSuchMethodExcep " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -165,9 +139,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 300\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:300", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:300"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromVersionsTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromVersionsTest.java index d2bdee908a9..8af0c5d917a 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromVersionsTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastFromVersionsTest.java @@ -15,18 +15,12 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.finos.legend.pure.generated.*; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastFromVersionsTest extends GenerateCastTestBase { @@ -43,7 +37,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException addField._fieldName("abc"); addField._fieldType("Integer[1]"); addField._safeCast(true); - Root_meta_pure_changetoken_ConstValue value = new Root_meta_pure_changetoken_ConstValue_Impl("Anonymous_NoCounter"); + Root_meta_pure_changetoken_ConstValue value = new Root_meta_pure_changetoken_ConstValue_Impl("Anonymous_NoCounter"); value._value(100L); addField._defaultValue(value); abcdefg456._changeTokensAdd(addField); @@ -56,8 +50,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -65,10 +58,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -78,16 +68,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -96,10 +83,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -108,16 +92,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNull() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null},\n" + @@ -126,10 +107,7 @@ public void testDowncastNull() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null}]\n" + " ],\n" + " \"abc\": null\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -138,16 +116,13 @@ public void testDowncastNull() throws JsonProcessingException, NoSuchMethodExcep " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -156,9 +131,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 300\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:300", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:300"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastIntegerStringTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastIntegerStringTest.java index 5b64b824fb0..c853e37bd71 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastIntegerStringTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastIntegerStringTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastIntegerStringTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 300\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:300", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:300"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveExtractTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveExtractTest.java index 886c595a339..40f9576508f 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveExtractTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveExtractTest.java @@ -15,14 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.util.Map; public class GenerateCastMoveExtractTest extends GenerateCastTestBase { @@ -83,8 +80,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"names\": {\"@type\":\"NamesClass\", \"first\":\"1d\", \"middle\":\"\", \"last\":\"2d\"}},\n" + @@ -93,10 +89,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"names\": {\"@type\":\"NamesClass\", \"first\":\"5d\", \"middle\":\"\", \"last\":\"6d\"}}]\n" + " ],\n" + " \"names\": {\"@type\":\"NamesClass\", \"first\":\"7d\", \"middle\":\"\", \"last\":\"8d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -106,16 +99,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"firstName\":\"5d\", \"lastName\":\"6d\"}]\n" + " ],\n" + " \"firstName\":\"7d\", \"lastName\":\"8d\"\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"firstName\":\"1d\", \"lastName\":\"2d\"},\n" + @@ -124,10 +114,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"firstName\":\"5d\", \"lastName\":\"6d\"}]\n" + " ],\n" + " \"firstName\":\"7d\", \"lastName\":\"8d\"\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -137,7 +124,6 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"names\": {\"@type\":\"NamesClass\", \"first\":\"5d\", \"middle\":\"\", \"last\":\"6d\"}}]\n" + " ],\n" + " \"names\": {\"@type\":\"NamesClass\", \"first\":\"7d\", \"middle\":\"\", \"last\":\"8d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveNestedTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveNestedTest.java index f58af557859..4d8af2165bd 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveNestedTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveNestedTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastMoveNestedTest extends GenerateCastTestBase { @@ -65,8 +59,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"String\"}},\n" + @@ -75,10 +68,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -88,16 +78,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}, \"abc\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"1d\"}, \"abc\": {\"@type\":\"String\"}},\n" + @@ -106,10 +93,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}, \"abc\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -119,15 +103,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"String\"}},\n" + @@ -136,10 +118,7 @@ public void testUpcastSame() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -149,16 +128,13 @@ public void testUpcastSame() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}, \"abc\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"1d\"}, \"abc\": {\"@type\":\"String\"}},\n" + @@ -167,10 +143,7 @@ public void testDowncastSame() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}, \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -180,15 +153,13 @@ public void testDowncastSame() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"String\"}},\n" + @@ -197,18 +168,14 @@ public void testUpcastDifferent() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"String\", \"value\":\"5d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Cannot overwrite with different value:5d", re.getCause().getMessage()); + "}"), + "Cannot overwrite with different value:5d"); } @Test public void testDowncastDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"1d\"}, \"abc\": {\"@type\":\"String\"}},\n" + @@ -217,17 +184,14 @@ public void testDowncastDifferent() throws JsonProcessingException, NoSuchMethod " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}, \"abc\": {\"@type\":\"String\", \"value\":\"6d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot overwrite with different value:6d", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot overwrite with different value:6d"); } @Test public void testUpcastInvalidDestination() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"String\"}},\n" + @@ -236,18 +200,14 @@ public void testUpcastInvalidDestination() throws JsonProcessingException, NoSuc " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"3d\"}, \"xyz\": \"invalid\"}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Destination is not a map: xyz", re.getCause().getMessage()); + "}"), + "Destination is not a map: xyz"); } @Test public void testDowncastInvalidDestination() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"1d\"}, \"abc\": {\"@type\":\"String\"}},\n" + @@ -256,17 +216,14 @@ public void testDowncastInvalidDestination() throws JsonProcessingException, NoS " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"3d\"}, \"abc\": \"invalid\"}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Destination is not a map: abc", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Destination is not a map: abc"); } @Test public void testUpcastInvalidSource() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"String\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"String\"}},\n" + @@ -275,18 +232,14 @@ public void testUpcastInvalidSource() throws JsonProcessingException, NoSuchMeth " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"invalid\", \"xyz\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"String\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Source is not a map: abc", re.getCause().getMessage()); + "}"), + "Source is not a map: abc"); } @Test public void testDowncastInvalidSource() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"String\", \"value\":\"1d\"}, \"abc\": {\"@type\":\"String\"}},\n" + @@ -295,9 +248,7 @@ public void testDowncastInvalidSource() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": \"invalid\", \"abc\": {\"@type\":\"String\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"String\", \"value\":\"4d\"}, \"abc\": {\"@type\":\"String\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Source is not a map: xyz", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Source is not a map: xyz"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveTest.java index 003fbe69468..0241f0ab169 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastMoveTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastMoveTest extends GenerateCastTestBase { @@ -75,8 +69,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -85,10 +78,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -98,15 +88,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0, \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0, \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -115,10 +103,7 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -128,16 +113,13 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } - @Test public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -146,10 +128,7 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -159,16 +138,13 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0}, \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0}, \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0, \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}}},\n" + @@ -177,10 +153,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0, \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"SampleNestedClass\", \"active\":true, \"step\":0, \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -190,16 +163,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -208,10 +178,7 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -221,16 +188,13 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -239,10 +203,7 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -252,7 +213,6 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRemoveTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRemoveTest.java index 280bd838c9c..f02987e157c 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRemoveTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRemoveTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastRemoveTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -74,9 +67,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -85,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void tesUpcastNull() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null},\n" + @@ -103,9 +91,7 @@ public void tesUpcastNull() throws JsonProcessingException, NoSuchMethodExceptio " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null}]\n" + " ],\n" + " \"abc\": null\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -114,16 +100,13 @@ public void tesUpcastNull() throws JsonProcessingException, NoSuchMethodExceptio " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -132,18 +115,14 @@ public void testUpcastNonDefault() throws JsonProcessingException, NoSuchMethodE " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 300\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Cannot remove non-default value:300", re.getCause().getMessage()); + "}"), + "Cannot remove non-default value:300"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -151,10 +130,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -164,7 +140,6 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); - } + "}\n"); + } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameFieldRenamedClassTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameFieldRenamedClassTest.java new file mode 100644 index 00000000000..09f096071f2 --- /dev/null +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameFieldRenamedClassTest.java @@ -0,0 +1,293 @@ +// 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.changetoken.generation; + +import com.fasterxml.jackson.core.JsonProcessingException; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; + +public class GenerateCastRenameFieldRenamedClassTest extends GenerateCastTestBase +{ + @BeforeClass + public static void setupSuite() throws IOException, ClassNotFoundException + { + setupSuiteFromJson("{\n" + + " \"@type\": \"meta::pure::changetoken::Versions\",\n" + + " \"versions\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::Version\",\n" + + " \"version\": \"ftdm:abcdefg123\"\n" + + " },\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::Version\",\n" + + " \"version\": \"ftdm:abcdefg456\",\n" + + " \"prevVersion\": \"ftdm:abcdefg123\",\n" + + " \"changeTokens\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::RenameField\",\n" + + " \"oldFieldName\": [\n" + + " \"abc\"\n" + + " ],\n" + + " \"newFieldName\": [\n" + + " \"xyz\"\n" + + " ],\n" + + " \"class\": \"meta::pure::changetoken::tests::SampleClass\"\n" + + " },\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::RenamedClass\",\n" + + " \"newName\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"class\": \"meta::pure::changetoken::tests::SampleClass\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}\n"); + } + + @Test + public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}\n"); + } + + @Test + public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}\n"); + } + + @Test + public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"6d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"6d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"6d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + exception(() -> upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"9d\"}\n" + + "}"), + "Cannot overwrite with different value:{@type=Custom, value=9d}"); + } + + @Test + public void testDowncastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + exception(() -> downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"6d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"6d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"9d\"}\n" + + "}", "ftdm:abcdefg123"), + "Cannot overwrite with different value:{@type=Custom, value=8d}"); + } +} diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameNestedPropertyTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameNestedPropertyTest.java index 5dc94a807ce..3ce0a394284 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameNestedPropertyTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameNestedPropertyTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastRenameNestedPropertyTest extends GenerateCastTestBase { @@ -65,8 +59,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -75,10 +68,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -88,15 +78,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"1d\"}},\n" + @@ -105,10 +93,7 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -118,16 +103,13 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } - @Test public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"1d\"}},\n" + @@ -136,10 +118,7 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"valueOther\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -149,16 +128,13 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"valueOther\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"4d\"}},\n" + @@ -167,10 +143,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"2d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -180,16 +153,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"4d\"}},\n" + @@ -198,10 +168,7 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -211,16 +178,13 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"4d\"}},\n" + @@ -229,10 +193,7 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -242,15 +203,13 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\", \"valueCustom\":\"1d\"}},\n" + @@ -259,10 +218,7 @@ public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\", \"valueCustom\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -272,16 +228,13 @@ public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\", \"valueCustom\":\"5d\"}},\n" + @@ -290,10 +243,7 @@ public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuch " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\", \"valueCustom\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\", \"valueCustom\":\"8d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -303,15 +253,13 @@ public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuch " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\", \"valueCustom\":\"1d\"}},\n" + @@ -320,18 +268,14 @@ public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoS " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\", \"valueCustom\":\"9d\"}\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Cannot overwrite with different value:9d", re.getCause().getMessage()); - } + "}"), + "Cannot overwrite with different value:9d"); + } @Test public void testDowncastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\", \"valueCustom\":\"5d\"}},\n" + @@ -340,9 +284,7 @@ public void testDowncastExistingTheDifferent() throws JsonProcessingException, N " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\", \"valueCustom\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\", \"valueCustom\":\"9d\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot overwrite with different value:8d", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot overwrite with different value:8d"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamePropertyTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamePropertyTest.java index c28951b2d7c..0458f6c6aba 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamePropertyTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamePropertyTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastRenamePropertyTest extends GenerateCastTestBase { @@ -63,8 +57,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,15 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"1d\"}},\n" + @@ -103,10 +91,7 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -116,16 +101,13 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"OtherCustom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } - @Test public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"1d\"}},\n" + @@ -134,10 +116,7 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"valueOther\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -147,16 +126,13 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"valueOther\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"valueCustom\":\"4d\"}},\n" + @@ -165,10 +141,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"valueCustom\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"valueCustom\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -178,16 +151,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"OtherCustom\", \"value\":\"4d\"}},\n" + @@ -196,10 +166,7 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"OtherCustom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"OtherCustom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -209,16 +176,13 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"OtherCustom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"OtherCustom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"4d\"}},\n" + @@ -227,10 +191,7 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -240,15 +201,13 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"valueOther\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\", \"valueCustom\":\"1d\"}},\n" + @@ -257,10 +216,7 @@ public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\", \"valueCustom\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -270,16 +226,13 @@ public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"valueCustom\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\", \"valueCustom\":\"5d\"}},\n" + @@ -288,10 +241,7 @@ public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuch " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\", \"valueCustom\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\", \"valueCustom\":\"8d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -301,15 +251,13 @@ public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuch " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\", \"valueCustom\":\"1d\"}},\n" + @@ -318,18 +266,14 @@ public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoS " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\", \"valueCustom\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\", \"valueCustom\":\"9d\"}\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Cannot overwrite with different value:9d", re.getCause().getMessage()); - } + "}"), + "Cannot overwrite with different value:9d"); + } @Test public void testDowncastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\", \"valueCustom\":\"5d\"}},\n" + @@ -338,9 +282,7 @@ public void testDowncastExistingTheDifferent() throws JsonProcessingException, N " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\", \"valueCustom\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\", \"valueCustom\":\"9d\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot overwrite with different value:8d", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot overwrite with different value:8d"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameTest.java index 081c332666d..4fa70b49728 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenameTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastRenameTest extends GenerateCastTestBase { @@ -63,8 +57,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,15 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -103,10 +91,7 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -116,16 +101,13 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } - @Test public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -134,10 +116,7 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -147,16 +126,13 @@ public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodExce " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -165,10 +141,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -178,16 +151,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -196,10 +166,7 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -209,16 +176,13 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -227,10 +191,7 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -240,15 +201,13 @@ public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodEx " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -257,10 +216,7 @@ public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -270,16 +226,13 @@ public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMe " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + @@ -288,10 +241,7 @@ public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuch " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -301,15 +251,13 @@ public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuch " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -318,18 +266,14 @@ public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoS " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"9d\"}\n" + - "}", Map.class); - Method upcastMethod = compiledClass.getMethod("upcast", Map.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> upcastMethod.invoke(null, jsonNode)); - Assert.assertEquals("Cannot overwrite with different value:{@type=Custom, value=9d}", re.getCause().getMessage()); - } + "}"), + "Cannot overwrite with different value:{@type=Custom, value=9d}"); + } @Test public void testDowncastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + @@ -338,9 +282,7 @@ public void testDowncastExistingTheDifferent() throws JsonProcessingException, N " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"9d\"}\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot overwrite with different value:{@type=Custom, value=8d}", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot overwrite with different value:{@type=Custom, value=8d}"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassRenameFieldTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassRenameFieldTest.java new file mode 100644 index 00000000000..45442796a27 --- /dev/null +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassRenameFieldTest.java @@ -0,0 +1,293 @@ +// 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.changetoken.generation; + +import com.fasterxml.jackson.core.JsonProcessingException; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; + +public class GenerateCastRenamedClassRenameFieldTest extends GenerateCastTestBase +{ + @BeforeClass + public static void setupSuite() throws IOException, ClassNotFoundException + { + setupSuiteFromJson("{\n" + + " \"@type\": \"meta::pure::changetoken::Versions\",\n" + + " \"versions\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::Version\",\n" + + " \"version\": \"ftdm:abcdefg123\"\n" + + " },\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::Version\",\n" + + " \"version\": \"ftdm:abcdefg456\",\n" + + " \"prevVersion\": \"ftdm:abcdefg123\",\n" + + " \"changeTokens\": [\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::RenamedClass\",\n" + + " \"newName\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"class\": \"meta::pure::changetoken::tests::SampleClass\"\n" + + " },\n" + + " {\n" + + " \"@type\": \"meta::pure::changetoken::RenameField\",\n" + + " \"oldFieldName\": [\n" + + " \"abc\"\n" + + " ],\n" + + " \"newFieldName\": [\n" + + " \"xyz\"\n" + + " ],\n" + + " \"class\": \"meta::pure::changetoken::tests::nested::NewSampleClass\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}\n"); + } + + @Test + public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}\n"); + } + + @Test + public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}\n"); + } + + @Test + public void testDowncastMissing() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"3d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"def\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + + " ],\n" + + " \"def\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}"), + "{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + + "}\n"); + } + + @Test + public void testDowncastExistingTheSame() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + expect(downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"6d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"6d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + + "}", "ftdm:abcdefg123"), + "{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"6d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}\n" + + "}\n"); + } + + @Test + public void testUpcastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + exception(() -> upcast("{\n" + + " \"version\":\"ftdm:abcdefg123\", \n" + + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"2d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"9d\"}\n" + + "}"), + "Cannot overwrite with different value:{@type=Custom, value=9d}"); + } + + @Test + public void testDowncastExistingTheDifferent() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + exception(() -> downcast("{\n" + + " \"version\":\"ftdm:abcdefg456\",\n" + + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"5d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"5d\"}},\n" + + " \"innerNestedArray\":[\n" + + " {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"6d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"6d\"}},\n" + + " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"7d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"7d\"}}]\n" + + " ],\n" + + " \"abc\": {\"@type\":\"Custom\", \"value\":\"8d\"}, \"xyz\": {\"@type\":\"Custom\", \"value\":\"9d\"}\n" + + "}", "ftdm:abcdefg123"), + "Cannot overwrite with different value:{@type=Custom, value=8d}"); + } +} diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassTest.java index 8ee7752ff70..79c6b745cd6 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastRenamedClassTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastRenamedClassTest extends GenerateCastTestBase { @@ -58,8 +52,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -68,10 +61,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + @@ -81,15 +71,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testUpcastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"1d\"}},\n" + @@ -98,10 +86,7 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -111,16 +96,13 @@ public void testUpcastType() throws JsonProcessingException, NoSuchMethodExcepti " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"abc\": {\"@type\":\"Custom\", \"value\":\"3d\"}}]\n" + " ],\n" + " \"abc\": {\"@type\":\"Custom\", \"value\":\"4d\"}\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -129,10 +111,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::nested::NewSampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -142,16 +121,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastType() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"4d\"}},\n" + @@ -160,10 +136,7 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::OtherClass\",\n" + @@ -173,8 +146,6 @@ public void testDowncastType() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::OtherClass\", \"xyz\": {\"@type\":\"Custom\", \"value\":\"2d\"}}]\n" + " ],\n" + " \"xyz\": {\"@type\":\"Custom\", \"value\":\"1d\"}\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } } - diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringQuotesTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringQuotesTest.java index aa77990d46e..15c8f783a21 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringQuotesTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringQuotesTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastStringQuotesTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"}]\n" + " ],\n" + " \"abc\": \"one \\\" two\"\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"}]\n" + " ],\n" + " \"abc\": \"one \\\" two\"\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"}]\n" + " ],\n" + " \"abc\": \"two \\\" one\"\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:two \" one", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:two \" one"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringTest.java index c99b95675bb..ef87ca95cef 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastStringTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastStringTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"}]\n" + " ],\n" + " \"abc\": \"one \\\" two\"\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"}]\n" + " ],\n" + " \"abc\": \"one \\\" two\"\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"},\n" + @@ -134,9 +115,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": \"one \\\" two\"}]\n" + " ],\n" + " \"abc\": \"two \\\" one\"\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:two \" one", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:two \" one"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTest.java index 57a52661b5b..15b1e1840f8 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTest.java @@ -15,17 +15,11 @@ package org.finos.legend.engine.changetoken.generation; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Map; - -import static org.junit.Assert.assertThrows; public class GenerateCastTest extends GenerateCastTestBase { @@ -64,8 +58,7 @@ public static void setupSuite() throws IOException, ClassNotFoundException @Test public void testUpcast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Map jsonNode = mapper.readValue( - "{\n" + + expect(upcast("{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"},\n" + @@ -73,10 +66,7 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, jsonNode); - - Map expectedJsonNodeOut = mapper.readValue( + "}"), "{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -86,16 +76,13 @@ public void testUpcast() throws JsonProcessingException, NoSuchMethodException, " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); // updated version and new default value field added - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncast() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -104,10 +91,7 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 100\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -116,16 +100,13 @@ public void testDowncast() throws JsonProcessingException, NoSuchMethodException " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNull() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + expect(downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null},\n" + @@ -134,10 +115,7 @@ public void testDowncastNull() throws JsonProcessingException, NoSuchMethodExcep " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": null}]\n" + " ],\n" + " \"abc\": null\n" + - "}", Map.class); - Map jsonNodeOut = (Map) compiledClass.getMethod("downcast", Map.class, String.class) - .invoke(null, jsonNode, "ftdm:abcdefg123"); - Map expectedJsonNodeOut = mapper.readValue( + "}", "ftdm:abcdefg123"), "{\n" + " \"version\":\"ftdm:abcdefg123\", \n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + @@ -146,16 +124,13 @@ public void testDowncastNull() throws JsonProcessingException, NoSuchMethodExcep " {\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}, \n" + " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\"}]\n" + " ]\n" + - "}", Map.class); // remove default values - Assert.assertEquals(expectedJsonNodeOut, jsonNodeOut); + "}\n"); } @Test public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMethodException { - ObjectMapper mapper = new ObjectMapper(); - Map jsonNode = mapper.readValue( - "{\n" + + exception(() -> downcast("{\n" + " \"version\":\"ftdm:abcdefg456\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SampleClass\",\n" + " \"innerObject\": {\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100},\n" + @@ -164,9 +139,7 @@ public void testDowncastNonDefault() throws JsonProcessingException, NoSuchMetho " [{\"@type\": \"meta::pure::changetoken::tests::SampleClass\", \"abc\": 100}]\n" + " ],\n" + " \"abc\": 300\n" + - "}", Map.class); - Method downcastMethod = compiledClass.getMethod("downcast", Map.class, String.class); - InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, () -> downcastMethod.invoke(null, jsonNode, "ftdm:abcdefg123")); - Assert.assertEquals("Cannot remove non-default value:300", re.getCause().getMessage()); + "}", "ftdm:abcdefg123"), + "Cannot remove non-default value:300"); } } diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTestBase.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTestBase.java index 7beacf2a2cf..5863d50d323 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTestBase.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastTestBase.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.changetoken.generation; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.github.classgraph.ClassGraph; import org.finos.legend.engine.external.language.java.generation.GenerateJavaProject; @@ -22,26 +23,27 @@ import org.finos.legend.pure.runtime.java.compiled.compiler.MemoryFileManager; import org.junit.Assert; import org.junit.ClassRule; +import org.junit.function.ThrowingRunnable; import org.junit.rules.TemporaryFolder; -import javax.tools.DiagnosticCollector; -import javax.tools.JavaCompiler; -import javax.tools.JavaFileObject; -import javax.tools.SimpleJavaFileObject; -import javax.tools.ToolProvider; +import javax.tools.*; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; +import java.util.Map; + +import static org.junit.Assert.assertThrows; public abstract class GenerateCastTestBase { private static final org.slf4j.Logger LOGGER = org.slf4j.LoggerFactory.getLogger(GenerateCastTestBase.class); protected static Class compiledClass; - protected static final ObjectMapper mapper = new ObjectMapper(); + private static final ObjectMapper mapper = new ObjectMapper(); @ClassRule public static TemporaryFolder tmpFolder = new TemporaryFolder(); @@ -105,6 +107,58 @@ private static void setupSuiteFrom(Object fromValue, String generatorType) throw compiledClass = new MemoryClassLoader(fileManager, Thread.currentThread().getContextClassLoader()).loadClass(fullClassName); } + private Map upcast(Map objectNode) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + return (Map) compiledClass.getMethod("upcast", Map.class).invoke(null, objectNode); + } + + private Map downcast(Map objectNode, String targetVersion) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + return (Map) compiledClass.getMethod("downcast", Map.class, String.class).invoke(null, objectNode, targetVersion); + } + + protected Map parse(String value) throws JsonProcessingException + { + return mapper.readValue(value, Map.class); + } + + public Map upcast(String input) throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + Map jsonNode = parse(input); + try + { + return upcast(jsonNode); + } + finally + { + Assert.assertEquals(parse(input), jsonNode); + } + } + + public Map downcast(String input, String targetVersion) throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException + { + Map jsonNode = parse(input); + try + { + return downcast(jsonNode, targetVersion); + } + finally + { + Assert.assertEquals(parse(input), jsonNode); + } + } + + public void expect(Map actual, String expected) throws JsonProcessingException + { + Assert.assertEquals(parse(expected), actual); + } + + public void exception(ThrowingRunnable runnable, String expected) + { + InvocationTargetException re = assertThrows("non-default", InvocationTargetException.class, runnable); + Assert.assertEquals(expected, re.getCause().getMessage()); + } + private static class SourceFile extends SimpleJavaFileObject { private final Path path; diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastUtilTest.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastUtilTest.java index 8413368d138..f024e2dbc0f 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastUtilTest.java +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/src/test/java/org/finos/legend/engine/changetoken/generation/GenerateCastUtilTest.java @@ -62,12 +62,10 @@ public static void setupSuite() throws IOException, ClassNotFoundException public void testResolvePath() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { Method m = compiledClass.getMethod("resolvePath", List.class, String.class); - // note that "0" is cast to int in resolveRelativeReference or setRelativeReference Assert.assertArrayEquals( Arrays.asList("a", "b", 1, "c", "0").toArray(), - ((List)m.invoke(null, Arrays.asList("a", "b", 1, "c", 2), "../0")).toArray()); - + ((List) m.invoke(null, Arrays.asList("a", "b", 1, "c", 2), "../0")).toArray()); InvocationTargetException ex = Assert.assertThrows(InvocationTargetException.class, () -> m.invoke(null, Arrays.asList("a", "b", 1, "c", 2), "../../../../../../x")); Assert.assertEquals("Relative reference escapes root (a/b/1/c/2) at index 5 of ../../../../../../x", ex.getCause().getMessage()); @@ -77,7 +75,6 @@ public void testResolvePath() throws NoSuchMethodException, InvocationTargetExce public void testResolveRelativeReference() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { Method m = compiledClass.getMethod("resolveRelativeReference", Map.class, List.class, String.class); - ObjectMapper mapper = new ObjectMapper(); String input = "{\n" + " \"version\": \"ftdm:abcdefg123\",\n" + @@ -92,18 +89,15 @@ public void testResolveRelativeReference() throws JsonProcessingException, NoSuc " }\n" + " ]\n" + "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - + Map jsonNode = parse(input); Assert.assertEquals("someValue", m.invoke(null, jsonNode, Arrays.asList("array", 0, "innerObject", "@type"), "../../existingValue")); - Assert.assertEquals("meta::pure::changetoken::tests::SampleClass", m.invoke(null, jsonNode, Collections.emptyList(), "array/0/innerObject/@type")); - InvocationTargetException ex = Assert.assertThrows(InvocationTargetException.class, () -> m.invoke(null, jsonNode, Collections.emptyList(), @@ -115,8 +109,7 @@ public void testResolveRelativeReference() throws JsonProcessingException, NoSuc public void testSetRelativeReference() throws JsonProcessingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { Method m = compiledClass.getMethod("setRelativeReference", Map.class, List.class, String.class, Object.class); - - ObjectMapper mapper = new ObjectMapper(); + String input = "{\n" + " \"version\": \"ftdm:abcdefg123\",\n" + " \"@type\": \"meta::pure::changetoken::tests::SomeClassWithAnArray\",\n" + @@ -130,15 +123,13 @@ public void testSetRelativeReference() throws JsonProcessingException, NoSuchMet " }\n" + " ]\n" + "}\n"; - Map jsonNode = mapper.readValue(input, Map.class); - + Map jsonNode = parse(input); m.invoke(null, jsonNode, Arrays.asList("array", 0, "innerObject", "@type"), "../newValue", 123); Assert.assertEquals(123, compiledClass.getMethod("resolveRelativeReference", Map.class, List.class, String.class).invoke(null, jsonNode, Arrays.asList("array", 0, "innerObject", "@type"), "../newValue")); - { InvocationTargetException ex = Assert.assertThrows(InvocationTargetException.class, () -> m.invoke(null, jsonNode, @@ -146,7 +137,6 @@ public void testSetRelativeReference() throws JsonProcessingException, NoSuchMet "array/blah", 456)); Assert.assertEquals("java.lang.NumberFormatException: For input string: \"blah\": at index 1 of array/blah", ex.getCause().getMessage()); } - { InvocationTargetException ex = Assert.assertThrows(InvocationTargetException.class, () -> m.invoke(null, jsonNode, 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 d6d8b750ef7..3764a9c76f0 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 @@ -29,6 +29,21 @@ + + org.apache.maven.plugins + maven-dependency-plugin + + + dependency-analyze + + + + junit:junit + + + + + org.finos.legend.pure legend-pure-maven-generation-par @@ -168,5 +183,10 @@ org.eclipse.collections eclipse-collections-api + + + junit + junit + diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/cast_generation.pure b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/cast_generation.pure index bf0afebd2b8..c19864c91ba 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/cast_generation.pure +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/cast_generation.pure @@ -258,7 +258,7 @@ function <> meta::pure::changetoken::cast_generation::_generateS j_return($resVar) ]))); - let typeVar = j_variable(javaString(), 'type'); + let typeVar = $resVar->j_invoke('get', [j_string('@type')], javaObject()); let rootObjVar = j_parameter(objectNode(), 'rootObjectNode'); let pathVar = j_parameter(javaList(javaObject()), 'path'); let changeTokenHandlers = $version.changeTokens @@ -282,13 +282,10 @@ function <> meta::pure::changetoken::cast_generation::_generateS javaRuntimeException()->j_new(j_string('Missing @type'))->j_throw() ), // Map res = new HashMap<>() - $resVar->j_declare(javaHashMap()->j_new([])), - - // String type = (String) objectNode.get("@type") - $typeVar->j_declare($objVar->j_invoke('get', [j_string('@type')], javaObject())->j_cast(javaString())) + $resVar->j_declare(javaHashMap()->j_new([])) ] - ->concatenate($changeTokenHandlers) ->concatenate($class2->_generateSingleCastObjectRecurseBlock($objRecurseFuncName, $arrRecurseFuncName, $objVar, $pathVar, $rootObjVar, $resVar)) + ->concatenate($changeTokenHandlers) ->concatenate([ j_return($resVar) ])))); @@ -336,7 +333,7 @@ function <> meta::pure::changetoken::cast_generation::_generateS j_return($resVar) ]))); - let typeVar = j_variable(javaString(), 'type'); + let typeVar = $resVar->j_invoke('get', [j_string('@type')], javaObject()); let changeTokenHandlers = $version.changeTokens->reverse() ->map(t|$t->match([ t:AddField[1]|_handleAddFieldDowncast($class2, $t, $objVar, $typeVar, $version.version, $pathVar, $rootObjVar, $resVar), @@ -358,12 +355,10 @@ function <> meta::pure::changetoken::cast_generation::_generateS javaRuntimeException()->j_new(j_string('Missing @type'))->j_throw() ), // Map res = new HashMap<>() - $resVar->j_declare(javaHashMap()->j_new([])), - // String type = (String) objectNode.get("@type") - $typeVar->j_declare($objVar->j_invoke('get', [j_string('@type')], javaObject())->j_cast(javaString())) + $resVar->j_declare(javaHashMap()->j_new([])) ] - ->concatenate($changeTokenHandlers) ->concatenate($class2->_generateSingleCastObjectRecurseBlock($objRecurseFuncName, $arrRecurseFuncName, $objVar, $pathVar, $rootObjVar, $resVar)) + ->concatenate($changeTokenHandlers) ->concatenate([ j_return($resVar) ])))); @@ -537,33 +532,33 @@ function <> meta::pure::changetoken::cast_generation::_handleRen ):Code[1] { $oldFieldName->size()->range()->tail()->reverse()->fold({i,r| - j_if($oldFieldName->take($i)->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar)->j_instanceof(javaRawMap()),$r, - j_if(j_ne($oldFieldName->take($i)->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar),j_null()), + j_if($oldFieldName->take($i)->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar)->j_instanceof(javaRawMap()),$r, + j_if(j_ne($oldFieldName->take($i)->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar),j_null()), javaRuntimeException()->j_new(j_plus(j_string('Source is not a map: '), j_string($oldFieldName->take($i)->joinStrings('.'))))->j_throw() ))}, j_if( - j_ne($oldFieldName->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar),j_null()) + j_ne($oldFieldName->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar),j_null()) , j_block( $newFieldName->size()->range()->tail()->map({i| - j_if($newFieldName->take($i)->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar)->j_instanceof(javaRawMap())->j_not(), + j_if($newFieldName->take($i)->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar)->j_instanceof(javaRawMap())->j_not(), javaRuntimeException()->j_new(j_plus(j_string('Destination is not a map: '), j_string($newFieldName->take($i)->joinStrings('.'))))->j_throw() )})->concatenate([ - j_if($newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + j_if($newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('get', [j_string($newFieldName->last()->toOne())], javaObject())->j_ne(j_null()) - ->j_and($newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + ->j_and($newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('get', [j_string($newFieldName->last()->toOne())], javaObject())->j_invoke('equals', - $oldFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + $oldFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('get', [j_string($oldFieldName->last()->toOne())], javaVoid()))->j_not()), javaRuntimeException()->j_new([j_string('Cannot overwrite with different value:') - ->j_plus($newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + ->j_plus($newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('get', [j_string($newFieldName->last()->toOne())], javaObject()))])->j_throw()), - $newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + $newFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('put', [j_string($newFieldName->last()->toOne()), - $oldFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + $oldFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('get', [j_string($oldFieldName->last()->toOne())], javaVoid()) ], javaVoid()), - $oldFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $objVar) + $oldFieldName->init()->fold({t,res | $res->j_cast(objectNode())->j_invoke('get', [j_string($t)], javaObject()) }, $resVar) ->j_cast(objectNode())->j_invoke('remove', [j_string($oldFieldName->last()->toOne())], javaVoid()) ]) ) @@ -580,7 +575,7 @@ token:RenamedClass[1], objVar:Code[1], typeVar:Code[1], version:String[1], pathV // if (type.equals(token.class)) j_if( $typeVar->j_invoke('equals', [j_string($token.class)]), - $objVar->j_invoke('put', [j_string('@type'), j_string($token.newName)]) + $resVar->j_invoke('put', [j_string('@type'), j_string($token.newName)]) ); } @@ -593,7 +588,7 @@ token:RenamedClass[1], objVar:Code[1], typeVar:Code[1], version:String[1], pathV // if (type.equals(token.newName)) j_if( $typeVar->j_invoke('equals', [j_string($token.newName)]), - $objVar->j_invoke('put', [j_string('@type'), j_string($token.class)]) + $resVar->j_invoke('put', [j_string('@type'), j_string($token.class)]) ); } @@ -614,17 +609,17 @@ function <> meta::pure::changetoken::cast_generation::_handleAdd df:ConstValue[1] | if(_isPrimitive($token.fieldType) || !_isComplex($df.value),| [ $valVar->j_declare([_getValueAsFieldType($token.fieldType, $df.value)]), - j_if($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $valVar)->j_not()), - javaRuntimeException()->j_new([j_string('Cannot overwrite existing non-default value:')->j_plus($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), - $objVar->j_invoke('put', [j_string($token.fieldName), $valVar], javaVoid()) + j_if($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $valVar)->j_not()), + javaRuntimeException()->j_new([j_string('Cannot overwrite existing non-default value:')->j_plus($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), + $resVar->j_invoke('put', [j_string($token.fieldName), $valVar], javaVoid()) ],| j_block([ $mapVar->j_declare(javaStream()->j_invoke('of', $df.value->cast(@String)->parseJSON()->cast(@meta::json::JSONObject).keyValuePairs->map(kv | _inlineJsonValue($kv.key.value, $kv.value)), javaVoid())->j_invoke('collect', [javaCollectors()->j_invoke('toMap', [j_methodReference(AbstractMap_SimpleEntry(), 'getKey', javaFunctionType([], javaObject())), j_methodReference(AbstractMap_SimpleEntry(), 'getValue', javaFunctionType([], javaObject()))], javaVoid())], javaVoid())) ]->concatenate([ - j_if($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $mapVar)->j_not()), - javaRuntimeException()->j_new([j_string('Cannot overwrite existing non-default value:')->j_plus($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), - $objVar->j_invoke('put', [j_string($token.fieldName), $mapVar], javaVoid()) + j_if($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $mapVar)->j_not()), + javaRuntimeException()->j_new([j_string('Cannot overwrite existing non-default value:')->j_plus($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), + $resVar->j_invoke('put', [j_string($token.fieldName), $mapVar], javaVoid()) ])) ), df:CopyValue[1] | @@ -636,8 +631,8 @@ function <> meta::pure::changetoken::cast_generation::_handleAdd j_string($df.source->cast(@RelativeFieldReference).path) // TODO: handle other types of references ], javaObject())), // res.put("abc", value); - j_if($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $valVar)->j_not()), - javaRuntimeException()->j_new([j_string('Cannot overwrite existing non-default value:')->j_plus($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), + j_if($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $valVar)->j_not()), + javaRuntimeException()->j_new([j_string('Cannot overwrite existing non-default value:')->j_plus($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), $resVar->j_invoke('put', [j_string($token.fieldName), $valVar], javaVoid()) ] ]) @@ -787,7 +782,7 @@ function <> meta::pure::changetoken::cast_generation::_handleCha $class->j_invoke(_getChangeFieldTypeConverter($token.oldFieldType, $token.newFieldType), [ $pathVar, - $objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()) + $resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()) ], javaObject()) ], javaVoid()) ] @@ -821,11 +816,11 @@ function <> meta::pure::changetoken::cast_generation::_handleAdd $valVar->j_declare([_getValueAsFieldType($token.fieldType, $df.value)]) ]->concatenate([ // if ((Integer)objectNode.get(fieldName) != defaultValue) throw new RuntimeException("Cannot remove non-default value" + objectNode.get("fieldName")) // TODO: handle non-int - j_if($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $valVar)->j_not()), - javaRuntimeException()->j_new([j_string('Cannot remove non-default value:')->j_plus($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), + j_if($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $valVar)->j_not()), + javaRuntimeException()->j_new([j_string('Cannot remove non-default value:')->j_plus($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), - // objectNode.remove(fieldName) - $objVar->j_invoke('remove', [j_string($token.fieldName)], javaVoid()) + // res.remove(fieldName) + $resVar->j_invoke('remove', [j_string($token.fieldName)], javaVoid()) ])), | j_block([ @@ -834,11 +829,11 @@ function <> meta::pure::changetoken::cast_generation::_handleAdd javaVoid())->j_invoke('collect', [javaCollectors()->j_invoke('toMap', [j_methodReference(AbstractMap_SimpleEntry(), 'getKey', javaFunctionType([], javaObject())), j_methodReference(AbstractMap_SimpleEntry(), 'getValue', javaFunctionType([], javaObject()))], javaVoid())], javaVoid())) ]->concatenate([ // if ((Integer)objectNode.get(fieldName) != defaultValue) throw new RuntimeException("Cannot remove non-default value" + objectNode.get("fieldName")) // TODO: handle non-int - j_if($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $mapVar)->j_not()), - javaRuntimeException()->j_new([j_string('Cannot remove non-default value:')->j_plus($objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), + j_if($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_ne(j_null())->j_and($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject())->j_invoke('equals', $mapVar)->j_not()), + javaRuntimeException()->j_new([j_string('Cannot remove non-default value:')->j_plus($resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()))])->j_throw()), - // objectNode.remove(fieldName) - $objVar->j_invoke('remove', [j_string($token.fieldName)], javaVoid()) + // res.remove(fieldName) + $resVar->j_invoke('remove', [j_string($token.fieldName)], javaVoid()) ])) ), df:CopyValue[1] | @@ -848,11 +843,11 @@ function <> meta::pure::changetoken::cast_generation::_handleAdd $rootObjVar, $pathVar, j_string($df.source->cast(@RelativeFieldReference).path), // TODO: handle other types of references - $objVar->j_invoke('get', [j_string($token.fieldName)], javaVoid()) + $resVar->j_invoke('get', [j_string($token.fieldName)], javaVoid()) ], javaObject()), - // objectNode.remove("abc"); - $objVar->j_invoke('remove', [j_string($token.fieldName)], javaVoid()) + // res.remove("abc"); + $resVar->j_invoke('remove', [j_string($token.fieldName)], javaVoid()) ] ]) ); @@ -874,7 +869,7 @@ function <> meta::pure::changetoken::cast_generation::_handleCha $class->j_invoke(_getChangeFieldTypeConverter($token.newFieldType, $token.oldFieldType), [ $pathVar, - $objVar->j_invoke('get', [j_string($token.fieldName)], javaObject()) + $resVar->j_invoke('get', [j_string($token.fieldName)], javaObject()) ], javaObject()) ], javaVoid()) ] diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/changetoken_test.pure b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/changetoken_test.pure index f680a552999..901e8f17665 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/changetoken_test.pure +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/main/resources/core_pure_changetoken/changetoken_test.pure @@ -64,10 +64,3 @@ function meta::pure::changetoken::tests::getVersionsCustomMap():Versions[1] ] ); } - -function <> meta::pure::changetoken::tests::testGenerateCast():Boolean[1] -{ - let project = generateCast('meta::pure::changetoken:tests::getVersions3', 'TestCastFunction'); - printProject($project); - assertInstanceOf($project, Project); -} diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/test/java/org/finos/legend/engine/changetoken/test/Test_Pure_Suite.java b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/test/java/org/finos/legend/engine/changetoken/test/Test_Pure_Suite.java new file mode 100644 index 00000000000..57c2a841055 --- /dev/null +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/src/test/java/org/finos/legend/engine/changetoken/test/Test_Pure_Suite.java @@ -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. + +package org.finos.legend.engine.changetoken.test; + +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_Suite +{ + public static TestSuite suite() + { + CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); + TestSuite suite = new TestSuite(); + suite.addTest(PureTestBuilderCompiled.buildSuite(TestCollection.collectTests("meta::pure::changetoken", executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + return suite; + } +} From f70732e489cf0751d07b961874ebc4115e1e944c Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:37:17 -0500 Subject: [PATCH 13/54] ES support for distinct and restrict functions (#2474) --- .../src/main/resources/core/pure/tds/tds.pure | 5 +- .../legend-engine-pure-ide-light/pom.xml | 7 ++ .../finos/legend/engine/ide/PureIDELight.java | 1 + .../functions/pure_to_elasticsearch.pure | 88 ++++++++++++++----- .../test/shared/ElasticsearchCommands.java | 3 + .../elasticsearch_plan_test_aggregation.pure | 24 +++++ .../elasticsearch_plan_test_project.pure | 30 +++---- ...asticsearch_plan_test_project_boolean.pure | 8 ++ .../elasticsearch_plan_test_project_date.pure | 8 ++ ...elasticsearch_plan_test_project_float.pure | 8 ++ ...asticsearch_plan_test_project_integer.pure | 8 ++ ...asticsearch_plan_test_project_keyword.pure | 9 ++ .../elasticsearch_plan_test_project_text.pure | 9 ++ 13 files changed, 169 insertions(+), 39 deletions(-) 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 17bc0e98f5c..b316194352e 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 @@ -453,8 +453,9 @@ function {doc.doc = 'Remove duplicate rows from the priovded TDS'} meta::pure::tds::distinct(tds:TabularDataSet[1]):TabularDataSet[1] { - fail('Not implemented yet!'); - $tds; + let newTds = ^$tds(rows = []); + let distinctRows = $tds.rows->removeDuplicates({l, r | $l.values == $r.values})->map(r | ^$r(parent = $newTds)); + $newTds->mutateAdd('rows', $distinctRows); } function 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 7089c3ab7fa..f505e3c098d 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 @@ -121,6 +121,13 @@ + + org.finos.legend.engine + legend-engine-xt-elasticsearch-executionPlan-test + runtime + ${project.version} + + com.smoketurner dropwizard-swagger 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 5a20a181b37..185551de86c 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 @@ -100,6 +100,7 @@ protected MutableList buildRepositories(SourceLocationCon .with(this.buildCore("legend-engine-xts-sql/legend-engine-xt-sql-pure", "external-query-sql")) .with(this.buildCore("legend-engine-xts-authentication/legend-engine-xt-authentication-pure", "authentication")) .with(this.buildCore("legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel", "elasticsearch_specification_metamodel")) + .with(this.buildCore("legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test", "elasticsearch_execution_test")) .with(this.buildCore("legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel", "elasticsearch_seven_metamodel")) .with(this.buildCore("legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure","nonrelational-mongodb")) .with(this.buildCore("legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure","nonrelational-mongodb-java-platform-binding")) 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 6c9344f042b..28c81d44034 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 @@ -81,7 +81,6 @@ Class meta::external::store::elasticsearch::v7::pureToEs::TDSESDetail path(){ $this.resultPath.path() }:String[1]; - expression: FunctionExpression[0..1]; format: String[0..1]; } @@ -124,9 +123,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::resultPathToQuery(t 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 searchWithSrps = $srps->isNotEmpty()->if(| ^$search(_source = ^SourceConfig(filter = ^SourceFilter(includes = $srps.path()->literal()))), | $search); let fields = $docps->map(x | $x->resultPathToFieldAndFormat($tdsDetails->filter(t | $t.resultPath == $x)->first())); - $fields->isEmpty()->if(|$seachWithSrps, |^$seachWithSrps(docvalue_fields = $fields)); + $fields->isEmpty()->if(|$searchWithSrps, |^$searchWithSrps(docvalue_fields = $fields)); } function meta::external::store::elasticsearch::v7::pureToEs::resultPathToFieldAndFormat(resultPath: DocValueResultPath[1], tdsEsDetail: TDSESDetail[0..1]): FieldAndFormat[1] @@ -135,6 +134,29 @@ function meta::external::store::elasticsearch::v7::pureToEs::resultPathToFieldAn ^FieldAndFormat(field = $resultPath.path()->literal(), format = $format->literal()); } +function meta::external::store::elasticsearch::v7::pureToEs::processRestrict(vs : FunctionExpression[1], initReq: State[1]): State[1] +{ + $initReq.debug(|'Processing ->restrict'); + let currReq = process($vs.parametersValues->at(0), $initReq); + let projectColNames = $vs->instanceValuesAtParameter(1, $currReq.sq.inScopeVars)->cast(@String); + let toRestrict = $projectColNames->map(s | $currReq.tdsESDetails->filter(x | $x.name == $s)); + assert($toRestrict->size() == $projectColNames->size(), | 'restricting by unknown columns: ' + $projectColNames->removeAll($toRestrict.name)->joinStrings('[', ', ', ']')); + + let search = $currReq.search; + ^$currReq( + search = resultPathToQuery($toRestrict, $search), + tdsESDetails = $toRestrict + ); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processDistinct(vs : FunctionExpression[1], initReq: State[1]): State[1] +{ + $initReq.debug(|'Processing ->distinct'); + let currReq = process($vs.parametersValues->at(0), $initReq); + assertFalse($currReq.aggregationQuery, |'distinct not supported in aggregation queries'); + processGroupBy($currReq.tdsESDetails, [], $currReq); +} + function meta::external::store::elasticsearch::v7::pureToEs::processExtend(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->extend'); @@ -151,7 +173,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : { let currReq = process($vs.parametersValues->at(0), $initReq); assert(!$currReq.inFilter); - assertFalse($currReq.aggregationQuery, |'project not supported in aggreagtion queries'); + assertFalse($currReq.aggregationQuery, |'project not supported in aggregation queries'); let cols = $vs->instanceValuesAtParameter(1, $currReq.sq.inScopeVars); let fieldsStatePair = $cols->match([ tdsCols: BasicColumnSpecification[*] | $tdsCols->fold( @@ -180,12 +202,22 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProjectColum $expr->extractSimpleValue($initReq).first.values->match([ tdsDetail: TDSESDetail[1] | pair(^$tdsDetail(name = $name, type = $type), $initReq), - {fe: FunctionExpression[1] | + {vs: ValueSpecification[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); + let scripted = $vs->toRuntimeMapping($resultPath, $initReq); + pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, 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) + {any: Any[*] | + $any->type()->match([ + {pt: PrimitiveType[1] | + let resultPath = ^DocValueResultPath(fieldPath = $name, property = $pt->defaultRuntimePropertyForPureType()); + let iv = ^InstanceValue(multiplicity = $vs.func->functionReturnMultiplicity(), genericType = ^GenericType(rawType = $type), values=$any)->evaluateAndDeactivate(); + let scripted = $iv->toRuntimeMapping($resultPath, $initReq); + pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, format = $scripted.search.runtime_mappings->toOne()->get($name).format.value), $scripted); + }, + other: Any[*] | fail(|'Cannot project column - %s:%s'->format([$name,$any->type()->elementToPath()]))->cast(@Pair) + ]) + } ]); } @@ -273,6 +305,11 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: let groupByTdsESDetails = $groupByCols->map(g | $groupedReq.tdsESDetails->filter(x | $x.name == $g)); assert($groupByCols->size() == $groupByTdsESDetails->size(), | 'grouping by unknown columns: ' + $groupByCols->removeAll($groupByTdsESDetails.name)->joinStrings('[', ', ', ']')); + processGroupBy($groupByTdsESDetails, $aggregateValues, $groupedReq); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(groupByTdsESDetails: TDSESDetail[*], aggregateValues: meta::pure::tds::AggregateValue[*], groupedReq: State[1]): State[1] +{ 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.'); @@ -293,7 +330,7 @@ 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 ($groupByTdsESDetails->isEmpty(), | // no group by field - just run the aggregations $aggregations @@ -316,6 +353,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: let newSearch = ^$search( size = 0->literal() // avoiding reading all the matches, we just want the aggregate results ,aggregations = $aggregationsForSearch + ,docvalue_fields = [] ,_source = ^SourceConfig(fetch = false->literal()) ); @@ -558,22 +596,24 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFun { let supported = [ 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(supportedIfEqual(project_TabularDataSet_1__ColumnSpecification_MANY__TabularDataSet_1_), processProject_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(extend_TabularDataSet_1__BasicColumnSpecification_MANY__TabularDataSet_1_), processExtend_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(restrict_TabularDataSet_1__String_MANY__TabularDataSet_1_), processRestrict_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(distinct_TabularDataSet_1__TabularDataSet_1_), processDistinct_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(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(supportedIfEqual(filter_TabularDataSet_1__Function_1__TabularDataSet_1_), processFilter_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(supportedIfEqual(sort_TabularDataSet_1__String_MANY__TabularDataSet_1_), processDefaultSort_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(sort_TabularDataSet_1__SortInformation_MANY__TabularDataSet_1_), processSortWithInformation_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(sort_TabularDataSet_1__String_1__SortDirection_1__TabularDataSet_1_), processSortWithDirection_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_), processGroupBy_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_) + pair(supportedIfEqual(limit_TabularDataSet_1__Integer_1__TabularDataSet_1_), processLimit_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(take_TabularDataSet_1__Integer_1__TabularDataSet_1_), processLimit_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(drop_TabularDataSet_1__Integer_1__TabularDataSet_1_), processDrop_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(slice_TabularDataSet_1__Integer_1__Integer_1__TabularDataSet_1_), processSlice_FunctionExpression_1__State_1__State_1_) ]; } @@ -1228,7 +1268,7 @@ 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] +function meta::external::store::elasticsearch::v7::pureToEs::toRuntimeMapping(vs: ValueSpecification[1], field: DocValueResultPath[1], initReq: State[1]): State[1] { let p = processPainless($vs, ^$initReq(inProject = false, inFilter = true)); @@ -1247,7 +1287,10 @@ function meta::external::store::elasticsearch::v7::pureToEs::toRuntimeMapping(vs let emittingScript = ^$script(source = 'emit(%s%s)'->format([$script.source.value->toOne(), $toEpochMillis])->literal()); - let format = painlessDateFunctionsFormat($vs.func)->literal(); + let format = $vs->match([ + fe: FunctionExpression[1] | painlessDateFunctionsFormat($fe.func), + any: Any[*] | [] + ])->literal(); let newField = pair($field.path(), ^RuntimeField(script = ^Script(inline = $emittingScript), format = $format, type = $type)); @@ -1267,6 +1310,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainless(vs: { $vs->match([ fe: FunctionExpression[1] | $initReq.supportedForPainlessScriptFunctions->findAndEvalSupportedFunction($fe, $initReq, $initReq), + ve: VariableExpression[1] | $ve->processPainlessScalarValue($initReq), iv: InstanceValue[1] | $iv.values->match([ f: FunctionDefinition[1] | $f.expressionSequence->at(0)->processPainless($initReq), 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 893eb6fa3bf..b7b80238035 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 @@ -22,6 +22,7 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.UUID; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; @@ -52,6 +53,7 @@ public class ElasticsearchCommands public static Root_meta_pure_functions_io_http_URL startServer(String imageTag) { + System.setProperty("org.finos.legend.engine.plan.execution.stores.elasticsearch.test.password", UUID.randomUUID().toString()); Root_meta_pure_functions_io_http_URL_Impl url = new Root_meta_pure_functions_io_http_URL_Impl("esUrl"); ElasticsearchContainer container = CONTAINERS.computeIfAbsent(imageTag, ElasticsearchCommands::createContainer); url._host(container.getHost()); @@ -64,6 +66,7 @@ public static Root_meta_pure_functions_io_http_URL startServer(String imageTag) public static void stopServer(String imageTag) { + System.clearProperty("org.finos.legend.engine.plan.execution.stores.elasticsearch.test.password"); Optional.ofNullable(CONTAINERS.remove(imageTag)).ifPresent(ElasticsearchContainer::stop); } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure index 0c82c6b7dcb..c0b96ec649e 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure @@ -65,4 +65,28 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByOnNullableField(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r.getNullableString('MPAA'), agg | $agg->count()))); +} + +function + <> + {doc.doc = 'Test distinct on single columns on Elasticsearch (translated as a group by)'} +meta::external::store::elasticsearch::executionTest::testCase::tds::distinct::testDistinctSingleColumn(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict('Director')->distinct()); +} + +function + <> + {doc.doc = 'Test distinct on multiple columns on Elasticsearch (translated as a group by)'} +meta::external::store::elasticsearch::executionTest::testCase::tds::distinct::testDistinctMultipleColumns(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict(['Director', 'MPAA'])->distinct()); +} + +function + <> + {doc.doc = 'Test restrict group by columns on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::testRestrictGroupByColumns(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy(['Director', 'MPAA'], [ agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()), agg('avgBudget', r | $r.getInteger('Budget'), agg | $agg->average()) ])->restrict(['Director', 'avgBudget'])); } \ 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 201f78cf3cd..0bb015433d2 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,22 +18,22 @@ 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::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 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 <> 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 index f2ec3195bd2..3003b8f7e23 100644 --- 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 @@ -18,6 +18,14 @@ 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 restrict on Elasticsearch on boolean field'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::boolean::testRestrictBoolean(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.isNull('MPAA'), 'has mpaa')])->restrict('has mpaa')); +} + function <> {doc.doc = 'Test projection on Elasticsearch with pure isEmpty expressions'} 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 index d14eb85760e..1e80b3cd75e 100644 --- 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 @@ -18,6 +18,14 @@ 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 restrict on Elasticsearch Date property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::date::testRestrictDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict('ReleaseDate')); +} + function <> {doc.doc = 'Test projection on Elasticsearch Date property mapping'} 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 index 34563842ef7..41c389aa966 100644 --- 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 @@ -18,6 +18,14 @@ 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 restrict on Elasticsearch Float property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::float::testRestrictFloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict('Revenue')); +} + function <> {doc.doc = 'Test projection on Elasticsearch Float property mapping'} 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 index 058c6dc38fe..48912f15d32 100644 --- 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 @@ -18,6 +18,14 @@ 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 restrict on Elasticsearch Integer property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::integer::testRestrictInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict('Budget')); +} + function <> {doc.doc = 'Test projection on Elasticsearch Integer property mapping'} 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 index 16ef0069ea8..749ebed6458 100644 --- 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 @@ -18,6 +18,15 @@ 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 restrict on Elasticsearch Keyword property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::keyword::testRestrictKeyword(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict('Title')); +} + + function <> {doc.doc = 'Test projection on Elasticsearch Keyword property mapping'} 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 index 2bd4aa98876..536e04a99e8 100644 --- 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 @@ -18,6 +18,15 @@ 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 restrict on Elasticsearch Text property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::text::testRestrictText(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict('Description')); +} + + function <> {doc.doc = 'Test projection on Elasticsearch Text property mapping'} From 814d257c6e44c507ffd5bc84d889ee2906900cf4 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Wed, 29 Nov 2023 14:01:23 +0000 Subject: [PATCH 14/54] Legend SQL - Assortment of changes (#2483) - left/right support - make_date/make_timestamp/localtimestamp support - trim support --- .../toPureGraph/handlers/Handlers.java | 4 + .../core/legend/test/handlersTest.pure | 4 +- .../pure/corefunctions/stringExtension.pure | 28 +++++++ .../corefunctions/tests/string/testLeft.pure | 20 +++++ .../corefunctions/tests/string/testRight.pure | 20 +++++ .../pure/router/routing/router_routing.pure | 2 + .../sqlQueryToString/postgresExtension.pure | 4 +- .../pureToSQLQuery/pureToSQLQuery.pure | 2 + .../dbSpecific/db2/db2Extension.pure | 2 + .../testSuite/dynaFunctions/string.pure | 14 ++++ .../fromPure/tests/testToSQLString.pure | 25 ++++++ .../language/sql/grammar/from/SqlVisitor.java | 45 ++++++++++- .../sql/grammar/to/SQLGrammarComposer.java | 7 ++ .../test/roundtrip/TestSQLRoundTrip.java | 7 ++ .../metamodel.pure | 7 ++ .../binding/fromPure/fromPure.pure | 81 ++++++++++++++++++- .../binding/fromPure/tests/testTranspile.pure | 60 ++++++++++++-- .../query/sql/api/TableSourceExtractor.java | 6 ++ 18 files changed, 324 insertions(+), 14 deletions(-) create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testLeft.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testRight.pure 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 f482f6f4063..0cf4a78d7e1 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 @@ -930,6 +930,8 @@ private void registerStrings() register("meta::pure::functions::string::trim_String_1__String_1_", true, ps -> res("String", "one")); register("meta::pure::functions::string::ltrim_String_1__String_1_", true, ps -> res("String", "one")); register("meta::pure::functions::string::rtrim_String_1__String_1_", true, ps -> res("String", "one")); + register("meta::pure::functions::string::left_String_1__Integer_1__String_1_", false, ps -> res("String", "one")); + register("meta::pure::functions::string::right_String_1__Integer_1__String_1_", false, ps -> res("String", "one")); register(m(m(h("meta::pure::functions::string::lpad_String_1__Integer_1__String_1_", false, ps -> res("String", "one"), ps -> ps.size() == 2)), m(h("meta::pure::functions::string::lpad_String_1__Integer_1__String_1__String_1_", false, ps -> res("String", "one"), ps -> true)))); @@ -2074,6 +2076,8 @@ private Map buildDispatch() map.put("meta::pure::functions::string::trim_String_1__String_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::functions::string::ltrim_String_1__String_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::functions::string::rtrim_String_1__String_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::functions::string::left_String_1__Integer_1__String_1_", (List ps) -> ps.size() == 2 && 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()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name()))); + map.put("meta::pure::functions::string::right_String_1__Integer_1__String_1_", (List ps) -> ps.size() == 2 && 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()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::string::lpad_String_1__Integer_1__String_1_", (List ps) -> ps.size() == 2 && 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()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name()))); map.put("meta::pure::functions::string::lpad_String_1__Integer_1__String_1__String_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()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".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::functions::string::rpad_String_1__Integer_1__String_1_", (List ps) -> ps.size() == 2 && 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()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name()))); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure index 145fab5829f..380dd9a2e83 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/test/handlersTest.pure @@ -380,7 +380,9 @@ Class meta::legend::test::handlers::model::TestString lpad(){$this.string->lpad(1)}:String[1]; lpad2(){$this.string->lpad(1, '0')}:String[1]; rpad(){$this.string->rpad(1)}:String[1]; - rpad2(){$this.string->rpad(1, '0')}:String[1]; + rpad2(){$this.string->rpad(1, '0')}:String[1]; + left(){$this.string->left(1)}:String[1]; + right(){$this.string->right(1)}:String[1]; parseBoolean(){$this.string->parseBoolean()}:Boolean[1]; parseDate(){$this.string->parseDate()}:Date[1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/stringExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/stringExtension.pure index 390c64a9cbd..732c2929370 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/stringExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/stringExtension.pure @@ -51,6 +51,34 @@ function {doc.doc = 'Lower cases the first charater of the provided string'} met }) } +function {doc.doc = 'Return first n characters in the string'} +meta::pure::functions::string::left(string:String[1], length:Integer[1]):String[1] +{ + assert($length >= 0, 'length must be >= 0'); + + let strLength = $string->length(); + + let digits = if ($length > $strLength, + | $strLength, + | $length); + + $string->substring(0, $digits); +} + +function {doc.doc = 'Return last n characters in the string'} +meta::pure::functions::string::right(string:String[1], length:Integer[1]):String[1] +{ + assert($length >= 0, 'length must be >= 0'); + + let strLength = $string->length(); + + let digits = if ($length > $strLength, + | 0, + | $strLength - $length); + + $string->substring($digits, $strLength); +} + function meta::pure::functions::string::repeatString(str:String[0..1], times:Integer[1]):String[0..1] { if ($str->isNotEmpty(), | $str->toOne()->repeat($times)->joinStrings(), | []); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testLeft.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testLeft.pure new file mode 100644 index 00000000000..ad16116c71f --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testLeft.pure @@ -0,0 +1,20 @@ +// 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::pure::functions::string::tests::left::leftTest():Boolean[1] { + + assertEquals('ab', 'abcde'->left(2)); + assertEquals('', 'abcde'->left(0)); + assertEquals('abcde', 'abcde'->left(7)); +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testRight.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testRight.pure new file mode 100644 index 00000000000..da38ec4df8a --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/tests/string/testRight.pure @@ -0,0 +1,20 @@ +// 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::pure::functions::string::tests::right::rightTest():Boolean[1] { + + assertEquals('de', 'abcde'->right(2)); + assertEquals('', 'abcde'->right(0)); + assertEquals('abcde', 'abcde'->right(7)); +} 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 fade4869da1..2223e3a49d2 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 @@ -740,6 +740,8 @@ function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure: lpad_String_1__Integer_1__String_1__String_1_, rpad_String_1__Integer_1__String_1_, rpad_String_1__Integer_1__String_1__String_1_, + left_String_1__Integer_1__String_1_, + right_String_1__Integer_1__String_1_, meta::pure::tds::extensions::firstNotNull_T_MANY__T_$0_1$_, meta::pure::functions::date::calendar::annualized_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_1$_, meta::pure::functions::date::calendar::cme_Date_1__String_1__Date_1__Number_$0_1$__Number_$0_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/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 db340cecdda..42fd762831f 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 @@ -185,6 +185,7 @@ function <> meta::relational::functions::sqlQueryToString::postg 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)')), + dynaFnToSql('left', $allStates, ^ToSql(format='left(%s, %s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('minute', $allStates, ^ToSql(format='date_part(\'minute\', %s)')), dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), @@ -195,9 +196,10 @@ function <> meta::relational::functions::sqlQueryToString::postg 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)')), - dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), + dynaFnToSql('quarter', $allStates, ^ToSql(format='date_part(\'quarter\', %s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='date_part(\'quarter\', %s)')), dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), + dynaFnToSql('right', $allStates, ^ToSql(format='right(%s, %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round((%s)::numeric, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='date_part(\'second\', %s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), 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 c600e7cd98a..3d7a1e1c0aa 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 @@ -7779,6 +7779,8 @@ function meta::relational::functions::pureToSqlQuery::getSupportedFunctions():Ma ^PureFunctionToRelationalFunctionPair(first=meta::pure::functions::string::trim_String_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::ltrim_String_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::rtrim_String_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::left_String_1__Integer_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::right_String_1__Integer_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::lpad_String_1__Integer_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::lpad_String_1__Integer_1__String_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_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::string::rpad_String_1__Integer_1__String_1_,second=meta::relational::functions::pureToSqlQuery::processDynaFunction_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_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/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 c059e176ac7..7c3e5926461 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 @@ -98,6 +98,7 @@ function <> meta::relational::functions::sqlQueryToString::db2:: dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='date(1) + (year(%s)-1) YEARS')), dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='listagg(%s,%s)')), + dynaFnToSql('left', $allStates, ^ToSql(format='trim(left(%s, %s))')), dynaFnToSql('length', $allStates, ^ToSql(format='CHARACTER_LENGTH(%s,CODEUNITS32)')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), dynaFnToSql('md5', $allStates, ^ToSql(format='hash_md5(%s)')), @@ -114,6 +115,7 @@ function <> meta::relational::functions::sqlQueryToString::db2:: dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), + dynaFnToSql('right', $allStates, ^ToSql(format='trim(right(%s, %s))')), 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_sha1(%s)')), 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/dynaFunctions/string.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/dynaFunctions/string.pure index de59320059d..0f73ea1e6ed 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/dynaFunctions/string.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/dynaFunctions/string.pure @@ -251,6 +251,13 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); } +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::left::testLonger(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='left', parameters=[^Literal(value='Bloggs'), ^Literal(value=8)]); + let expected = ^Literal(value='Bloggs'); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::right::testNoSpace(config:DbTestConfig[1]):Boolean[1] { let dynaFunc = ^DynaFunction(name='right', parameters=[^Literal(value='Smith'), ^Literal(value=3)]); @@ -265,6 +272,13 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); } +function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::right::testLonger(config:DbTestConfig[1]):Boolean[1] +{ + let dynaFunc = ^DynaFunction(name='right', parameters=[^Literal(value='Bloggs'), ^Literal(value=8)]); + let expected = ^Literal(value='Bloggs'); + runDynaFunctionDatabaseTest($dynaFunc, $expected, $config); +} + // contains, endsWith , startsWith function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::dynaFunctions::contains::testNoSpace(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/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 01a668a1a26..5cc74e81a43 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 @@ -431,6 +431,31 @@ function <> meta::relational::tests::functions::sqlstring::testPad(): )->distinct() == [true]; } +function <> meta::relational::tests::functions::sqlstring::testLeftRight():Boolean[1] +{ + + let expected = [ + pair(DatabaseType.DB2, 'select trim(left("root".FIRSTNAME, 1)) as "left", trim(right("root".FIRSTNAME, 1)) as "right" from personTable as "root"'), + pair(DatabaseType.H2, 'select left("root".FIRSTNAME,1) as "left", right("root".FIRSTNAME,1) as "right" from personTable as "root"') + ]; + + $expected->map(p| + let driver = $p.first; + let expectedSql = $p.second; + + let result = toSQLString( + |Person.all()->project([ + a | $a.firstName->left(1), + a | $a.firstName->right(1) + ], + ['left', 'right']), + 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::testCbrt():Boolean[1] { let common = 'select cbrt("root".quantity) as "cbrt" from tradeTable as "root"'; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java index 55ea8368590..39933622c87 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SqlVisitor.java @@ -20,6 +20,7 @@ import org.antlr.v4.runtime.tree.TerminalNode; import org.eclipse.collections.impl.list.mutable.FastList; import org.eclipse.collections.impl.map.mutable.UnifiedMap; +import org.eclipse.collections.impl.utility.ArrayIterate; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.language.sql.grammar.from.antlr4.SqlBaseLexer; import org.finos.legend.engine.language.sql.grammar.from.antlr4.SqlBaseParser; @@ -1407,19 +1408,24 @@ public Node visitAtTimezone(SqlBaseParser.AtTimezoneContext context) @Override public Node visitLeft(SqlBaseParser.LeftContext context) { - return unsupported(); + return functionCall("left", context.strOrColName, context.len); } @Override public Node visitRight(SqlBaseParser.RightContext context) { - return unsupported(); + return functionCall("right", context.strOrColName, context.len); } @Override public Node visitTrim(SqlBaseParser.TrimContext ctx) { - return unsupported(); + Trim trim = new Trim(); + trim.value = (Expression) visit(ctx.target); + trim.characters = visitIfPresent(ctx.charsToTrim, Expression.class).orElse(null); + trim.mode = getTrimMode(ctx.trimMode); + + return trim; } @Override @@ -1906,6 +1912,25 @@ private static CurrentTimeType getDateTimeFunctionType(Token token) } } + private TrimMode getTrimMode(Token type) + { + if (type == null) + { + return TrimMode.BOTH; + } + switch (type.getType()) + { + case SqlBaseLexer.BOTH: + return TrimMode.BOTH; + case SqlBaseLexer.LEADING: + return TrimMode.LEADING; + case SqlBaseLexer.TRAILING: + return TrimMode.TRAILING; + default: + throw new UnsupportedOperationException("Unsupported trim mode: " + type.getText()); + } + } + private static SortItemNullOrdering getNullOrderingType(Token token) { if (token != null) @@ -1948,6 +1973,20 @@ private QualifiedName qualifiedName(String... parts) return qualifiedName; } + private FunctionCall functionCall(String name, ExprContext... contexts) + { + return functionCall(name, ArrayIterate.collect(contexts, c -> (Expression) visit(c))); + } + + private FunctionCall functionCall(String name, List arguments) + { + FunctionCall functionCall = new FunctionCall(); + functionCall.name = qualifiedName(name); + functionCall.arguments = arguments; + + return functionCall; + } + private static WindowFrameMode getFrameType(Token type) { switch (type.getType()) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java index a43e9461c29..9991e4eff7e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java @@ -533,6 +533,13 @@ public String visit(TableSubquery val) return "(" + visit(val.query) + ")"; } + @Override + public String visit(Trim val) + { + String chars = val.characters != null ? " " + visit(val.characters) : ""; + return "trim(" + val.mode.name() + chars + " FROM " + visit(val.value) + ")"; + } + @Override public String visit(Union val) { 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 762706172b2..76b643e9467 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 @@ -321,6 +321,13 @@ public void testFunctionCallWithOrder() check("SELECT string_agg(Col1, ', ' ORDER BY Col2 ASC, Col3 DESC) FROM myTable"); } + @Test + public void testTrim() + { + check("SELECT trim(BOTH ' ' FROM 'abc') FROM myTable"); + check("SELECT trim(BOTH FROM 'abc') FROM myTable"); + } + @Test public void testNested() { diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure index da34ebef02c..37ad513ee78 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure @@ -268,6 +268,13 @@ Class meta::external::query::sql::metamodel::Extract extends meta::external::que <> field: meta::external::query::sql::metamodel::ExtractField[1]; } +Class meta::external::query::sql::metamodel::Trim extends meta::external::query::sql::metamodel::Expression +{ + <> value: meta::external::query::sql::metamodel::Expression[1]; + <> characters: meta::external::query::sql::metamodel::Expression[0..1 ]; + <> mode: meta::external::query::sql::metamodel::TrimMode[1]; +} + Class meta::external::query::sql::metamodel::Join extends meta::external::query::sql::metamodel::Relation { <> type: meta::external::query::sql::metamodel::JoinType[1]; 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 0ce699dcb50..8600b749b8a 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 @@ -1382,6 +1382,7 @@ function meta::external::query::sql::transformation::queryToPure::extractNameFro let when = $s.whenClauses->map(w | $w->extractNameFromExpression($context))->joinStrings(' '); let default = if ($s.defaultValue->isEmpty(), | '', | ' ELSE ' + $s.defaultValue->toOne()->extractNameFromExpression($context)); 'CASE ' + $when + $default + ' END';, + t:Trim[1] | 'TRIM(' + $t.mode->toString() + if ($t.characters->isEmpty(), | '', | ' ' + $t.characters->toOne()->extractNameFromExpression($context)) + ' FROM ' + $t.value->extractNameFromExpression($context) + ')', w:WhenClause[1] | 'WHEN ' + $w.operand->extractNameFromExpression($context) + ' THEN ' + $w.result->extractNameFromExpression($context), e:meta::external::query::sql::metamodel::Expression[1] | '' ]) @@ -1461,6 +1462,7 @@ function <> meta::external::query::sql::transformation::queryToP q:QualifiedNameReference[1] | processQualifiedNameReference($q, $expContext, $context), s:SimpleCaseExpression[1] | processSimpleCaseExpression($s, $expContext, $context), s:SearchedCaseExpression[1] | processSearchedCaseExpression($s, $expContext, $context), + t:Trim[1] | processTrim($t, $expContext, $context), e:meta::external::query::sql::metamodel::Expression[*] | fail('Expression type not yet supported'); iv(1); ])->evaluateAndDeactivate(); } @@ -1537,7 +1539,6 @@ function <> meta::external::query::sql::transformation::queryToP let func = [ pair(CurrentTimeType.DATE, today__StrictDate_1_), - pair(CurrentTimeType.TIME, now__DateTime_1_), pair(CurrentTimeType.TIMESTAMP, now__DateTime_1_) ]->getValue($c.type); @@ -1728,6 +1729,21 @@ function <> meta::external::query::sql::transformation::queryToP ]->getValue($c.type.name->toUpper()); } +function <> meta::external::query::sql::transformation::queryToPure::processTrim(t:Trim[1], expContext:SqlTransformExpressionContext[1], context:SqlTransformContext[1]):ValueSpecification[1] +{ + debug('processTrim', $context.debug); + + let name = [ + pair(TrimMode.LEADING, 'ltrim'), + pair(TrimMode.TRAILING, 'rtrim'), + pair(TrimMode.BOTH, 'btrim') + ]->getValue($t.mode); + + ^FunctionCall(name = ^QualifiedName(parts = $name), + distinct = false, + arguments = $t.value->concatenate($t.characters))->processFunctionCall($expContext, $context); +} + function <> meta::external::query::sql::transformation::queryToPure::processSearchedCaseExpression(s:SearchedCaseExpression[1], expContext:SqlTransformExpressionContext[1], context:SqlTransformContext[1]):SimpleFunctionExpression[1] { debug('processSearchedCaseExpression', $context.debug); @@ -2062,15 +2078,39 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('concat', String, {args, fc, ctx | sfe(plus_String_MANY__String_1_, iv($args)) }), + processor('decode', String, {args, fc, ctx | + assert($args->size() == 2, | 'incorrect number of args to decode'); + + let type = $args->at(1)->reactivate()->cast(@String)->toOne(); + + let func = [ + pair('base64', decodeBase64_String_1__String_1_) + ]->getValue($type->toLower()); + + nullOrSfe($func, $args->at(0)); + }), + processor('encode', String, {args, fc, ctx | + assert($args->size() == 2, | 'incorrect number of args to encode'); + + let type = $args->at(1)->reactivate()->cast(@String)->toOne(); + + let func = [ + pair('base64', encodeBase64_String_1__String_1_) + ]->getValue($type->toLower()); + + nullOrSfe($func, $args->at(0)); + }), processor('length', length_String_1__Integer_1_), processor('lower', toLower_String_1__String_1_), processor('lpad', String, {args, fc, ctx | processPad($args, true)}), processor('ltrim', String, {args, fc, ctx | processTrim(ltrim_String_1__String_1_, $args)}), + processor('left', left_String_1__Integer_1__String_1_), processor('md5', String, {args, fc, ctx | processHash($args, meta::pure::functions::hash::HashType.MD5)}), processor('regexp_like', matches_String_1__String_1__Boolean_1_), processor('repeat', repeatString_String_$0_1$__Integer_1__String_$0_1$_), processor('replace', replace_String_1__String_1__String_1__String_1_), processor('reverse', reverseString_String_1__String_1_), + processor('right', right_String_1__Integer_1__String_1_), processor('rpad', String, {args, fc, ctx | processPad($args, false)}), 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)}), @@ -2137,6 +2177,37 @@ function meta::external::query::sql::transformation::queryToPure::functionProces nullOrSfe($func, $args->at(1)); }), + processor('localtimestamp', Date, {args, fc, ctx | + assertEquals(0, $args->size(), 'only zero arg localtimestamp supported'); + + sfe(now__DateTime_1_, []); + }), + processor('make_date', Date, {args, fc, ctx | + assertEquals(3, $args->size(), 'incorrect number of args for make_date'); + + let year = $args->at(0)->reactivate()->toOne()->cast(@Integer); + let month = $args->at(1)->reactivate()->toOne()->cast(@Integer); + let day = $args->at(2)->reactivate()->toOne()->cast(@Integer); + + let date = date($year, $month, $day); + + iv($date); + }), + + processor('make_timestamp', Date, {args, fc, ctx | + assertEquals(6, $args->size(), 'incorrect number of args for make_timestamp'); + + let year = $args->at(0)->reactivate()->toOne()->cast(@Integer); + let month = $args->at(1)->reactivate()->toOne()->cast(@Integer); + let day = $args->at(2)->reactivate()->toOne()->cast(@Integer); + let hours = $args->at(3)->reactivate()->toOne()->cast(@Integer); + let minutes = $args->at(4)->reactivate()->toOne()->cast(@Integer); + let seconds = $args->at(5)->reactivate()->toOne()->cast(@Number); + + let date = date($year, $month, $day, $hours, $minutes, $seconds); + + iv($date); + }), //COLLECTION processor('coalesce', [], {args, fc, ctx | @@ -2179,7 +2250,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces let type = $arg.genericType.rawType; let format = $args->at(1)->reactivate()->toOne()->cast(@String); - assert($type->isNotEmpty() && $type->toOne()->normalizeType() == Date, 'to_char currently only supported for know date inputs'); + assert($type->isNotEmpty() && $type->toOne()->normalizeType() == Date, 'to_char currently only supported for date inputs'); toChar($format, [], $arg->evaluateAndDeactivate()); }), @@ -2504,6 +2575,7 @@ function <> meta::external::query::sql::transformation::queryToP q:QualifiedNameReference[1] | $context.columnByNameParts($q.name.parts, true).type->toOne(), s:SearchedCaseExpression[1] | caseExpressionType($s.whenClauses, $s.defaultValue, $context), s:SimpleCaseExpression[1] | caseExpressionType($s.whenClauses, $s.defaultValue, $context), + t:Trim[1] | String, e:meta::external::query::sql::metamodel::Expression[1] | Any ]); } @@ -2964,6 +3036,7 @@ function <> meta::external::query::sql::transformation::queryToP n:NotExpression[1] | walk($n.value, $accumulator, $extras), s:SimpleCaseExpression[1] | $s->convertToSearchedCaseExpression()->walk($accumulator, $extras), s:SearchedCaseExpression[1] | $s.whenClauses->map(w | walk($w.operand, $w.result, $accumulator, $extras))->concatenate(walk($s.defaultValue, $accumulator, $extras)), + t:Trim[1] | walk($t.value, $t.characters, $accumulator, $extras), e:meta::external::query::sql::metamodel::Expression[0..1] | [] ])->toOneMany()); @@ -3024,6 +3097,10 @@ function <> meta::external::query::sql::transformation::queryToP defaultValue = $s.defaultValue->walk($extras), whenClauses = $s.whenClauses->map(wc | ^$wc(operand = $wc.operand->walk($extras)->toOne(), result = $wc.result->walk($extras)->toOne())) ), + t:Trim[1] | ^$t( + value = $t.value->walk($extras)->toOne(), + characters = $t.characters->walk($extras) + ), e:meta::external::query::sql::metamodel::Expression[1] | $e ])->match($extras->concatenate([ e:meta::external::query::sql::metamodel::Expression[1] | $e 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 12b8850ab1a..49a943b5eb9 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 @@ -1481,7 +1481,7 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testCurrentTime():Boolean[1] { test( - 'SELECT CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME AS time, CURRENT_TIMESTAMP AS timestamp, CURRENT_DATE AS date FROM service."/service/service1"', + 'SELECT CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIMESTAMP AS timestamp, CURRENT_DATE AS date FROM service."/service/service1"', {| FlatInput.all() @@ -1489,16 +1489,36 @@ function <> meta::external::query::sql::transformation::queryToPure:: [ 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] | now(), 'CURRENT_TIME'), col(row:TDSRow[1] | now(), 'CURRENT_TIMESTAMP'), col(row:TDSRow[1] | today(), 'CURRENT_DATE'), - col(row:TDSRow[1] | now(), 'time'), col(row:TDSRow[1] | now(), 'timestamp'), col(row:TDSRow[1] | today(), 'date') ]) }) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testDateFunctions():Boolean[1] +{ + test( + 'SELECT ' + + 'localtimestamp() AS "LOCALTIMESTAMP", ' + + 'make_date(2023, 01, 02) AS "MAKEDATE", ' + + 'make_timestamp(2023, 01, 02, 12, 11, 10.5) AS "MAKETIMESTAMP" ' + + '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' ]) + ->project([ + col(row:TDSRow[1] | now(), 'LOCALTIMESTAMP'), + col(row:TDSRow[1] | %2023-01-02, 'MAKEDATE'), + col(row:TDSRow[1] | %2023-01-02T12:11:10.5, 'MAKETIMESTAMP') + ]) + }) +} + //DATE_TRUNC function <> meta::external::query::sql::transformation::queryToPure::tests::testDateTrunc():Boolean[1] { @@ -1633,7 +1653,11 @@ function <> meta::external::query::sql::transformation::queryToPure:: 'lower(String) AS "LOWER", repeat(String, 2) AS "REPEAT", replace(String, \'A\', \'a\') AS "REPLACE", starts_with(String, \'a\') AS "STARTSWITH", strpos(String, \'abc\') AS "STRPOS",' + 'reverse(String) AS "REVERSE", rtrim(String) AS "RTRIM", rtrim(String, \' \') AS "RTRIM2", sha256(String) AS "SHA256", split_part(String, \',\', 1) AS "SPLITPART", ' + 'split_part(String, \',\', Integer) AS "SPLITPART2", substring(String, 1) AS "SUBSTRING", substr(String, 1, 2) AS "SUBSTR", btrim(String) AS "TRIM", btrim(String, \' \') AS "TRIM2",' + - 'lpad(String, 2) AS "LPAD", lpad(String, 2, \'a\') AS "LPAD2", rpad(String, 2) AS "RPAD", rpad(String, 2, \'a\') AS "RPAD2" FROM service."/service/service1"', + 'lpad(String, 2) AS "LPAD", lpad(String, 2, \'a\') AS "LPAD2", rpad(String, 2) AS "RPAD", rpad(String, 2, \'a\') AS "RPAD2", left(String, 1) AS "LEFT", right(String, 1) AS "RIGHT", ' + + 'decode(String, \'base64\') AS "DECODE", encode(String, \'base64\') AS "ENCODE", ' + + 'trim(BOTH from String) AS "TRIMB", trim(BOTH \' \' from String) AS "TRIMB2", trim(LEADING from String) AS "TRIML", trim(LEADING \' \' from String) AS "TRIML2", ' + + 'trim(TRAILING from String) AS "TRIMT", trim(TRAILING \' \' from String) AS "TRIMT2"' + + 'FROM service."/service/service1"', {| FlatInput.all() @@ -1670,7 +1694,17 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | lpad($row.getString('String'), 2), 'LPAD'), col(row:TDSRow[1] | lpad($row.getString('String'), 2, 'a'), 'LPAD2'), col(row:TDSRow[1] | rpad($row.getString('String'), 2), 'RPAD'), - col(row:TDSRow[1] | rpad($row.getString('String'), 2, 'a'), 'RPAD2') + col(row:TDSRow[1] | rpad($row.getString('String'), 2, 'a'), 'RPAD2'), + col(row:TDSRow[1] | left($row.getString('String'), 1), 'LEFT'), + col(row:TDSRow[1] | right($row.getString('String'), 1), 'RIGHT'), + col(row:TDSRow[1] | decodeBase64($row.getString('String')), 'DECODE'), + col(row:TDSRow[1] | encodeBase64($row.getString('String')), 'ENCODE'), + col(row:TDSRow[1] | trim($row.getString('String')), 'TRIMB'), + col(row:TDSRow[1] | trim($row.getString('String')), 'TRIMB2'), + col(row:TDSRow[1] | ltrim($row.getString('String')), 'TRIML'), + col(row:TDSRow[1] | ltrim($row.getString('String')), 'TRIML2'), + col(row:TDSRow[1] | rtrim($row.getString('String')), 'TRIMT'), + col(row:TDSRow[1] | rtrim($row.getString('String')), 'TRIMT2') ]) }) } @@ -1682,7 +1716,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: 'ltrim(NULL, \' \') AS "LTRIM2", md5(NULL) AS "MD5", upper(NULL) AS "UPPER", lower(NULL) AS "LOWER", replace(NULL, \'A\', \'a\') AS "REPLACE", starts_with(NULL, \'a\') AS "STARTSWITH", ' + 'strpos(NULL, \'abc\') AS "STRPOS", reverse(NULL) AS "REVERSE", rtrim(NULL) AS "RTRIM", rtrim(NULL, \' \') AS "RTRIM2", sha256(NULL) AS "SHA256", substring(NULL, 1) AS "SUBSTRING", ' + 'substr(NULL, 1, 2) AS "SUBSTR", btrim(NULL) AS "TRIM", btrim(NULL, \' \') AS "TRIM2", lpad(NULL, 2) AS "LPAD", lpad(String, NULL) AS "LPAD2", lpad(String, 2, NULL) AS "LPAD3",' + - 'rpad(NULL, 2) AS "RPAD", rpad(String, NULL) AS "RPAD2", rpad(String, 2, NULL) AS "RPAD3" FROM service."/service/service1"', + 'rpad(NULL, 2) AS "RPAD", rpad(String, NULL) AS "RPAD2", rpad(String, 2, NULL) AS "RPAD3", left(NULL, 1) AS "LEFT", left(String, NULL) AS "LEFT2", right(NULL, 1) AS "RIGHT", right(String, NULL) AS "RIGHT2", ' + + 'decode(NULL, \'base64\') AS "DECODE", encode(NULL, \'base64\') AS "ENCODE", trim(BOTH from NULL) AS "TRIM3" ' + + 'FROM service."/service/service1"', {| FlatInput.all() @@ -1716,7 +1752,14 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | []->cast(@String), 'LPAD3'), col(row:TDSRow[1] | []->cast(@String), 'RPAD'), col(row:TDSRow[1] | []->cast(@String), 'RPAD2'), - col(row:TDSRow[1] | []->cast(@String), 'RPAD3') + col(row:TDSRow[1] | []->cast(@String), 'RPAD3'), + col(row:TDSRow[1] | []->cast(@String), 'LEFT'), + col(row:TDSRow[1] | []->cast(@String), 'LEFT2'), + col(row:TDSRow[1] | []->cast(@String), 'RIGHT'), + col(row:TDSRow[1] | []->cast(@String), 'RIGHT2'), + col(row:TDSRow[1] | []->cast(@String), 'DECODE'), + col(row:TDSRow[1] | []->cast(@String), 'ENCODE'), + col(row:TDSRow[1] | []->cast(@String), 'TRIM3') ]) }) } @@ -2381,6 +2424,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: doNameTest(^SimpleCaseExpression(operand = ^BooleanLiteral(value = true), whenClauses = ^WhenClause(operand = ^BooleanLiteral(value = false),result = ^IntegerLiteral(value = 2)), defaultValue = ^IntegerLiteral(value = 1)), 'CASE WHEN true = false THEN 2 ELSE 1 END'); + + doNameTest(^Trim(value = ^StringLiteral(value = 'abc', quoted = true), characters = ^StringLiteral(value = ' ', quoted = true), mode =TrimMode.BOTH), 'TRIM(BOTH \' \' FROM \'abc\')'); + doNameTest(^Trim(value = ^StringLiteral(value = 'abc', quoted = true), mode = TrimMode.BOTH), 'TRIM(BOTH FROM \'abc\')'); } diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java index 5d05297574d..06b2684782c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java @@ -423,6 +423,12 @@ public Set visit(TableSubquery val) return val.query.accept(this); } + @Override + public Set visit(Trim val) + { + return val.value.accept(this); + } + @Override public Set visit(Union val) { From d765105fb8c457b9ce37d188afcd2a4533b8ad53 Mon Sep 17 00:00:00 2001 From: Abhishoya Lunavat <87463332+abhishoya-gs@users.noreply.github.com> Date: Thu, 30 Nov 2023 12:50:33 +0530 Subject: [PATCH 15/54] Relational - sortBy accepts lambda function (#2460) --- .../relational/functions/tests/testSort.pure | 103 ++++++++++++++++-- .../pureToSQLQuery/pureToSQLQuery.pure | 87 +++++++++++---- 2 files changed, 161 insertions(+), 29 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/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 93924893267..9cabd39a0a4 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 @@ -12,11 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. +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::pure::executionPlan::toString::*; function <> meta::relational::tests::query::sort::testSortSimple():Boolean[1] { @@ -26,13 +28,98 @@ function <> meta::relational::tests::query::sort::testSortSimple():Bo assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".LASTNAME as "o_lastName" from personTable as "root" order by "root".LASTNAME', $result->sqlRemoveFormatting()); } -function <> meta::relational::tests::query::sort::testSortDeep():Boolean[1] +function <> meta::relational::tests::query::sort::testSortByLambdaSimple():Boolean[1] { - let result = execute(|Person.all()->sortBy(p | $p.address->toOne().name), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values, 9); - assertEquals('Smith', $result.values->at(0).lastName); - assertEquals('Hill', $result.values->at(1).lastName); - assertSameElements(['Harris', 'Allen', 'Johnson', 'Hill'], $result.values->drop(2)->take(4).lastName); - assertEquals('Roberts', $result.values->at(6).lastName); - assertEquals('select root.FIRSTNAME as "firstName", root.AGE as "age", root.LASTNAME as "lastName", addressTable_d1_d_m1.NAME as "o_name" from personTable as root left outer join addressTable as addressTable_d1_d_m1 on (addressTable_d1_d_m1.ID = root.ADDRESSID) order by "o_name"', $result->sqlRemoveFormatting()); + let result = execute(|Person.all()->sortBy(p | $p.lastName), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values, 12); + assertEquals(['Allen', 'Firm B', 'Harris', 'Hill', 'Hill', 'Johnson', 'New York', 'Roberts', 'Smith', 'Smith', 'York', 'no Firm'], $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" order by "root".LASTNAME', $result->sqlRemoveFormatting()); +} + +function <> meta::relational::tests::query::sort::testSortByLambdaMultiple():Boolean[1] +{ + let result = execute(|Person.all()->sortBy(p | $p.lastName)->sortBy(p | $p.firstName), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values, 12); + assertEquals(['Anthony', 'David', 'Don', 'Elena', 'Fabrice', 'John', 'John', 'New', 'No address', 'No firm', 'Oliver', 'Peter'], $result.values.firstName); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" order by "root".FIRSTNAME', $result->sqlRemoveFormatting()); +} + +function <> meta::relational::tests::query::sort::testSortByLambdaColumnAddition():Boolean[1] +{ + let result = execute(|Person.all()->sortBy(p | $p.lastName + '|' + $p.firstName), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values, 12); + assertEquals(['Allen|Anthony', 'Firm B|Elena', 'Harris|David', 'Hill|John', 'Hill|Oliver', 'Johnson|John', 'New York|Don', 'Roberts|Fabrice', 'Smith|No address', 'Smith|Peter', 'York|New', 'no Firm|No firm'], zip($result.values.lastName, $result.values.firstName)->map(pair | $pair.first + '|' + $pair.second)); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" order by concat("root".LASTNAME, \'|\', "root".FIRSTNAME)', $result->sqlRemoveFormatting()); +} + +function <> meta::relational::tests::query::sort::testSortByLambdaWithIfElseValue():Boolean[1] +{ + let result = execute(|Person.all()->filter(p|$p.lastName == 'Hill' || $p.firstName == 'John')->sortBy(p | if($p.lastName == 'Hill' && $p.firstName == 'John', | 0, |if ($p.lastName == 'Hill', | 10, | if($p.firstName == 'John',| 20, | 30)))), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values, 3); + assertEquals(['John Hill', 'Oliver Hill', 'John Johnson'], zip($result.values.firstName, $result.values.lastName)->map(p| $p.first + ' ' + $p.second)); + assertEquals([0, 10, 20], zip($result.values.firstName, $result.values.lastName)->map(pair | if($pair.first == 'John' && $pair.second == 'Hill', |0, |if($pair.second == 'Hill', |10, |if($pair.first == 'John', |20, |30))) )); + 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 = \'Hill\' or "root".FIRSTNAME = \'John\') order by case when ("root".LASTNAME = \'Hill\' and "root".FIRSTNAME = \'John\') then 0 else case when "root".LASTNAME = \'Hill\' then 10 else case when "root".FIRSTNAME = \'John\' then 20 else 30 end end end', $result->sqlRemoveFormatting()); +} + +function <> meta::relational::tests::query::sort::testSortByLambdaWIthIfElseColumn():Boolean[1] +{ + let result = execute(|Person.all()->filter(p|$p.lastName == 'Hill' || $p.firstName == 'John')->sortBy(p | if($p.lastName == 'Hill', |$p.firstName, |$p.lastName)), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values, 3); + assertEquals(['John', 'Johnson', 'Oliver'], zip($result.values.firstName, $result.values.lastName)->map(pair | if($pair.second == 'Hill', | $pair.first, |$pair.second))); + 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 = \'Hill\' or "root".FIRSTNAME = \'John\') order by case when "root".LASTNAME = \'Hill\' then "root".FIRSTNAME else "root".LASTNAME end', $result->sqlRemoveFormatting()); +} + +function <> meta::relational::tests::query::sort::testSortByLambdaDeepOptional():Boolean[1] +{ + let result = execute(|Person.all()->sortBy(p | $p.address->toOne().name + '|' + $p.firstName + '|' + $p.lastName), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values, 12); + assertEquals(['Hoboken|Peter|Smith', 'Hong Kong|Oliver|Hill', 'New York|Anthony|Allen', 'New York|David|Harris', 'New York|Don|New York', 'New York|Elena|Firm B', 'New York|John|Hill', 'New York|John|Johnson', 'New York|New|York', 'New York|No firm|no Firm', 'San Fransisco|Fabrice|Roberts'], zip($result.values.address.name, zip($result.values.firstName, $result.values.lastName))->map(pair | $pair.first + '|' + $pair.second.first + '|' + $pair.second.second)); + 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 addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) order by concat("addresstable_0".NAME, \'|\', "root".FIRSTNAME, \'|\', "root".LASTNAME)', $result->sqlRemoveFormatting()); +} + +function <> {meta::pure::executionPlan::profiles::serverVersion.start='vX_X_X'} meta::relational::tests::query::sort::testSortByLambdaAndGraphFetchDeep():Boolean[1] +{ + let gft = #{ + Person{ + address + { + name + } + } + }#; + let result = execute(|Person.all()->sortBy( + p | $p.address->toOne().name + )->graphFetch( + $gft + )->serialize( + $gft + ), + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + + assertJsonStringsEqual('[{"address":null},{"address":{"name":"Hoboken"}},{"address":{"name":"Hong Kong"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"New York"}},{"address":{"name":"San Fransisco"}}]', $result.values); +} + + +function <> meta::relational::tests::query::sort::testSortByLambda_QueryWithParameters_Plan():Boolean[1] +{ + let rawPlan = meta::pure::executionPlan::executionPlan({firstName: String[1], lastName: String[1]|Person.all()->filter(p|$p.lastName == $lastName || $p.firstName == $firstName)->sortBy(p | if($p.firstName == $firstName && $p.lastName == $lastName, | 0, |if ($p.lastName == $lastName || $p.firstName == $firstName, | 10, | 20)))}, simpleRelationalMapping, 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' + + ' resultSizeRange = *\n' + + ' (\n' + + ' FunctionParametersValidationNode\n' + + ' (\n' + + ' functionParameters = [firstName:String[1], lastName:String[1]]\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = Class[impls=(meta::relational::tests::model::simple::Person | simpleRelationalMappingInc.meta_relational_tests_model_simple_Person)]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("pk_0", INT), ("firstName", VARCHAR(200)), ("age", INT), ("lastName", VARCHAR(200))]\n' + + ' sql = 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 = \'${lastName?replace("\'", "\'\'")}\' or "root".FIRSTNAME = \'${firstName?replace("\'", "\'\'")}\') order by case when ("root".FIRSTNAME = \'${firstName?replace("\'", "\'\'")}\' and "root".LASTNAME = \'${lastName?replace("\'", "\'\'")}\') then 0 else case when ("root".LASTNAME = \'${lastName?replace("\'", "\'\'")}\' or "root".FIRSTNAME = \'${firstName?replace("\'", "\'\'")}\') then 10 else 20 end end\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ')\n',$rawPlan->planToString(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/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 3d7a1e1c0aa..f622b6c90a6 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 @@ -2503,29 +2503,74 @@ function meta::relational::functions::pureToSqlQuery::processTDSSort(f:FunctionE function meta::relational::functions::pureToSqlQuery::processSortBy(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 mainQuery = processValueSpecification($f.parametersValues->at(0), $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor); - let mainSelect = $mainQuery.select->pushSavedFilteringOperation($extensions); - - let sortByFunc = $f.parametersValues->evaluateAndDeactivate()->at(1)->byPassRouterInfo()->cast(@InstanceValue).values->at(0); - assert($sortByFunc->instanceOf(Path), 'sortBy can currently be converted to SQL only if the parameter is a Path.'); - let path = $sortByFunc->cast(@Path); - let pathName = 'o_'+$path->buildColumnNameOutOfPath(); - let joinResult = processPath($path, $pathName, '1', $mainQuery, $vars, ^$state(inFilter=false), $nodeId, $aggFromMap, $context->shift(), $extensions).element->cast(@SelectWithCursor).select; + let leftSidePure = $f.parametersValues->at(0); + let leftSideOp = processValueSpecificationReturnPropertyMapping($leftSidePure, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne(); + let mainQuery = $leftSideOp.element->cast(@SelectWithCursor); + let mainSelect = $mainQuery.select->pushSavedFilteringOperation($extensions); + let sortByFunc = $f.parametersValues->evaluateAndDeactivate()->at(1)->byPassRouterInfo()->cast(@InstanceValue).values->at(0); + + $sortByFunc->match([ + path: Path[1] | + let pathName = 'o_'+$path->buildColumnNameOutOfPath(); + let joinResult = processPath($path, $pathName, '1', $mainQuery, $vars, ^$state(inFilter=false), $nodeId, $aggFromMap, $context->shift(), $extensions).element->cast(@SelectWithCursor).select; - let merge = $mainSelect->concatenate($joinResult)->mergeSQLQueryData($nodeId, $state, $context, $extensions); + let merge = $mainSelect->concatenate($joinResult)->mergeSQLQueryData($nodeId, $state, $context, $extensions); - ^$operation( - currentTreeNode = $mainQuery.currentTreeNode->toOne()->findOneNode($mainQuery.select.data->toOne(), $merge.data->toOne()), - positionBeforeLastApplyJoinTreeNode = if ($mainQuery.positionBeforeLastApplyJoinTreeNode->isEmpty(),|[],|$mainQuery.positionBeforeLastApplyJoinTreeNode->toOne()->findOneNode($mainQuery.select.data->toOne(), $merge.data->toOne())), - select = ^SelectSQLQuery( - columns = $merge.columns, - data = $merge.data, - leftSideOfFilter = $merge.leftSideOfFilter, - filteringOperation = $merge.filteringOperation, - extraFilteringOperation = $merge.extraFilteringOperation, - orderBy = ^OrderBy(column=$joinResult.columns->at(0)->cast(@Alias).relationalElement, direction=meta::relational::metamodel::SortDirection.ASC) - ) - ); + ^$operation( + currentTreeNode = $mainQuery.currentTreeNode->toOne()->findOneNode($mainQuery.select.data->toOne(), $merge.data->toOne()), + positionBeforeLastApplyJoinTreeNode = if ($mainQuery.positionBeforeLastApplyJoinTreeNode->isEmpty(),|[],|$mainQuery.positionBeforeLastApplyJoinTreeNode->toOne()->findOneNode($mainQuery.select.data->toOne(), $merge.data->toOne())), + select = ^SelectSQLQuery( + columns = $merge.columns, + data = $merge.data, + leftSideOfFilter = $merge.leftSideOfFilter, + filteringOperation = $merge.filteringOperation, + extraFilteringOperation = $merge.extraFilteringOperation, + orderBy = ^OrderBy(column=$joinResult.columns->at(0)->cast(@Alias).relationalElement, direction=meta::relational::metamodel::SortDirection.ASC) + ) + );, + l: LambdaFunction[1] | + /* + - already have a mainQuery - select ... + - process the lambda function inside sortBy with the state to generate a sql query + select as "generated_order_key" from ... + where is a sql representation for lambda function and "generated_order_key" is a temporary alias introduced + - merge these two queries + - modify the merged query to move the sql_expr from select to order by + select ... order by + */ + + let generated_order_key = '"generated_order_key"'; + let paramValue = $f.parametersValues->at(1)->match([e:StoreMappingRoutedValueSpecification[1]|$e.value,v:ValueSpecification[1]|$v]); + let updatedState = $state->updateFunctionParamScope($paramValue.genericType.typeArguments.rawType->toOne()->cast(@FunctionType),$mainQuery); + let lambdaFunction = $f->instanceValuesAtParameter(1, $vars, $updatedState.inScopeVars)->at(0)->cast(@FunctionDefinition); + let lambdaFunctionExpression = $lambdaFunction.expressionSequence->at(0); + let inScopeVarsWithPlaceholdersState = $lambdaFunction->addPlaceHoldersForLambdaOpenVariables($vars, $updatedState); + let embeddedMapping = if($leftSideOp.currentPropertyMapping->isEmpty(), | $currentPropertyMapping, | $leftSideOp.currentPropertyMapping); + + let rightSide = processValueSpecification($lambdaFunctionExpression, $embeddedMapping, $mainQuery, $vars, ^$inScopeVarsWithPlaceholdersState(inFilter=false), JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context->shift(), $extensions)->toOne()->cast(@SelectWithCursor); + let rightSideSelect = $rightSide.select; + let rightSideModified = ^$rightSide( + select = ^$rightSideSelect( + columns = if($rightSideSelect.columns->isEmpty(), | [], |^Alias(name = $generated_order_key, relationalElement = $rightSideSelect.columns->toOne())) + ) + ); + + let revisedLeftRightSelects = pair($mainSelect,$rightSideModified.select); + let merge = [$revisedLeftRightSelects.first, $revisedLeftRightSelects.second]->cast(@SelectSQLQuery)->mergeSQLQueryData($nodeId, $updatedState, $context, $extensions); + ^$operation( + currentTreeNode = $mainQuery.currentTreeNode->toOne()->findOneNode($mainQuery.select.data->toOne(), $merge.data->toOne()), + positionBeforeLastApplyJoinTreeNode = if ($mainQuery.positionBeforeLastApplyJoinTreeNode->isEmpty(),|[],|$mainQuery.positionBeforeLastApplyJoinTreeNode->toOne()->findOneNode($mainQuery.select.data->toOne(), $merge.data->toOne())), + select = ^SelectSQLQuery( + columns = $merge.columns->filter(c|!$c->instanceOf(Alias) || $c->cast(@Alias).name != $generated_order_key), + data = $merge.data, + leftSideOfFilter = $merge.leftSideOfFilter, + filteringOperation = $merge.filteringOperation, + extraFilteringOperation = $merge.extraFilteringOperation, + orderBy = ^OrderBy(column=$rightSideModified.select.columns->toOne()->cast(@Alias).name->findAliasOrFail($merge).relationalElement, direction=meta::relational::metamodel::SortDirection.ASC) + ) + );, + a: Any[1] | fail('Invalid parameter type to sortBy ' + $sortByFunc->type().name->orElse('unknown')); $operation; + ]); } function meta::relational::functions::pureToSqlQuery::processSlice(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] From 48b95ed2f35f20bf12260911aff6d88d31417f1d Mon Sep 17 00:00:00 2001 From: Abhishoya Lunavat <87463332+abhishoya-gs@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:52:09 +0530 Subject: [PATCH 16/54] fix: use parent temp table strategy in cross store node (#2481) --- .../relational/plugin/RelationalExecutionNodeExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 876c712bc1b..f34b6a15729 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 @@ -1909,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, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.tempTableStrategy).quoteCharacterReplacement, databaseTimeZone, this.executionState, this.profiles); + loadValuesIntoTempTablesFromRelationalResult(node.parentTempTableStrategy.loadTempTableNode, parentRealizedRelationalResult, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.parentTempTableStrategy).tupleBatchSize, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.parentTempTableStrategy).quoteCharacterReplacement, databaseTimeZone, this.executionState, this.profiles); } else if (node.parentTempTableStrategy instanceof LoadFromTempFileTempTableStrategy) { From 20e1b3c244b1ff6d5ac2a192ab31fbf341454195 Mon Sep 17 00:00:00 2001 From: tanujgirdhar <113665660+tanujgirdhar@users.noreply.github.com> Date: Thu, 30 Nov 2023 23:07:27 +0530 Subject: [PATCH 17/54] Relational Graph Fetch - Otherwise embedded mapping support (#2488) --- .../pure/graphFetch/graphFetch_routing.pure | 5 +- .../core/pure/mapping/mappingExtension.pure | 10 +- .../core/pure/router/router_main.pure | 7 +- .../pure/router/routing/router_routing.pure | 10 +- .../core/pure/router/store/builder.pure | 11 +- .../graphFetch/relationalGraphFetch.pure | 4 +- .../tests/testGraphFetchEmbdded.pure | 57 ++- .../tests/testGraphFetchEmbeddedInline.pure | 96 ++++ .../testGraphFetchEmbeddedOtherwise.pure | 416 ++++++++++++++++++ .../pureToSQLQuery/pureToSQLQuery.pure | 1 - .../testEmbeddedOtherwiseMapping.pure | 71 ++- 11 files changed, 668 insertions(+), 20 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbeddedInline.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbeddedOtherwise.pure 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 27ca6ca105e..c5d1ad201be 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 @@ -218,7 +218,7 @@ function meta::pure::graphFetch::routing::routeRootGraphFetchTree(root: RootGrap let rootGetAllExpression = createGetAllApplicationForRootGraphFetchTree($root, $set); let dummyLambda = {|'ok'}; - let routedFunction = ^$dummyLambda(expressionSequence = $rootGetAllExpression)->routeFunction($mapping, ^Runtime(), ^ExecutionContext(), $extensions, noDebug())->evaluateAndDeactivate()->toOne(); + let routedFunction = ^$dummyLambda(expressionSequence = $rootGetAllExpression)->routeFunction(getRoutingStrategyFromMappingAndRuntime($mapping, ^Runtime()), ^ExecutionContext(), [], true, $extensions, noDebug())->evaluateAndDeactivate()->toOne(); let ext = $routedFunction.expressionSequence->evaluateAndDeactivate()->toOne()->cast(@StoreMappingClusteredValueSpecification).val->cast(@StoreMappingRoutedValueSpecification); let extended = if($exeCtx.enableConstraints->isEmpty() || $exeCtx.enableConstraints->toOne(), @@ -461,7 +461,8 @@ function meta::pure::graphFetch::routing::routePropertyGraphFetchTree(prop: Prop let dummyLambda = {|'ok'}; let cls = $functionExpression.genericType.rawType->toOne()->cast(@Class); // TODO Only allow no mapping routing for expanded (sub)trees - let routedFunctions = ^$dummyLambda(expressionSequence = $propertyApplicationExporession)->routeFunction($mapping, ^Runtime(), $extensions, noDebug())->evaluateAndDeactivate(); + + let routedFunctions = ^$dummyLambda(expressionSequence = $propertyApplicationExporession)->routeFunction(getRoutingStrategyFromMappingAndRuntime($mapping, ^Runtime()), ^ExecutionContext(), [], true, $extensions, noDebug())->evaluateAndDeactivate(); if($routedFunctions->isNotEmpty(), | let routedFunction = $routedFunctions->toOne(); 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 87af662b22d..9c99e3835c7 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 @@ -206,9 +206,13 @@ function meta::pure::router::routing::findMappingsFromProperty(p:AbstractPropert ), | if($embeddedMappings->at(0)->instanceOf(InlineEmbeddedSetImplementation), |$embeddedMappings->at(0)->cast(@InlineEmbeddedSetImplementation)->inlineEmbeddedMapping($mapping), - |$embeddedMappings - ) - + | + if($state.graphFetchFlow == true && $embeddedMappings->at(0)->instanceOf(OtherwiseEmbeddedSetImplementation), + | let otherwiseTargetIds = $embeddedMappings->at(0)->cast(@OtherwiseEmbeddedSetImplementation).otherwisePropertyMapping.targetSetImplementationId; + let classMappingsById = if ($otherwiseTargetIds->isEmpty(),|[],|findMappingsFromProperty($p, $mapping, $mapping->_classMappingByIdRecursive($otherwiseTargetIds), $state, $extensions)); + $classMappingsById;, + | $embeddedMappings + )) ); // We don't find anything in the old flow (if the source is an operation and the target type is not directly mapped... 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 7d458751631..42f81ecb0e5 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 @@ -112,6 +112,11 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], exeCtx: } function meta::pure::router::routeFunction(f:FunctionDefinition[1], routingStrategy:RoutingStrategy[1], exeCtx: ExecutionContext[1], inScopeVars:Map>[0..1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):FunctionDefinition[1] +{ + routeFunction($f, $routingStrategy, $exeCtx, $inScopeVars, false, $extensions, $debug); +} + +function meta::pure::router::routeFunction(f:FunctionDefinition[1], routingStrategy:RoutingStrategy[1], exeCtx: ExecutionContext[1], inScopeVars:Map>[0..1], graphFetchFlow:Boolean[0..1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):FunctionDefinition[1] { let fOpenVariables = $f->openVariableValues(); let openVariables = if($inScopeVars->isNotEmpty(), @@ -123,7 +128,7 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], routing // Enriching Function Expressions with relevant info (mapping / binding / platform) print(if($debug.debug,|'\n'+$debug.space+'Enriching Function Expressions with relevant info (mapping / binding / platform) and assigning routing strategy:\n',|'')); - let enrichedExpressions = enrichFunctionExpressions($functionExpressions, $routingStrategy, $exeCtx, $openVariables, $extensions, $debug); + let enrichedExpressions = enrichFunctionExpressions($functionExpressions, $routingStrategy, $exeCtx, $openVariables, $graphFetchFlow, $extensions, $debug); // 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',|'')); 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 2223e3a49d2..8fdb78f3409 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 @@ -43,6 +43,7 @@ Class meta::pure::router::routing::RoutingState shouldBeRouted : Boolean[1]; value : Any[0..1]; executionContext: ExecutionContext[1] = ^ExecutionContext(); + graphFetchFlow : Boolean[0..1]; } Class meta::pure::router::routing::PropertyMap @@ -50,9 +51,9 @@ Class meta::pure::router::routing::PropertyMap v : Pair[*]; } -function meta::pure::router::routing::enrichFunctionExpressions(expressions:FunctionExpression[*], routingStrategy:RoutingStrategy[1], executionContext:ExecutionContext[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExtendedRoutedValueSpecification[*] +function meta::pure::router::routing::enrichFunctionExpressions(expressions:FunctionExpression[*], routingStrategy:RoutingStrategy[1], executionContext:ExecutionContext[1], inScopeVars:Map>[1], graphFetchFlow: Boolean[0..1],extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExtendedRoutedValueSpecification[*] { - let processedFunctions = processCollection(^RoutingState(shouldBeRouted=false, lambdaContext=[], counter=0, depth='', propertyMap = ^PropertyMap(), routingStrategy = $routingStrategy), + let processedFunctions = processCollection(^RoutingState(shouldBeRouted=false, lambdaContext=[], counter=0, depth='', propertyMap = ^PropertyMap(), routingStrategy = $routingStrategy, graphFetchFlow = $graphFetchFlow), $expressions, $executionContext, newMap([]->cast(@Pair), VariableExpression->classPropertyByName('name')->cast(@Property)), @@ -68,6 +69,11 @@ function meta::pure::router::routing::enrichFunctionExpressions(expressions:Func ])); } +function meta::pure::router::routing::enrichFunctionExpressions(expressions:FunctionExpression[*], routingStrategy:RoutingStrategy[1], executionContext:ExecutionContext[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExtendedRoutedValueSpecification[*] +{ + enrichFunctionExpressions($expressions, $routingStrategy, $executionContext, $inScopeVars, false, $extensions, $debug); +} + function meta::pure::router::routing::processCollection(state:RoutingState[1], col:Any[*], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], shouldProcess:Function<{Any[1]->Boolean[1]}>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):RoutingState[*] { $col->fold({c,a| let last = $a->last()->toOne(); 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 9153f44fa23..ed44652f0bb 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 @@ -137,8 +137,15 @@ function meta::pure::router::store::routing::build(v:ValueSpecification[1], l:Li 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); - print(if($debug.debug,|$debug.space+' -> Found: '+$res->size()->toString(),|'')); - $res; + + let withOtherwise = if($res->isEmpty() && $f.func->instanceOf(Property), // for graphFetch flow, the parent set gets resolved to the otherwiseProperty mapping always. + | let byName = $s->cast(@InstanceSetImplementation)->meta::pure::mapping::_propertyMappingsByPropertyName($propertyName)->filter(pm|$pm->instanceOf(OtherwiseEmbeddedSetImplementation))->map(pm|$pm->cast(@OtherwiseEmbeddedSetImplementation)); + let pms = $byName.otherwisePropertyMapping->filter(pm|$pm.targetSetImplementationId->in($targetIds)); + $pms;, + | $res ); + + print(if($debug.debug,|$debug.space+' -> Found: '+$withOtherwise->size()->toString(),|'')); + $withOtherwise; ); ); let fWithBuiltExprSeq = if ($f.func->instanceOf(QualifiedProperty) 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 c0029c626b7..6ef8500a1a5 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 @@ -766,7 +766,7 @@ function <> meta::relational::graphFetch::executionPlan::generat let res = if ($isQualified, {| let newVars = newVarsForMilestoningContext($propTree, $inScopeVars); - let updatedState = ^$pureToSqlState(inGetterFlow = true, qualifierBase=^OperationWithParentPropertyMapping(element = $base), inScopeVars = $pureToSqlState.inScopeVars->putAll($newVars)); + let updatedState = ^$pureToSqlState(inGetterFlow = true, milestoningUseOtherwise = true, qualifierBase=^OperationWithParentPropertyMapping(element = $base), inScopeVars = $pureToSqlState.inScopeVars->putAll($newVars)); processQualifiedProperty($propTree.property->cast(@QualifiedProperty), [], $base, ^Map(), $updatedState, JoinType.LEFT_OUTER, '_gftq', ^List(), $debug, $extensions).element->cast(@SelectWithCursor); }, {| @@ -796,7 +796,7 @@ function meta::relational::graphFetch::executionPlan::generateNonPrimitiveProper let newVars = newVarsForMilestoningContext($propTree, $inScopeVars); let mcForProperty = milestoningContextFromPropertyTree($propTree, $parentTree, $mc, ^$pureToSqlState(inScopeVars = $pureToSqlState.inScopeVars->putAll($newVars)), $debug->indent(), $extensions); let baseWithMc = ^$base(milestoningContext = $mcForProperty); - let updatedState = ^$pureToSqlState(inGetterFlow = true, qualifierBase = ^OperationWithParentPropertyMapping(element = $baseWithMc), inScopeVars = $pureToSqlState.inScopeVars->putAll($newVars)); + let updatedState = ^$pureToSqlState(inGetterFlow = true, milestoningUseOtherwise = true, qualifierBase = ^OperationWithParentPropertyMapping(element = $baseWithMc), inScopeVars = $pureToSqlState.inScopeVars->putAll($newVars)); let withQualifier = processQualifiedProperty($propTree.property->cast(@QualifiedProperty), [], $baseWithMc, ^Map(), $updatedState, JoinType.LEFT_OUTER, '_gftq', ^List(), $debug, $extensions).element->cast(@SelectWithCursor); let newSelect = $withQualifier.select->pushFilters($extensions); let innerRes = ^$withQualifier(select = ^$newSelect(leftSideOfFilter = [])); 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 9420de56c13..153a14122a7 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 @@ -93,14 +93,40 @@ function <> {serverVersion.start='v1_19_0'} meta::rel ); } -function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::testEmbeddedMappingQualifiedPropertyAccess(): Boolean[1] +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::testEmbeddedMappingQualifiedPropertyAccess(): Boolean[1] { let tree = #{ Person { firstName, firm { legalName, - 'employeeByLastNameFirstName': employeeByLastNameFirstName('Smith') + nameAndAddress + } + } + }#; + let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"firstName":"Peter","firm":{"legalName":"Firm X","nameAndAddress()":"Firm X,200 west"}},' + + '{"firstName":"John","firm":{"legalName":"Firm X","nameAndAddress()":"Firm X,200 west"}},' + + '{"firstName":"Fabrice","firm":{"legalName":"Firm A","nameAndAddress()":"Firm A,3 somewhere"}}]', + $result + ); +} + + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::testEmbeddedMappingQualifiedPropertyAccess2(): Boolean[1] +{ + let tree = #{ + Person { + firstName, + firm { + legalName, + maxEmployeesAge } } }#; @@ -111,9 +137,30 @@ function <> {serverVersion.start='v1_19_0 let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( - '[{"firstName":"Peter","firm":{"legalName":"Firm X","employeeByLastNameFirstName":"Peter"}},' + - '{"firstName":"John","firm":{"legalName":"Firm X","employeeByLastNameFirstName":"Peter"}},' + - '{"firstName":"Fabrice","firm":{"legalName":"Firm A","employeeByLastNameFirstName":null}}]', + '{}', $result ); } + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::testEmbeddedMappingQualifiedPropertyAccessWithArgs(): Boolean[1] +{ + let tree = #{ + Person { + firstName, + firm { + legalName, + 'employeeByLastNameFirstName': employeeByLastNameFirstName('Smith') + } + } + }#; + let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '{}', + $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/testGraphFetchEmbeddedInline.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbeddedInline.pure new file mode 100644 index 00000000000..1698f5a92ef --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbeddedInline.pure @@ -0,0 +1,96 @@ +// 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::executionPlan::profiles::*; +import meta::pure::graphFetch::execution::*; +import meta::relational::tests::mapping::embedded::advanced::model::*; + + +function <> meta::relational::graphFetch::tests::embedded::inline::setup(): Boolean[1] +{ + meta::relational::tests::mapping::embedded::advanced::setUp(); +} + + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::inline::testInlineEmbeddedMapping(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + description + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbedded; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"description":"Bond 1"}},' + + '{"name":"Product 2","bondDetails":{"description":"Bond 2"}},' + + '{"name":"Product 3","bondDetails":{"description":"SuperBond 3 super"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::inline::testQualifierWithArgs(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + 'duration': durationStartsWith('5') + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbedded; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"duration":true}},' + + '{"name":"Product 2","bondDetails":{"duration":true}},' + + '{"name":"Product 3","bondDetails":{"duration":false}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::inline::testWithAssociationFromRootMappingWithFilter(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + bondClassification { + type + } + } + } + }#; + let query = {|Product.all()->filter(p|$p.name == 'Product 1')->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedParent; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '{"name":"Product 1","bondDetails":{"bondClassification":[{"type":"Corporate"}]}}', + $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/testGraphFetchEmbeddedOtherwise.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbeddedOtherwise.pure new file mode 100644 index 00000000000..19f1dacf050 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbeddedOtherwise.pure @@ -0,0 +1,416 @@ +// 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::executionPlan::profiles::*; +import meta::pure::graphFetch::execution::*; +import meta::relational::tests::mapping::embedded::advanced::model::*; + + +function <> meta::relational::graphFetch::tests::embedded::otherwise::setup(): Boolean[1] +{ + meta::relational::tests::mapping::embedded::advanced::setUp(); + meta::relational::tests::milestoning::initDatabase(); + true; +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testOtherwiseEmbeddedMapping(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + description + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"description":"P 1"}},' + + '{"name":"Product 2","bondDetails":{"description":"P 2"}},' + + '{"name":"Product 3","bondDetails":{"description":"P 3"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testOtherwiseEmbeddedMappingBothOtherwiseAndJoinProperty(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + type, + description + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"description":"P 1","type":"15 years"}},' + + '{"name":"Product 2","bondDetails":{"description":"P 2","type":"15 years"}},' + + '{"name":"Product 3","bondDetails":{"description":"P 3","type":"5 years"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testOtherwiseGetterDeepTraversal(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + type, + description, + holder { + name + } + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"description":"P 1","holder":{"name":"Party 1"},"type":"15 years"}},' + + '{"name":"Product 2","bondDetails":{"description":"P 2","holder":{"name":"Party 2"},"type":"15 years"}},' + + '{"name":"Product 3","bondDetails":{"description":"P 3","holder":{"name":"Party 3"},"type":"5 years"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testComplexPropertyOtherwiseGetterDeepTraversal(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + type, + description, + bondClassification { + type + }, + holder { + name + } + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise3; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"description":"P 1","bondClassification":[{"type":"Corporate"}],"holder":{"name":"Party 1"},"type":"15 years"}},' + + '{"name":"Product 2","bondDetails":{"description":"P 2","bondClassification":[],"holder":{"name":"Party 2"},"type":"15 years"}},' + + '{"name":"Product 3","bondDetails":{"description":"P 3","bondClassification":[],"holder":{"name":"Party 3"},"type":"5 years"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testOtherwiseEmbeddedToEmbedded(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + issuer { + name + } + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"issuer":{"name":"test"}}},' + + '{"name":"Product 2","bondDetails":{"issuer":{"name":"test"}}},' + + '{"name":"Product 3","bondDetails":{"issuer":{"name":"test"}}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testQualifierJoinProperty(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + duration + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"duration()":0}},' + + '{"name":"Product 2","bondDetails":{"duration()":0}},' + + '{"name":"Product 3","bondDetails":{"duration()":5}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testQualifierPropertyWithArgs(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + 'prefixedDescription': prefixedDescription('test: ') + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"prefixedDescription":"test: P 1"}},' + + '{"name":"Product 2","bondDetails":{"prefixedDescription":"test: P 2"}},' + + '{"name":"Product 3","bondDetails":{"prefixedDescription":"test: P 3"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testQualifierPropertyExpressionWithEmbeddedPropertyandJoinProperty(): Boolean[1] +{ + let tree = #{ + Product { + name, + bondDetails { + fullName + } + } + }#; + let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"Product 1","bondDetails":{"fullName()":"15 years P 1"}},' + + '{"name":"Product 2","bondDetails":{"fullName()":"15 years P 2"}},' + + '{"name":"Product 3","bondDetails":{"fullName()":"5 years P 3"}}]', + $result + ); +} + +###Pure +import meta::pure::graphFetch::execution::*; +import meta::pure::executionPlan::profiles::*; +import meta::relational::tests::milestoning::*; + + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testMilestonedPropertyAllVersions(): Boolean[1] +{ + let tree = #{ + Order { + id, + productAllVersions{ + name, + type + } + } + }#; + let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::milestoning::embedded::otherwiseMapping3; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"id":1, "productAllVersions":[{"name":"ProductName","type":"STOCK"}]},'+ + '{"id":2,"productAllVersions":[{"name":"ProductName1","type":"STOCK"},{"name":"ProductName2","type":"STOCK"}]}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testMilestonedRootWithMilestonedPropertyAllVersions(): Boolean[1] +{ + let tree = #{ Product{ + id, + name, + synonymsAllVersions{ + synonym + } + }}#; + let query = {|Product.all(%2023-10-15T00:00:00)->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::milestoning::embedded::otherwiseMapping3; + 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":3,"name":"ProductName3","synonymsAllVersions":[]}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testMilestonedRootAndMilestonedProperty(): Boolean[1] +{ + let tree = #{Product{ + id, + name, + synonyms(%2023-10-15T00:00:00) + { + synonym + } + }}#; + let query = {|Product.all(%2023-10-15T00:00:00)->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::milestoning::embedded::otherwiseMapping3; + 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":3,"name":"ProductName3","synonyms(2023-10-15T00:00:00+0000)":[]}]"' + ,$result); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testMultiLevelMilestoning(): Boolean[1] +{ + let tree = #{ + Order { + id, + product(%2015-10-16) { + id, + name, + type, + classification(%2015-10-16) { + type + } + } + } + }#; + let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::milestoning::embedded::otherwiseMapping3; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"id":1,"product(2015-10-16)":[]},' + + '{"id":2,"product(2015-10-16)":[{"name":"ProductName2","classification(2015-10-16)":{"type":"STOCK"},"id":2,"type":"STOCK"}]}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testMilestonedClassAtRootWithQualifierBD(): Boolean[1] +{ + let tree = #{ + Product { + id, + name, + type, + classificationTypeStr + } + }#; + let query = {|Product.all(%2015-10-16)->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::milestoning::embedded::otherwiseMapping3; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"ProductName2","classificationTypeStr()":"STOCK","id":2,"type":"STOCK"},'+ + '{"name":"ProductName3","classificationTypeStr()":null,"id":3,"type":"OPTION"}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::embedded::otherwise::testMilestonedClassAtRootWithQualifierNormal(): Boolean[1] +{ + let tree = #{ + Product { + id, + name, + type, + classificationTypeStr + } + }#; + let query = {|Product.all(%2015-10-16)->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::milestoning::milestoningmap; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"name":"ProductName2","classificationTypeStr()":"STOCK","id":2,"type":"STOCK"},'+ + '{"name":"ProductName3","classificationTypeStr()":null,"id":3,"type":"OPTION"}]', + $result + ); +} + + +###Mapping +import meta::relational::tests::milestoning::*; +Mapping meta::relational::tests::milestoning::embedded::otherwiseMapping3 +( + meta::relational::tests::milestoning::Order : Relational{ + id : [db]OrderTable.id, + orderDate : [db]OrderTable.orderDate, + product : [db]@Order_Product, + cusipProduct : [db]@Order_CusipSynonym > [db]@Product_Synonym + } + + meta::relational::tests::milestoning::Product : Relational{ + id : [db]ProductTable.id, + name : [db]ProductTable.name, + type : [db]ProductTable.type, + synonyms : [db]@Product_Synonym, + orders : [db]@Order_Product, + classification + ( + type: [db]ProductTable.type + ) Otherwise([meta_relational_tests_milestoning_ProductClassification]:[db]@Product_Classification) + } + + meta::relational::tests::milestoning::ProductSynonym : Relational{ + synonym : [db]ProductSynonymTable.synonym, + type : [db]ProductSynonymTable.type + } + + meta::relational::tests::milestoning::ProductClassification[meta_relational_tests_milestoning_ProductClassification] : Relational{ + type : [db]ProductClassificationTable.type, + description : [db]ProductClassificationTable.type_description, + product : [db]@Product_Classification + } +) 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 f622b6c90a6..c9f277d97df 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 @@ -3411,7 +3411,6 @@ function meta::relational::functions::pureToSqlQuery::processGetAll(expression: if($setImpls->size()==1,| $processRootSetImpl->eval($setImpls->at(0)) ,| let milestoningContext = getMilestoningContextForAll($expression,$o, $parameters, $state, $vars, $context, $extensions); let union = buildUnion($setImpls, [], false, $state.inProject, $milestoningContext, $nodeId, $state, $context, $extensions); - let propMap = $setImpls->at(0)->cast(@RelationalInstanceSetImplementation)->dataTypePropertyMappings(); let newRoot = ^RootJoinTreeNode(alias = ^TableAlias(name='unionBase', relationalElement=$union)); let fullCols = $union.queries->at(0).columns->cast(@Alias).name->filter(n | $n != 'u_type'); ^SelectWithCursor( select = ^SelectSQLQuery( columns = ^Alias(name= 'u_type', relationalElement = ^TableAliasColumn(alias = $newRoot.alias, column = ^Column(name='u_type', type=^meta::relational::metamodel::datatype::Integer()))) 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 438f497f8a0..5faf8ab1b3b 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 @@ -21,6 +21,14 @@ import meta::relational::tests::mapping::embedded::advanced::mapping::*; import meta::relational::tests::mapping::embedded::advanced::model::*; import meta::relational::tests::mapping::embedded::advanced::*; + function <> meta::relational::tests::mapping::embedded::advanced::testProjectionOtherwise():Boolean[1] + { + let result = execute(|Product.all()->project([p| $p.name, p | $p.bondDetails.description], ['name', 'description']) + , testMappingEmbeddedOtherwise, testRuntime(), meta::relational::extension::relationalExtensions()); + + assertEquals('name,description\n' + 'Product 1,Bond 1\n' + 'Product 2,Bond 2\n' + 'Product 3,SuperBond 3 super\n', $result.values->toOne()->toCSV()); + assertEquals('select "root".PRODUCT_NAME as "name", "root".BOND_DETAILS as "description" from PRODUCT_DENORM as "root"', $result->sqlRemoveFormatting()); + } function <> meta::relational::tests::mapping::embedded::advanced::otherwiseTestFilter():Boolean[1] { @@ -60,6 +68,22 @@ function <> meta::relational::tests::mapping::embe assertEquals('Party 3', $result3.values->at(0).bondDetails.holder.name); } + function <> meta::relational::tests::mapping::embedded::advanced::testProjectionOtherwiseDeepTraversal():Boolean[1] + { + let result = execute(|Product.all()->project([p | $p.bondDetails.holder.name], ['holder']) + , testMappingEmbeddedOtherwise, testRuntime(), meta::relational::extension::relationalExtensions()); + + assertEquals('select "party_0".name as "holder" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) left outer join Party as "party_0" on ("bond_detail_0".HOLDERID = "party_0".id)', $result->sqlRemoveFormatting()); + } + + function <> meta::relational::tests::mapping::embedded::advanced::testProjectionOtherwiseNonPrimitive():Boolean[1] + { + let result = execute(|Product.all()->project([p | $p.name, p | $p.bondDetails.holder.name, p | $p.bondDetails.bondClassification.type], ['name', 'holder', 'type']) + , testMappingEmbeddedOtherwise3, testRuntime(), meta::relational::extension::relationalExtensions()); + + assertEquals('select "root".PRODUCT_NAME as "name", "party_0".name as "holder", "bondclassificationtable_0".type as "type" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) left outer join Party as "party_0" on ("bond_detail_0".HOLDERID = "party_0".id) left outer join BondClassificationTable as "bondclassificationtable_0" on ("root".PRODUCT_ID = "bondclassificationtable_0".PRODUCT_ID)', $result->sqlRemoveFormatting()); + assertEquals('name,holder,type\n' + 'Product 1,Party 1,Corporate\n' + 'Product 2,Party 2,\n' + 'Product 3,Party 3,\n', $result.values->toOne()->toCSV()); + } function <> meta::relational::tests::mapping::embedded::advanced::otherwiseTestProjection():Boolean[1] { @@ -290,7 +314,7 @@ Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappi ) } - + BondDetail[bondMapping2]: Relational { scope([eDB]BOND_DETAIL) @@ -309,7 +333,6 @@ Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappi { name : [eDB]Party.name } - ) Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise2 @@ -359,6 +382,50 @@ Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappi ) +Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwise3 +( + + Product[pMapping1]: Relational + { + scope([eDB]PRODUCT_DENORM) + ( + name: PRODUCT_NAME, + market: MARKET_NAME, + bondDetails + ( + description:BOND_DETAILS, + bondClassification:[eDB]@BondDetailBondClassification + ) Otherwise([bondMapping2]:@BondDetailJoin) + ) + } + + + BondDetail[bondMapping2]: Relational + { + scope([eDB]BOND_DETAIL) + ( + description:NOT_SO_GOOD_DETAIL, + type: TYPE, + issuer + ( + name : 'test' + ), + holder:[eDB]@BondDetailPartyJoin, + bondClassification: [eDB]@BondDetailJoin > [eDB]@BondDetailBondClassification + ) + } + + Party : Relational + { + name : [eDB]Party.name + } + + BondClassification : Relational + { + type: [eDB]BondClassificationTable.type + } +) + Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedOtherwiseWithUnion ( From d7a6d75b12d60c9ab3179dc1e1b5691c721e5739 Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:31:20 -0500 Subject: [PATCH 18/54] Support renameColumns and handle null on painless scripting on elasticsearch (#2486) * Support renameColumns on elasticsearch * Handle null on painless script --- .../toPureGraph/handlers/Handlers.java | 4 +++ .../v7/result/ExecutionRequestVisitor.java | 4 +++ .../functions/pure_to_elasticsearch.pure | 36 +++++++++++++++---- .../elasticsearch_plan_test_misc.pure | 8 +++++ .../elasticsearch_plan_test_project.pure | 8 +++++ ...Test_Pure_ElasticSearch_ExecutionPlan.java | 1 - 6 files changed, 54 insertions(+), 7 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/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 0cf4a78d7e1..330193953bb 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 @@ -490,6 +490,9 @@ public Handlers(PureModel pureModel) register("meta::pure::functions::collection::size_Any_MANY__Integer_1_", true, ps -> res("Integer", "one")); + register("meta::pure::functions::collection::pair_U_1__V_1__Pair_1_", false, ps -> res(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, this.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType")) + ._rawType(this.pureModel.getType("meta::pure::functions::collection::Pair")) + ._typeArguments(Lists.fixedSize.ofAll(ps.stream().map(ValueSpecificationAccessor::_genericType).collect(Collectors.toList()))), "one")); register("meta::pure::functions::multiplicity::toOne_T_MANY__T_1_", true, ps -> res(ps.get(0)._genericType(), "one")); @@ -1797,6 +1800,7 @@ private Map buildDispatch() map.put("meta::pure::functions::collection::removeDuplicates_T_MANY__T_MANY_", (List ps) -> ps.size() == 1); map.put("meta::pure::functions::collection::reverse_T_m__T_m_", (List ps) -> ps.size() == 1); map.put("meta::pure::functions::collection::size_Any_MANY__Integer_1_", (List ps) -> ps.size() == 1); + map.put("meta::pure::functions::collection::pair_U_1__V_1__Pair_1_", (List ps) -> ps.size() == 2); map.put("meta::pure::functions::collection::slice_T_MANY__Integer_1__Integer_1__T_MANY_", (List ps) -> ps.size() == 3 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::paginated_T_MANY__Integer_1__Integer_1__T_MANY_", (List ps) -> ps.size() == 3 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Integer".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Integer".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::functions::collection::sortBy_T_m__Function_$0_1$__T_m_", (List ps) -> ps.size() == 2 && matchZeroOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || check(funcType(ps.get(1)._genericType()), (FunctionType ft) -> isOne(ft._returnMultiplicity()) && check(ft._parameters().toList(), (List nps) -> nps.size() == 1 && isOne(nps.get(0)._multiplicity()))))); diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java index c433d87f0c0..87137ea1076 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java @@ -577,6 +577,10 @@ else if (aggregationContainer.multi_terms != null) } else { + if (!this.activities.isEmpty()) + { + return false; + } processor = ExecutionRequestVisitor.this::processNotAggregateResponse; } 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 28c81d44034..a9897f75476 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 @@ -149,6 +149,26 @@ function meta::external::store::elasticsearch::v7::pureToEs::processRestrict(vs ); } +function meta::external::store::elasticsearch::v7::pureToEs::processRenameColumns(vs : FunctionExpression[1], initReq: State[1]): State[1] +{ + $initReq.debug(|'Processing ->renameColumns'); + let currReq = process($vs.parametersValues->at(0), $initReq); + + let toRename = $vs->instanceValuesAtParameter(1, $currReq.sq.inScopeVars)->match([ + p:Pair[*] | $p, + vss:ValueSpecification[*] | $vss->map(vs|$vs->reactivate($currReq.sq.inScopeVars)->evaluateAndDeactivate()->cast(@Pair)); + ]); + + let toRenameMap = $toRename->newMap(); + + let newESDetails = $currReq.tdsESDetails->map(c | + let newName = $toRenameMap->get($c.name); + if($newName->isNotEmpty(), | ^$c(name=$newName->toOne()), | $c); + ); + + ^$currReq(tdsESDetails = $newESDetails); +} + function meta::external::store::elasticsearch::v7::pureToEs::processDistinct(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->distinct'); @@ -600,7 +620,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFun pair(supportedIfEqual(extend_TabularDataSet_1__BasicColumnSpecification_MANY__TabularDataSet_1_), processExtend_FunctionExpression_1__State_1__State_1_), pair(supportedIfEqual(restrict_TabularDataSet_1__String_MANY__TabularDataSet_1_), processRestrict_FunctionExpression_1__State_1__State_1_), pair(supportedIfEqual(distinct_TabularDataSet_1__TabularDataSet_1_), processDistinct_FunctionExpression_1__State_1__State_1_), - + pair(supportedIfEqual(renameColumns_TabularDataSet_1__Pair_MANY__TabularDataSet_1_), processRenameColumns_FunctionExpression_1__State_1__State_1_), pair(supportedIfEqual(filter_TabularDataSet_1__Function_1__TabularDataSet_1_), processFilter_FunctionExpression_1__State_1__State_1_), @@ -1369,12 +1389,16 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIsNo 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([ + pair(^InlineScript(source = $field->painlessIsNotEmpty()->literal(), params = newMap([])), $req); +} + + +function meta::external::store::elasticsearch::v7::pureToEs::painlessIsNotEmpty(field: TDSESDetail[1]): String[1] +{ + $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] @@ -1439,12 +1463,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBool any: Any[*] | 'params[\'%s\']' ])->format($param.first); - let script = '%s.toInstant().toEpochMilli() %s %s'->format([painlessExtractField($tdsESDetail), $operation, $paramScript]); + let script = '(%s && %s.toInstant().toEpochMilli() %s %s)'->format([painlessIsNotEmpty($tdsESDetail), 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 script = '(%s && %s %s params[\'%s\'])'->format([painlessIsNotEmpty($tdsESDetail), painlessExtractField($tdsESDetail), $operation, $param.first]); let literalOrExpression = $value->literalOrExpression(true)->toOne(); pair(^InlineScript(source = $script->literal(), params = newMap(pair($param.first, $literalOrExpression))), $param.second); } 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 7257c358512..271a369afae 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 @@ -145,4 +145,12 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testSl $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)); +} + +function + <> + {doc.doc = 'Test rename column on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testRenameColumn(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->renameColumns(pair('Title', 'Titulo'))); } \ 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 0bb015433d2..8089ed3ccf0 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 @@ -43,6 +43,14 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::project::mis $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 with pure if expressions on nullable field'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionOnNullable(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.getNullableString('MPAA') == 'PG-13', 'Bucket')])); +} + function <> {doc.doc = 'Test projection on Elasticsearch with pure if expressions'} 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/Test_Pure_ElasticSearch_ExecutionPlan.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/Test_Pure_ElasticSearch_ExecutionPlan.java index 65409eeb950..bcc0b71b20e 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/Test_Pure_ElasticSearch_ExecutionPlan.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/Test_Pure_ElasticSearch_ExecutionPlan.java @@ -29,7 +29,6 @@ public static TestSuite suite() TestSuite suite = new TestSuite(); if (DockerClientFactory.instance().isDockerAvailable()) { - System.setProperty("org.finos.legend.engine.plan.execution.stores.elasticsearch.test.password", "s3cret"); CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); suite.addTest(PureTestBuilderCompiled.buildSuite( TestCollection.collectTests( From 2cb49913a9a22c7384caa2efe0e552aef330e381 Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Fri, 1 Dec 2023 03:26:37 +0000 Subject: [PATCH 19/54] Update to legend-pure 4.10.2 (#2490) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 864dee22b60..c87801c605a 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ - 4.10.1 + 4.10.2 0.24.1 From bb9b48fa8d76800af644b407ac2451ba7efd2f06 Mon Sep 17 00:00:00 2001 From: lisa kanbur <146776786+lisaknbur@users.noreply.github.com> Date: Fri, 1 Dec 2023 08:54:10 -0600 Subject: [PATCH 20/54] Review dataspace changes from pure (#2489) * Dataspace changes from pure * Revert a change * Remove reference to pure site --- .../pom.xml | 205 ++++++ ...LineageAnalysisCodeRepositoryProvider.java | 30 + ...lesystem.repository.CodeRepositoryProvider | 65 ++ .../core_analytics_quality.definition.json | 14 + .../associationChecks.pure | 31 + .../badAssociationReport.pure | 54 ++ .../core_analytics_quality/checksEngine.pure | 369 ++++++++++ .../core_analytics_quality/classChecks.pure | 84 +++ .../enumerationChecks.pure | 65 ++ .../functionChecks.pure | 636 ++++++++++++++++++ .../propertyChecks.pure | 312 +++++++++ .../tests/associationChecksTest.pure | 38 ++ .../tests/classChecksTest.pure | 146 ++++ .../tests/enumerationChecksTest.pure | 63 ++ .../tests/functionChecksTest.pure | 223 ++++++ .../tests/propertyChecksTest.pure | 40 ++ .../tests/testQuality.pure | 265 ++++++++ .../pom.xml | 22 + legend-engine-xts-analytics/pom.xml | 1 + pom.xml | 5 + 20 files changed, 2668 insertions(+) create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalLineageAnalysisCodeRepositoryProvider.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-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-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality.definition.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/associationChecks.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/badAssociationReport.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/checksEngine.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/classChecks.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/enumerationChecks.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/functionChecks.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/propertyChecks.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/associationChecksTest.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/classChecksTest.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/enumerationChecksTest.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/functionChecksTest.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/propertyChecksTest.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/testQuality.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml new file mode 100644 index 00000000000..1f92e7e880b --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -0,0 +1,205 @@ + + + + legend-engine-xts-analytics-quality + org.finos.legend.engine + 4.35.5-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-quality-pure + Legend Engine - XT - Analytics - Quality - PAR/JAVA + jar + + + 11 + 11 + + + + + + org.finos.legend.pure + legend-pure-maven-generation-par + + src/main/resources + ${legend.pure.version} + + platform + core + core_relational + core_analytics_quality + + + ${project.basedir}/src/main/resources/core_analytics_quality.definition.json + + + + + compile + + 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.pure + legend-pure-m2-dsl-path-grammar + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-m2-store-relational-grammar + ${legend.pure.version} + + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + ${project.version} + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + modular + true + + core_analytics_quality + + + + + + + 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.pure + legend-pure-m2-dsl-path-grammar + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-m2-dsl-path-grammar + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-m2-store-relational-grammar + ${legend.pure.version} + + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + ${project.version} + + + + + + + + + + org.finos.legend.pure + legend-pure-m4 + + + org.finos.legend.pure + legend-pure-m3-core + + + + org.finos.legend.pure + legend-pure-runtime-java-engine-compiled + + + org.finos.legend.pure + legend-pure-m2-store-relational-pure + + + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + + + org.finos.legend.engine + legend-engine-pure-code-compiled-functions + + + org.finos.legend.engine + legend-engine-pure-platform-java + + + org.finos.legend.engine + legend-engine-pure-platform-functions-java + + + + + org.eclipse.collections + eclipse-collections + + + org.eclipse.collections + eclipse-collections-api + + + + + + + + \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalLineageAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalLineageAnalysisCodeRepositoryProvider.java new file mode 100644 index 00000000000..06fcb194e3b --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalLineageAnalysisCodeRepositoryProvider.java @@ -0,0 +1,30 @@ +/* + * 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 CoreExternalLineageAnalysisCodeRepositoryProvider implements CodeRepositoryProvider +{ + @Override + public CodeRepository repository() + { + return GenericCodeRepository.build("core_analytics_quality.definition.json"); + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-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-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider new file mode 100644 index 00000000000..91ac69dcfc0 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider @@ -0,0 +1,65 @@ +# +# 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. +# + +# +# 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. +# + +# +# 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. +# + +# +# 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. +# + +org.finos.legend.pure.code.core.CoreExternalLineageAnalysisCodeRepositoryProvider \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality.definition.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality.definition.json new file mode 100644 index 00000000000..eec8a9ba4a3 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality.definition.json @@ -0,0 +1,14 @@ +{ + "name": "core_analytics_quality", + "pattern": "(meta::analytics::quality|meta::pure::quality)(::.*)?", + "dependencies": [ + "platform", + "platform_functions", + "platform_dsl_mapping", + "platform_store_relational", + "platform_functions_json", + "core_functions", + "core", + "core_relational" + ] +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/associationChecks.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/associationChecks.pure new file mode 100644 index 00000000000..a1fed8f7937 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/associationChecks.pure @@ -0,0 +1,31 @@ +import meta::analytics::quality::model::*; +import meta::analytics::quality::*; +import meta::analytics::quality::model::domain::*; + +function meta::analytics::quality::model::domain::associationRules():Rule[*] +{ + [ + associationNameShouldStartWithUpperCase_Association_1__CheckResult_MANY_ + ]->map(rule|createRule($rule)->cast(@Rule)); + +} + +function <> + { rule.rule = 'Invalid Association Name', + rule.description ='Camel case must be used Association name and should be upper camel case, with an underscore between both sides of the join.', + rule.severity = 'High', + rule.category = 'Modelling', + doc.doc = 'Returns true if Association name is valid'} +meta::analytics::quality::model::domain::associationNameShouldStartWithUpperCase(a:Association[1]):CheckResult[*] +{ + + let containsUnderScore = $a.name->meta::pure::functions::string::contains('_'); + let tokens = if($containsUnderScore,| meta::pure::functions::string::split($a.name->toOne(), '_'), |$a.name->toOne()); + + let passed = size($tokens) == 2 && + $tokens->at(0)->meta::pure::functions::string::substring(0,1) ->isUpperCase() && + $tokens->at(1)->meta::pure::functions::string::substring(0,1) ->isUpperCase(); + let message ='Check name of association ' + $a.name->toOne() ; + + ^CheckResult(isValid=$passed, message=$message); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/badAssociationReport.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/badAssociationReport.pure new file mode 100644 index 00000000000..8d885a1bd64 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/badAssociationReport.pure @@ -0,0 +1,54 @@ +import meta::relational::mapping::*; + + +///TEMPORARY BAD ASSOCIATIONS REPORT - DELETE THIS ONCE IT IS ALL CLEANED UP + +function {service.url='/badAssociations', service.contentType='text/csv', service.contentDisposition='attachment;filename=badAssociations.csv'} +meta::analytics::quality::model::domain::badAssociationsReport() : String[1] +{ + + let allAssoc = Association.all(); + + let badAsscs = $allAssoc->map(a | + let rawType1 = $a.properties->at(0).genericType.rawType; + let rawType2 = $a.properties->at(1).genericType.rawType; + if ($rawType1->isEmpty() || $rawType2->isEmpty(), + | [], + | let source1 = $rawType1->toOne()->sourceInformation().source->toOne(); + let source2 = $rawType2->toOne()->sourceInformation().source->toOne(); + let repo1 = $source1->split('/')->first()->toOne(); + let repo2 = $source2->split('/')->first()->toOne(); + + if($repo1 == $repo2 || ($repo1->startsWith('model') && $repo2->startsWith('model')), | [], | ^meta::analytics::quality::model::domain::badAssociations::BadAssociation(association=$a, + nonModelRepo=if($repo1 == 'model', | $repo2, |$repo1)); + ); + ); + ); + + let vals = $badAsscs->map(a | $a.association->elementToPath())->sort(); + + $vals->makeString('\n'); +} + + +Class meta::analytics::quality::model::domain::badAssociations::BadAssociation +{ + association:Association[1]; + //name:String[1]; + nonModelRepo:String[1]; + + isUsedInMapping() + { + !$this.modelProperty().referenceUsages.owner->evaluateAndDeactivate()->filter(e | $e->instanceOf(RelationalPropertyMapping))->isEmpty() + }:Boolean[1]; + + modelProperty() + { + let rawType1 = $this.association.properties->at(0).genericType.rawType->toOne(); + let rawType2 = $this.association.properties->at(1).genericType.rawType->toOne(); + + if ($rawType1->sourceInformation().source->startsWith('/model'), | $this.association.properties->at(0), + | $this.association.properties->at(1)); + + }:Property[1]; +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/checksEngine.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/checksEngine.pure new file mode 100644 index 00000000000..0aedabd1ff6 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/checksEngine.pure @@ -0,0 +1,369 @@ +import meta::analytics::quality::model::*; +import meta::analytics::quality::model::domain::*; +import meta::relational::tests::*; +import meta::pure::runtime::*; + + +Enum meta::analytics::quality::model::Severity +{ + High, Medium, Low +} + +Enum meta::analytics::quality::model::Category +{ + Modelling, Correctness, Quality, Testing +} + +Class meta::analytics::quality::model::Rule +{ + id : String[1]; + func: FunctionDefinition<{T[1]->Any[*]}>[1]; + severity : Severity[1]; + category : Category[1]; + description: String[1]; + hasSkipTestsFlag : Boolean[1]; + +} + +Profile meta::analytics::quality::model::rule +{ + stereotypes: [skipTests]; + tags: [rule, severity, category, description, ignore]; +} + +Class meta::analytics::quality::model::CheckResult +{ + isValid: Boolean[1]; + message: String[1]; +} + +Class meta::analytics::quality::model::ViolationInstance +{ + source : T[1]; + rule : Rule[1]; + sourceInfo() { $this.source->sourceInformation()}: SourceInformation[0..1] ; + detail : + CheckResult[1]; +} + +Class meta::analytics::quality::model::Rankings +{ + severity() { [pair(Severity.High, 1), pair(Severity.Medium, 2),pair(Severity.Low, 3)]}: Pair[*]; + severity(severity :Severity[1]) { $this.severity()->filter(p|$p.first == $severity)->toOne().second} : Integer[1]; + +} + +function <> meta::analytics::quality::model::domain::apply(rule:Rule[1],pe:AbstractProperty[1]):Any[*] +{ + if($rule->skipInTests($pe), |[], |$rule.func->eval($pe)) +} + +function {doc.doc = 'Run quality checks for class properties'} +meta::analytics::quality::model::domain::runClassPropertyQualityChecks(cl:Class[1],rules:Rule>[*]):ViolationInstance[*] +{ + let properties = $cl->allProperties(); + + $properties->map(p:AbstractProperty[1] | $rules->map(rule:Rule>[1] | $rule->apply($p)->cast(@CheckResult)->violationHandler($p, $rule))); +} + +function <> meta::analytics::quality::model::domain::skipInTests(rule:Rule[1],pe:Any[1]):Boolean[1] +{ + if($rule.hasSkipTestsFlag , + | + let pName = $pe->match([p:PackageableElement[1]|$p->fullPackageName('::'), p:AbstractProperty[1]|$p->fullPackageName('::')]); + let si = $pe->sourceInformation(); + $pName->contains('::tests::') || $pName->contains('::test::')|| $si.source->contains('/test/') || $si.source->contains('/tests/');, + | false + ); +} + +function {doc.doc = 'Handles model checks violations'} +//TODO: there is a bug with generics so ViolationInstance instead of ViolationInstance +meta::analytics::quality::model::domain::violationHandler(detail:CheckResult[*],element: Any[1],rule: Rule[1]):ViolationInstance[*] +{ + $detail->filter(r | !$r.isValid)->map(r | ^ViolationInstance(source=$element, rule=$rule, detail=$r)); +} + +function meta::analytics::quality::model::domain::createRule(ruleFunctionB: FunctionDefinition<{T[1]->Any[*]}>[1]):Rule[1] +{ + let ruleFunction = $ruleFunctionB->cast(@AnnotatedElement); + let tags = $ruleFunction.taggedValues; + + let rule = $ruleFunction->value4Tag('rule', rule).value->toOne(); + let description = $ruleFunction->value4Tag('description', rule).value->toOne(); + let severity = Severity->extractEnumValue($tags->filter(t | $t.tag == rule->tag('severity'))->map(t | $t.value)->toOne()->toString()); + let category = Category->extractEnumValue($tags->filter(t | $t.tag == rule->tag('category'))->map(t | $t.value)->toOne()->toString()); + let skipTestsTag = $ruleFunction->hasStereotype('skipTests',meta::analytics::quality::model::rule); + ^Rule(id=$rule,func=$ruleFunctionB,severity=$severity,category=$category,description=$description,hasSkipTestsFlag=$skipTestsTag); +} + +function {doc.doc='Run quality checks for all elements in a package'} +meta::analytics::quality::model::domain::runQualityChecks(elements:PackageableElement[*]):ViolationInstance[*] +{ + let functionRules = functionRules(); + let enumerationRules = enumerationRules(); + let associationRules = associationRules(); + let classRules = classRules(); + let propertyRules = propertyRules(); + + let allElements = $elements->filter(e | $e->instanceOf(Package))->cast(@Package)->map(p | $p->getAllPackageElements(true))->concatenate($elements)->removeDuplicates(); + + let funcViolations = $allElements->filter(x|$x->instanceOf(FunctionDefinition))->cast(@FunctionDefinition)->runQualityChecksForFunctions($functionRules); + let classes = $allElements->filter(x|$x->instanceOf(Class))->cast(@Class); + let associations = $allElements->filter(x|$x->instanceOf(Association)); + let classViolations = $classes->runQualityChecksForClass($classRules, $propertyRules)->concatenate($classes.qualifiedProperties->runQualityChecksForFunctions($functionRules)); + let enumerationViolations = $allElements->filter(x|$x->instanceOf(Enumeration))->cast(@Enumeration)->runQualityChecksForEnumerations($enumerationRules); + let associationViolations = $allElements->filter(x|$x->instanceOf(Association))->cast(@Association)->runQualityChecksForAssociations($associationRules); + + $funcViolations->concatenate($classViolations)->concatenate($enumerationViolations)->concatenate($associationViolations); +} + +function {doc.doc = 'Run Quality checks for functions'} +meta::analytics::quality::model::domain::runQualityChecksForFunctions(fns:FunctionDefinition[*], rules : Rule>>[*]):ViolationInstance[*] +{ + if($fns->isEmpty() + ,|[] + ,|$rules->map(rule| + let ruleFunction=$rule.func->cast(@FunctionDefinition<{List>[1]->Pair[*]}>);//todo this is a hack for compile mode + + let filtersFns = $fns->filter(f|!$rule->skipInTests($f)); + + let results = $ruleFunction->eval(^List>(values=$filtersFns)); + + + $results->map(p| + []->concatenate($p.second)->violationHandler($p.first,$rule); + ); + ); + ); + +} + +function {doc.doc = 'Run quality checks for classes, their properties and abstract functions'} +meta::analytics::quality::model::domain::runQualityChecksForClass(cls:Class[*], classRules:Rule>[*], propRules:Rule>[*]):ViolationInstance[*] +{ + + $cls->map(cl| $classRules->map(rule:Rule>[1] | $rule->apply($cl)->cast(@CheckResult)->violationHandler($cl, $rule)) + ->concatenate($cl->meta::analytics::quality::model::domain::runClassPropertyQualityChecks($propRules))); +} + +function {doc.doc = 'Run quality checks for enums'} +meta::analytics::quality::model::domain::runQualityChecksForEnumerations(e:Enumeration[*], enumerationRules:Rule>[*]):ViolationInstance[*] +{ + $e->map(e | $enumerationRules->map(rule:Rule>[1] | $rule->apply($e)->cast(@CheckResult)->violationHandler($e, $rule))); +} + +function {doc.doc = 'Run quality checks for associations'} +meta::analytics::quality::model::domain::runQualityChecksForAssociations(e:Association[*], associationRules:Rule[*]):ViolationInstance[*] +{ + $e->map(e | $associationRules->map(rule:Rule[1] | $rule->apply($e)->cast(@CheckResult)->violationHandler($e, $rule))); +} + +function <> meta::analytics::quality::model::domain::apply(rule:Rule[1],pe:PackageableElement[1]):Any[*] +{ + if($rule->skipInTests($pe), |[], |$rule.func->eval($pe)) +} + +function meta::analytics::quality::model::domain::runRules(pkg:PackageableElement[*]) : ViolationInstance[*] +{ + let severity = newMap(^Rankings().severity); + + $pkg->removeDuplicates() + ->runQualityChecks() + ->removeDuplicates() + ->cast(@ViolationInstance) + ->filter(bug|!$bug.detail.isValid) + ->filterInstancesToIgnore() + ->sortBy(b | $severity->get($b.rule.severity)->toOne()); + +} + +function meta::analytics::quality::model::domain::filterInstancesToIgnore(i:ViolationInstance[*]) : ViolationInstance[*] +{ + + $i->filter(v| let ignoreTag = $v.source->match([e:ElementWithTaggedValues[1]| $e->value4Tag('ignore', rule).value, + fe:FunctionExpression[1]| $fe.usageContext->match( + [es:ExpressionSequenceValueSpecificationContext[1]| if($es.functionDefinition->instanceOf(AnnotatedElement),|$es.functionDefinition->cast(@AnnotatedElement)->value4Tag('ignore', rule).value, |[]);, + a: ValueSpecificationContext[1]|'' + ]);, + a:Any[1]| println($a);'';]); + if( $ignoreTag->isEmpty() + ,| true + ,| let values = $ignoreTag->toOne()->split(','); + !$v.rule.id->in($values); + ); + + ); +} + +function meta::analytics::quality::model::domain::runChecksAsHtml(pkgs:PackageableElement[*],elements:String[*],service:Boolean[1]):String[1] +{ + let bugs = meta::analytics::quality::model::domain::runRules($pkgs); + let bugDetailsTable = [ + '
', + '', + '', + '', + '', + '', + '', + '', + '' + ]->concatenate( + $bugs->map({bug| + let pe = $bug.source->findPackagableElement(); + let peName = $bug.source->match([p:PackageableElement[1]| $p->fullPackageName('::'),a:Any[1]|$pe->fullPackageName('::') ]) ; + [ + '', + (''), + (''), + (''), + (''), + if($service + ,|('') + ,|('') + ), + '' + ]; + }) + )->concatenate([ + '
SeverityCategoryRuleMessageElement
' + $bug.rule.severity->makeString() + '' + $bug.rule.category->makeString() + '' + $bug.rule.description->makeString() + '' + $bug.detail.message->makeString() + '' + $pe->cast(@PackageableElement)->fullPackageName('::') + '' + 'toOne().source + '\",' + $bug.sourceInfo->toOne().startLine->toString() + ',' + $bug.sourceInfo->toOne().startColumn->toString() + ',false); return false;\'>' + + $peName+ ''+ '
', + '
' + ]); + + let packagesInfo = [ + '
', + '

', + 'Inspected elements:
' + ] + ->concatenate($elements->map(e | $e + '
')->sort()->joinStrings('')) + ->concatenate( + ['

']) + ; + + let rulesInfo = [ + '
', + '', + '', + '', + '', + '', + '', + '', + '' + ] + ->concatenate(classRules()->map(r | $r->createRuleHTMLRow('Classes',$service))) + ->concatenate(propertyRules()->map(r | $r->createRuleHTMLRow('Properties',$service))) + ->concatenate(functionRules()->map(r | $r->createRuleHTMLRow('Functions',$service))) + ->concatenate(enumerationRules()->map(r | $r->createRuleHTMLRow('Enumerations',$service))) + ->concatenate(associationRules()->map(r | $r->createRuleHTMLRow('Associations',$service))) + ->concatenate([ + '
RuleSeverityCategoryDescriptionRule code
', + '
' + ]); + + let stats = '
'+ $bugs->meta::analytics::quality::model::domain::buildStatsTable('Rule')+'
'; + + let scripts = if($service,| + ''+ + ''+ + '' + ,|''); + + let page = [ + '', + 'PURE Quality Checks', + '', + '', + $scripts, + '', + '', + '', + '
', + ''] + ->concatenate($stats) + ->concatenate($packagesInfo) + ->concatenate($bugDetailsTable) + ->concatenate($rulesInfo) + ->concatenate + ([ + '', + '', + '' + ]) ->joinStrings('\n'); + $page; +} + +function <> meta::analytics::quality::model::domain::createRuleHTMLRow(r:Rule[1],type:String[1],service:Boolean[1]):String[1] +{ + + let pe = $r.func; + let si= $pe->sourceInformation()->toOne(); + + ''+$type +''+$r.severity->toString() + '' + $r.category->toString() + '' + $r.description +'' + + + if($service + ,|('' + $pe->cast(@PackageableElement)->fullPackageName('::') + '') + ,|('' + 'toString() + ',' + $si.startColumn->toString() + ',false); return false;\'>' + + $pe->cast(@PackageableElement)->fullPackageName('::') + ''+ '') + ); + +} + +function <> meta::analytics::quality::model::domain::buildStatsTable(items : ViolationInstance[*], name : String[1]) : String[1] +{ + let severity = newMap(^Rankings().severity); + + let pairs = $items->map(e| ^Pair,Integer>(first=$e.rule,second=1)); + + let keys = $pairs.first->distinct()->cast(@Rule); + + let stats = $keys->map(k|let p=^Pair(first=$severity->get($k.severity)->toOne(),second=$pairs->filter(p|$p.first == $k).second->sum()); + ^Pair,Pair>(first=$k, second = $p);) + ->sort({a,b| $a.second.first->compare($b.second.first) + (-1* $a.second.second->compare($b.second.second)) }); // sort by severity then count + + + let rows =$stats + ->map({p| + let percent = (($p.second.second / $items->size()) * 100); + [ + '', + ('' + $p.first.id->makeString() + ''), + ('' + $p.first.severity->makeString() + ''), + ('' + $p.second.second->makeString() + ''), + ('' + if ($percent > 0.1, | format('%.2f', [$percent]), | 'n/a') + '%'), + '' + ]; + })->cast(@String); + + let statsTable = [ + ''] + ->concatenate(['']) + ->concatenate([(''), + '', + '', + '', + '']) + ->concatenate($rows) + ->concatenate(['
Total',$items->size()->toString(),'Violation Instances
' + $name + 'SeverityCount%
']); + + $statsTable->joinStrings(''); +} + +function {service.url='/quality/reports/{element}', service.contentType='text/html'} +meta::analytics::quality::model::domain::findBugsReports(element : String[1]) : String[1] +{ + let pe = $element->pathToElement(); + [$pe]->meta::analytics::quality::model::domain::runChecksAsHtml($pe->fullPackageName('::'),true); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/classChecks.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/classChecks.pure new file mode 100644 index 00000000000..ab1caba18c2 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/classChecks.pure @@ -0,0 +1,84 @@ +import meta::analytics::quality::model::*; +import meta::analytics::quality::*; +import meta::analytics::quality::model::domain::*; + + +function meta::analytics::quality::model::domain::classRules():Rule>[*] +{ + [ + meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase_Class_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::entityNameShouldNotStartWithPackageName_Class_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classHasAtLeastOneMandatoryProperty_Class_1__CheckResult_MANY_ , + meta::analytics::quality::model::domain::allEntitiesAndPropertiesShouldHaveALongDescription_Class_1__CheckResult_MANY_ + ]->map(rule|createRule($rule)->cast(@Rule>)); + +} + +function { rule.rule = 'Invalid Class Names', + rule.description ='Class name should start with Upper case', + rule.severity = 'Medium', + rule.category = 'Modelling', + doc.doc = 'Returns true if the class name starts with upper case letter'} +meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase(cl:Class[1]):CheckResult[*] +{ + let issues = if(!$cl.name->toOne()->meta::pure::functions::string::substring(0,1)->isUpperCase(), + | 'should start with upper case', + | []) + ->concatenate(if ($cl.name->contains('_'), + | 'should not contain \'_\'', + | [] + )); + + let message = if($issues->isEmpty(), + | 'Class name (' + $cl.name->toOne() + ') matches required standards', + | 'Class name (' + $cl.name->toOne() + ') does not match required standards: ' + $issues->joinStrings(';') + ); + + ^CheckResult(isValid=$issues->isEmpty(), message=$message); +} + +function <> + { rule.rule = 'Class has no mandatory properties', + rule.description ='Class should have at least one mandatory property', + rule.severity = 'High', + rule.category = 'Modelling', + doc.doc = 'Returns true if the class has a mandatory property'} +meta::analytics::quality::model::domain::classHasAtLeastOneMandatoryProperty(cl:Class[1]):CheckResult[*] +{ + let passed = $cl.properties->filter(p | $p.multiplicity->isToOne())->isNotEmpty(); + + let message = if($passed, | 'Class has at least one mandatory property', | 'Class should have at least one mandatory property'); + + ^CheckResult(isValid=$passed, message=$message); +} + +function <> + { rule.rule = 'Invalid Entity Name', + rule.description ='Entity name must not start with the package name.', + rule.severity = 'High', + rule.category = 'Modelling', + doc.doc = 'Returns true if Entity name is valid'} +meta::analytics::quality::model::domain::entityNameShouldNotStartWithPackageName(cl:Class[1]):CheckResult[*] +{ + let passed = !($cl.name->toOne()->toLower()->startsWith($cl.package.name->toOne()->toLower())); + + let message ='Check name of class and package ' + $cl.name->toOne() ; + + ^CheckResult(isValid=$passed, message=$message); +} + +function <> + { rule.rule = 'Documentation not provided for entity and/or its properties', + rule.description ='All entities and properties must have a long description.', + rule.severity = 'High', + rule.category = 'Modelling', + doc.doc = 'Returns true if long description is provided for entites and its properties'} +meta::analytics::quality::model::domain::allEntitiesAndPropertiesShouldHaveALongDescription(cl:Class[1]):CheckResult[*] +{ + let passed = ($cl.taggedValues->size() != 0 && $cl.taggedValues->filter(t | $t.tag.profile == doc)->size() != 0) + && $cl.properties->size() == $cl.properties->map(p|$p.taggedValues)-> filter(t | $t.tag.profile == doc)->size(); + + let message ='Provide documentation for class and its properties ' + $cl.name->toOne() ; + + ^CheckResult(isValid=$passed, message=$message); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/enumerationChecks.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/enumerationChecks.pure new file mode 100644 index 00000000000..cf9030294eb --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/enumerationChecks.pure @@ -0,0 +1,65 @@ +import meta::analytics::quality::*; +import meta::analytics::quality::model::*; +import meta::analytics::quality::model::domain::*; + +function meta::analytics::quality::model::domain::enumerationRules():Rule>[*] +{ + [ + meta::analytics::quality::model::domain::enumerationName_Enumeration_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::enumerationValue_Enumeration_1__CheckResult_MANY_ + ]->map(rule|createRule($rule)->cast(@Rule>)); + +} + +function { rule.rule = 'Invalid Enumeration Names', + rule.description ='Enum name should start with Upper case, not contain underscores or the word Enum', + rule.severity = 'Medium', + rule.category = 'Modelling', + doc.doc = 'Returns true if the enum name meets the guidelines'} +meta::analytics::quality::model::domain::enumerationName(e:Enumeration[1]):CheckResult[*] +{ + let issues = if(!$e->enumName()->toOne()->meta::pure::functions::string::substring(0,1)->isUpperCase(), + | 'should start with upper case', + | []) + ->concatenate(if ($e->enumName()->contains('_'), + | 'should not contain \'_\'', + | [] + )) + ->concatenate(if ($e->enumName()->contains('Enum'), + | 'should not contain \'Enum\'', + | [] + )); + + let message = if($issues->isEmpty(), + | 'Enumeration name (' + $e->enumName() + ') matches required standards', + | 'Enumeration name (' + $e->enumName() + ') does not match required standards: ' + $issues->joinStrings(';') + ); + + ^CheckResult(isValid=$issues->isEmpty(), message=$message); +} + +function { rule.rule = 'Invalid Enumeration Values', + rule.description ='Enum value name should should start with, but not be all, Upper case nor contain underscore', + rule.severity = 'Low', + rule.category = 'Modelling', + doc.doc = 'Returns true if the enum name meets the guidelines'} +meta::analytics::quality::model::domain::enumerationValue(e:Enumeration[1]):CheckResult[*] +{ + let issues = if($e->enumName()->toOne()->meta::pure::functions::string::isUpperCase() + || true->in($e->enumValues()->map(v|$v->cast(@Enum).name->meta::pure::functions::string::isUpperCase())), + | 'should not be all upper case', + | []) + ->concatenate(if (true->in($e->enumValues()->map(v|$v->cast(@Enum).name->contains('_'))), + | 'should not contain \'_\'', + | [])) + ->concatenate(if (false->in($e->enumValues()->map(v|$v->cast(@Enum).name->toOne()->meta::pure::functions::string::substring(0,1)->isUpperCase())), + | 'should start with upper case', + | [])); + + let message = if($issues->isEmpty(), + | 'Enumeration name (' + $e->enumName() + ') matches required standards', + | 'Enumeration name (' + $e->enumName() + ') does not match required standards: ' + $issues->joinStrings(';') + ); + + ^CheckResult(isValid=$issues->isEmpty(), message=$message); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/functionChecks.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/functionChecks.pure new file mode 100644 index 00000000000..aabd6f182df --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/functionChecks.pure @@ -0,0 +1,636 @@ +import meta::analytics::quality::*; +import meta::analytics::quality::model::*; +import meta::pure::functions::collection::*; +import meta::pure::functions::meta::applications::*; +import meta::pure::metamodel::serialization::grammar::*; +import meta::analytics::quality::model::domain::*; + +function meta::analytics::quality::model::domain::functionRules():Rule>>[*] +{ + + [ + meta::analytics::quality::model::domain::validEqualityComparisons_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::invalidContainsComparisons_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::badInstanceOfChecks_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::invalidMatchUsages_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findUnnecessaryComparisonsToTrue_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findInvalidCastBugs_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findUnusedPrivateProtectedFunctionBugs_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findUnnecessaryIfBugs_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findUnnecessaryIfBugs2_List_1__Pair_MANY_, + // apps::pure::quality::findUnnecessaryToOneBugs_List_1__Pair_MANY_, enable when compile mode is fixed + meta::analytics::quality::model::domain::findUnnecessaryCasts_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findUnnecessaryLetFunctionsCheck_List_1__Pair_MANY_, + meta::analytics::quality::model::domain::findPotentiallyExpensiveAssertions_List_1__Pair_MANY_ + ]->map(rule|createRule($rule)->cast(@Rule>>)); + + +} + +function meta::analytics::quality::model::domain::getUsages(srcFns:List>[1],fns:Function[*]):FunctionExpression[*] +{ + $srcFns.values->map(f| + $f->evaluateAndDeactivate()->meta::analytics::quality::model::domain::applicationsMatchLocal({vs : FunctionExpression[1] | $vs.func->in($fns)}); + ); +} + +function meta::analytics::quality::model::domain::applicationsMatchLocal(expr : FunctionDefinition[1], matchFunc:Function<{FunctionExpression[1]->Boolean[1]}>[1]):FunctionExpression[*] +{ + let fes = $expr->evaluateAndDeactivate().expressionSequence->meta::analytics::quality::model::domain::getLocalFunctionExpressions(); + $fes->filter(fe|$matchFunc->eval($fe)); +} + +function <> meta::analytics::quality::model::domain::getLocalFunctionExpressions(vs : ValueSpecification[*]) : FunctionExpression[*] +{ + $vs->map(x| + $x->match([ + sfe:SimpleFunctionExpression[1]| + $sfe->concatenate($sfe.parametersValues->meta::analytics::quality::model::domain::getLocalFunctionExpressions()), + v : VariableExpression[1]|[], + iv : InstanceValue[1]|$iv.values->map(v| + $v->match([ + subVS:ValueSpecification[1]|$subVS->meta::analytics::quality::model::domain::getLocalFunctionExpressions(), + lambda:LambdaFunction[1]|$lambda.expressionSequence->meta::analytics::quality::model::domain::getLocalFunctionExpressions(), + a:Any[*]| [] + ]) + ) + ])); +} + +function {rule.rule = 'Invalid Contains', + rule.description ='Check for contains / containsAll / containsAny checks that will always result in false due to type miss matches (e.g. [\'abc\']->contains(123))', + rule.severity = 'High', + rule.category = 'Correctness'} +meta::analytics::quality::model::domain::invalidContainsComparisons(fns:List>[1]) : Pair[*] +{ + + + meta::analytics::quality::model::domain::findInvalidContainsComparisons($fns) + ->map(ie| + let t1 = $ie->meta::analytics::quality::model::domain::resolveParameterType(0); + let t2 = $ie->meta::analytics::quality::model::domain::resolveParameterType(1); + let message = ('Possible invalid ' + $ie.functionName->makeString() + ' check (type miss match, ' + $t1->elementToPath() + ' vs ' + $t2->elementToPath() + ')'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + + +function {rule.rule = 'Invalid Equality', + rule.description ='Check for equality checks that will always result in false due to type miss matches (e.g. \'abc\' == 123)', + rule.severity = 'High', + rule.category = 'Correctness'} +meta::analytics::quality::model::domain::validEqualityComparisons(fns:List>[1]) : Pair[*] +{ + + let applications = [equal_Any_MANY__Any_MANY__Boolean_1_, + is_Any_1__Any_1__Boolean_1_, + eq_Any_1__Any_1__Boolean_1_]; + + let usages = $fns->meta::analytics::quality::model::domain::getUsages($applications); + + $usages->evaluateAndDeactivate() + ->map(ie| + let t1 = $ie->meta::analytics::quality::model::domain::resolveParameterType(0); + let t2 = $ie->meta::analytics::quality::model::domain::resolveParameterType(1); + + let valid = meta::analytics::quality::model::domain::equalityCompatibleTypes($t1, $t2); + + let message = if($valid, + |'Valid ' + $ie.functionName->toOne() + ' check (' + $t1->elementToPath() + ' vs ' + $t2->elementToPath() + ')', + |'Possible invalid ' + $ie.functionName->toOne() + ' check (type mismatch, ' + $t1->elementToPath() + ' vs ' + $t2->elementToPath() + ')'); + let result = ^CheckResult(isValid=$valid, message=$message); + pair($ie, $result); + ); + +} + + +function <> meta::analytics::quality::model::domain::equalityCompatibleTypes(t1 : Type[1], t2 : Type[1]) : Boolean[1] +{ + castCompatibleTypes($t1, $t2) || ($t1->subTypeOf(Number) && $t2->subTypeOf(Number)); +} + + + +// Nested filters +function meta::analytics::quality::model::domain::findAllNestedFilterExpressions():FunctionExpression[*] +{ + meta::pure::functions::collection::filter_T_MANY__Function_1__T_MANY_.applications + ->evaluateAndDeactivate() + ->filter(fe | let arg1 = $fe.parametersValues->evaluateAndDeactivate()->at(0); + $arg1->instanceOf(FunctionExpression) && + is($arg1->cast(@FunctionExpression).func, + meta::pure::functions::collection::filter_T_MANY__Function_1__T_MANY_);) +} + + +function {rule.rule = 'Invalid Instance Of', + rule.description ='Check for Match functions that will always fail (e.g. \'abc\'->match([ i: Integer[1]|$i))', + rule.severity = 'High', + rule.category = 'Correctness'} +meta::analytics::quality::model::domain::badInstanceOfChecks(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findBadInstanceOfChecks($fns) + ->map(ie| + let t1 = $ie->meta::analytics::quality::model::domain::resolveParameterType(0); + let t2 = $ie.parametersValues->at(1)->meta::analytics::quality::model::domain::resolveValueType(); + let message = ('Invalid instanceOf check, always ' + meta::analytics::quality::model::domain::castNotNecessary($t1, $t2)->makeString() + ' (' + $t1->elementToPath() + ' vs ' + $t2->elementToPath() + ')'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + +function {rule.rule = 'Invalid Match', + rule.description ='Check for invalid instanceOf checks (e.g. \'hello\'->instanceOf(Float) or \'hello\'->instanceOf(String))', + rule.severity = 'High', + rule.category = 'Correctness'} +meta::analytics::quality::model::domain::invalidMatchUsages(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findInvalidMatchUsage($fns) + ->map(ie| + let t1 = $ie->meta::analytics::quality::model::domain::resolveParameterType(0); + let message = ('Possible invalid Match usage, no type matches for ' + $t1->elementToPath() + ')'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + +function {rule.rule = 'Bad Size', + rule.description ='Check that code uses $collection->isEmpty() / isNotEmpty() instead of $collection->size() == 0 / size() > 0 / size != 0', + rule.severity = 'Low', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::badSizeComparisons(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findBadSizeComparisons($fns) + ->map(ie| + let message = ('Use isEmpty() / isNotEmpty() check, rather than size() ' + $ie.functionName->makeString() + ' 0'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + + +function {rule.rule = 'Unnecessary Comparison To True', + rule.description = 'Check for unnecessary comparison to true (e.g. if(myBooleanFunc() == true, .., ...))', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryComparisonsToTrue(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::unnecessaryTrueComparisons($fns) + ->map(ie| + let message = ('Avoid unnecessary comparison to true for boolean values'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + +function {rule.rule = 'Invalid Cast', + rule.description = 'Check for invalid cast operations (e.g. \'hello\'->cast(@Float))', + rule.severity = 'High', + rule.category = 'Correctness'} +meta::analytics::quality::model::domain::findInvalidCastBugs(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findInvalidCasts($fns) + ->map(ie| + let t1 = $ie->meta::analytics::quality::model::domain::resolveParameterType(0); + let t2 = $ie.parametersValues->at(1)->meta::analytics::quality::model::domain::resolveValueType(); + let message = ('Possible invalid cast (from ' + $t1->elementToPath() + ' to ' + $t2->elementToPath() + ')'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + +function {rule.rule = 'Unused Private Protected', + rule.description = 'Check for unused private or protected functions (they could be removed)', + rule.severity = 'Low', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnusedPrivateProtectedFunctionBugs(fns:List>[1]) : Pair,CheckResult>[*] +{ + $fns.values->map(f| + if(meta::analytics::quality::model::domain::isPrivateProtectedFunctionUnused($f) + ,| let message = ('Unused private/protected function ' + $f.functionName->toOne()); + let result = ^CheckResult(isValid=false,message=$message); + [pair($f,$result)]; + ,|[]) + ); +} + +function meta::analytics::quality::model::domain::isPrivateProtectedFunctionUnused(f:Function[1]) :Boolean[1] +{ + $f->isFunctionUncalled() && + ($f->instanceOf(AnnotatedElement) && ($f->cast(@AnnotatedElement)->hasStereotype('private', meta::pure::profiles::access) || $f->cast(@AnnotatedElement)->hasStereotype('protected', meta::pure::profiles::access))); + +} + +function {doc.doc = 'Find if defined functions is not called anywhere.'} +meta::analytics::quality::model::domain::isFunctionUncalled(f:Function[1]):Boolean[1] +{ + !$f->isTestElement() && !$f->isFunctionReferenced() +} + +function <> meta::analytics::quality::model::domain::isFunctionReferenced(func:Function[1]):Boolean[1] +{ + !$func.applications->evaluateAndDeactivate()->isEmpty() || !$func.referenceUsages->isEmpty() +} + +function {rule.rule = 'Unnecessary If Condition', + rule.description = 'Check for unnecessary if statements, with constant condition (e.g. if(true, |abc, |def)))', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryIfBugs(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findUnnecessaryIfs($fns) + ->map(f| let message = ('If statement with constant expression'); + let result = ^CheckResult(isValid=false,message=$message); + pair($f,$result); + ) + +} + +function {rule.rule = 'Unnecessary If Return', + rule.description = 'Check for unnecessary if statements, with boolean result (e.g. if(2 > 1, |true, |false)))', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryIfBugs2(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findUnnecessaryIfs2($fns) + ->map(f|let message = ('If statement with true/false returns'); + let result = ^CheckResult(isValid=false,message=$message); + pair($f,$result); + ) + +} + +function {rule.rule = 'Unnecessary To One', + rule.description = 'Check for unnecessary toOne() operations (e.g. \'hello\'->toOne())', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryToOneBugs(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findUnnecessaryToOneFEs($fns) + ->map(ie| + let message = ('Avoid unnecessary toOne() on item that is already [1..1]'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + +function {rule.rule = 'Unnecessary Map Property', + rule.description = 'Check for unnecessary map to property usage (e.g. [pair(1,2), pair(3,4)]->map(p|$p.first))', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryMapToPropertyBugs(fns:List>[1]) : Pair[*] +{ + meta::analytics::quality::model::domain::findUnnecessaryMapToProperty($fns) + ->map(ie|let message = ('Use .property syntax directly against the collection rather than mapping to extract single property'); + let result = ^CheckResult(isValid=false,message=$message); + pair($ie,$result); + ); +} + + + + +function meta::analytics::quality::model::domain::findBadSizeComparisons(fns:List>[1]) : FunctionExpression[*] +{ + let applications = [equal_Any_MANY__Any_MANY__Boolean_1_,greaterThan_Number_1__Number_1__Boolean_1_]; + + + let usages = $fns->getUsages($applications); + + + let invalidApplications = $usages->evaluateAndDeactivate()->filter({i| + let p1 = $i.parametersValues->at(0); + let p2 = $i.parametersValues->at(1); + + $p1->instanceOf(SimpleFunctionExpression) && $p1->cast(@SimpleFunctionExpression).func == size_Any_MANY__Integer_1_ + && $p2->instanceOf(InstanceValue) && $p2->cast(@InstanceValue).values == [0]; + }); +} + +function meta::analytics::quality::model::domain::findInvalidContainsComparisons(fns:List>[1]) : FunctionExpression[*] +{ + let applications = [contains_Any_MANY__Any_1__Boolean_1_, + containsAny_Any_MANY__Any_MANY__Boolean_1_, + containsAll_Any_MANY__Any_MANY__Boolean_1_]; + + let usages = $fns->getUsages($applications); + + $usages->evaluateAndDeactivate() + ->filter({i| + let t1 = $i->resolveParameterType(0); + let t2 = $i.parametersValues->at(1)->resolveValueType(); + + let valid = equalityCompatibleTypes($t1, $t2); + + !$valid; + }); +} + +function meta::analytics::quality::model::domain::findInvalidMatchUsage(fns:List>[1]) : FunctionExpression[*] +{ + + let applications = [match_Any_MANY__Function_$1_MANY$__T_m_]; + + let usages = $fns->getUsages($applications); + + let invalidApplications = $usages->evaluateAndDeactivate()->filter({i| + + let t1 = $i->resolveParameterType(0); + let lambdasSpec = $i.parametersValues->at(1); + + //TODO: Handle the case where the match handler values are passed in by a variable + //TODO: Handle the case where the match handlers are functions (not lambdas) + + if($lambdasSpec->instanceOf(InstanceValue) == false + || !$lambdasSpec->cast(@InstanceValue).values->forAll(v|$v->instanceOf(LambdaFunction)), + | true, + | + let lambdas = $lambdasSpec->cast(@InstanceValue).values->cast(@LambdaFunction); + + let matchLambdaParamTypes = $lambdas->map(l|$l->functionType().parameters->toOne()); + + let valid = $matchLambdaParamTypes->fold({pt,r|if ($r, |$r, {| + $t1->castCompatibleTypes($pt.genericType.rawType->toOne()); + })}, false); + + !$valid; + ); + }); + + $invalidApplications; +} + +function meta::analytics::quality::model::domain::findInvalidCasts(fns:List>[1]) : FunctionExpression[*] +{ + let applications = [cast_Any_m__T_1__T_m_]; + + let usages = $fns->getUsages($applications); + + let invalidApplications = $usages->evaluateAndDeactivate()->filter({i| + let p1 = $i->resolveParameterType(0); + let p2 = $i.parametersValues->at(1)->resolveValueType(); + + !$p1->castCompatibleTypes($p2); + }); +} + +function meta::analytics::quality::model::domain::findBadInstanceOfChecks(fns:List>[1]) : FunctionExpression[*] +{ + + let applications = [instanceOf_Any_1__Type_1__Boolean_1_]; + + let usages = $fns->getUsages($applications); + + let invalidApplications = $usages->evaluateAndDeactivate()->filter({i| + let p1 = $i.parametersValues->at(0); + let p2 = $i.parametersValues->at(1); + + let p1t= $i->resolveParameterType(0); + + if(!$p2->instanceOf(InstanceValue), + | false, + {| + let targetType = $p2->cast(@InstanceValue).values->toOne()->cast(@Type); + + (!$p1t->castCompatibleTypes($targetType)); + }); + }); +} + +function meta::analytics::quality::model::domain::resolveParameterType(fe : FunctionExpression[1], index : Integer[1]) : Type[1] +{ + let fParams = $fe.func->functionType().parameters; + assert($fParams->size() > $index); + + let pGT = $fParams->at($index).genericType; + + let gt = if($pGT.rawType->isNotEmpty() && $pGT.rawType != Any, + | $pGT, + | ^GenericType(rawType = $fe.parametersValues->at($index)->resolveValueType()) + ); + + if($gt->isEmpty() || $gt.rawType->isEmpty(), + | Any, + | $gt.rawType->toOne() + ); +} + +function meta::analytics::quality::model::domain::resolveValueType(vs : ValueSpecification[1]) : Type[1] +{ + let t = $vs->match([ + v : ValueSpecification[1]| $v.genericType.rawType + ]); + + if($t->isEmpty(), + | Any, + | $t->toOne() + ); +} + + +function meta::analytics::quality::model::domain::findUnnecessaryToOneFEs(fns:List>[1]) : FunctionExpression[*] +{ + let applications = [toOne_T_MANY__T_1_]; + + let usages = $fns->getUsages($applications); + + + $usages->evaluateAndDeactivate() + ->filter({i| + $i.parametersValues->toOne().multiplicity == PureOne; + }); +} + +function <> meta::analytics::quality::model::domain::castCompatibleTypes(from: Type[1], to: Type[1]) : Boolean[1] +{ + if($from->in([$to, Any]) || $from == Nil || $to == Any, + | true, + | + if ($from.generalizations->size() == 0 && $to.specializations->size() == 0, + | false, + | $to->_subTypeOf($from) || $from->_subTypeOf($to) || $from->getLeafTypes()->remove($from)->exists(x|$x->_subTypeOf($to)) + ) + ) +} + +function meta::analytics::quality::model::domain::castNotNecessary(from: Type[1], to: Type[1]) : Boolean[1] +{ + if($to->in([$from, Any]), + | true, + | + $from->_subTypeOf($to) + ); +} + + +function meta::analytics::quality::model::domain::findUnnecessaryIfs(fns:List>[1]):FunctionExpression[*] +{ + + let applications = [if_Boolean_1__Function_1__Function_1__T_m_]; + + let usages = $fns->getUsages($applications); + + $usages->evaluateAndDeactivate()->filter(a | + let condition = $a.parametersValues->at(0); + $condition->match([ + i:InstanceValue[1] | $i.values->at(0)->instanceOf(Boolean), + a:Any[1] | false + ]); + ); +} + +function meta::analytics::quality::model::domain::findUnnecessaryIfs2(fns:List>[1]):FunctionExpression[*] +{ + let applications = [if_Boolean_1__Function_1__Function_1__T_m_]; + + let usages = $fns->getUsages($applications); + + $usages->evaluateAndDeactivate()->filter(a | + let statements = $a.parametersValues->tail()->cast(@InstanceValue).values->cast(@LambdaFunction).expressionSequence; + let truth = $statements->at(0); + let falsy = $statements->at(1); + + // If the return values of the if conditions are constant booleans and + // 1) They are the same, then the If is unnecessary + // 2) They are different to each other, we should just return the condition or the !condition + + $truth->match([ + i:InstanceValue[1] | $i.values == true || $i.values == false, + a:Any[*] | false + ]) + && + $falsy->match([ + i:InstanceValue[1] | $i.values == true || $i.values == false, + a:Any[*] | false + ]); + ); +} + + +function meta::analytics::quality::model::domain::unnecessaryTrueComparisons(fns:List>[1]):FunctionExpression[*] +{ + let applications = [equal_Any_MANY__Any_MANY__Boolean_1_]; + + let usages = $fns->getUsages($applications); + + $usages->evaluateAndDeactivate()->filter(a | + let p1 = $a.parametersValues->at(0); + let p2 = $a.parametersValues->at(1); + + let isBooleanFunction = $p1->match([ + f:SimpleFunctionExpression[1] | $f.genericType.rawType == Boolean,//.typeArguments.rawType->cast(@FunctionType).returnType.rawType == Boolean, + a:Any[1] | false + ]); + + let isTrueValue = $p2->match([ + i:InstanceValue[1] | $i.values->size() == 1 && $i.values->at(0) == true, + a:Any[1] | false + ]); + + $isBooleanFunction && $isTrueValue; + ); +} + + +function meta::analytics::quality::model::domain::findUnnecessaryMapToProperty(fns:List>[1]):FunctionExpression[*] +{ + let applications = [map_T_m__Function_1__V_m_]; + + let usages = $fns->getUsages($applications); + + $usages->evaluateAndDeactivate()->filter(m| + let param0 = $m.parametersValues->at(0); + let param1 = $m.parametersValues->at(1); + if (!$param0.genericType.typeArguments->isEmpty() || $param1->instanceOf(InstanceValue) == false, + | false, + | + let param1Value = $param1->cast(@InstanceValue).values->toOne(); + if ($param1Value->instanceOf(LambdaFunction) == false, + | false, + | let lambda = $param1Value->cast(@LambdaFunction); + let firstExpr = $lambda.expressionSequence->first(); + if ($lambda.expressionSequence->size() != 1 || !$firstExpr->toOne()->instanceOf(SimpleFunctionExpression), + | false, + | let f = $firstExpr->cast(@SimpleFunctionExpression).func->toOne(); + $f->instanceOf(Property) && !$f->instanceOf(QualifiedProperty); //Do qualified properties with no args work? + ); + ); + ); + ); +} + + + +function {rule.rule = 'Unnecessary Cast', + rule.description = 'Check for unnecessary casts (e.g. \'hello\'->cast(@String))', + rule.severity = 'Low', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryCasts(fns:List>[1]) : Pair[*] +{ + + + let applications = [cast_Any_m__T_1__T_m_]; + + let usages = $fns->meta::analytics::quality::model::domain::getUsages($applications); + + $usages->evaluateAndDeactivate()->map({i| + let p1t = $i->meta::analytics::quality::model::domain::resolveParameterType(0); + let p2t = $i.parametersValues->at(1)->meta::analytics::quality::model::domain::resolveValueType(); + + if(!$p1t->meta::analytics::quality::model::domain::castNotNecessary($p2t), + | [], + | + let message = ('Possible unnecesary cast (from ' + $p1t->makeString() + ' to ' + $p2t->makeString() + ')'); + let result = ^CheckResult(isValid=false,message=$message); + pair($i,$result); + ); + }); +} + + +function {rule.rule = 'Unnecessary let', + rule.description ='Check for functions where last statement is a let', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findUnnecessaryLetFunctionsCheck(fns:List>[1]) : Pair,CheckResult>[*] +{ + $fns.values->map(f| + let last = $f->evaluateAndDeactivate().expressionSequence->evaluateAndDeactivate()->last()->toOne(); + let doesEndInLet = $last->instanceOf(FunctionExpression) && $last->cast(@FunctionExpression).func == letFunction_String_1__T_m__T_m_; + let message = 'function ' + $f.functionName->makeString() + ' ends with an unnecessary let statement'; + let result = ^CheckResult(isValid = !$doesEndInLet, message = $message); + pair($f,$result); + ); +} + + +function {doc.doc = 'Find all concretely defined functions which are not called anywhere.'} +meta::analytics::quality::model::domain::findAllUncalledFunctions():ConcreteFunctionDefinition[*] +{ + ConcreteFunctionDefinition.all()->filter(f | !$f->isTestElement() && !$f->isFunctionReferenced()) +} + +function <> + {rule.rule = 'Assert with dynamic message', + rule.description ='Avoid using dynamic messages as they can be "expensive", even if the assertion passes', + rule.severity = 'Medium', + rule.category = 'Quality'} +meta::analytics::quality::model::domain::findPotentiallyExpensiveAssertions(fns:List>[1]) : Pair[*] +{ + let applications = [assert_Boolean_1__String_1__Boolean_1_]; + + let usages = $fns->meta::analytics::quality::model::domain::getUsages($applications); + + let expensiveUsages = $usages->evaluateAndDeactivate()->filter(m| + let param1 = $m.parametersValues->at(1); + !$param1->instanceOf(InstanceValue); + ); + + $expensiveUsages->map(f| + let message = 'Assertion message is dynamically built'; + let result = ^CheckResult(isValid = false, message = $message); + pair($f,$result); + ); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/propertyChecks.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/propertyChecks.pure new file mode 100644 index 00000000000..d1357de52dc --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/propertyChecks.pure @@ -0,0 +1,312 @@ +import meta::analytics::quality::model::*; +import meta::analytics::quality::*; +import meta::analytics::quality::model::domain::*; + +function meta::analytics::quality::model::domain::propertyRules():Rule>[*] +{ + [ meta::analytics::quality::model::domain::classPropertyShouldStartWithLowerLetter_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classPropertyShouldNotStartWithClassName_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classBooleanPropertyShouldStartWithIsOrHasOrEndsWithFlag_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classPropertyStartingWithIsOrHasShouldBeBoolean_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classPropertyEndingWithFlagShouldBeBoolean_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classPropertyWithToManyMultiplicityAreNamedCorrectly_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classPropertyWithToOneMultiplicityAreNamedCorrectly_AbstractProperty_1__CheckResult_MANY_, + meta::analytics::quality::model::domain::classPropertyIntegersWithToOneMultiplicityAreNamedCorrectly_AbstractProperty_1__CheckResult_MANY_ + // meta::analytics::quality::qualifiedPropertiesShouldBeTested_AbstractProperty_1__CheckResult_MANY_ + ]->map(rule|createRule($rule)->cast(@Rule>)) + +} + + +function + { rule.rule = 'Invalid Property Names', + rule.description ='Property name should start with lower letter and in camelCase', + rule.severity = 'Medium', + rule.category = 'Modelling'} + +meta::analytics::quality::model::domain::classPropertyShouldStartWithLowerLetter(p: AbstractProperty[1]):CheckResult[*] +{ + if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype(), + | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is generated milestone property'), + | + let issues = if(!$p.name->toOne()->meta::pure::functions::string::substring(0,1)->isLowerCase(), + | 'should start with lower case', + | []) + ->concatenate(if ($p.name->contains('_'), + | 'should not contain \'_\'', + | [] + )); + + let message = if($issues->isEmpty(), + | 'Property name (' + $p.name->toOne() + ') matches required standards', + | 'Property name (' + $p.name->toOne() + ') does not match required standards: ' + $issues->joinStrings(';') + ); + + ^CheckResult(isValid=$issues->isEmpty(), message=$message); + ); + +} + + +function + { rule.rule = 'Invalid Property Names(class name)', + rule.description ='Property name should not start with class name', + rule.severity = 'Medium', + rule.category = 'Modelling', + doc.doc = 'Returns true if the property names does not start with class name'} +meta::analytics::quality::model::domain::classPropertyShouldNotStartWithClassName(p: AbstractProperty[1]):CheckResult[*] +{ + if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype(), + | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is generated milestone property'), + | + let passed= !$p.name->toOne()->toLower() + ->meta::pure::functions::string::startsWith($p.owner.name->toOne()->toLower()); + + let message = if($passed, + | 'Property name (' + $p.name->toOne() + ') matches required standards', + | 'Property name (' + $p.name->toOne() + ') should not start with class name (' + $p.owner.name->toOne() + ')' + $p.name->toOne() + ); + + ^CheckResult(isValid=$passed, message=$message); + ); +} + + + +function + { rule.rule = 'Invalid Boolean Property Name', + rule.description = 'Boolean property should start with \'is\' or \'has\' or ends with \'Flag\'', + rule.severity = 'Medium', + rule.category = 'Modelling', + doc.doc = 'Returns true if the boolean property starts with \'is\' or \'has\''} +meta::analytics::quality::model::domain::classBooleanPropertyShouldStartWithIsOrHasOrEndsWithFlag(p: AbstractProperty[1]):CheckResult[*] +{ + if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype(), + | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is generated milestone property'), + | + let passed = if($p.genericType->meta::pure::metamodel::serialization::grammar::printGenericType()->equal('Boolean'), + |$p.name->toOne()->meta::pure::functions::string::startsWith('is') + || $p.name->toOne()->meta::pure::functions::string::startsWith('has') + || $p.name->toOne()->meta::pure::functions::string::endsWith('Flag') + || $p.name->toOne()->meta::pure::functions::string::endsWith('Flags'), + |true;); + + let message = if($passed, + | 'Property name (' + $p.name->toOne() + ') matches required standards', + | 'Property is of type boolean so the name (' + $p.name->toOne() + ') should start with \'is\' / \'has\' or end with \'Flag\' ' + $p.name->toOne() + ); + + ^CheckResult(isValid=$passed, message=$message); + ); +} + + +function + { rule.rule = 'Invalid Boolean Flag Property Type', + rule.description = 'Property name ending with Flag should be Boolean', + rule.severity = 'Medium', + rule.category = 'Modelling', + doc.doc = 'Returns true if the property name ending in Flag is Boolean type'} +meta::analytics::quality::model::domain::classPropertyEndingWithFlagShouldBeBoolean(p: AbstractProperty[1]):CheckResult[*] +{ + if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype(), + | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is generated milestone property'), + | + let passed = !$p.name->toOne()->toLower()->meta::pure::functions::string::endsWith('flag') + || $p.genericType->meta::pure::metamodel::serialization::grammar::printGenericType()->equal('Boolean'); + + let message = if($passed, + | 'Property name (' + $p.name->toOne() + ') matches required standards', + | 'Property name (' + $p.name->toOne() + ') ends with \'flag\' but is not a boolean' + $p.name->toOne() + ); + + ^CheckResult(isValid=$passed, message=$message); + ) +} + +function + { rule.rule = 'Invalid Boolean Is Property Type', + rule.description = 'Property name starting with Is/Has should be Boolean', + rule.severity = 'Medium', + rule.category = 'Modelling', + doc.doc = 'Returns true if the property name starting with Is or Has is Boolean type'} +meta::analytics::quality::model::domain::classPropertyStartingWithIsOrHasShouldBeBoolean(p: AbstractProperty[1]):CheckResult[*] +{ + let ignoreWords = [ + 'issue', + 'issuance' + + ]; + + if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype() , + | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is generated milestone property'), + | if($p.genericType->meta::pure::metamodel::serialization::grammar::printGenericType()->equal('Boolean') || $ignoreWords->exists(w|$p.name->toOne()->toLower()->startsWith($w)), + | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' already boolean or start of name to be ignored'), + | + let passed = !$p.name->toOne()->meta::pure::functions::string::startsWith('is') && !$p.name->toOne()->meta::pure::functions::string::startsWith('has'); + + let message = if($passed, + | 'Property name (' + $p.name->toOne() + ') matches required standards', + | 'Property name (' + $p.name->toOne() + ') starts with Is or Has but is not a boolean ' + $p.genericType->meta::pure::metamodel::serialization::grammar::printGenericType()->toOne() + ); + + ^CheckResult(isValid=$passed, message=$message); + )); +} + +// function +// <> +// { rule.rule = 'Check qualfied properties are tested', +// rule.description = 'Checks that qualified properties are used within at least one test', +// rule.severity = 'High', +// rule.category = 'Testing', +// doc.doc = 'Returns true if the property is either tested or not a qualfied property'} +// meta::analytics::quality::qualifiedPropertiesShouldBeTested(p: AbstractProperty[1]):CheckResult[*] +// { +// if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype(), +// | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is generated milestone property'), +// | if(!$p->instanceOf(QualifiedProperty), +// | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as it is not a qualified property'), +// | +// if($p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype(), +// | ^CheckResult(isValid=true, message='Skipping ' + $p.name->toOne() + ' as auto generated milestone property'), +// | if($p->isFunctionTested(), +// | ^CheckResult(isValid=true, message='Property ' + $p.name->toOne() + ' is tested'), +// | ^CheckResult(isValid=false, message='Property ' + $p.name->toOne() + ' not found in any test') +// ) +// ) +// ) +// ); +// } + +function + { rule.rule = 'Invalid naming style for "to many" properties', + rule.description = 'Checks that properties with "to many" multiplicity reflect this in the name', + rule.severity = 'Low', + rule.category = 'Modelling', + doc.doc = 'Returns true if the property is named correctly'} +meta::analytics::quality::model::domain::classPropertyWithToManyMultiplicityAreNamedCorrectly(p: AbstractProperty[1]):CheckResult[*] +{ + //http://grammar.ccc.commnet.edu/grammar/plurals.htm + + let ignoreEndings = [ + 'cacti', + 'children', + 'criteria', + 'deer', + 'foci', + 'fungi', + 'geese', + 'men', + 'mice', + 'nuclei', + 'people', + 'phenomena', + 'syllabi', + 'teeth', + 'women' + ]; + + let result = if(!($p.multiplicity->isToOne() || $p.multiplicity->isZeroOne() || $p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype()), + | $p.name->toOne()->toLower()->endsWith('s') || $ignoreEndings->exists(w|$p.name->toOne()->toLower()->endsWith($w)), + | true + ); + + + let message = if(!$result, + | 'Property ' + $p.name->toOne() + ' has multiplicity ' + $p.multiplicity->makeString() + ' but name does not suggest multiplicity (i.e. should likely be plural)', + | 'Property ' + $p.name->toOne() + ' is correctly named' + ); + + ^CheckResult(isValid=$result, message=$message); +} + +function + { rule.rule = 'Invalid naming style for singleton properties', + rule.description = 'Checks that singleton properties are not pluralised', + rule.severity = 'Low', + rule.category = 'Modelling', + doc.doc = 'Returns true if the property is named correctly'} +meta::analytics::quality::model::domain::classPropertyWithToOneMultiplicityAreNamedCorrectly(p: AbstractProperty[1]):CheckResult[*] +{ + //http://grammar.ccc.commnet.edu/grammar/plurals.htm + let pluralEndings = [ + 'cacti', + 'children', + 'criteria', + 'deer', + 'statii', + 'foci', + 'fungi', + 'geese', + 'men', + 'mice', + 'nuclei', + 'people', + 'phenomena', + 'syllabi', + 'teeth', + 'women' + ]; + + let ignoreEndings = [ + 'days', + 'years', + 'hours', + 'seconds', + 'units', + 'ss', + 'status', + 'basis', + 'plus', + 'kerberos', + 'previous', + 'comments' + + ]; + + let result = if((($p.multiplicity->isToOne() || $p.multiplicity->isZeroOne()) && !$p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype()), + | (!($p.name->toOne()->toLower()->endsWith('s') || $pluralEndings->exists(w|$p.name->toOne()->toLower()->endsWith($w))) || $ignoreEndings->exists(w|$p.name->toOne()->toLower()->endsWith($w))), + | true + ); + + + let message = if(!$result, + | 'Property ' + $p.name->toOne() + ' has multiplicity ' + $p.multiplicity->makeString() + ' but name suggests multiples (i.e. should not be plural)', + | 'Property ' + $p.name->toOne() + ' is correctly named' + ); + + ^CheckResult(isValid=$result, message=$message); +} + +function + { rule.rule = 'Invalid naming style for singleton properties', + rule.description = 'Checks that singleton properties that look like counts are integers', + rule.severity = 'Low', + rule.category = 'Modelling', + doc.doc = 'Returns true if the property is named correctly'} +meta::analytics::quality::model::domain::classPropertyIntegersWithToOneMultiplicityAreNamedCorrectly(p: AbstractProperty[1]):CheckResult[*] +{ + //http://grammar.ccc.commnet.edu/grammar/plurals.htm + // days/hours/seconds/units - OK if integer (no. of) + let pluralEndings = [ + 'days', + 'years', + 'hours', + 'seconds', + 'units' + ]; + + let result = if((($p.multiplicity->isToOne() || $p.multiplicity->isZeroOne()) && !$p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype() && ( $pluralEndings->exists(w|$p.name->toOne()->toLower()->endsWith($w)))), + | ($p.genericType->meta::pure::metamodel::serialization::grammar::printGenericType()->equal('Integer')), + | true + ); + + + let message = if(!$result, + | 'Property ' + $p.name->toOne() + ' is of type ' + $p.genericType->meta::pure::metamodel::serialization::grammar::printGenericType()->makeString() + ', not integer, but name suggests it is a count', + | 'Property ' + $p.name->toOne() + ' is correctly named' + ); + + ^CheckResult(isValid=$result, message=$message); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/associationChecksTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/associationChecksTest.pure new file mode 100644 index 00000000000..09fa21ec00f --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/associationChecksTest.pure @@ -0,0 +1,38 @@ +import meta::analytics::quality::tests::*; +import meta::analytics::quality::*; + +function <> meta::analytics::quality::model::domain::tests::associationNameShouldStartWithUpperCaseTest():Boolean[1] +{ + assertEquals(true, meta::analytics::quality::model::domain::associationNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::TestsInProgress_NoMatchForTest).isValid); + assertEquals(false, meta::analytics::quality::model::domain::associationNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::testsInProgress_BadCase).isValid); + assertEquals(false, meta::analytics::quality::model::domain::associationNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::TestsInProgressAnotherBadCase).isValid); + assertEquals(false, meta::analytics::quality::model::domain::associationNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::TestsInProgress_yetAnotherBadCase).isValid); +} + +Association +meta::analytics::quality::model::domain::tests::TestsInProgress_NoMatchForTest +{ + test: meta::analytics::quality::model::domain::tests::TestsInProgress[1]; + testMatch: meta::analytics::quality::model::domain::tests::NoMatchForTest[0..1]; +} + +Association +meta::analytics::quality::model::domain::tests::testsInProgress_BadCase +{ + testOne: meta::analytics::quality::model::domain::tests::TestsInProgress[1]; + testMatchOne: meta::analytics::quality::model::domain::tests::NoMatchForTest[0..1]; +} + +Association +meta::analytics::quality::model::domain::tests::TestsInProgressAnotherBadCase +{ + testTwo: meta::analytics::quality::model::domain::tests::TestsInProgress[1]; + testMatchTwo: meta::analytics::quality::model::domain::tests::NoMatchForTest[0..1]; +} + +Association +meta::analytics::quality::model::domain::tests::TestsInProgress_yetAnotherBadCase +{ + testThree: meta::analytics::quality::model::domain::tests::TestsInProgress[1]; + testMatchThree: meta::analytics::quality::model::domain::tests::NoMatchForTest[0..1]; +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/classChecksTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/classChecksTest.pure new file mode 100644 index 00000000000..cfb98aade56 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/classChecksTest.pure @@ -0,0 +1,146 @@ +import apps::pure::quality::*; +import meta::analytics::quality::*; + +function <> meta::analytics::quality::model::domain::tests::entityNameShouldNotStartWithPackageNameTest():Boolean[1] +{ + assertEquals(false, meta::analytics::quality::model::domain::entityNameShouldNotStartWithPackageName(meta::analytics::quality::model::domain::tests::Tests).isValid); + assertEquals(false, meta::analytics::quality::model::domain::entityNameShouldNotStartWithPackageName(meta::analytics::quality::model::domain::tests::TestsInProgress).isValid); + assertEquals(true, meta::analytics::quality::model::domain::entityNameShouldNotStartWithPackageName(meta::analytics::quality::model::domain::tests::NoMatchForTest).isValid); + assertEquals(true, meta::analytics::quality::model::domain::entityNameShouldNotStartWithPackageName(meta::analytics::quality::model::domain::tests::NoMatchForTestAgain).isValid); +} + +function <> meta::analytics::quality::model::domain::tests::classNameShouldStartWithUpperCaseTest():Boolean[1] +{ + assertEquals(true, meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::Test).isValid); + assertEquals(false, meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::lowerCaseTest).isValid); + assertEquals(false, meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::lowerCaseTestWith_Underscore).isValid); + assertEquals(false, meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase(meta::analytics::quality::model::domain::tests::UpperCaseTestWith_Underscore).isValid); +} + +function <> meta::analytics::quality::model::domain::tests::classHasAtLeastOneMandatoryPropertyTest():Boolean[1] +{ + assertEquals(true, meta::analytics::quality::model::domain::classHasAtLeastOneMandatoryProperty(meta::analytics::quality::model::domain::tests::Test).isValid); + assertEquals(false, meta::analytics::quality::model::domain::classHasAtLeastOneMandatoryProperty(meta::analytics::quality::model::domain::tests::EmptyClass).isValid); +} + +function <> meta::analytics::quality::model::domain::tests::allEntitiesAndPropertiesShouldHaveALongDescriptionTest():Boolean[1] +{ + assertEquals(false, meta::analytics::quality::model::domain::allEntitiesAndPropertiesShouldHaveALongDescription(meta::analytics::quality::model::domain::tests::Test).isValid); + assertEquals(true, meta::analytics::quality::model::domain::allEntitiesAndPropertiesShouldHaveALongDescription(meta::analytics::quality::model::domain::tests::TestClassWithDoc).isValid); +} + + +Class {doc.doc = 'test class'} +meta::analytics::quality::model::domain::tests::Tests +{ + {doc.doc = 'test name'} + testName : String[1]; + + {doc.doc = 'test Description'} + testDescription : String[1]; +} + +Class {doc.doc = 'test in progress class'} +meta::analytics::quality::model::domain::tests::TestsInProgress +{ + {doc.doc = 'test name'} + testName : String[1]; + + testDescription : String[1]; +} + +Class meta::analytics::quality::model::domain::tests::NoMatchForTest +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::NoMatchForTestAgain +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class {doc.doc = 'test class'} +meta::analytics::quality::model::domain::tests::TestClassWithDoc +{ + {doc.doc = 'test name'} + testName : String[1]; + + {doc.doc = 'test Description'} + testDescription : String[1]; +} + +Class meta::analytics::quality::model::domain::tests::TestClassWithoutDoc +{ + {doc.doc = 'test name'} + testName : String[1]; + + {doc.doc = 'test Description'} + testDescription : String[1]; +} + +Class {doc.doc = 'test in progress class'} +meta::analytics::quality::model::domain::tests::TestClassWithPropertiesMissingDoc +{ + {doc.doc = 'test name'} + testName : String[1]; + + testDescription : String[1]; +} + +Class meta::analytics::quality::model::domain::tests::TestClassWithAllDocsMissing +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::Test +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::lowerCaseTest +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::lowerCaseTestWith_Underscore +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::UpperCaseTestWith_Underscore +{ + testName : String[1]; + testMatch : Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::EmptyClass +{ + +} + + + + +###Relational +Database meta::analytics::quality::model::domain::tests::TestTable +( + Table testName( name VARCHAR(10) PRIMARY KEY) +) + +###Mapping + +import meta::analytics::quality::model::domain::tests::*; + +Mapping meta::analytics::quality::model::domain::tests::TestTableMapping +( + Tests : Relational + { + testName: [TestTable]testName.name + } +) \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/enumerationChecksTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/enumerationChecksTest.pure new file mode 100644 index 00000000000..c5bd1df868b --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/enumerationChecksTest.pure @@ -0,0 +1,63 @@ +import meta::analytics::quality::tests::*; +import meta::analytics::quality::*; + +function <> meta::analytics::quality::model::domain::tests::enumerationCaseSensitivity():Boolean[1] +{ + assertEquals(true, meta::analytics::quality::model::domain::enumerationName(meta::analytics::quality::model::domain::tests::Valid).isValid); + assertEquals(false, meta::analytics::quality::model::domain::enumerationName(meta::analytics::quality::model::domain::tests::invalid1).isValid); + assertEquals(false, meta::analytics::quality::model::domain::enumerationName(meta::analytics::quality::model::domain::tests::Invalid_3).isValid); + assertEquals(true, meta::analytics::quality::model::domain::enumerationValue(meta::analytics::quality::model::domain::tests::Valid).isValid); + assertEquals(false, meta::analytics::quality::model::domain::enumerationValue(meta::analytics::quality::model::domain::tests::Invalid2).isValid); + assertEquals(false, meta::analytics::quality::model::domain::enumerationValue(meta::analytics::quality::model::domain::tests::Invalid).isValid); + assertEquals(false, meta::analytics::quality::model::domain::enumerationValue(meta::analytics::quality::model::domain::tests::Invalid1).isValid); + assertEquals(false, meta::analytics::quality::model::domain::enumerationValue(meta::analytics::quality::model::domain::tests::INVALID).isValid); +} + +Enum meta::analytics::quality::model::domain::tests::Valid +{ + AValidValue, + AnotherValidValue +} + +Enum {doc.doc='Enum name starts with lower case'} +meta::analytics::quality::model::domain::tests::invalid1 +{ + AValidValue, + AnotherValidValue +} + +Enum {doc.doc='Enum name contains underscore'} +meta::analytics::quality::model::domain::tests::Invalid_3 +{ + AValidValue, + AnotherValidValue +} + +Enum {doc.doc='Enum name all upper case'} +meta::analytics::quality::model::domain::tests::INVALID +{ + AValidValue, + AnotherValidValue +} + +Enum {doc.doc='Enum all upper case'} +meta::analytics::quality::model::domain::tests::Invalid +{ + AVV, + AnotherValidValue +} + +Enum {doc.doc='Enum contains underscore'} +meta::analytics::quality::model::domain::tests::Invalid1 +{ + A_Valid_Value, + AnotherValidValue +} + +Enum {doc.doc='Enum starts with lower case'} +meta::analytics::quality::model::domain::tests::Invalid2 +{ + AValidValue, + anotherValidValue +} + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/functionChecksTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/functionChecksTest.pure new file mode 100644 index 00000000000..2f578fe1a0b --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/functionChecksTest.pure @@ -0,0 +1,223 @@ +import meta::analytics::quality::tests::*; +import meta::analytics::quality::model::*; +import meta::analytics::quality::model::domain::*; +import meta::relational::runtime::*; +import meta::analytics::quality::model::domain::tests::*; + +function {rule.ignore='Invalid Equality'} + meta::analytics::quality::model::domain::tests::pack1::ignoreMe():Boolean[1] +{ + 'this is not false, obviously' == false +} + + +function meta::analytics::quality::model::domain::tests::pack1::invalidEqualsFunc():Boolean[1] +{ + 'hello' == 1; +} + +function meta::analytics::quality::model::domain::tests::pack1::invalidNestedEqualsFunc():Boolean[1] +{ + + [1,2,3,4]->map(i | $i == 'hello' ); + 'hello' == 5; +} + +function meta::analytics::quality::model::domain::tests::pack1::invalidContainsFunc():Boolean[1] +{ + [1,2,3,4]->contains('hello'); +} + +function meta::analytics::quality::model::domain::tests::pack1::validContainsFunc():Boolean[1] +{ + true==true; + [1,2,3,4]->contains(2); +} + +function meta::analytics::quality::model::domain::tests::pack1::badUseOfSizeFunc1():Boolean[1] +{ + ['hello']->size() == 0; +} + +function meta::analytics::quality::model::domain::tests::pack1::badUseOfSizeFunc2():Boolean[1] +{ + ['hello']->size() != 0; +} + +function meta::analytics::quality::model::domain::tests::pack1::badUseOfSizeFunc3():Boolean[1] +{ + ['hello']->size() > 0; +} + +function meta::analytics::quality::model::domain::tests::pack1::invalidMatchStatement():Integer[1] +{ + ['hello']->match([i:Integer[1] | $i]); +} + +function meta::analytics::quality::model::domain::tests::pack1::validMatchStatement():String[1] +{ + ['hello']->match([i:String[1] | $i]); +} + +function meta::analytics::quality::model::domain::tests::pack1::invalidInstanceOfFunc():Boolean[1] +{ + 'hello'->instanceOf(Float); +} + +function meta::analytics::quality::model::domain::tests::pack2::validInstanceOfFunc():Boolean[1] +{ + let x = 5; + $x->cast(@Any)->instanceOf(Number); + + pair(1,'hello')->instanceOf(Pair); +} + + +function meta::analytics::quality::model::domain::tests::pack1::unnecessaryUseOfCastFunc():String[1] +{ + 'hello'->cast(@String); +} + +function meta::analytics::quality::model::domain::tests::pack1::unnecessaryUseOfToOneFunc():String[1] +{ + 'hello'->toOne(); +} + +function meta::analytics::quality::model::domain::tests::pack1::unnecessaryComparisonToBooleanFunc():String[1] +{ + if(meta::analytics::quality::model::domain::tests::pack1::booleanFunc() == true, + | 'yes', + | 'no' + ); +} + +function meta::analytics::quality::model::domain::tests::pack1::booleanFunc():Boolean[1] +{ + true; +} + +function meta::analytics::quality::model::domain::tests::pack1::unnecessaryMapToGetProperty():Integer[*] +{ + [pair(1,2), pair(3,4)]->map(p|$p.first); +} + +function meta::analytics::quality::model::domain::tests::pack1::myFuncWithNotNecessaryLet():Boolean[1] +{ + let a = true; +} + +function <> meta::analytics::quality::model::domain::tests::findBadInstanceOfChecksTest():Boolean[1] +{ + let results = list([meta::analytics::quality::model::domain::tests::pack1::invalidInstanceOfFunc__Boolean_1_, + meta::analytics::quality::model::domain::tests::pack2::validInstanceOfFunc__Boolean_1_] + )->findBadInstanceOfChecks(); + + println($results->map(x|let si = $x->sourceInformation(); $si.source->makeString() + '@' + $si.line->makeString() + 'c' + $si.column->makeString();)); + + assertEquals(1, $results->size()); + + true; +} + + +function <> meta::analytics::quality::model::domain::tests::findUsagesTest():Boolean[1] +{ + let qc = [equal_Any_MANY__Any_MANY__Boolean_1_, is_Any_1__Any_1__Boolean_1_]; + assertSize(meta::analytics::quality::model::domain::tests::pack1::invalidNestedEqualsFunc__Boolean_1_->getUsages($qc), 2); + assertSize(meta::analytics::quality::model::domain::tests::pack1::invalidEqualsFunc__Boolean_1_->getUsages($qc), 1); + assertEmpty(meta::analytics::quality::model::domain::tests::pack1::unnecessaryMapToGetProperty__Integer_MANY_->getUsages($qc)); + assertEmpty(meta::analytics::quality::model::domain::tests::pack1::booleanFunc__Boolean_1_->getUsages($qc)); +} + +function <> meta::analytics::quality::model::domain::tests::findInvalidEqualityComparisonsTest():Boolean[1] +{ + let results = list(meta::analytics::quality::model::domain::tests::pack1::invalidEqualsFunc__Boolean_1_)->validEqualityComparisons(); + assertEquals(1, $results->size()); + $results->map(result| assertFalse($result.second.isValid,| $result.second.message)); + + true; +} + +function <> meta::analytics::quality::model::domain::tests::findInvalidNestedEqualityComparisonsTest():Boolean[1] +{ + let fun = meta::analytics::quality::model::domain::tests::pack1::invalidNestedEqualsFunc__Boolean_1_; + let funs= $fun->sourceInformation(); + let results = list($fun)->validEqualityComparisons(); + assertEquals(2, $results->size()); + $results->map(result| assertFalse($result.second.isValid,| $result.second.message)); + + $results->map(r | let si = $r.first->sourceInformation(); + assert($si.source == $funs.source && + ($funs.startLine <= $si.startLine ) && ( $si.startLine <=$funs.endLine ), | $si.source->toOne()) ; + ); + true; +} + + +function <> meta::analytics::quality::model::domain::tests::findInvalidContainsComparisonsTest():Boolean[1] +{ + + let funs = [ meta::analytics::quality::model::domain::tests::pack1::invalidContainsFunc__Boolean_1_, + meta::analytics::quality::model::domain::tests::pack1::booleanFunc__Boolean_1_]; + let invalidApplications = list($funs)->findInvalidContainsComparisons(); + + assertEquals(1, $invalidApplications->size()); + +} + +function <> meta::analytics::quality::model::domain::tests::findInvalidMatchUsageTest():Boolean[1] +{ + assertEmpty(list(meta::analytics::quality::model::domain::tests::pack1::invalidContainsFunc__Boolean_1_)->findInvalidMatchUsage()); + assertEmpty(list(meta::analytics::quality::model::domain::tests::pack1::booleanFunc__Boolean_1_)->findInvalidMatchUsage()); + assertEmpty(list(meta::analytics::quality::model::domain::tests::pack1::validMatchStatement__String_1_)->findInvalidMatchUsage()); + assertSize(list(meta::analytics::quality::model::domain::tests::pack1::invalidMatchStatement__Integer_1_)->findInvalidMatchUsage(), 1); +} + + +function <> meta::analytics::quality::model::domain::tests::getUsages(srcFn :FunctionDefinition[1],fns:Function[*]):FunctionExpression[*] +{ + meta::analytics::quality::model::domain::getUsages(list($srcFn), $fns); +} + + +function <> meta::analytics::quality::model::domain::tests::findUnnecesaryLetsTest():Boolean[1] +{ + + let results = list(meta::analytics::quality::model::domain::tests::pack1::invalidContainsFunc__Boolean_1_) + ->findUnnecessaryLetFunctionsCheck(); + + assertSize($results,1); +} + +function <> meta::analytics::quality::model::domain::tests::castCompatibleTypesTest():Boolean[1] +{ + + assert(meta::pure::metamodel::type::Type->castCompatibleTypes(meta::pure::metamodel::type::Class), 'Type vs. Class'); + assert(meta::pure::metamodel::extension::AnnotatedElement->castCompatibleTypes(meta::pure::metamodel::type::Class), 'AnnotatedElement vs. Class'); + // assert(meta::relational::runtime::DatabaseConnection->castCompatibleTypes(meta::relational::datalake::runtime::LakeWarehouseConnectionInfo), 'DatabaseConnection vs. LakeWarehouseConnectionInfo'); + assert(meta::pure::store::Store->castCompatibleTypes(meta::relational::metamodel::Database), 'Store vs. DB'); + assert(meta::relational::metamodel::Database->castCompatibleTypes(meta::pure::store::Store), 'Db vs. Store'); + assert(Number->castCompatibleTypes(Float), 'Number vs Float'); + assert(Float->castCompatibleTypes(Number), 'Float vs Number'); + assert(!String->castCompatibleTypes(Number), 'String vs Number'); +} + +function <> meta::analytics::quality::model::domain::tests::equalityCompatibleTypesTest():Boolean[1] +{ + + // assert(meta::relational::runtime::DatabaseConnection->equalityCompatibleTypes(meta::relational::datalake::runtime::LakeWarehouseConnectionInfo), 'DatabaseConnection vs. LakeWarehouseConnectionInfo'); + assert(TabularDataSet->equalityCompatibleTypes(Any), 'TabularDataSet vs. Any'); + assert(TabularDataSet->equalityCompatibleTypes(TabularDataSet), 'TabularDataSet vs. TabularDataSet'); + assert(Float->equalityCompatibleTypes(Integer), 'Float vs. Integer'); + assert(!Float->equalityCompatibleTypes(String), 'Float vs. String'); + assert(VariableExpression->equalityCompatibleTypes(ValueSpecification), 'VariableExpression vs. ValueSpecification'); +} + +function <> meta::analytics::quality::model::domain::tests::castNotNecessaryTest():Boolean[1] +{ + + assert(!meta::pure::store::Store->castNotNecessary(meta::relational::metamodel::Database), 'Store vs. DB'); + assert(meta::relational::metamodel::Database->castNotNecessary(meta::pure::store::Store), 'Db vs. Store'); + assert(!Number->castNotNecessary(Float), 'Number vs Float'); + assert(Float->castNotNecessary(Number), 'Float vs Number'); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/propertyChecksTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/propertyChecksTest.pure new file mode 100644 index 00000000000..03a35bae7f5 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/propertyChecksTest.pure @@ -0,0 +1,40 @@ +import apps::pure::quality::*; +import meta::analytics::quality::*; +import meta::analytics::quality::model::domain::tests::*; +import meta::analytics::quality::model::*; + +Class meta::analytics::quality::model::domain::tests::MyOtherTestClass +{ + name: String[1]; + + nameReversed() { + $this.name->chunk(1)->reverse()->joinStrings() + }:String[1]; + + nameReversed_Untested() { + $this.nameReversed() + }:String[1]; + +} + +function <> meta::analytics::quality::model::domain::tests::myOtherTestClassNameReversed():Boolean[1] +{ + assertEquals('cba', ^MyOtherTestClass(name='abc').nameReversed()); +} + + +// function <> meta::analytics::quality::tests::qualifiedPropertiesShouldBeTestedTest():Boolean[1] +// { +// let v = runClassPropertyQualityCheck(MyOtherTestClass, qualifiedPropertiesShouldBeTested_AbstractProperty_1__CheckResult_MANY_, true); +// let failedMessages = $v.detail->filter(v|!$v.isValid).message; + +// assertEquals(['Property nameReversed_Untested not found in any test'], $failedMessages); +// } + + +function <> meta::analytics::quality::model::domain::tests::runClassPropertyQualityCheck(c : Class[1], ruleFunction: FunctionDefinition<{AbstractProperty[1]->Any[*]}>[1], forceNotSkipTestsFlag : Boolean[1]) : ViolationInstance[*] +{ + let propRules = meta::analytics::quality::model::domain::createRule($ruleFunction)->cast(@Rule>)->map(r|if($forceNotSkipTestsFlag, | ^$r(hasSkipTestsFlag=false), | $r)); + + let v = meta::analytics::quality::model::domain::runClassPropertyQualityChecks(MyOtherTestClass, $propRules); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/testQuality.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/testQuality.pure new file mode 100644 index 00000000000..a1ec3c9e3e3 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/src/main/resources/core_analytics_quality/tests/testQuality.pure @@ -0,0 +1,265 @@ +import apps::pure::quality::tests::*; +import meta::relational::tests::*; +import meta::relational::runtime::*; +import meta::analytics::quality::model::*; + +Class meta::analytics::quality::model::domain::tests::myTestClass +{ + Name: String[1]; + myTestClassProperty: Boolean[1]; + myTestFlag:String[1]; + myInvalidDays:String[1]; + hasWrongType:String[1]; + myBadToManyProperty:String[*]; + myBadChildren:String[1]; + myBadSingletonProperties:String[0..1]; +} + + +Class {rule.ignore='Invalid Property Names'} //incorrect rule to ignore + meta::analytics::quality::model::domain::tests::testClassWithIgnoreFlags +{ + {rule.ignore='Invalid Property Names'} + Name: String[1]; + + {rule.ignore='Invalid Boolean Flag Property Type,Invalid Property Names'} + TestFlag: String[1]; + testClassProperty: Boolean[1]; + aTestFlag(){ 'lala' == false }:Boolean[1]; + + {rule.ignore='Invalid Equality'} + anotherTestFlag(){ 'this is not false, obviously' == false }:Boolean[1]; + +} + + + + +Class meta::analytics::quality::model::domain::tests::Employee +{ + name: Boolean[1]; +} + +Class meta::analytics::quality::model::domain::tests::Firm +{ + employeesFlag: meta::analytics::quality::model::domain::tests::Employee[0..1]; +} + +Class meta::analytics::quality::model::domain::tests::UntestedClass +{ + foo:String[1]; +} + +Class meta::analytics::quality::model::domain::tests::NoModelQualityViolation +{ + validChildren: String[*]; + kerberos: String[1]; + issuer: String[1]; + issuanceDate: Date[1]; + name: String[1]; + validationFlag: Boolean[1]; + maturityYears: Integer[0..1]; + isValid: Boolean[1]; + hasValidName: Boolean[1]; + validationFlags : Boolean[*]; +} + +function <> meta::analytics::quality::model::domain::tests::testClassNameShouldStartWithUpperCase():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::Employee->meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass->meta::analytics::quality::model::domain::classNameShouldStartWithUpperCase()->toOne().isValid); +} + +// function <> meta::analytics::quality::tests::testClassShouldBeIncludedInADiagram():Boolean[1] +// { +// assert(meta::analytics::quality::tests::Employee->meta::analytics::quality::classIsIncludedInADiagram()->toOne().isValid); +// assertFalse(meta::analytics::quality::tests::myTestClass->meta::analytics::quality::classIsIncludedInADiagram()->toOne().isValid); +// } + +// function <> apps::pure::quality::tests::testClassShouldBeIncludedInATest():Boolean[1] +// { +// assert(meta::analytics::quality::tests::myTestClass->apps::pure::quality::classIsIncludedInATest()->toOne().isValid); +// assertFalse('apps::pure::quality::tests::UntestedClass'->pathToElement()->cast(@Class)->apps::pure::quality::classIsIncludedInATest()->toOne().isValid); +// } + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyShouldStartWithLowerLetter():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myTestFlag')->toOne()->meta::analytics::quality::model::domain::classPropertyShouldStartWithLowerLetter()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'Name')->toOne()->meta::analytics::quality::model::domain::classPropertyShouldStartWithLowerLetter()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyShouldNotStartWithClassName():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'Name')->toOne()->meta::analytics::quality::model::domain::classPropertyShouldNotStartWithClassName()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myTestClassProperty')->toOne()->meta::analytics::quality::model::domain::classPropertyShouldNotStartWithClassName()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassBooleanPropertyShouldStartWithIsOrHasOrEndsWithFlag():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::NoModelQualityViolation.properties->filter(f| $f.name == 'validationFlag')->toOne()->meta::analytics::quality::model::domain::classBooleanPropertyShouldStartWithIsOrHasOrEndsWithFlag()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myTestClassProperty')->toOne()->meta::analytics::quality::model::domain::classBooleanPropertyShouldStartWithIsOrHasOrEndsWithFlag()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyEndingWithFlagShouldBeBoolean():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::NoModelQualityViolation.properties->filter(f| $f.name == 'validationFlag')->toOne()->meta::analytics::quality::model::domain::classPropertyEndingWithFlagShouldBeBoolean()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myTestFlag')->toOne()->meta::analytics::quality::model::domain::classPropertyEndingWithFlagShouldBeBoolean()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyWithToManyMultiplicityAreNamedCorrectly():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::NoModelQualityViolation.properties->filter(f| $f.name == 'validationFlags')->toOne()->meta::analytics::quality::model::domain::classPropertyWithToManyMultiplicityAreNamedCorrectly()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myBadToManyProperty')->toOne()->meta::analytics::quality::model::domain::classPropertyWithToManyMultiplicityAreNamedCorrectly()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyWithToOneMultiplicityAreNamedCorrectly():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::NoModelQualityViolation.properties->filter(f| $f.name == 'kerberos')->toOne()->meta::analytics::quality::model::domain::classPropertyWithToOneMultiplicityAreNamedCorrectly()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myBadChildren')->toOne()->meta::analytics::quality::model::domain::classPropertyWithToOneMultiplicityAreNamedCorrectly()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myBadSingletonProperties')->toOne()->meta::analytics::quality::model::domain::classPropertyWithToOneMultiplicityAreNamedCorrectly()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyIntegersWithToOneMultiplicityAreNamedCorrectly():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::NoModelQualityViolation.properties->filter(f| $f.name == 'maturityYears')->toOne()->meta::analytics::quality::model::domain::classPropertyIntegersWithToOneMultiplicityAreNamedCorrectly()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'myInvalidDays')->toOne()->meta::analytics::quality::model::domain::classPropertyIntegersWithToOneMultiplicityAreNamedCorrectly()->toOne().isValid); +} + +function <> meta::analytics::quality::model::domain::tests::testClassPropertyStartingWithIsOrHasShouldBeBoolean():Boolean[1] +{ + assert(meta::analytics::quality::model::domain::tests::NoModelQualityViolation.properties->filter(f| $f.name == 'hasValidName')->toOne()->meta::analytics::quality::model::domain::classPropertyStartingWithIsOrHasShouldBeBoolean()->toOne().isValid); + assertFalse(meta::analytics::quality::model::domain::tests::myTestClass.properties->filter(f| $f.name == 'hasWrongType')->toOne()->meta::analytics::quality::model::domain::classPropertyStartingWithIsOrHasShouldBeBoolean()->toOne().isValid); +} + + +function <> meta::analytics::quality::model::domain::tests::runRulesForPackageableElementTest():Boolean[1] +{ + let results = [meta::analytics::quality::model::domain::tests::pack1,meta::analytics::quality::model::domain::tests::Employee]->meta::analytics::quality::model::domain::runQualityChecks(); + assertSize($results, 14); +} + + +function <> meta::analytics::quality::model::domain::tests::runAsHTMLForPackageableElementTest():Boolean[1] +{ + let results = meta::analytics::quality::model::domain::tests::pack1->meta::analytics::quality::model::domain::runChecksAsHtml([],true); + assertFalse($results->isEmpty()); +} + +function <> meta::analytics::quality::model::domain::tests::runRulesServiceTest():Boolean[1] +{ + let results = meta::analytics::quality::model::domain::findBugsReports('meta::analytics::quality::tests::pack1'); + assertFalse($results->isEmpty()); +} + + +function <> meta::analytics::quality::model::domain::tests::runRulesEmptyResults():Boolean[1] +{ + assert([]->meta::analytics::quality::model::domain::runRules()->isEmpty()); + let results = []->meta::analytics::quality::model::domain::runChecksAsHtml([],false); + println($results); + assertFalse($results->isEmpty()); +} + +function <> meta::analytics::quality::model::domain::tests::filterIgnoresTest():Boolean[1] +{ + let results = [meta::analytics::quality::model::domain::tests::testClassWithIgnoreFlags] + ->meta::analytics::quality::model::domain::runQualityChecks()->removeDuplicates() ->filter(bug|!$bug.detail.isValid); + + assertFalse($results->isEmpty()); + assertEquals(7,$results->size()); + + let filtered = $results->meta::analytics::quality::model::domain::filterInstancesToIgnore(); + + assertFalse($filtered->isEmpty()); + assertEquals(3,$filtered->size()); + +} + + +###Relational +Database meta::analytics::quality::model::domain::tests::TestDB +( + Table TABLE1( NAME VARCHAR(30) PRIMARY KEY) +) + +###Mapping + +Mapping meta::analytics::quality::model::domain::tests::TestMapping +( + meta::analytics::quality::model::domain::tests::myTestClass : Relational + { + Name: [meta::analytics::quality::model::domain::tests::TestDB]TABLE1.NAME + } +) + + +// ###Diagram + +// Diagram apps::pure::quality::tests::testDiagram(width=447.00000, height=164.00000) +// { +// TypeView NoModelQualityViolation_0_0_0_0_0_0_0_0_0_0( +// type=apps::pure::quality::tests::NoModelQualityViolation, +// stereotypesVisible=true, +// attributesVisible=true, +// attributeStereotypesVisible=true, +// attributeTypesVisible=true, +// color=#FFFFCC, +// lineWidth=1.0, +// position=(272.00000, 227.00000), +// width=159.00000, +// height=72.00000) + +// TypeView UntestedClass_1_1_1_1_1_1_1_1_1_1( +// type=apps::pure::quality::tests::UntestedClass, +// stereotypesVisible=true, +// attributesVisible=true, +// attributeStereotypesVisible=true, +// attributeTypesVisible=true, +// color=#FFFFCC, +// lineWidth=1.0, +// position=(270.00000, 343.00000), +// width=105.00000, +// height=48.00000) + +// TypeView Firm_2_2_2_2_2_2_2_2_2_2( +// type=apps::pure::quality::tests::Firm, +// stereotypesVisible=true, +// attributesVisible=true, +// attributeStereotypesVisible=true, +// attributeTypesVisible=true, +// color=#FFFFCC, +// lineWidth=1.0, +// position=(671.00000, 232.00000), +// width=46.00000, +// height=36.00000) + +// TypeView Employee_3_3_3_3_3_3_3_3( +// type=apps::pure::quality::tests::Employee, +// stereotypesVisible=true, +// attributesVisible=true, +// attributeStereotypesVisible=true, +// attributeTypesVisible=true, +// color=#FFFFCC, +// lineWidth=1.0, +// position=(484.00000, 240.00000), +// width=110.00000, +// height=48.00000) + + + +// PropertyView pview_4(property=apps::pure::quality::tests::Firm.employeesFlag, +// stereotypesVisible=true, +// nameVisible=true, +// color=#000000, +// lineWidth=-1.0, +// lineStyle=SIMPLE, +// points=[(694.00000,250.00000),(539.00000,264.00000)], +// label='', +// source=Firm_2_2_2_2_2_2_2_2_2_2, +// target=Employee_3_3_3_3_3_3_3_3, +// propertyPosition=(593.95000, 240.95242), +// multiplicityPosition=(593.95000, 223.10242)) + + + +// } diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml new file mode 100644 index 00000000000..dbf6f592b64 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -0,0 +1,22 @@ + + + org.finos.legend.engine + legend-engine-xts-analytics + 4.35.5-SNAPSHOT + + 4.0.0 + + Legend Engine - XTS - Analytics - Quality + legend-engine-xts-analytics-quality + pom + + + 11 + 11 + + + + legend-engine-xt-analytics-quality-pure + + + \ No newline at end of file diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 9c5195afe99..e29bcd74b1c 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -36,5 +36,6 @@ legend-engine-xts-analytics-binding legend-engine-xts-analytics-search legend-engine-xts-analytics-store + legend-engine-xts-analytics-quality \ No newline at end of file diff --git a/pom.xml b/pom.xml index c87801c605a..fe063d337e8 100644 --- a/pom.xml +++ b/pom.xml @@ -591,6 +591,11 @@ + + org.finos.legend.engine + legend-engine-xt-analytics-quality-pure + ${project.version} + org.finos.legend.engine legend-engine-xt-hostedService-pure From 045188bbd7ceb88199bb97bf91a3aac60e81a593 Mon Sep 17 00:00:00 2001 From: Arik Pamnani Date: Fri, 1 Dec 2023 21:31:15 +0530 Subject: [PATCH 21/54] Update MasteryParseTreeWalker.java (#2482) --- .../dsl/mastery/grammar/from/MasteryParseTreeWalker.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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/MasteryParseTreeWalker.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/MasteryParseTreeWalker.java index 9fad84905db..594ddc98acd 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/MasteryParseTreeWalker.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/MasteryParseTreeWalker.java @@ -378,13 +378,13 @@ private Lambda visitLambdaWithFilter(String propertyName, MasteryParserGrammar.C String inputFilter = ctx.getText().replaceAll(DOLLAR_SIGN, INPUT); return domainParser.parseLambda( format(PRECEDENCE_LAMBDA_WITH_FILTER, propertyName, inputFilter), - "", 0, 0, true); + "", 0, 0, walkerSourceInformation.getReturnSourceInfo()); } private Lambda visitLambdaWithoutFilter(String propertyName) { return domainParser.parseLambda(format(SIMPLE_PRECEDENCE_LAMBDA, propertyName), - "", 0, 0, true); + "", 0, 0, walkerSourceInformation.getReturnSourceInfo()); } private RuleScope visitRuleScopeWithoutPrecedence(MasteryParserGrammar.ScopeContext ctx, Set uniqueScopes,PrecedenceRule precedenceRule) @@ -748,7 +748,7 @@ private List visitQueryExpressions(MasteryParserGrammar.QueryExpressions private Lambda visitLambda(MasteryParserGrammar.LambdaFunctionContext ctx) { - return domainParser.parseLambda(ctx.getText(), "", 0, 0, true); + return domainParser.parseLambda(ctx.getText(), "", 0, 0, walkerSourceInformation.getReturnSourceInfo()); } private ResolutionKeyType visitResolutionKeyType(MasteryParserGrammar.ResolutionQueryKeyTypeContext ctx) From 081e54520f0bbfabf503877919380c028f034db3 Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:00:37 -0500 Subject: [PATCH 22/54] Improve efficiency on some elasticsearch queries grouping by computed if/else fields (#2491) * Improve efficiency on some elasticsearch queries grouping by computed if/else fields * Handle Date type on painless script * Ensure else is handle as "other" bucket --- .../v7/result/ExecutionRequestVisitor.java | 50 ++++++- .../functions/pure_to_elasticsearch.pure | 137 ++++++++++++++---- .../functions/tds_utils.pure | 2 +- .../elasticsearch_plan_test.pure | 8 +- .../elasticsearch_plan_test_aggregation.pure | 106 ++++++++++++++ .../elasticsearch_plan_test_filter_date.pure | 16 ++ 6 files changed, 281 insertions(+), 38 deletions(-) diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java index 87137ea1076..4c89bb358ca 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java @@ -81,8 +81,11 @@ import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.AggregateBase; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.AggregationContainer; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.AvgAggregate; +import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.Buckets; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.CompositeBucket; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.DoubleTermsBucket; +import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.FiltersAggregate; +import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.FiltersBucket; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.LongTermsBucket; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.MaxAggregate; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.aggregations.MinAggregate; @@ -229,6 +232,15 @@ else if (aggregationContainer.multi_terms != null) Iterator bucketsIterator = bucketsParser.readValuesAs(MultiTermsBucket.class); objectNodeStream = processMultiTermsBucket(aggregationContainerEntry.getKey(), aggregateTDSResultVisitor, bucketsIterator, lastBucket); } + else if (aggregationContainer.filters != null) + { + String key = aggregationContainerEntry.getKey(); + FilteringParserDelegate filtersParser = new FilteringParserDelegate(aggsParser, new JsonPointerBasedFilter("/filters#" + key), false, false); + filtersParser.nextToken(); + filtersParser.clearCurrentToken(); + FiltersAggregate filtersAggregate = filtersParser.readValueAs(FiltersAggregate.class); + objectNodeStream = processFiltersBucket(aggregateTDSResultVisitor, key, filtersAggregate); + } } if (objectNodeStream == null) @@ -253,6 +265,35 @@ else if (aggregationContainer.multi_terms != null) return new CollectIterator<>(objectNodeStream, h -> extractors.stream().map(x -> x.apply(h)).toArray()); } + private static Iterator processFiltersBucket(AggregateTDSResultVisitor aggregateTDSResultVisitor, String key, FiltersAggregate filtersAggregate) + { + Buckets buckets = filtersAggregate.buckets; + + List bucketResults = Lists.mutable.empty(); + + for (Map.Entry bucketEntry : buckets.keyed.entrySet()) + { + FiltersBucket value = bucketEntry.getValue(); + + if (value.doc_count.getLiteral() == 0) + { + continue; + } + + MutableMap result = Maps.mutable.empty(); + + result.put(key, bucketEntry.getKey()); + + for (Map.Entry aggregateEntry : value.__additionalProperties.entrySet()) + { + result.put(aggregateEntry.getKey(), ((AggregateBase) aggregateEntry.getValue().unionValue()).accept(aggregateTDSResultVisitor)); + } + + bucketResults.add(ElasticsearchObjectMapperProvider.OBJECT_MAPPER.valueToTree(result)); + } + return bucketResults.iterator(); + } + private static Iterator processComposite(AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, Procedure lastBucket) { return new CollectIterator<>(buckets, b -> @@ -577,13 +618,14 @@ else if (aggregationContainer.multi_terms != null) } else { - if (!this.activities.isEmpty()) - { - return false; - } processor = ExecutionRequestVisitor.this::processNotAggregateResponse; } + if (!next && !this.activities.isEmpty()) + { + return false; + } + HttpUriRequest request = this.searchRequest.accept(new ElasticsearchV7RequestToHttpRequestVisitor(ExecutionRequestVisitor.this.url, ExecutionRequestVisitor.this.executionState)); String query = ((HttpEntityEnclosingRequest) request).getEntity().toString(); 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 a9897f75476..0a9ec272d0d 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 @@ -81,6 +81,8 @@ Class meta::external::store::elasticsearch::v7::pureToEs::TDSESDetail path(){ $this.resultPath.path() }:String[1]; + runtimeMappingVS: ValueSpecification[0..1]; + runtimeMappingVSTDSDetails: TDSESDetail[*]; format: String[0..1]; } @@ -223,9 +225,10 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProjectColum $expr->extractSimpleValue($initReq).first.values->match([ tdsDetail: TDSESDetail[1] | pair(^$tdsDetail(name = $name, type = $type), $initReq), {vs: ValueSpecification[1] | - let resultPath = ^DocValueResultPath(fieldPath = $name, property = $type->defaultRuntimePropertyForPureType()); - let scripted = $vs->toRuntimeMapping($resultPath, $initReq); - pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, format = $scripted.search.runtime_mappings->toOne()->get($name).format.value), $scripted); + let withCounter = ^$initReq(counter = $initReq.counter + 1); + let resultPath = ^DocValueResultPath(fieldPath = 'runtime_mapping_' + $initReq.counter->toString(), property = $type->defaultRuntimePropertyForPureType()); + let scripted = $vs->toRuntimeMapping($resultPath, $withCounter); + pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, runtimeMappingVS = $vs, runtimeMappingVSTDSDetails = $scripted.tdsESDetails, format = $scripted.search.runtime_mappings->toOne()->get($resultPath.path()).format.value), $scripted); }, {any: Any[*] | $any->type()->match([ @@ -233,7 +236,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProjectColum let resultPath = ^DocValueResultPath(fieldPath = $name, property = $pt->defaultRuntimePropertyForPureType()); let iv = ^InstanceValue(multiplicity = $vs.func->functionReturnMultiplicity(), genericType = ^GenericType(rawType = $type), values=$any)->evaluateAndDeactivate(); let scripted = $iv->toRuntimeMapping($resultPath, $initReq); - pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, format = $scripted.search.runtime_mappings->toOne()->get($name).format.value), $scripted); + pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, runtimeMappingVS = $iv, runtimeMappingVSTDSDetails = $scripted.tdsESDetails, format = $scripted.search.runtime_mappings->toOne()->get($resultPath.path()).format.value), $scripted); }, other: Any[*] | fail(|'Cannot project column - %s:%s'->format([$name,$any->type()->elementToPath()]))->cast(@Pair) ]) @@ -328,15 +331,15 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: processGroupBy($groupByTdsESDetails, $aggregateValues, $groupedReq); } -function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(groupByTdsESDetails: TDSESDetail[*], aggregateValues: meta::pure::tds::AggregateValue[*], groupedReq: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(groupByTdsESDetails: TDSESDetail[*], aggregateValues: meta::pure::tds::AggregateValue[*], initReq: State[1]): State[1] { let aggPairs = $aggregateValues->map({x | - let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $groupedReq).first; + let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $initReq).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) + $initReq.supportedAggregationFunctions->findAndEvalSupportedFunction($aggFunc->cast(@FunctionExpression), $rawToAggregate.path(), $initReq) , | fail('Unsupported aggregation functions: ' + $aggFunc->printValueSpecification('')); @@ -344,37 +347,68 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(grou ); let aggReturnType = $x.aggregateFn->functionReturnType().rawType->toOne()->cast(@DataType); - let resultPath = ^AggregateResultPath(fieldPath = $rawToAggregate.name, property = $rawToAggregate.resultPath.property); + let resultPath = ^AggregateResultPath(fieldPath = $rawToAggregate.name, property = $rawToAggregate.resultPath.property, fieldToAggregate = $rawToAggregate.resultPath); let toAggregate = ^$rawToAggregate(type = $aggReturnType, resultPath = $resultPath); pair($toAggregate, $container); }); + let filterBuckets = if($groupByTdsESDetails->size() == 1 && $groupByTdsESDetails->at(0).path()->in($aggPairs.first.resultPath->cast(@AggregateResultPath).fieldToAggregate.path())->not(), + | + let detailsAtRutimeMappingTime = $groupByTdsESDetails->at(0).runtimeMappingVSTDSDetails; + let result = $groupByTdsESDetails->at(0).runtimeMappingVS->optimizeForFiltersAggregation(false, ^$initReq(tdsESDetails = $detailsAtRutimeMappingTime)); + let reqResult = $result.first; + pair(^$reqResult(tdsESDetails = $initReq.tdsESDetails), $result.second); + , + | + pair($initReq, list(^BucketsForFiltersAggregation())) + ); + + let doFilterBucket = $filterBuckets.second.values->forAll(x | $x.name->isNotEmpty()); + + let groupedReq = $filterBuckets.first; + let aggregations = newMap($aggPairs->map(x | pair($x.first.name, $x.second))); let aggregationsForSearch = if ($groupByTdsESDetails->isEmpty(), | // no group by field - just run the aggregations $aggregations , - | - // with group by fields, we need to wrap it on composite - let composite = ^CompositeAggregation( - size = [], // todo allow to set limit? - sources = $groupByTdsESDetails->map(x | newMap(pair($x.name, ^CompositeAggregationSource( terms = ^TermsAggregation(field = $x.path()->literal(), missing_bucket = true->literal()))))) - ); - newMap(pair('groupByComposite', ^AggregationContainer(composite = $composite, aggregations = $aggregations))); - ); + | + if ($doFilterBucket, + | + let buckets = $filterBuckets.second.values->filter(x | $x.query->isNotEmpty()); + let elseBucket = $filterBuckets.second.values->filter(x | $x.query->isEmpty())->toOne(); + let bucketsMap = $buckets->toIndexed()->map({bucket | + let prevBuckets = $buckets->slice(0, $bucket.first); + let notPrevQuery = $prevBuckets->isNotEmpty()->if(|^QueryContainer(bool = ^BoolQuery(must_not = ^QueryContainer(bool = ^BoolQuery(should = $prevBuckets.query)))), |[]); + pair($bucket.second.name->toOne(), ^QueryContainer(bool = ^BoolQuery(must = $notPrevQuery->concatenate($bucket.second.query)))); + })->newMap(); + + let filtersAggregation = ^FiltersAggregation(filters = ^Buckets(keyed = $bucketsMap), other_bucket = true->literal(), other_bucket_key = $elseBucket.name->literal()); + newMap(pair($groupByTdsESDetails->at(0).path(), ^AggregationContainer(filters = $filtersAggregation, aggregations = $aggregations))); + , + | + // with group by fields, we need to wrap it on composite + let composite = ^CompositeAggregation( + size = [], // todo allow to set limit? + sources = $groupByTdsESDetails->map(x | newMap(pair($x.path(), ^CompositeAggregationSource( terms = ^TermsAggregation(field = $x.path()->literal(), missing_bucket = true->literal()))))) + ); + newMap(pair('groupByComposite', ^AggregationContainer(composite = $composite, aggregations = $aggregations))); + )); let groupByTdsESDetailsAsAgg = $groupByTdsESDetails->map({x | - let resultPath = ^AggregateResultPath(fieldPath = $x.name, property = $x.resultPath.property); + let resultPath = ^AggregateResultPath(fieldPath = $x.resultPath.fieldPath, property = $x.resultPath.property); let toAggregate = ^$x(resultPath = $resultPath); }); let search = $groupedReq.search; + // $search.runtime_mappings = // todo remove runtime mapping if optmized let newSearch = ^$search( size = 0->literal() // avoiding reading all the matches, we just want the aggregate results ,aggregations = $aggregationsForSearch ,docvalue_fields = [] ,_source = ^SourceConfig(fetch = false->literal()) + ,runtime_mappings = if($doFilterBucket, | $search.runtime_mappings->toOne()->keyValues()->filter(x | $x.first != $groupByTdsESDetails->at(0).path())->newMap(), |$search.runtime_mappings) ); ^$groupedReq( @@ -383,6 +417,56 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(grou ); } +function meta::external::store::elasticsearch::v7::pureToEs::optimizeForFiltersAggregation(vs: ValueSpecification[*], elseBlock: Boolean[1], state: State[1]): Pair>[1] +{ + $vs->match([ + fe: FunctionExpression[1] | + if($fe.func == if_Boolean_1__Function_1__Function_1__T_m_ && $fe.genericType.rawType == String, + | $fe->bucketsForFiltersAggregation($state), + | pair($state, list(^BucketsForFiltersAggregation())) + ), + iv: InstanceValue[1] | + $iv.values->filter(x | $elseBlock)->match([ + elseBucketName: String[1] | pair($state, list(^BucketsForFiltersAggregation(name = $elseBucketName))), + other: Any[*] | pair($state, list(^BucketsForFiltersAggregation())) + ]), + any: Any[*] | pair($state, list(^BucketsForFiltersAggregation())) + ]); +} + +function meta::external::store::elasticsearch::v7::pureToEs::bucketsForFiltersAggregation(fe: FunctionExpression[1], state: State[1]): Pair>[1] +{ + let ifTrue = $fe.parametersValues->at(1)->cast(@InstanceValue).values->cast(@FunctionDefinition)->toOne(); + + $ifTrue.expressionSequence->match([ + iv: InstanceValue[1] | + $iv.values->match([ + {bucketName: String[1] | + let expr = $fe.parametersValues->at(0); // convert to query contaier + let subState = ^$state(inFilter = true, inProject = false, aggregationQuery = false, search = ^SearchRequestBody()); + // todo hmmm tds details are wrong here :( + let reqWithFilter = processFilterLambda($expr, $subState); + let filterQuery = $reqWithFilter.search.query; + let newState = ^$reqWithFilter(inFilter = $state.inFilter, inProject = $state.inProject, aggregationQuery = $state.aggregationQuery, search = $state.search); + + let ifTrueBucket = ^BucketsForFiltersAggregation(name = $bucketName, query = $filterQuery); + + let ifFalse =$fe.parametersValues->at(2); + let ifFalseBuckets = optimizeForFiltersAggregation($ifFalse->cast(@InstanceValue).values->cast(@FunctionDefinition)->toOne().expressionSequence, true, $newState); + + pair($ifFalseBuckets.first, list($ifTrueBucket->concatenate($ifFalseBuckets.second.values))); + }, + any: Any[*] | pair($state, list(^BucketsForFiltersAggregation())) + ]), + any: Any[*] | pair($state, list(^BucketsForFiltersAggregation())) + ]); +} + +Class meta::external::store::elasticsearch::v7::pureToEs::BucketsForFiltersAggregation +{ + name: String[0..1]; + query: QueryContainer[0..1]; +} function meta::external::store::elasticsearch::v7::pureToEs::processFilter(vs : FunctionExpression[1], initReq: State[1]): State[1] { @@ -464,9 +548,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSort(vs : Fu // but cannot sort values from the actual aggregations // for that, we switch to limiting TermsAggregation - let sortOnAggregatedValues = $columnsToSort->filter(x | $x->in($compositeSources.first)->not()); + let sortOnAggregatedValues = $toSort.first->filter(x | $x.path()->in($compositeSources.first)->not()); - let toSortByName = $toSort->map(x | pair($x.first.name, $x.second)); + let toSortByName = $toSort->map(x | pair($x.first.path(), $x.second)); let sortedContainer = if ($sortOnAggregatedValues->isEmpty(), | sortOnCompositeAggregationContainer($toSortByName, $container.aggregations, $composite, $compositeSources) @@ -1452,16 +1536,11 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBool ]); 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); + pv: PlanVarPlaceHolder[1] | + '(params[\'%s\'].length() <= 10 ? LocalDate.parse(params[\'%s\']).atTime(0, 0) : LocalDateTime.parse(params[\'%s\'])).toInstant(ZoneOffset.UTC).toEpochMilli()' + ->format([$param.first, $param.first, $param.first]), + any: Any[*] | 'params[\'%s\']'->format($param.first) + ]); let script = '(%s && %s.toInstant().toEpochMilli() %s %s)'->format([painlessIsNotEmpty($tdsESDetail), painlessExtractField($tdsESDetail), $operation, $paramScript]); let literalOrExpression = $newValue->literalOrExpression(true)->toOne(); diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure index 9ae90feeaea..4bf12adeb7d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure @@ -89,5 +89,5 @@ Class meta::external::store::elasticsearch::v7::metamodel::tds::FieldResultPath Class meta::external::store::elasticsearch::v7::metamodel::tds::AggregateResultPath extends meta::external::store::elasticsearch::v7::metamodel::tds::ResultPath { - + fieldToAggregate: meta::external::store::elasticsearch::v7::metamodel::tds::ResultPath[0..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 a32fde2f051..5e4ef2f83a1 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 @@ -284,10 +284,10 @@ function meta::external::store::elasticsearch::executionTest::testCase::assertTd ); 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)))) + | $expected.rows->map(r | $expected.columns->map(c | $r.get($c))) + ->zip($actual.rows->map(r | $actual.columns->map(c | $r.get($c)))), + | $expected->sort($expected.columns.name).rows->map(r | $expected.columns->map(c | $r.get($c))) + ->zip($actual->sort($actual.columns.name).rows->map(r | $actual.columns->map(c | $r.get($c)))) ); $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_aggregation.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure index c0b96ec649e..ca101408ad1 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure @@ -89,4 +89,110 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::testRestrictGroupByColumns(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->groupBy(['Director', 'MPAA'], [ agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()), agg('avgBudget', r | $r.getInteger('Budget'), agg | $agg->average()) ])->restrict(['Director', 'avgBudget'])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionNestedIf(config:TestConfig[1]):Boolean[1] +{ + $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')])->groupBy('Bucket', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionNestedIfAggregateOnExpression(config:TestConfig[1]):Boolean[1] +{ + $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')])->groupBy('Bucket', agg('countBuckets', r | $r.getString('Bucket'), agg | $agg->count()))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOverridesExistingColumnName(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->project([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'))), 'ReleaseDate'), col(x: TDSRow[1] | $x.getInteger('Budget'), 'Budget')])->groupBy('ReleaseDate', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByIfExpressionOnAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < today()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < today()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < today()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOnAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + $x.getDate('ReleaseDate') < today()->adjust(-15, DurationUnit.YEARS), + 'Is Old?')])->groupBy('Is Old?', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); +} + + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByIfExpressionOnAdjustNowFunctions(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < now()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < now()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOnAdjustNowFunctions(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + $x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + 'Is Old?')])->groupBy('Is Old?', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOnAdjustNowFunctions2(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + $x.getDate('ReleaseDate') < now(), + 'Is Old?')])->groupBy('Is Old?', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); } \ 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 d69e338dd57..a4d90be8557 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 @@ -186,4 +186,20 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date { let var = %2010-04-26T00:00:00.200+0000; $config->testTdsExpression(x | $x->filter(x | $var <= $x.getDate('ReleaseDate'))); +} + +function + <> + {doc.doc = 'Test less than equal filter on Elasticsearch Integer property mapping with variable'} +meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testFilterUsingValueFromAdjustNowFunctions(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') >= now()->adjust(-15, DurationUnit.YEARS))); +} + +function + <> + {doc.doc = 'Test less than equal filter on Elasticsearch Integer property mapping with variable'} +meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testFilterUsingValueFromAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') >= today()->adjust(-15, DurationUnit.YEARS))); } \ No newline at end of file From a8fe2ce03642692b203e2c4dab3fab776b5f5ebd Mon Sep 17 00:00:00 2001 From: Zhang Lizhi Date: Mon, 4 Dec 2023 21:46:06 +0800 Subject: [PATCH 23/54] Persistence Component: Append Only Digest Generation and Other Fixes (#2451) --- .../components/common/FileFormatType.java | 23 ++ .../ingestmode/AppendOnlyAbstract.java | 10 +- .../DeriveMainDatasetSchemaFromStaging.java | 11 +- .../ingestmode/IngestModeCaseConverter.java | 12 +- .../ingestmode/IngestModeVisitors.java | 19 +- .../digest/DigestGenStrategyVisitor.java | 2 + .../digest/DigestGenerationHandler.java | 67 +++++ ...UserProvidedDigestGenStrategyAbstract.java | 36 +++ .../DatasetAdditionalPropertiesAbstract.java | 2 +- .../datasets/DatasetCaseConverter.java | 18 ++ .../datasets/FilteredDatasetAbstract.java | 31 ++ .../datasets/IcebergPropertiesAbstract.java} | 28 +- .../datasets/SchemaDefinitionAbstract.java | 8 + .../StagedFilesDatasetProperties.java | 19 +- .../logicalplan/operations/CopyAbstract.java | 5 + .../logicalplan/values/FunctionName.java | 3 +- .../components/planner/AppendOnlyPlanner.java | 34 ++- .../components/planner/BulkLoadPlanner.java | 72 ++--- .../components/planner/Planner.java | 14 +- .../relational/ansi/AnsiSqlSink.java | 3 + .../ansi/optimizer/StringCaseOptimizer.java | 2 +- .../DatasetAdditionalPropertiesVisitor.java | 21 +- .../sql/visitors/DerivedDatasetVisitor.java | 1 - .../sql/visitors/FilteredDatasetVisitor.java | 43 +++ .../ansi/sql/visitors/SelectionVisitor.java | 8 + .../ansi/sql/visitors/ShowVisitor.java | 15 +- .../nontemporal/AppendOnlyTest.java | 26 ++ .../nontemporal/NontemporalDeltaTest.java | 30 ++ .../UnitemporalDeltaBatchIdBasedTest.java | 76 +++++ .../relational/bigquery/BigQuerySink.java | 3 + .../bigquery/executor/BigQueryHelper.java | 18 +- ...yStagedFilesDatasetPropertiesAbstract.java | 10 +- .../sql/visitor/DatetimeValueVisitor.java | 2 +- .../bigquery/sql/visitor/SQLDropVisitor.java | 47 +++ .../StagedFilesDatasetReferenceVisitor.java | 40 +-- .../expressions/table/StagedFilesTable.java | 3 +- .../schemaops/statements/DropTable.java | 85 ++++++ .../e2e/AppendOnlyExecutorTest.java | 70 ++++- .../e2e/AppendOnlyGeneratorTest.java | 67 ++++- .../components/e2e/BigQueryEndToEndTest.java | 8 +- .../components/e2e/BulkLoadExecutorTest.java | 22 +- .../components/e2e/BulkLoadGeneratorTest.java | 8 +- .../components/ingestmode/AppendOnlyTest.java | 101 ++++++- .../ingestmode/BigQueryTestArtifacts.java | 44 ++- ...eltaSourceSpecifiesFromAndThroughTest.java | 20 +- ...itemporalDeltaSourceSpecifiesFromTest.java | 57 ++-- .../components/ingestmode/BulkLoadTest.java | 81 +++--- .../components/ingestmode/IngestModeTest.java | 4 +- .../ingestmode/NontemporalDeltaTest.java | 40 ++- .../ingestmode/NontemporalSnapshotTest.java | 4 +- .../UnitemporalDeltaBatchIdBasedTest.java | 93 ++++++ ...temporalDeltaBatchIdDateTimeBasedTest.java | 44 +-- .../UnitemporalDeltaDateTimeBasedTest.java | 56 ++-- ...poralSnapshotBatchIdDateTimeBasedTest.java | 34 +-- .../UnitemporalSnapshotDateTimeBasedTest.java | 52 ++-- .../transformer/PlaceholderTest.java | 6 +- .../BulkLoadDatasetUtilsBigQueryTest.java | 4 +- .../append/digest_generation/data_pass1.csv | 3 + .../append/digest_generation/data_pass2.csv | 6 + .../append/digest_generation/data_pass3.csv | 3 + .../append/digest_generation/data_pass4.csv | 6 + .../input/digest_generation/data_pass1.csv | 3 + .../input/digest_generation/data_pass2.csv | 3 + .../input/digest_generation/data_pass3.csv | 3 + .../input/digest_generation/data_pass4.csv | 3 + .../api/RelationalGeneratorAbstract.java | 4 +- .../api/RelationalIngestorAbstract.java | 6 +- .../sqldom/common/FunctionName.java | 3 +- .../schemaops/statements/DeleteStatement.java | 6 +- .../schemaops/statements/ShowCommand.java | 22 +- .../sqldom/schemaops/ShowCommandTest.java | 8 +- ...2StagedFilesDatasetPropertiesAbstract.java | 12 +- .../h2/sql/visitor/DigestUdfVisitor.java | 19 +- .../StagedFilesDatasetReferenceVisitor.java | 2 +- .../sql/visitor/ToArrayFunctionVisitor.java | 15 +- .../persistence/components/BaseTest.java | 10 + .../persistence/components/TestUtils.java | 190 +++++++++++++ .../BitemporalDeltaWithBatchIdTest.java | 54 ++++ .../ingestmode/bulkload/BulkLoadTest.java | 64 ++--- .../nontemporal/AppendOnlyTest.java | 256 ++++++++++++++++- .../nontemporal/NontemporalDeltaTest.java | 80 +++++- .../nontemporal/NontemporalSnapshotTest.java | 45 ++- .../unitemporal/UnitemporalDeltaTest.java | 60 ++++ .../unitemporal/UnitemporalSnapshotTest.java | 65 +++++ .../operations/SchemaEvolutionTest.java | 20 +- .../versioning/TestDedupAndVersioning.java | 15 +- .../expected_pass1.csv | 3 + .../expected_pass2.csv | 12 + .../staging_data_pass1.csv | 5 + .../staging_data_pass2.csv | 10 + .../digest_generation/expected_pass1.csv | 3 + .../digest_generation/expected_pass2.csv | 6 + .../digest_generation2/expected_pass1.csv | 4 + .../digest_generation2/expected_pass2.csv | 7 + .../with_staging_filter/expected_pass1.csv | 2 + .../with_staging_filter/expected_pass2.csv | 4 + .../input/digest_generation/data_pass1.csv | 3 + .../input/digest_generation/data_pass2.csv | 3 + .../input/digest_generation2/data_pass1.csv | 4 + .../input/digest_generation2/data_pass2.csv | 4 + .../input/with_staging_filter/data_pass1.csv | 4 + .../input/with_staging_filter/data_pass2.csv | 3 + .../with_staging_filter/expected_pass1.csv | 5 + .../with_staging_filter/expected_pass2.csv | 3 + .../input/with_staging_filter/data_pass1.csv | 8 + .../input/with_staging_filter/data_pass2.csv | 8 + .../with_staging_filter/expected_pass1.csv | 4 + .../with_staging_filter/expected_pass2.csv | 5 + .../with_staging_filter/expected_pass3.csv | 5 + .../staging_data_pass1.csv | 9 + .../staging_data_pass2.csv | 4 + .../memsql/optimizer/StringCaseOptimizer.java | 4 +- .../memsql/sql/visitor/SQLCreateVisitor.java | 3 +- .../sql/visitor/SchemaDefinitionVisitor.java | 6 +- .../memsql/sql/visitor/ShowVisitor.java | 33 +-- .../schemaops/statements/ShowCommand.java | 38 +-- .../components/ingestmode/AppendOnlyTest.java | 25 ++ ...itemporalDeltaSourceSpecifiesFromTest.java | 20 +- .../ingestmode/MemsqlTestArtifacts.java | 269 +++++++++--------- .../ingestmode/NontemporalDeltaTest.java | 30 ++ .../UnitemporalDeltaBatchIdBasedTest.java | 94 +++++- ...temporalDeltaBatchIdDateTimeBasedTest.java | 6 +- ...poralSnapshotBatchIdDateTimeBasedTest.java | 2 +- .../UnitemporalSnapshotDateTimeBasedTest.java | 2 +- .../logicalplan/operations/BaseTestUtils.java | 93 +++--- .../logicalplan/operations/CreateTest.java | 81 ++++-- .../logicalplan/operations/ShowTest.java | 12 +- .../logicalplan/datasets}/FileFormat.java | 9 +- ...eStagedFilesDatasetPropertiesAbstract.java | 6 +- .../datasets/StandardFileFormatAbstract.java | 35 +++ .../UserDefinedFileFormatAbstract.java} | 29 +- .../optmizer/StringCaseOptimizer.java | 4 +- .../snowflake/sql/visitor/CopyVisitor.java | 42 ++- .../DatasetAdditionalPropertiesVisitor.java | 10 +- .../snowflake/sql/visitor/ShowVisitor.java | 32 +-- .../StagedFilesDatasetReferenceVisitor.java | 2 - .../sqldom/common/IcebergProperties.java | 54 ++++ .../expressions/table/StagedFilesTable.java | 33 --- .../schemaops/statements/CopyStatement.java | 124 +++++++- .../schemaops/statements/CreateTable.java | 28 +- .../schemaops/statements/ShowCommand.java | 29 +- .../components/SnowflakeTestArtifacts.java | 14 + .../components/ingestmode/AppendOnlyTest.java | 103 +++++++ .../components/ingestmode/BulkLoadTest.java | 183 ++++++++++-- .../ingestmode/NontemporalDeltaMergeTest.java | 31 ++ .../operations/CreateTableTest.java | 12 +- .../logicalplan/operations/ShowTest.java | 6 +- .../sqldom/schemaops/CopyStatementTest.java | 38 ++- .../persistence/components/BaseTest.java | 51 ++++ .../scenarios/AppendOnlyScenarios.java | 51 +++- .../scenarios/NonTemporalDeltaScenarios.java | 9 + ...UnitemporalDeltaBatchIdBasedScenarios.java | 27 ++ .../nontemporal/AppendOnlyTestCases.java | 37 ++- .../NontemporalDeltaTestCases.java | 20 ++ .../AppendOnlyBasedDerivationTest.java | 10 +- ...nitmemporalDeltaBatchIdBasedTestCases.java | 39 ++- .../persistence/mapper/AppendOnlyMapper.java | 5 +- .../persistence/mapper/v1/DeriveDatasets.java | 5 +- .../mapper/v1/IngestModeVisitors.java | 5 +- .../mapper/v2/IngestModeMapper.java | 25 +- .../TestAppendOnlyWithAllowDuplicates.java | 4 +- .../mapper/IngestModeMapperTest.java | 13 +- .../mapper/TestFieldsToExclude.java | 3 +- 163 files changed, 3633 insertions(+), 989 deletions(-) create mode 100644 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/FileFormatType.java create mode 100644 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/digest/DigestGenerationHandler.java create mode 100644 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/digest/UserProvidedDigestGenStrategyAbstract.java create mode 100644 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/datasets/FilteredDatasetAbstract.java 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/{common/LoadOptionsAbstract.java => logicalplan/datasets/IcebergPropertiesAbstract.java} (62%) create mode 100644 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/FilteredDatasetVisitor.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/SQLDropVisitor.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/DropTable.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass3.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass4.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass3.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass4.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass3.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass2.csv 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/common => legend-engine-xt-persistence-component-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/logicalplan/datasets}/FileFormat.java (82%) create mode 100644 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/logicalplan/datasets/StandardFileFormatAbstract.java rename 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/{sqldom/common/ExternalVolume.java => logicalplan/datasets/UserDefinedFileFormatAbstract.java} (59%) create mode 100644 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/sqldom/common/IcebergProperties.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/FileFormatType.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/FileFormatType.java new file mode 100644 index 00000000000..f5242a06056 --- /dev/null +++ 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/FileFormatType.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.persistence.components.common; + +public enum FileFormatType +{ + CSV, + JSON, + AVRO, + 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/ingestmode/AppendOnlyAbstract.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/AppendOnlyAbstract.java index bfc0302b75e..e882a4899e3 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/AppendOnlyAbstract.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/AppendOnlyAbstract.java @@ -15,10 +15,10 @@ package org.finos.legend.engine.persistence.components.ingestmode; import org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing; +import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategy; import org.immutables.value.Value; -import java.util.Optional; - import static org.immutables.value.Value.Immutable; import static org.immutables.value.Value.Style; @@ -32,7 +32,11 @@ ) public interface AppendOnlyAbstract extends IngestMode { - Optional digestField(); + @Value.Default + default DigestGenStrategy digestGenStrategy() + { + return NoDigestGenStrategy.builder().build(); + } Auditing auditing(); 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 b6e12b71adf..6253925d4d1 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 @@ -70,10 +70,7 @@ public Dataset visitAppendOnly(AppendOnlyAbstract appendOnly) { boolean isAuditingFieldPK = doesDatasetContainsAnyPK(mainSchemaFields); appendOnly.auditing().accept(new EnrichSchemaWithAuditing(mainSchemaFields, isAuditingFieldPK)); - if (appendOnly.digestField().isPresent()) - { - addDigestField(mainSchemaFields, appendOnly.digestField().get()); - } + appendOnly.digestGenStrategy().accept(IngestModeVisitors.EXTRACT_DIGEST_FIELD_FROM_DIGEST_GEN_STRATEGY).ifPresent(digest -> addDigestField(mainSchemaFields, digest)); removeDataSplitField(appendOnly.dataSplitField()); return mainDatasetDefinitionBuilder.schema(mainSchemaDefinitionBuilder.addAllFields(mainSchemaFields).build()).build(); } @@ -138,11 +135,7 @@ public Dataset visitBitemporalDelta(BitemporalDeltaAbstract bitemporalDelta) @Override public Dataset visitBulkLoad(BulkLoadAbstract bulkLoad) { - Optional digestField = bulkLoad.digestGenStrategy().accept(IngestModeVisitors.EXTRACT_DIGEST_FIELD_FROM_DIGEST_GEN_STRATEGY); - if (digestField.isPresent()) - { - addDigestField(mainSchemaFields, digestField.get()); - } + bulkLoad.digestGenStrategy().accept(IngestModeVisitors.EXTRACT_DIGEST_FIELD_FROM_DIGEST_GEN_STRATEGY).ifPresent(digest -> addDigestField(mainSchemaFields, digest)); Field batchIdField = Field.builder() .name(bulkLoad.batchIdField()) .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) 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/IngestModeCaseConverter.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/IngestModeCaseConverter.java index 220b55532bb..4edb15d29de 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/IngestModeCaseConverter.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/IngestModeCaseConverter.java @@ -20,6 +20,8 @@ import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditingAbstract; import org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitor; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategyAbstract; import org.finos.legend.engine.persistence.components.ingestmode.versioning.*; import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy; import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategyAbstract; @@ -75,7 +77,7 @@ public IngestMode visitAppendOnly(AppendOnlyAbstract appendOnly) { return AppendOnly .builder() - .digestField(applyCase(appendOnly.digestField())) + .digestGenStrategy(appendOnly.digestGenStrategy().accept(new DigestGenStrategyCaseConverter())) .auditing(appendOnly.auditing().accept(new AuditingCaseConverter())) .deduplicationStrategy(appendOnly.deduplicationStrategy()) .versioningStrategy(appendOnly.versioningStrategy().accept(new VersionStrategyCaseConverter())) @@ -244,6 +246,14 @@ public DigestGenStrategy visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrateg .digestField(applyCase(udfBasedDigestGenStrategy.digestField())) .build(); } + + @Override + public DigestGenStrategy visitUserProvidedDigestGenStrategy(UserProvidedDigestGenStrategyAbstract userProvidedDigestGenStrategy) + { + return UserProvidedDigestGenStrategy.builder() + .digestField(applyCase(userProvidedDigestGenStrategy.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/ingestmode/IngestModeVisitors.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/IngestModeVisitors.java index 0a255978ace..64f9db016e6 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/IngestModeVisitors.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/IngestModeVisitors.java @@ -18,6 +18,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategyVisitor; import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategyAbstract; import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategyAbstract; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategyAbstract; import org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitors; import java.util.Collections; @@ -37,7 +38,7 @@ private IngestModeVisitors() @Override public Boolean visitAppendOnly(AppendOnlyAbstract appendOnly) { - return appendOnly.filterExistingRecords(); + return appendOnly.digestGenStrategy().accept(DIGEST_GEN_STRATEGY_DIGEST_REQUIRED); } @Override @@ -88,7 +89,7 @@ public Boolean visitBulkLoad(BulkLoadAbstract bulkLoad) @Override public Optional visitAppendOnly(AppendOnlyAbstract appendOnly) { - return appendOnly.digestField(); + return appendOnly.digestGenStrategy().accept(EXTRACT_DIGEST_FIELD_FROM_DIGEST_GEN_STRATEGY); } @Override @@ -140,7 +141,7 @@ public Optional visitBulkLoad(BulkLoadAbstract bulkLoad) public Set visitAppendOnly(AppendOnlyAbstract appendOnly) { Set metaFields = new HashSet<>(); - appendOnly.digestField().ifPresent(metaFields::add); + appendOnly.digestGenStrategy().accept(EXTRACT_DIGEST_FIELD_FROM_DIGEST_GEN_STRATEGY).ifPresent(metaFields::add); appendOnly.dataSplitField().ifPresent(metaFields::add); return metaFields; } @@ -374,6 +375,12 @@ public Boolean visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrategyAbstract { return true; } + + @Override + public Boolean visitUserProvidedDigestGenStrategy(UserProvidedDigestGenStrategyAbstract userProvidedDigestGenStrategy) + { + return true; + } }; public static final DigestGenStrategyVisitor> EXTRACT_DIGEST_FIELD_FROM_DIGEST_GEN_STRATEGY = new DigestGenStrategyVisitor>() @@ -389,6 +396,12 @@ public Optional visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrategy { return Optional.of(udfBasedDigestGenStrategy.digestField()); } + + @Override + public Optional visitUserProvidedDigestGenStrategy(UserProvidedDigestGenStrategyAbstract userProvidedDigestGenStrategy) + { + return Optional.of(userProvidedDigestGenStrategy.digestField()); + } }; } 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/digest/DigestGenStrategyVisitor.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/digest/DigestGenStrategyVisitor.java index a45a2e91735..37f5e8ab63a 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/digest/DigestGenStrategyVisitor.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/digest/DigestGenStrategyVisitor.java @@ -19,4 +19,6 @@ public interface DigestGenStrategyVisitor T visitNoDigestGenStrategy(NoDigestGenStrategyAbstract noDigestGenStrategy); T visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrategyAbstract udfBasedDigestGenStrategy); + + T visitUserProvidedDigestGenStrategy(UserProvidedDigestGenStrategyAbstract userProvidedDigestGenStrategy); } 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/digest/DigestGenerationHandler.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/digest/DigestGenerationHandler.java new file mode 100644 index 00000000000..73a8e592d85 --- /dev/null +++ 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/digest/DigestGenerationHandler.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.persistence.components.ingestmode.digest; + +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; +import org.finos.legend.engine.persistence.components.logicalplan.values.DigestUdf; +import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; +import org.finos.legend.engine.persistence.components.logicalplan.values.Value; + +import java.util.List; +import java.util.stream.Collectors; + +public class DigestGenerationHandler implements DigestGenStrategyVisitor +{ + private List fieldsToSelect; + private List fieldsToInsert; + private Dataset stagingDataset; + private Dataset mainDataset; + + public DigestGenerationHandler(Dataset mainDataset, Dataset stagingDataset, List fieldsToSelect, List fieldsToInsert) + { + this.mainDataset = mainDataset; + this.stagingDataset = stagingDataset; + this.fieldsToSelect = fieldsToSelect; + this.fieldsToInsert = fieldsToInsert; + } + + @Override + public Void visitNoDigestGenStrategy(NoDigestGenStrategyAbstract noDigestGenStrategy) + { + return null; + } + + @Override + public Void visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrategyAbstract udfBasedDigestGenStrategy) + { + Value digestValue = DigestUdf + .builder() + .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()); + fieldsToSelect.add(digestValue); + return null; + } + + @Override + public Void visitUserProvidedDigestGenStrategy(UserProvidedDigestGenStrategyAbstract userProvidedDigestGenStrategy) + { + return null; + } +} 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/digest/UserProvidedDigestGenStrategyAbstract.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/digest/UserProvidedDigestGenStrategyAbstract.java new file mode 100644 index 00000000000..79577b91aee --- /dev/null +++ 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/digest/UserProvidedDigestGenStrategyAbstract.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.ingestmode.digest; + +import org.immutables.value.Value; + +@Value.Immutable +@Value.Style( + typeAbstract = "*Abstract", + typeImmutable = "*", + jdkOnly = true, + optionalAcceptNullable = true, + strictBuilder = true +) +public interface UserProvidedDigestGenStrategyAbstract extends DigestGenStrategy +{ + String digestField(); + + @Override + default T accept(DigestGenStrategyVisitor visitor) + { + return visitor.visitUserProvidedDigestGenStrategy(this); + } +} 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/datasets/DatasetAdditionalPropertiesAbstract.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/datasets/DatasetAdditionalPropertiesAbstract.java index 3592f7e8c08..7959a0309df 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/datasets/DatasetAdditionalPropertiesAbstract.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/datasets/DatasetAdditionalPropertiesAbstract.java @@ -35,7 +35,7 @@ public interface DatasetAdditionalPropertiesAbstract extends LogicalPlanNode Optional tableOrigin(); - Optional externalVolume(); + Optional icebergProperties(); Map tags(); } 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/datasets/DatasetCaseConverter.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/datasets/DatasetCaseConverter.java index bf3415061b5..28d5d27cba6 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/datasets/DatasetCaseConverter.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/datasets/DatasetCaseConverter.java @@ -119,6 +119,24 @@ public Dataset applyCaseOnDataset(Dataset dataset, Function stra return derivedDataset; } + if (dataset instanceof FilteredDataset) + { + FilteredDataset filteredDataset = FilteredDataset.builder() + .name(newName.orElseThrow(IllegalStateException::new)) + .group(newSchemaName) + .database(newDatabaseName) + .schema(schemaDefinition) + .filter(((FilteredDataset) dataset).filter()) + .datasetAdditionalProperties(dataset.datasetAdditionalProperties()) + .build(); + + if (dataset.datasetReference().alias().isPresent()) + { + filteredDataset = filteredDataset.withAlias(dataset.datasetReference().alias().get()); + } + return filteredDataset; + } + if (dataset instanceof StagedFilesDataset) { StagedFilesDataset stagedFilesDataset = StagedFilesDataset.builder() 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/datasets/FilteredDatasetAbstract.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/datasets/FilteredDatasetAbstract.java new file mode 100644 index 00000000000..28d4e193365 --- /dev/null +++ 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/datasets/FilteredDatasetAbstract.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.persistence.components.logicalplan.datasets; + +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; +import org.immutables.value.Value; + +@Value.Immutable +@Value.Style( + typeAbstract = "*Abstract", + typeImmutable = "*", + jdkOnly = true, + optionalAcceptNullable = true, + strictBuilder = true +) +public interface FilteredDatasetAbstract extends DatasetDefinitionAbstract +{ + Condition filter(); +} 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/LoadOptionsAbstract.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/datasets/IcebergPropertiesAbstract.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/common/LoadOptionsAbstract.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/logicalplan/datasets/IcebergPropertiesAbstract.java index c299b0b7aa5..3a16a681692 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/LoadOptionsAbstract.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/datasets/IcebergPropertiesAbstract.java @@ -12,33 +12,25 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.persistence.components.common; +package org.finos.legend.engine.persistence.components.logicalplan.datasets; -import org.immutables.value.Value; +import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanNode; +import org.immutables.value.Value.Immutable; +import org.immutables.value.Value.Style; -import java.util.Optional; - -@Value.Immutable -@Value.Style( +@Immutable +@Style( typeAbstract = "*Abstract", typeImmutable = "*", jdkOnly = true, optionalAcceptNullable = true, strictBuilder = true ) -public interface LoadOptionsAbstract +public interface IcebergPropertiesAbstract extends LogicalPlanNode { - Optional fieldDelimiter(); - - Optional encoding(); - - Optional nullMarker(); - - Optional quote(); - - Optional skipLeadingRows(); + String catalog(); - Optional maxBadRecords(); + String externalVolume(); - Optional compression(); + String baseLocation(); } 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/datasets/SchemaDefinitionAbstract.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/datasets/SchemaDefinitionAbstract.java index 549b6f4306d..21539cd38a9 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/datasets/SchemaDefinitionAbstract.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/datasets/SchemaDefinitionAbstract.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.persistence.components.logicalplan.datasets; +import org.immutables.value.Value; import org.immutables.value.Value.Immutable; import org.immutables.value.Value.Style; @@ -68,5 +69,12 @@ interface ColumnStoreSpecificationAbstract interface ShardSpecificationAbstract { List shardKeys(); + + // Keyless sharding can create a sharded table even without explicit shard keys + @Value.Default + default boolean isSharded() + { + return true; + } } } 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/datasets/StagedFilesDatasetProperties.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/datasets/StagedFilesDatasetProperties.java index c2344edfb45..8dae01e0dc5 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/datasets/StagedFilesDatasetProperties.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/datasets/StagedFilesDatasetProperties.java @@ -14,9 +14,26 @@ package org.finos.legend.engine.persistence.components.logicalplan.datasets; +import org.immutables.value.Value; + import java.util.List; public interface StagedFilesDatasetProperties { - List files(); + List filePaths(); + + List filePatterns(); + + @Value.Check + default void validate() + { + if (filePatterns().size() > 0 && filePaths().size() > 0) + { + throw new IllegalArgumentException("Cannot build StagedFilesDatasetProperties, Only one out of filePatterns and filePaths should be provided"); + } + if (filePatterns().size() == 0 && filePaths().size() == 0) + { + throw new IllegalArgumentException("Cannot build StagedFilesDatasetProperties, Either one of filePatterns and filePaths must be provided"); + } + } } \ No newline at end of file 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/operations/CopyAbstract.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/operations/CopyAbstract.java index 7c0436a9e49..82e5876ed42 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/operations/CopyAbstract.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/operations/CopyAbstract.java @@ -15,9 +15,11 @@ package org.finos.legend.engine.persistence.components.logicalplan.operations; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetProperties; import org.finos.legend.engine.persistence.components.logicalplan.values.Value; import java.util.List; + import static org.immutables.value.Value.Immutable; import static org.immutables.value.Value.Parameter; import static org.immutables.value.Value.Style; @@ -40,4 +42,7 @@ public interface CopyAbstract extends Operation @Parameter(order = 2) List fields(); + + @Parameter(order = 3) + StagedFilesDatasetProperties stagedFilesDatasetProperties(); } 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 ac3a3e047fe..7dc3b69359a 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 @@ -40,5 +40,6 @@ public enum FunctionName PARSE_DATETIME, OBJECT_CONSTRUCT, TO_VARIANT, - TO_JSON; + TO_JSON, + CONVERT; } 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 c2227940d49..7919b249436 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 @@ -22,6 +22,10 @@ import org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitors; import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditingAbstract; import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditingAbstract; +import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenerationHandler; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan; import org.finos.legend.engine.persistence.components.logicalplan.conditions.And; import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; @@ -53,11 +57,23 @@ class AppendOnlyPlanner extends Planner { private final Optional dataSplitInRangeCondition; + private final Optional userProvidedDigest; AppendOnlyPlanner(Datasets datasets, AppendOnly ingestMode, PlannerOptions plannerOptions, Set capabilities) { super(datasets, ingestMode, plannerOptions, capabilities); + // Retrieve user provided digest if present + DigestGenStrategy digestGenStrategy = ingestMode().digestGenStrategy(); + if (digestGenStrategy instanceof UserProvidedDigestGenStrategy) + { + userProvidedDigest = Optional.of(((UserProvidedDigestGenStrategy) digestGenStrategy).digestField()); + } + else + { + userProvidedDigest = Optional.empty(); + } + // Validation // 1. If primary keys are present, then auditing must be turned on and the auditing column must be one of the primary keys if (!primaryKeys.isEmpty()) @@ -65,10 +81,10 @@ class AppendOnlyPlanner extends Planner ingestMode.auditing().accept(new ValidateAuditingForPrimaryKeys(mainDataset())); } - // 2. For filterExistingRecords, we must have digest and primary keys to filter them + // 2. For filterExistingRecords, we must have (user provided) digest and primary keys to filter them if (ingestMode.filterExistingRecords()) { - if (!ingestMode.digestField().isPresent() || primaryKeys.isEmpty()) + if (!userProvidedDigest.isPresent() || primaryKeys.isEmpty()) { throw new IllegalStateException("Primary keys and digest are mandatory for filterExistingRecords"); } @@ -90,6 +106,10 @@ public LogicalPlan buildLogicalPlanForIngest(Resources resources) List fieldsToSelect = new ArrayList<>(dataFields); List fieldsToInsert = new ArrayList<>(dataFields); + // Add digest generation (if applicable) + ingestMode().digestGenStrategy().accept(new DigestGenerationHandler(mainDataset(), stagingDataset(), fieldsToSelect, fieldsToInsert)); + + // Add auditing (if applicable) if (ingestMode().auditing().accept(AUDIT_ENABLED)) { BatchStartTimestamp batchStartTimestamp = BatchStartTimestamp.INSTANCE; @@ -98,9 +118,9 @@ public LogicalPlan buildLogicalPlanForIngest(Resources resources) String auditField = ingestMode().auditing().accept(AuditingVisitors.EXTRACT_AUDIT_FIELD).orElseThrow(IllegalStateException::new); fieldsToInsert.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(auditField).build()); } - else if (!ingestMode().dataSplitField().isPresent()) + else if (!ingestMode().dataSplitField().isPresent() && !(ingestMode().digestGenStrategy() instanceof UDFBasedDigestGenStrategy)) { - // this is just to print a "*" when we are in the simplest case (no auditing, no data split) + // this is just to print a "*" when we are in the simplest case (no auditing, no data split, no digest generation) fieldsToSelect = LogicalPlanUtils.ALL_COLUMNS(); } @@ -113,9 +133,9 @@ else if (!ingestMode().dataSplitField().isPresent()) List getDigestOrRemainingColumns() { List remainingCols = new ArrayList<>(); - if (ingestMode().digestField().isPresent()) + if (userProvidedDigest.isPresent()) { - remainingCols = Arrays.asList(ingestMode().digestField().get()); + remainingCols = Arrays.asList(userProvidedDigest.get()); } else if (!primaryKeys.isEmpty()) { @@ -143,7 +163,7 @@ private Dataset getSelectStageWithFilterExistingRecords(List fieldsToSele .condition(And.builder() .addConditions( getPrimaryKeyMatchCondition(mainDataset(), stagingDataset(), primaryKeys.toArray(new String[0])), - getDigestMatchCondition(mainDataset(), stagingDataset(), ingestMode().digestField().orElseThrow(IllegalStateException::new))) + getDigestMatchCondition(mainDataset(), stagingDataset(), userProvidedDigest.orElseThrow(IllegalStateException::new))) .build()) .addAllFields(ALL_COLUMNS()) .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/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 495ca6799f4..db935eec1fb 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 @@ -21,9 +21,7 @@ import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.ingestmode.BulkLoad; import org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitors; -import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategyVisitor; -import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategyAbstract; -import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategyAbstract; +import org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenerationHandler; 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; @@ -42,7 +40,6 @@ 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.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; @@ -65,7 +62,7 @@ class BulkLoadPlanner extends Planner private Dataset tempDataset; private StagedFilesDataset stagedFilesDataset; private BulkLoadMetadataDataset bulkLoadMetadataDataset; - private Optional bulkLoadTaskIdValue; + private Optional bulkLoadEventIdValue; BulkLoadPlanner(Datasets datasets, BulkLoad ingestMode, PlannerOptions plannerOptions, Set capabilities) { @@ -78,7 +75,7 @@ class BulkLoadPlanner extends Planner throw new IllegalArgumentException("Only StagedFilesDataset are allowed under Bulk Load"); } - bulkLoadTaskIdValue = plannerOptions.bulkLoadTaskIdValue(); + bulkLoadEventIdValue = plannerOptions.bulkLoadEventIdValue(); stagedFilesDataset = (StagedFilesDataset) datasets.stagingDataset(); bulkLoadMetadataDataset = bulkLoadMetadataDataset().orElseThrow(IllegalStateException::new); @@ -129,7 +126,7 @@ private LogicalPlan buildLogicalPlanForTransformWhileCopy(Resources resources) List fieldsToInsert = new ArrayList<>(stagingDataset().schemaReference().fieldValues()); // Add digest - ingestMode().digestGenStrategy().accept(new DigestGeneration(mainDataset(), stagingDataset(), fieldsToSelect, fieldsToInsert)); + ingestMode().digestGenStrategy().accept(new DigestGenerationHandler(mainDataset(), stagingDataset(), fieldsToSelect, fieldsToInsert)); // Add batch_id field fieldsToInsert.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(ingestMode().batchIdField()).build()); @@ -142,7 +139,7 @@ private LogicalPlan buildLogicalPlanForTransformWhileCopy(Resources resources) } Dataset selectStage = StagedFilesSelection.builder().source(stagedFilesDataset).addAllFields(fieldsToSelect).build(); - return LogicalPlan.of(Collections.singletonList(Copy.of(mainDataset(), selectStage, fieldsToInsert))); + return LogicalPlan.of(Collections.singletonList(Copy.of(mainDataset(), selectStage, fieldsToInsert, stagedFilesDataset.stagedFilesDatasetProperties()))); } private LogicalPlan buildLogicalPlanForCopyAndTransform(Resources resources) @@ -153,7 +150,7 @@ private LogicalPlan buildLogicalPlanForCopyAndTransform(Resources resources) // 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)); + operations.add(Copy.of(tempDataset, selectStage, fieldsToSelectFromStage, stagedFilesDataset.stagedFilesDatasetProperties())); // Operation 2: Transfer from temp table into target table, adding extra columns at the same time @@ -161,7 +158,7 @@ private LogicalPlan buildLogicalPlanForCopyAndTransform(Resources resources) List fieldsToInsertIntoMain = new ArrayList<>(tempDataset.schemaReference().fieldValues()); // Add digest - ingestMode().digestGenStrategy().accept(new DigestGeneration(mainDataset(), tempDataset, fieldsToSelect, fieldsToInsertIntoMain)); + ingestMode().digestGenStrategy().accept(new DigestGenerationHandler(mainDataset(), tempDataset, fieldsToSelect, fieldsToInsertIntoMain)); // Add batch_id field fieldsToInsertIntoMain.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(ingestMode().batchIdField()).build()); @@ -266,9 +263,18 @@ private Selection getRowsBasedOnAppendTimestamp(Dataset dataset, String field, S private String jsonifyBatchSourceInfo(StagedFilesDatasetProperties stagedFilesDatasetProperties) { Map batchSourceMap = new HashMap(); - List files = stagedFilesDatasetProperties.files(); - batchSourceMap.put("files", files); - bulkLoadTaskIdValue.ifPresent(taskId -> batchSourceMap.put("task_id", taskId)); + List filePaths = stagedFilesDatasetProperties.filePaths(); + List filePatterns = stagedFilesDatasetProperties.filePatterns(); + + if (filePaths != null && !filePaths.isEmpty()) + { + batchSourceMap.put("file_paths", filePaths); + } + if (filePatterns != null && !filePatterns.isEmpty()) + { + batchSourceMap.put("file_patterns", filePatterns); + } + bulkLoadEventIdValue.ifPresent(eventId -> batchSourceMap.put("event_id", eventId)); ObjectMapper objectMapper = new ObjectMapper(); try { @@ -279,44 +285,4 @@ private String jsonifyBatchSourceInfo(StagedFilesDatasetProperties stagedFilesDa throw new RuntimeException(e); } } - - - static class DigestGeneration implements DigestGenStrategyVisitor - { - private List fieldsToSelect; - private List fieldsToInsert; - private Dataset stagingDataset; - private Dataset mainDataset; - - public DigestGeneration(Dataset mainDataset, Dataset stagingDataset, List fieldsToSelect, List fieldsToInsert) - { - this.mainDataset = mainDataset; - this.stagingDataset = stagingDataset; - this.fieldsToSelect = fieldsToSelect; - this.fieldsToInsert = fieldsToInsert; - } - - @Override - public Void visitNoDigestGenStrategy(NoDigestGenStrategyAbstract noDigestGenStrategy) - { - return null; - } - - @Override - public Void visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrategyAbstract udfBasedDigestGenStrategy) - { - Value digestValue = DigestUdf - .builder() - .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()); - fieldsToSelect.add(digestValue); - return null; - } - } - } 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 98b1ecf7a11..e3625c81709 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 @@ -32,7 +32,9 @@ import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanFactory; import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DerivedDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Field; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FilteredDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection; import org.finos.legend.engine.persistence.components.logicalplan.operations.*; import org.finos.legend.engine.persistence.components.logicalplan.values.*; @@ -107,7 +109,7 @@ default boolean enableConcurrentSafety() return false; } - Optional bulkLoadTaskIdValue(); + Optional bulkLoadEventIdValue(); } private final Datasets datasets; @@ -137,6 +139,8 @@ default boolean enableConcurrentSafety() ingestMode.versioningStrategy().accept(new ValidatePrimaryKeysForVersioningStrategy(primaryKeys, this::validatePrimaryKeysNotEmpty)); // 2. Validate if the versioningField is comparable if a versioningStrategy is present validateVersioningField(ingestMode().versioningStrategy(), stagingDataset()); + // 3. cleanupStagingData must be turned off when using DerivedDataset or FilteredDataset + validateCleanUpStagingData(plannerOptions, originalStagingDataset()); } private Optional getTempStagingDataset() @@ -498,6 +502,14 @@ protected void validateVersioningField(VersioningStrategy versioningStrategy, Da } } + protected void validateCleanUpStagingData(PlannerOptions plannerOptions, Dataset dataset) + { + if (plannerOptions.cleanupStagingData() && (dataset instanceof DerivedDataset || dataset instanceof FilteredDataset)) + { + throw new IllegalStateException("cleanupStagingData cannot be turned on when using DerivedDataset or FilteredDataset"); + } + } + // auditing visitor protected static final AuditEnabled AUDIT_ENABLED = new AuditEnabled(); 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 f7e3d5e6ac4..3ff13255881 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 @@ -38,6 +38,7 @@ import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DerivedDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Field; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FilteredDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Join; import org.finos.legend.engine.persistence.components.logicalplan.datasets.JsonExternalDatasetReference; import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; @@ -108,6 +109,7 @@ import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.ExistsConditionVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.FieldValueVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.FieldVisitor; +import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.FilteredDatasetVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.FunctionVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.GreaterThanEqualToVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.GreaterThanVisitor; @@ -185,6 +187,7 @@ public class AnsiSqlSink extends RelationalSink logicalPlanVisitorByClass.put(DatasetReferenceImpl.class, new DatasetReferenceVisitor()); logicalPlanVisitorByClass.put(DatasetDefinition.class, new DatasetDefinitionVisitor()); logicalPlanVisitorByClass.put(DerivedDataset.class, new DerivedDatasetVisitor()); + logicalPlanVisitorByClass.put(FilteredDataset.class, new FilteredDatasetVisitor()); logicalPlanVisitorByClass.put(JsonExternalDatasetReference.class, new DatasetReferenceVisitor()); logicalPlanVisitorByClass.put(DatasetAdditionalProperties.class, new DatasetAdditionalPropertiesVisitor()); 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/optimizer/StringCaseOptimizer.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/optimizer/StringCaseOptimizer.java index a849683e0bf..ed001f7f44c 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/optimizer/StringCaseOptimizer.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/optimizer/StringCaseOptimizer.java @@ -110,7 +110,7 @@ else if (component instanceof UniqueTableConstraint) else if (component instanceof ShowCommand) { ShowCommand command = (ShowCommand) component; - command.setSchemaName(applyCase(command.getSchemaName())); + command.setSchemaName(applyCase(command.getSchemaName().orElse(null))); return command; } return component; 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/DatasetAdditionalPropertiesVisitor.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/sql/visitors/DatasetAdditionalPropertiesVisitor.java index edb8b01b018..73f61d0ba6c 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/DatasetAdditionalPropertiesVisitor.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/sql/visitors/DatasetAdditionalPropertiesVisitor.java @@ -15,6 +15,7 @@ package org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetAdditionalProperties; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.IcebergProperties; import org.finos.legend.engine.persistence.components.logicalplan.datasets.TableOrigin; import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; import org.finos.legend.engine.persistence.components.relational.sqldom.tabletypes.CachedTableType; @@ -33,28 +34,30 @@ public class DatasetAdditionalPropertiesVisitor implements LogicalPlanVisitor tags) throw new UnsupportedOperationException("Tags not supported"); } - protected void handleExternalVolume(PhysicalPlanNode prev, String s) + protected void handleIcebergProperties(PhysicalPlanNode prev, IcebergProperties icebergProperties) { - throw new UnsupportedOperationException("External Volume not supported"); + throw new UnsupportedOperationException("Iceberg properties not supported"); } private TableType mapTableType(org.finos.legend.engine.persistence.components.logicalplan.datasets.TableType tableType) 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/DerivedDatasetVisitor.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/sql/visitors/DerivedDatasetVisitor.java index b598c89851e..0c2231672bd 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/DerivedDatasetVisitor.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/sql/visitors/DerivedDatasetVisitor.java @@ -25,7 +25,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.Optional; public class DerivedDatasetVisitor implements LogicalPlanVisitor { 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/FilteredDatasetVisitor.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/sql/visitors/FilteredDatasetVisitor.java new file mode 100644 index 00000000000..f7fec184a9e --- /dev/null +++ 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/sql/visitors/FilteredDatasetVisitor.java @@ -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. + +package org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors; + +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FilteredDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection; +import org.finos.legend.engine.persistence.components.logicalplan.values.Value; +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; + +import java.util.ArrayList; +import java.util.List; + +public class FilteredDatasetVisitor implements LogicalPlanVisitor +{ + @Override + public VisitorResult visit(PhysicalPlanNode prev, FilteredDataset current, VisitorContext context) + { + Condition filterCondition = current.filter(); + List allColumns = new ArrayList<>(current.schemaReference().fieldValues()); + Selection selection = Selection.builder() + .source(current.datasetReference()) + .addAllFields(allColumns) + .condition(filterCondition) + .alias(current.datasetReference().alias()) + .build(); + return new SelectionVisitor().visit(prev, selection, context); + } +} \ No newline at end of file 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/SelectionVisitor.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/sql/visitors/SelectionVisitor.java index 81934718367..5e574ac08de 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/SelectionVisitor.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/sql/visitors/SelectionVisitor.java @@ -19,6 +19,7 @@ import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DerivedDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FilteredDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection; import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.statements.SelectStatement; @@ -59,6 +60,13 @@ select id from (select * from table where condition) conditions.add(filterCondition); logicalPlanNodeList.add(derivedDataset.datasetReference()); } + else if (dataset instanceof FilteredDataset) + { + FilteredDataset filteredDataset = (FilteredDataset) dataset; + Condition filterCondition = filteredDataset.filter(); + conditions.add(filterCondition); + logicalPlanNodeList.add(filteredDataset.datasetReference()); + } else { logicalPlanNodeList.add(dataset); 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/ShowVisitor.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/sql/visitors/ShowVisitor.java index 70e3554d261..ba8c5d6bb72 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/ShowVisitor.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/sql/visitors/ShowVisitor.java @@ -27,17 +27,10 @@ public class ShowVisitor implements LogicalPlanVisitor @Override public VisitorResult visit(PhysicalPlanNode prev, Show current, VisitorContext context) { - ShowCommand command; - if (current.dataset().datasetReference().group().isPresent()) - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - current.dataset().datasetReference().group().orElse(null)); - } - else - { - command = new ShowCommand(ShowType.valueOf(current.operation().name())); - } + ShowCommand command = new ShowCommand( + ShowType.valueOf(current.operation().name()), + current.dataset().datasetReference().group(), + context.quoteIdentifier()); prev.push(command); return new VisitorResult(null); } 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/ingestmode/nontemporal/AppendOnlyTest.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/ingestmode/nontemporal/AppendOnlyTest.java index 305698ea828..f05009e2402 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/ingestmode/nontemporal/AppendOnlyTest.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/ingestmode/nontemporal/AppendOnlyTest.java @@ -22,6 +22,7 @@ import org.finos.legend.engine.persistence.components.relational.api.GeneratorResult; import org.finos.legend.engine.persistence.components.testcases.ingestmode.nontemporal.AppendOnlyTestCases; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; @@ -254,6 +255,31 @@ public void verifyAppendOnlyWithAuditingFilterDupsMaxVersionNoFilterExistingReco Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); } + + @Override + @Test + public void testAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration() + { + // Digest UDF Generation not available for ANSI sink + } + + @Override + public void verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(GeneratorResult operations) + { + } + + @Override + @Test + public void testAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration() + { + // Digest UDF Generation not available for ANSI sink + } + + @Override + public void verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(List generatorResults, List dataSplitRanges) + { + } + public RelationalSink getRelationalSink() { return AnsiSqlSink.get(); 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/ingestmode/nontemporal/NontemporalDeltaTest.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/ingestmode/nontemporal/NontemporalDeltaTest.java index 7bc27355818..15d83b7cfe2 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/ingestmode/nontemporal/NontemporalDeltaTest.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/ingestmode/nontemporal/NontemporalDeltaTest.java @@ -365,6 +365,36 @@ public void verifyNontemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); } + @Override + public void verifyNontemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + + String updateSql = "UPDATE \"mydb\".\"main\" as sink SET " + + "sink.\"id\" = (SELECT stage.\"id\" FROM \"mydb\".\"staging\" as stage WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"digest\" <> stage.\"digest\")) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))))," + + "sink.\"name\" = (SELECT stage.\"name\" FROM \"mydb\".\"staging\" as stage WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"digest\" <> stage.\"digest\")) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))))," + + "sink.\"amount\" = (SELECT stage.\"amount\" FROM \"mydb\".\"staging\" as stage WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"digest\" <> stage.\"digest\")) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))))," + + "sink.\"biz_date\" = (SELECT stage.\"biz_date\" FROM \"mydb\".\"staging\" as stage WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"digest\" <> stage.\"digest\")) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))))," + + "sink.\"digest\" = (SELECT stage.\"digest\" FROM \"mydb\".\"staging\" as stage WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"digest\" <> stage.\"digest\")) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05')))) " + + "WHERE EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"digest\" <> stage.\"digest\")) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))))"; + + String insertSql = "INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"biz_date\", \"digest\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\" FROM \"mydb\".\"staging\" as stage WHERE (NOT (EXISTS " + + "(SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"id\" = stage.\"id\") AND " + + "(sink.\"name\" = stage.\"name\")))) AND ((stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))))"; + + Assertions.assertEquals(AnsiTestArtifacts.expectedBaseTablePlusDigestCreateQuery, preActionsSqlList.get(0)); + Assertions.assertEquals(updateSql, milestoningSqlList.get(0)); + Assertions.assertEquals(insertSql, milestoningSqlList.get(1)); + + String incomingRecordCount = "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage WHERE (stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))"; + // Stats + Assertions.assertEquals(incomingRecordCount, operations.postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + } + @Override public void verifyNontemporalDeltaWithFilterDupsMaxVersionWithStagingFilters(GeneratorResult operations) { 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/ingestmode/unitemporal/UnitemporalDeltaBatchIdBasedTest.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/ingestmode/unitemporal/UnitemporalDeltaBatchIdBasedTest.java index f95df9e8b3d..270cc490e48 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/ingestmode/unitemporal/UnitemporalDeltaBatchIdBasedTest.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/ingestmode/unitemporal/UnitemporalDeltaBatchIdBasedTest.java @@ -297,6 +297,36 @@ public void verifyUnitemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(getExpectedMetadataTableIngestQueryWithStagingFilters("{\"batch_id_in\":{\"GT\":5}}"), metadataIngestSql.get(0)); } + @Override + public void verifyUnitemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSql = operations.preActionsSql(); + List milestoningSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + String expectedMilestoneQuery = "UPDATE \"mydb\".\"main\" as sink " + + "SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = 'MAIN')-1 " + + "WHERE (sink.\"batch_id_out\" = 999999999) AND " + + "(EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage " + + "WHERE (((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND " + + "(sink.\"digest\" <> stage.\"digest\")) AND (stage.\"batch_id_in\" > 5)))"; + + String expectedUpsertQuery = "INSERT INTO \"mydb\".\"main\" " + + "(\"id\", \"name\", \"amount\", \"biz_date\", \"digest\", \"batch_id_in\", \"batch_id_out\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\"," + + "(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.\"table_name\") = 'MAIN'),999999999 FROM \"mydb\".\"staging\" as stage " + + "WHERE (NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 999999999) " + + "AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND " + + "(sink.\"name\" = stage.\"name\"))))) AND (stage.\"batch_id_in\" > 5))"; + + Assertions.assertEquals(AnsiTestArtifacts.expectedMainTableBatchIdBasedCreateQuery, preActionsSql.get(0)); + Assertions.assertEquals(getExpectedMetadataTableCreateQuery(), preActionsSql.get(1)); + + Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); + Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); + Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); + } + @Override public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(GeneratorResult operations) { @@ -343,6 +373,52 @@ public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(Gene Assertions.assertEquals(getExpectedMetadataTableIngestQueryWithStagingFilters("{\"batch_id_in\":{\"GT\":5}}"), metadataIngestSql.get(0)); } + @Override + public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithFilteredDataset(GeneratorResult operations) + { + List preActionsSql = operations.preActionsSql(); + List milestoningSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + String expectedMilestoneQuery = "UPDATE \"mydb\".\"main\" as sink " + + "SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 " + + "FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = 'MAIN')-1 " + + "WHERE (sink.\"batch_id_out\" = 999999999) AND (EXISTS " + + "(SELECT * FROM \"mydb\".\"staging_legend_persistence_temp_staging\" as stage " + + "WHERE ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (stage.\"version\" > sink.\"version\")))"; + + String expectedUpsertQuery = "INSERT INTO \"mydb\".\"main\" " + + "(\"id\", \"name\", \"amount\", \"biz_date\", \"digest\", \"version\", \"batch_id_in\", \"batch_id_out\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\",stage.\"version\"," + + "(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.\"table_name\") = 'MAIN'),999999999 FROM \"mydb\".\"staging_legend_persistence_temp_staging\" " + + "as stage WHERE NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 999999999) " + + "AND (stage.\"version\" <= sink.\"version\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")))))"; + + Assertions.assertEquals(AnsiTestArtifacts.expectedMainTableBatchIdAndVersionBasedCreateQuery, preActionsSql.get(0)); + Assertions.assertEquals(getExpectedMetadataTableCreateQuery(), preActionsSql.get(1)); + Assertions.assertEquals(expectedBaseTempStagingTableWithVersionAndCount, preActionsSql.get(2)); + + String expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters = "INSERT INTO \"mydb\".\"staging_legend_persistence_temp_staging\" " + + "(\"id\", \"name\", \"amount\", \"biz_date\", \"digest\", \"version\", \"legend_persistence_count\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\",stage.\"version\"," + + "stage.\"legend_persistence_count\" as \"legend_persistence_count\" FROM " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\",stage.\"version\"," + + "stage.\"legend_persistence_count\" as \"legend_persistence_count\",DENSE_RANK() OVER " + + "(PARTITION BY stage.\"id\",stage.\"name\" ORDER BY stage.\"version\" DESC) as \"legend_persistence_rank\" " + + "FROM (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\"," + + "stage.\"version\",COUNT(*) as \"legend_persistence_count\" FROM \"mydb\".\"staging\" as stage " + + "WHERE stage.\"batch_id_in\" > 5 GROUP BY stage.\"id\", stage.\"name\", stage.\"amount\", stage.\"biz_date\", " + + "stage.\"digest\", stage.\"version\") as stage) as stage WHERE stage.\"legend_persistence_rank\" = 1)"; + + Assertions.assertEquals(AnsiTestArtifacts.expectedTempStagingCleanupQuery, operations.deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters, operations.deduplicationAndVersioningSql().get(1)); + Assertions.assertEquals(dataErrorCheckSql, operations.deduplicationAndVersioningErrorChecksSql().get(MAX_DATA_ERRORS)); + + Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); + Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); + Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); + } + @Override public void verifyUnitemporalDeltaWithNoDedupMaxVersionWithoutPerformAndStagingFilters(GeneratorResult operations) { 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 62c3df96ff0..24d4174b2f4 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 @@ -30,6 +30,7 @@ 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.Drop; 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; @@ -62,6 +63,7 @@ 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.SQLDropVisitor; 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; @@ -107,6 +109,7 @@ public class BigQuerySink extends AnsiSqlSink Map, LogicalPlanVisitor> logicalPlanVisitorByClass = new HashMap<>(); logicalPlanVisitorByClass.put(SchemaDefinition.class, new SchemaDefinitionVisitor()); logicalPlanVisitorByClass.put(Create.class, new SQLCreateVisitor()); + logicalPlanVisitorByClass.put(Drop.class, new SQLDropVisitor()); logicalPlanVisitorByClass.put(ClusterKey.class, new ClusterKeyVisitor()); logicalPlanVisitorByClass.put(PartitionKey.class, new PartitionKeyVisitor()); logicalPlanVisitorByClass.put(Alter.class, new AlterVisitor()); 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 261226baa04..d5e8a34de4e 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 @@ -160,7 +160,7 @@ public boolean doesTableExist(Dataset dataset) public void validateDatasetSchema(Dataset dataset, TypeMapping typeMapping) { - if (!(typeMapping instanceof DataTypeMapping)) + if (!(typeMapping instanceof DataTypeMapping)) { throw new IllegalStateException("Only DataTypeMapping allowed in validateDatasetSchema"); } @@ -184,7 +184,19 @@ public void validateDatasetSchema(Dataset dataset, TypeMapping typeMapping) Integer columnSize = Objects.nonNull(dbField.getMaxLength()) ? Integer.valueOf(dbField.getMaxLength().intValue()) : Objects.nonNull(dbField.getPrecision()) ? Integer.valueOf(dbField.getPrecision().intValue()) : null; Integer scale = Objects.nonNull(dbField.getScale()) ? Integer.valueOf(dbField.getScale().intValue()) : null; - org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType matchedDataType = org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType.valueOf(typeName.toUpperCase()); + org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType matchedDataType = null; + for (org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType dataType : org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType.values()) + { + if (dataType.name().equalsIgnoreCase(typeName)) + { + matchedDataType = dataType; + break; + } + } + if (matchedDataType == null) + { + matchedDataType = org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType.valueOf(dbField.getType().name()); + } FieldType fieldType = FieldType.of(matchedDataType, columnSize, scale); DataType physicalDataType = datatypeMapping.getDataType(fieldType); @@ -213,7 +225,7 @@ public Dataset constructDatasetFromDatabase(Dataset dataset, TypeMapping typeMap String tableName = dataset.datasetReference().name().orElseThrow(IllegalStateException::new); String schemaName = dataset.datasetReference().group().orElse(null); String databaseName = dataset.datasetReference().database().orElse(null); - if (!(typeMapping instanceof JdbcPropertiesToLogicalDataTypeMapping)) + if (!(typeMapping instanceof JdbcPropertiesToLogicalDataTypeMapping)) { throw new IllegalStateException("Only JdbcPropertiesToLogicalDataTypeMapping allowed in constructDatasetFromDatabase"); } 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 index 088fed20cb4..564e0a1f83e 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/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 @@ -15,13 +15,11 @@ 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.common.FileFormatType; import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetProperties; import org.immutables.value.Value; -import java.util.Optional; - +import java.util.Map; @Value.Immutable @Value.Style( @@ -33,7 +31,7 @@ ) public interface BigQueryStagedFilesDatasetPropertiesAbstract extends StagedFilesDatasetProperties { - FileFormat fileFormat(); + FileFormatType fileFormat(); - Optional loadOptions(); + Map 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/DatetimeValueVisitor.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/DatetimeValueVisitor.java index 939b782f595..ecbd4165707 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/sql/visitor/DatetimeValueVisitor.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/DatetimeValueVisitor.java @@ -26,7 +26,7 @@ public class DatetimeValueVisitor implements LogicalPlanVisitor { - private static final String DATE_TIME_FORMAT = "%Y-%m-%d %H:%M:%S"; + private static final String DATE_TIME_FORMAT = "%Y-%m-%d %H:%M:%E6S"; @Override public VisitorResult visit(PhysicalPlanNode prev, DatetimeValue current, VisitorContext 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/SQLDropVisitor.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/SQLDropVisitor.java new file mode 100644 index 00000000000..8bc82df6867 --- /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/SQLDropVisitor.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.persistence.components.relational.bigquery.sql.visitor; + +import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanNode; +import org.finos.legend.engine.persistence.components.logicalplan.modifiers.IfExistsTableModifier; +import org.finos.legend.engine.persistence.components.logicalplan.operations.Drop; +import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; +import org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.schemaops.statements.DropTable; +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 SQLDropVisitor implements LogicalPlanVisitor +{ + + @Override + public VisitorResult visit(PhysicalPlanNode prev, Drop current, VisitorContext context) + { + DropTable dropTable = new DropTable(); + prev.push(dropTable); + + List logicalPlanNodes = new ArrayList<>(); + logicalPlanNodes.add(current.dataset()); + + if (current.ifExists()) + { + logicalPlanNodes.add(IfExistsTableModifier.INSTANCE); + } + + return new VisitorResult(dropTable, 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/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 index 0c5e7d91bc5..a8cae186d4b 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/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 @@ -14,8 +14,7 @@ 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.common.FileFormatType; 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; @@ -24,6 +23,7 @@ import org.finos.legend.engine.persistence.components.transformer.VisitorContext; import java.util.HashMap; +import java.util.List; import java.util.Map; @@ -38,39 +38,13 @@ public VisitorResult visit(PhysicalPlanNode prev, StagedFilesDatasetReference cu } 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); + FileFormatType fileFormatType = datasetProperties.fileFormat(); + Map loadOptionsMap = new HashMap<>(datasetProperties.loadOptions()); + loadOptionsMap.put("format", fileFormatType.name()); + List uris = datasetProperties.filePaths().isEmpty() ? datasetProperties.filePatterns() : datasetProperties.filePaths(); + StagedFilesTable stagedFilesTable = new StagedFilesTable(uris, 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-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 index 2a8d288eeb4..ba96cfb5ba4 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/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 @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; +import java.util.stream.Collectors; 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; @@ -68,7 +69,7 @@ public void genSql(StringBuilder builder) throws SqlDomException builder.append(COMMA); builder.append(WHITE_SPACE); int ctr = 0; - for (String option : loadOptions.keySet()) + for (String option : loadOptions.keySet().stream().sorted().collect(Collectors.toList())) { ctr++; builder.append(option); 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/DropTable.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/DropTable.java new file mode 100644 index 00000000000..7377308689f --- /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/DropTable.java @@ -0,0 +1,85 @@ +// 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.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.modifiers.TableModifier; +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 java.util.ArrayList; +import java.util.List; + +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; + +public class DropTable implements DDLStatement +{ + private Table table; + private List modifiers = new ArrayList<>(); + + public DropTable() + { + } + + public DropTable(Table table, List modifiers) + { + this.table = table; + this.modifiers = modifiers; + } + + /* + DROP GENERIC PLAN: + DROP TABLE NAME [modifiers] + */ + @Override + public void genSql(StringBuilder builder) throws SqlDomException + { + validate(); + builder.append(Clause.DROP.get()); + builder.append(WHITE_SPACE); + builder.append(Clause.TABLE.get()); + + // modifiers + SqlGen.genSqlList(builder, modifiers, WHITE_SPACE, WHITE_SPACE); + + // Table name + builder.append(WHITE_SPACE); + table.genSqlWithoutAlias(builder); + } + + + @Override + public void push(Object node) + { + if (node instanceof Table) + { + table = ((Table) node); + } + else if (node instanceof TableModifier) + { + modifiers.add((TableModifier) node); + } + } + + void validate() throws SqlDomException + { + if (table == null) + { + throw new SqlDomException("Table is mandatory for Drop Table Command"); + } + } +} 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/AppendOnlyExecutorTest.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/AppendOnlyExecutorTest.java index c1fec8890b9..e8feb183d24 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/e2e/AppendOnlyExecutorTest.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/AppendOnlyExecutorTest.java @@ -20,6 +20,9 @@ import org.finos.legend.engine.persistence.components.ingestmode.AppendOnly; import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; import org.finos.legend.engine.persistence.components.relational.api.IngestorResult; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; @@ -40,7 +43,8 @@ public class AppendOnlyExecutorTest extends BigQueryEndToEndTest public void testMilestoning() throws IOException, InterruptedException { AppendOnly ingestMode = AppendOnly.builder() - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) + .filterExistingRecords(true) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField("audit_ts").build()) .build(); @@ -83,4 +87,68 @@ public void testMilestoning() throws IOException, InterruptedException Assertions.assertEquals(3, incomingRecords); Assertions.assertEquals(2, rowsInserted); } + + @Test + public void testMilestoningWithDigestGeneration() throws IOException, InterruptedException + { + AppendOnly ingestMode = AppendOnly.builder() + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName("demo.LAKEHOUSE_MD5").digestField(digestName).build()) + .auditing(DateTimeAuditing.builder().dateTimeField("audit_ts").build()) + .deduplicationStrategy(FilterDuplicates.builder().build()) + .build(); + + SchemaDefinition stagingSchema = SchemaDefinition.builder() + .addFields(id) + .addFields(name) + .addFields(amount) + .addFields(bizDate) + .addFields(insertTimestamp) + .build(); + + // Clean up + delete("demo", "main"); + delete("demo", "staging"); + + // Register UDF + runQuery("DROP FUNCTION IF EXISTS demo.stringifyJson;"); + runQuery("DROP FUNCTION IF EXISTS demo.LAKEHOUSE_MD5;"); + runQuery("CREATE FUNCTION demo.stringifyJson(json_data JSON)\n" + + " RETURNS STRING\n" + + " LANGUAGE js AS \"\"\"\n" + + " let output = \"\"; \n" + + " Object.keys(json_data).sort().filter(field => json_data[field] != null).forEach(field => { output += field; output += json_data[field];})\n" + + " return output;\n" + + " \"\"\"; \n"); + runQuery("CREATE FUNCTION demo.LAKEHOUSE_MD5(json_data JSON)\n" + + "AS (\n" + + " TO_HEX(MD5(demo.stringifyJson(json_data)))\n" + + ");\n"); + + // Pass 1 + System.out.println("--------- Batch 1 started ------------"); + String pathPass1 = "src/test/resources/input/digest_generation/data_pass3.csv"; + DatasetFilter stagingFilter = DatasetFilter.of("insert_ts", FilterType.EQUAL_TO, "2023-01-01 00:00:00"); + IngestorResult result = ingestViaExecutor(ingestMode, stagingSchema, stagingFilter, pathPass1, fixedClock_2000_01_01); + + // Verify + List> tableData = runQuery("select * from `demo`.`main` order by name asc"); + String expectedPath = "src/test/resources/expected/append/digest_generation/data_pass3.csv"; + String [] schema = new String[] {"id", "name", "amount", "biz_date", "insert_ts", "digest", "audit_ts"}; + assertFileAndTableDataEquals(schema, expectedPath, tableData); + long incomingRecords = (long) result.statisticByName().get(INCOMING_RECORD_COUNT); + Assertions.assertEquals(3, incomingRecords); + + // Pass 2 + System.out.println("--------- Batch 2 started ------------"); + String pathPass2 = "src/test/resources/input/digest_generation/data_pass4.csv"; + stagingFilter = DatasetFilter.of("insert_ts", FilterType.EQUAL_TO, "2023-01-02 00:00:00"); + result = ingestViaExecutor(ingestMode, stagingSchema, stagingFilter, pathPass2, fixedClock_2000_01_02); + + // Verify + tableData = runQuery("select * from `demo`.`main` order by name asc, insert_ts"); + expectedPath = "src/test/resources/expected/append/digest_generation/data_pass4.csv"; + assertFileAndTableDataEquals(schema, expectedPath, tableData); + incomingRecords = (long) result.statisticByName().get(INCOMING_RECORD_COUNT); + Assertions.assertEquals(3, incomingRecords); + } } 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/AppendOnlyGeneratorTest.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/AppendOnlyGeneratorTest.java index 6ffa34b0909..b9158ee56b1 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/e2e/AppendOnlyGeneratorTest.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/AppendOnlyGeneratorTest.java @@ -18,7 +18,10 @@ import org.finos.legend.engine.persistence.components.common.FilterType; import org.finos.legend.engine.persistence.components.ingestmode.AppendOnly; import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; -import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditing; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -34,8 +37,8 @@ public class AppendOnlyGeneratorTest extends BigQueryEndToEndTest public void testMilestoning() throws IOException, InterruptedException { AppendOnly ingestMode = AppendOnly.builder() - .digestField("digest") - .deduplicationStrategy(FilterDuplicates.builder().build()) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) + .filterExistingRecords(true) .auditing(DateTimeAuditing.builder().dateTimeField("audit_ts").build()) .build(); @@ -66,4 +69,62 @@ public void testMilestoning() throws IOException, InterruptedException expectedPath = "src/test/resources/expected/append/data_pass2.csv"; assertFileAndTableDataEquals(schema, expectedPath, tableData); } + + @Test + public void testMilestoningWithDigestGeneration() throws IOException, InterruptedException + { + AppendOnly ingestMode = AppendOnly.builder() + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName("demo.LAKEHOUSE_MD5").digestField(digestName).build()) + .auditing(NoAuditing.builder().build()) + .build(); + + SchemaDefinition stagingSchema = SchemaDefinition.builder() + .addFields(nameNonPk) + .addFields(amount) + .addFields(bizDate) + .addFields(insertTimestamp) + .build(); + + // Clean up + delete("demo", "main"); + delete("demo", "staging"); + + // Register UDF + runQuery("DROP FUNCTION IF EXISTS demo.stringifyJson;"); + runQuery("DROP FUNCTION IF EXISTS demo.LAKEHOUSE_MD5;"); + runQuery("CREATE FUNCTION demo.stringifyJson(json_data JSON)\n" + + " RETURNS STRING\n" + + " LANGUAGE js AS \"\"\"\n" + + " let output = \"\"; \n" + + " Object.keys(json_data).sort().filter(field => json_data[field] != null).forEach(field => { output += field; output += json_data[field];})\n" + + " return output;\n" + + " \"\"\"; \n"); + runQuery("CREATE FUNCTION demo.LAKEHOUSE_MD5(json_data JSON)\n" + + "AS (\n" + + " TO_HEX(MD5(demo.stringifyJson(json_data)))\n" + + ");\n"); + + // Pass 1 + System.out.println("--------- Batch 1 started ------------"); + String pathPass1 = "src/test/resources/input/digest_generation/data_pass1.csv"; + DatasetFilter stagingFilter = DatasetFilter.of("insert_ts", FilterType.EQUAL_TO, "2023-01-01 00:00:00"); + ingestViaGenerator(ingestMode, stagingSchema, stagingFilter, pathPass1, fixedClock_2000_01_01); + + // Verify + List> tableData = runQuery("select * from `demo`.`main` order by name asc"); + String expectedPath = "src/test/resources/expected/append/digest_generation/data_pass1.csv"; + String [] schema = new String[] {"name", "amount", "biz_date", "insert_ts", "digest"}; + assertFileAndTableDataEquals(schema, expectedPath, tableData); + + // Pass 2 + System.out.println("--------- Batch 2 started ------------"); + String pathPass2 = "src/test/resources/input/digest_generation/data_pass2.csv"; + stagingFilter = DatasetFilter.of("insert_ts", FilterType.EQUAL_TO, "2023-01-02 00:00:00"); + ingestViaGenerator(ingestMode, stagingSchema, stagingFilter, pathPass2, fixedClock_2000_01_02); + + // Verify + tableData = runQuery("select * from `demo`.`main` order by name asc, insert_ts"); + expectedPath = "src/test/resources/expected/append/digest_generation/data_pass2.csv"; + 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/e2e/BigQueryEndToEndTest.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/BigQueryEndToEndTest.java index b4655ac3a60..ffb9b341902 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/e2e/BigQueryEndToEndTest.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/BigQueryEndToEndTest.java @@ -76,6 +76,7 @@ public class BigQueryEndToEndTest protected static String digestName = "digest"; protected Field id = Field.builder().name("id").type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())).primaryKey(true).build(); protected Field name = Field.builder().name("name").type(FieldType.of(DataType.VARCHAR, Optional.empty(), Optional.empty())).primaryKey(true).build(); + protected Field nameNonPk = Field.builder().name("name").type(FieldType.of(DataType.VARCHAR, Optional.empty(), Optional.empty())).build(); protected Field amount = Field.builder().name("amount").type(FieldType.of(DataType.INTEGER, Optional.empty(), Optional.empty())).build(); protected Field bizDate = Field.builder().name("biz_date").type(FieldType.of(DataType.DATE, Optional.empty(), Optional.empty())).build(); protected Field digest = Field.builder().name(digestName).type(FieldType.of(DataType.STRING, Optional.empty(), Optional.empty())).build(); @@ -134,7 +135,7 @@ public class BigQueryEndToEndTest .build(); protected IngestorResult ingestViaExecutorAndVerifyStagingFilters(IngestMode ingestMode, SchemaDefinition stagingSchema, - DatasetFilter stagingFilter, String path, Clock clock, boolean VerifyStagingFilters) throws IOException, InterruptedException + DatasetFilter stagingFilter, String path, Clock clock, boolean needToVerifyStagingFilters) throws IOException, InterruptedException { RelationalIngestor ingestor = RelationalIngestor.builder() .ingestMode(ingestMode) @@ -158,7 +159,10 @@ protected IngestorResult ingestViaExecutorAndVerifyStagingFilters(IngestMode ing RelationalConnection connection = BigQueryConnection.of(getBigQueryConnection()); IngestorResult ingestorResult = ingestor.performFullIngestion(connection, datasets).get(0); - verifyStagingFilters(ingestor, connection, datasets); + if (needToVerifyStagingFilters) + { + verifyStagingFilters(ingestor, connection, datasets); + } return ingestorResult; } 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 index 559c2a0f5db..a608a8329e1 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/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 @@ -15,8 +15,7 @@ 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.common.FileFormatType; 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; @@ -40,10 +39,7 @@ 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 java.util.*; 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; @@ -89,8 +85,8 @@ public void testMilestoning() throws IOException, InterruptedException Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(FILE_LIST).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(FILE_LIST).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -116,7 +112,7 @@ public void testMilestoning() throws IOException, InterruptedException .relationalSink(BigQuerySink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .build(); RelationalConnection connection = BigQueryConnection.of(getBigQueryConnection()); @@ -144,12 +140,14 @@ public void testMilestoningFailure() throws IOException, InterruptedException .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) .build(); + Map loadOptions = new HashMap<>(); + loadOptions.put("max_bad_records", 10L); Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .loadOptions(LoadOptions.builder().maxBadRecords(10L).build()) - .addAllFiles(BAD_FILE_LIST).build()) + .fileFormat(FileFormatType.CSV) + .putAllLoadOptions(loadOptions) + .addAllFilePaths(BAD_FILE_LIST).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); 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 index 410dabb69e6..c77230b7576 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/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 @@ -15,7 +15,7 @@ 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.FileFormatType; 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; @@ -81,8 +81,8 @@ public void testMilestoning() throws IOException, InterruptedException Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(FILE_LIST).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(FILE_LIST).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -108,7 +108,7 @@ public void testMilestoning() throws IOException, InterruptedException .relationalSink(BigQuerySink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .bulkLoadBatchStatusPattern("{STATUS}") .build(); 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/AppendOnlyTest.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/AppendOnlyTest.java index d0995b05d59..662d73d7cf9 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/ingestmode/AppendOnlyTest.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/AppendOnlyTest.java @@ -18,8 +18,12 @@ import org.finos.legend.engine.persistence.components.relational.RelationalSink; import org.finos.legend.engine.persistence.components.relational.api.DataSplitRange; 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.scenarios.AppendOnlyScenarios; +import org.finos.legend.engine.persistence.components.scenarios.TestScenario; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; @@ -64,7 +68,7 @@ public void verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExisti { String insertSql = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE (stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))"; @@ -99,7 +103,7 @@ public void verifyAppendOnlyWithAuditingFilterDuplicatesNoVersioningWithFilterEx List deduplicationAndVersioningSql = queries.deduplicationAndVersioningSql(); String insertSql = "INSERT INTO `mydb`.`main` (`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE ((sink.`id` = stage.`id`) AND " + "(sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -131,7 +135,7 @@ public void verifyAppendOnlyWithAuditingFilterDuplicatesAllVersionWithFilterExis { String insertSql = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + "(NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + @@ -169,7 +173,7 @@ public void verifyAppendOnlyWithUpperCaseOptimizer(GeneratorResult operations) String insertSql = "INSERT INTO `MYDB`.`MAIN` " + "(`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_UPDATE_TIME`) " + - "(SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage " + + "(SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage " + "WHERE NOT (EXISTS " + "(SELECT * FROM `MYDB`.`MAIN` as sink WHERE ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` = stage.`DIGEST`))))"; @@ -184,7 +188,7 @@ public void verifyAppendOnlyWithLessColumnsInStaging(GeneratorResult operations) List milestoningSqlList = operations.ingestSql(); String insertSql = "INSERT INTO `mydb`.`main` (`id`, `name`, `amount`, `digest`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE ((sink.`id` = stage.`id`) AND " + "(sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -200,7 +204,7 @@ public void verifyAppendOnlyWithAuditingFailOnDuplicatesMaxVersionWithFilterExis List deduplicationAndVersioningSql = operations.deduplicationAndVersioningSql(); String insertSql = "INSERT INTO `mydb`.`main` (`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE ((sink.`id` = stage.`id`) AND " + "(sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -231,7 +235,7 @@ public void verifyAppendOnlyWithAuditingFilterDupsMaxVersionNoFilterExistingReco String insertSql = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage)"; + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') FROM `mydb`.`staging_legend_persistence_temp_staging` as stage)"; Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery, preActionsSqlList.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTempStagingTablePlusDigestWithCount, preActionsSqlList.get(1)); @@ -250,4 +254,87 @@ public void verifyAppendOnlyWithAuditingFilterDupsMaxVersionNoFilterExistingReco Assertions.assertEquals(rowsInserted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_INSERTED)); Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); } + + @Override + @Test + public void testAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration() + { + TestScenario scenario = new AppendOnlyScenarios().NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); + verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(operations); + } + + @Override + public void verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(GeneratorResult operations) + { + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + + String insertSql = "INSERT INTO `mydb`.`main` (`id`, `name`, `amount`, `biz_date`, `digest`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,LAKEHOUSE_MD5(TO_JSON(stage)) FROM `mydb`.`staging` as stage)"; + Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTableCreateQueryWithNoPKs, preActionsSqlList.get(0)); + Assertions.assertEquals(insertSql, milestoningSqlList.get(0)); + + // Stats + Assertions.assertEquals(incomingRecordCount, operations.postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsUpdated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_UPDATED)); + Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + Assertions.assertNull(operations.postIngestStatisticsSql().get(StatisticName.ROWS_INSERTED)); + } + + @Override + @Test + public void testAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration() + { + TestScenario scenario = new AppendOnlyScenarios().WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + List operations = generator.generateOperationsWithDataSplits(scenario.getDatasets(), dataSplitRangesOneToTwo); + verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(operations, dataSplitRangesOneToTwo); + } + + @Override + public void verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(List generatorResults, List dataSplitRanges) + { + String insertSql = "INSERT INTO `mydb`.`main` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,LAKEHOUSE_MD5(TO_JSON(stage)),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "WHERE (stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))"; + + Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery, generatorResults.get(0).preActionsSql().get(0)); + Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTempStagingTableWithCountAndDataSplit, generatorResults.get(0).preActionsSql().get(1)); + + Assertions.assertEquals(BigQueryTestArtifacts.expectedTempStagingCleanupQuery, generatorResults.get(0).deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(BigQueryTestArtifacts.expectedInsertIntoBaseTempStagingWithAllVersionAndFilterDuplicates, generatorResults.get(0).deduplicationAndVersioningSql().get(1)); + + Assertions.assertEquals(enrichSqlWithDataSplits(insertSql, dataSplitRanges.get(0)), generatorResults.get(0).ingestSql().get(0)); + Assertions.assertEquals(enrichSqlWithDataSplits(insertSql, dataSplitRanges.get(1)), generatorResults.get(1).ingestSql().get(0)); + Assertions.assertEquals(2, generatorResults.size()); + + // Stats + String incomingRecordCount = "SELECT COALESCE(SUM(stage.`legend_persistence_count`),0) as `incomingRecordCount` FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "WHERE (stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')"; + String rowsInserted = "SELECT COUNT(*) as `rowsInserted` FROM `mydb`.`main` as sink WHERE sink.`batch_update_time` = (SELECT MAX(sink.`batch_update_time`) FROM `mydb`.`main` as sink)"; + + Assertions.assertEquals(enrichSqlWithDataSplits(incomingRecordCount, dataSplitRanges.get(0)), generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(enrichSqlWithDataSplits(incomingRecordCount, dataSplitRanges.get(1)), generatorResults.get(1).postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsUpdated, generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_UPDATED)); + Assertions.assertEquals(rowsDeleted, generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + Assertions.assertEquals(enrichSqlWithDataSplits(rowsInserted, dataSplitRanges.get(0)), generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_INSERTED)); + Assertions.assertEquals(rowsTerminated, generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + } } 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/BigQueryTestArtifacts.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/BigQueryTestArtifacts.java index 51f7e0eec10..ea28d0d8cf2 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/ingestmode/BigQueryTestArtifacts.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/BigQueryTestArtifacts.java @@ -60,6 +60,15 @@ public class BigQueryTestArtifacts "`biz_date` DATE," + "`legend_persistence_count` INT64)"; + public static String expectedBaseTempStagingTableWithVersionAndCount = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + + "(`id` INT64 NOT NULL," + + "`name` STRING NOT NULL," + + "`amount` FLOAT64," + + "`biz_date` DATE," + + "`digest` STRING," + + "`version` INT64," + + "`legend_persistence_count` INT64)"; + public static String expectedBaseTempStagingTablePlusDigestWithCount = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + "(`id` INT64 NOT NULL," + "`name` STRING NOT NULL," + @@ -77,6 +86,14 @@ public class BigQueryTestArtifacts "`legend_persistence_count` INT64," + "`data_split` INT64 NOT NULL)"; + public static String expectedBaseTempStagingTableWithCountAndDataSplit = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + + "(`id` INT64 NOT NULL," + + "`name` STRING NOT NULL," + + "`amount` FLOAT64," + + "`biz_date` DATE," + + "`legend_persistence_count` INT64," + + "`data_split` INT64 NOT NULL)"; + public static String expectedBaseTablePlusDigestPlusVersionCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INT64 NOT NULL," + "`name` STRING NOT NULL," + @@ -167,7 +184,7 @@ public class BigQueryTestArtifacts public static String expectedTempStagingCleanupQuery = "DELETE FROM `mydb`.`staging_legend_persistence_temp_staging` as stage WHERE 1 = 1"; - public static String expectedDropTableQuery = "DROP TABLE IF EXISTS `mydb`.`staging` CASCADE"; + public static String expectedDropTableQuery = "DROP TABLE IF EXISTS `mydb`.`staging`"; public static String cleanUpMainTableSql = "DELETE FROM `mydb`.`main` as sink WHERE 1 = 1"; public static String cleanupMainTableSqlUpperCase = "DELETE FROM `MYDB`.`MAIN` as sink WHERE 1 = 1"; @@ -197,19 +214,19 @@ public class BigQueryTestArtifacts "`BATCH_ID_IN` INT64 NOT NULL,`BATCH_ID_OUT` INT64,PRIMARY KEY (`ID`, `NAME`, `BATCH_ID_IN`) NOT ENFORCED)"; public static String expectedMetadataTableIngestQuery = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`)" + - " (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),CURRENT_DATETIME(),'DONE')"; + " (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),CURRENT_DATETIME(),'DONE')"; public static String expectedMetadataTableIngestWithStagingFiltersQuery = "INSERT INTO batch_metadata " + "(`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`, `staging_filters`) " + "(SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + - "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')," + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')," + "CURRENT_DATETIME(),'DONE',PARSE_JSON('{\"batch_id_in\":{\"GT\":5}}'))"; public static String expectedMetadataTableIngestQueryWithUpperCase = "INSERT INTO BATCH_METADATA (`TABLE_NAME`, `TABLE_BATCH_ID`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`)" + - " (SELECT 'MAIN',(SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),CURRENT_DATETIME(),'DONE')"; + " (SELECT 'MAIN',(SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),CURRENT_DATETIME(),'DONE')"; public static String expectedMetadataTableIngestQueryWithPlaceHolders = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) " + - "(SELECT 'main',{BATCH_ID_PATTERN},PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TS_PATTERN}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_END_TS_PATTERN}'),'DONE')"; + "(SELECT 'main',{BATCH_ID_PATTERN},PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TS_PATTERN}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_END_TS_PATTERN}'),'DONE')"; public static String expectedMainTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INT64 NOT NULL," + @@ -471,13 +488,23 @@ public class BigQueryTestArtifacts "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + "GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`) as stage)"; + public static String expectedInsertIntoBaseTempStagingWithAllVersionAndFilterDuplicates = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + + "(`id`, `name`, `amount`, `biz_date`, `legend_persistence_count`, `data_split`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER (PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` ASC) as `data_split` " + + "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`) as stage)"; + public static String maxDupsErrorCheckSql = "SELECT MAX(stage.`legend_persistence_count`) as `MAX_DUPLICATES` FROM " + "`mydb`.`staging_legend_persistence_temp_staging` as stage"; - public static String dataErrorCheckSql = "SELECT MAX(`legend_persistence_distinct_rows`) as `MAX_DATA_ERRORS` FROM " + + public static String dataErrorCheckSqlForBizDateAsVersion = "SELECT MAX(`legend_persistence_distinct_rows`) as `MAX_DATA_ERRORS` FROM " + "(SELECT COUNT(DISTINCT(`digest`)) as `legend_persistence_distinct_rows` FROM " + "`mydb`.`staging_legend_persistence_temp_staging` as stage GROUP BY `id`, `name`, `biz_date`) as stage"; + public static String dataErrorCheckSqlForVersionAsVersion = "SELECT MAX(`legend_persistence_distinct_rows`) as `MAX_DATA_ERRORS` FROM " + + "(SELECT COUNT(DISTINCT(`digest`)) as `legend_persistence_distinct_rows` FROM " + + "`mydb`.`staging_legend_persistence_temp_staging` as stage GROUP BY `id`, `name`, `version`) as stage"; + public static String expectedTempStagingCleanupQueryInUpperCase = "DELETE FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage WHERE 1 = 1"; public static String expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndAllowDuplicatesUpperCase = "INSERT INTO `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` " + "(`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `LEGEND_PERSISTENCE_COUNT`) " + @@ -497,4 +524,9 @@ public class BigQueryTestArtifacts "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,DENSE_RANK() " + "OVER (PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` DESC) as `legend_persistence_rank` " + "FROM `mydb`.`staging` as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; + + public static String getDropTempTableQuery(String tableName) + { + return String.format("DROP TABLE IF EXISTS %s", tableName); + } } 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/BitemporalDeltaSourceSpecifiesFromAndThroughTest.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/BitemporalDeltaSourceSpecifiesFromAndThroughTest.java index cc61379a451..8bfe3ec190a 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/ingestmode/BitemporalDeltaSourceSpecifiesFromAndThroughTest.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/BitemporalDeltaSourceSpecifiesFromAndThroughTest.java @@ -71,7 +71,7 @@ public void verifyBitemporalDeltaBatchIdDateTimeBasedNoDeleteIndWithDataSplits(L { String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET sink.`batch_id_out` = " + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + - "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND (EXISTS (SELECT * FROM `mydb`.`staging` as stage WHERE " + "((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + "((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -81,7 +81,7 @@ public void verifyBitemporalDeltaBatchIdDateTimeBasedNoDeleteIndWithDataSplits(L "`validity_through_target`, `digest`, `version`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`validity_from_reference`,stage.`validity_through_reference`," + "stage.`digest`,stage.`version`,(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + - "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage WHERE (NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE " + "(sink.`batch_id_out` = 999999999) AND (sink.`digest` = stage.`digest`) " + "AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -153,8 +153,8 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplits(Generator public void verifyBitemporalDeltaDatetimeBasedWithDeleteIndWithDataSplits(List operations, List dataSplitRanges) { String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND " + "(stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) " + @@ -165,9 +165,9 @@ public void verifyBitemporalDeltaDatetimeBasedWithDeleteIndWithDataSplits(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))) AND " + @@ -185,10 +185,10 @@ public void verifyBitemporalDeltaDatetimeBasedWithDeleteIndWithDataSplits(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -206,7 +207,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplits(Generator "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`staging` as stage WHERE stage.`delete_indicator` NOT IN ('yes','1','true')) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -275,7 +276,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplits(Generator String expectedTempToMainForDeletion = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `digest`, `validity_from_target`, `validity_through_target`, `batch_id_in`, `batch_id_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`legend_persistence_start_date` as `legend_persistence_start_date`,MAX(legend_persistence_y.`validity_through_target`) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`validity_from_target`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`validity_from_target`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` " + "FROM `mydb`.`tempWithDeleteIndicator` as legend_persistence_x " + "LEFT OUTER JOIN `mydb`.`tempWithDeleteIndicator` as legend_persistence_y " + "ON ((legend_persistence_x.`id` = legend_persistence_y.`id`) AND (legend_persistence_x.`name` = legend_persistence_y.`name`)) AND (legend_persistence_y.`validity_from_target` > legend_persistence_x.`validity_from_target`) AND (legend_persistence_y.`delete_indicator` = 0) " + @@ -346,7 +347,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplits(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -415,7 +416,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplits(List legend_persistence_x.`validity_from_target`) AND (legend_persistence_y.`delete_indicator` = 0) " + @@ -483,7 +484,7 @@ public void verifyBitemporalDeltaBatchIdBasedNoDeleteIndNoDataSplitsFilterDuplic "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`stagingWithoutDuplicates` as stage) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -561,7 +562,7 @@ public void verifyBitemporalDeltaBatchIdBasedNoDeleteIndWithDataSplitsFilterDupl "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`stagingWithoutDuplicates` as stage WHERE (stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -659,7 +660,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplitsFilterDupl "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`stagingWithoutDuplicates` as stage WHERE stage.`delete_indicator` NOT IN ('yes','1','true')) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -728,7 +729,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplitsFilterDupl String expectedTempToMainForDeletion = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `digest`, `validity_from_target`, `validity_through_target`, `batch_id_in`, `batch_id_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`legend_persistence_start_date` as `legend_persistence_start_date`,MAX(legend_persistence_y.`validity_through_target`) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`validity_from_target`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`validity_from_target`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` " + "FROM `mydb`.`tempWithDeleteIndicator` as legend_persistence_x " + "LEFT OUTER JOIN `mydb`.`tempWithDeleteIndicator` as legend_persistence_y " + "ON ((legend_persistence_x.`id` = legend_persistence_y.`id`) AND (legend_persistence_x.`name` = legend_persistence_y.`name`)) AND (legend_persistence_y.`validity_from_target` > legend_persistence_x.`validity_from_target`) AND (legend_persistence_y.`delete_indicator` = 0) " + @@ -819,7 +820,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplitsFilterDu "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM " + stageWithoutDuplicatesName + " as legend_persistence_stageWithoutDuplicates WHERE (legend_persistence_stageWithoutDuplicates.`delete_indicator` NOT IN ('yes','1','true')) AND ((legend_persistence_stageWithoutDuplicates.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (legend_persistence_stageWithoutDuplicates.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -888,7 +889,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplitsFilterDu String expectedTempToMainForDeletion = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `version`, `digest`, `validity_from_target`, `validity_through_target`, `batch_id_in`, `batch_id_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`version`,legend_persistence_x.`digest`,legend_persistence_x.`legend_persistence_start_date` as `legend_persistence_start_date`,MAX(legend_persistence_y.`validity_through_target`) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`version`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`validity_from_target`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`version`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`validity_from_target`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date`,legend_persistence_x.`batch_id_in`,legend_persistence_x.`batch_id_out` " + "FROM " + tempWithDeleteIndicatorName + " as legend_persistence_x " + "LEFT OUTER JOIN " + tempWithDeleteIndicatorName + " as legend_persistence_y " + "ON ((legend_persistence_x.`id` = legend_persistence_y.`id`) AND (legend_persistence_x.`name` = legend_persistence_y.`name`)) AND (legend_persistence_y.`validity_from_target` > legend_persistence_x.`validity_from_target`) AND (legend_persistence_y.`delete_indicator` = 0) " + @@ -958,7 +959,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithPlaceholders(GeneratorResult op "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`staging` as stage) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -1024,13 +1025,13 @@ public void verifyBitemporalDeltaBatchIdAndTimeBasedNoDeleteIndNoDataSplits(Gene String expectedStageToTemp = "INSERT INTO `mydb`.`temp` " + "(`id`, `name`, `amount`, `digest`, `validity_from_target`, `validity_through_target`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_reference` as `legend_persistence_start_date`," + - "legend_persistence_y.`legend_persistence_end_date`,(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "legend_persistence_y.`legend_persistence_end_date`,(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`validity_from_reference`,stage.`digest` FROM `mydb`.`staging` as stage) as legend_persistence_x " + "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`staging` as stage) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -1046,7 +1047,7 @@ public void verifyBitemporalDeltaBatchIdAndTimeBasedNoDeleteIndNoDataSplits(Gene String expectedMainToTemp = "INSERT INTO `mydb`.`temp` " + "(`id`, `name`, `amount`, `digest`, `validity_from_target`, `validity_through_target`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,legend_persistence_y.`legend_persistence_end_date`," + - "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM " + "(SELECT sink.`id`,sink.`name`,sink.`amount`,sink.`digest`,sink.`batch_id_in`,sink.`batch_id_out`,sink.`batch_time_in`," + "sink.`batch_time_out`,sink.`validity_from_target`,sink.`validity_through_target` FROM `mydb`.`main` as sink " + @@ -1070,7 +1071,7 @@ public void verifyBitemporalDeltaBatchIdAndTimeBasedNoDeleteIndNoDataSplits(Gene String expectedUpdateMain = "UPDATE `mydb`.`main` as sink SET " + "sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (EXISTS " + "(SELECT * FROM `mydb`.`temp` as temp WHERE ((sink.`id` = temp.`id`) AND (sink.`name` = temp.`name`)) " + "AND (sink.`validity_from_target` = temp.`validity_from_target`))) AND (sink.`batch_id_out` = 999999999)"; @@ -1105,17 +1106,17 @@ public void verifyBitemporalDeltaDateTimeBasedNoDeleteIndNoDataSplits(GeneratorR String expectedStageToTemp = "INSERT INTO `mydb`.`temp` " + "(`id`, `name`, `amount`, `digest`, `validity_from_target`, `validity_through_target`, `batch_time_in`, `batch_time_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`,legend_persistence_x.`validity_from_reference` as `legend_persistence_start_date`," + - "legend_persistence_y.`legend_persistence_end_date`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "legend_persistence_y.`legend_persistence_end_date`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`validity_from_reference`,stage.`digest` FROM `mydb`.`staging` as stage) as legend_persistence_x " + "LEFT OUTER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),MIN(legend_persistence_x.`legend_persistence_end_date`)) as `legend_persistence_end_date` " + "FROM " + - "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`,COALESCE(MIN(legend_persistence_y.`legend_persistence_start_date`),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as `legend_persistence_end_date` " + "FROM " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`staging` as stage) as legend_persistence_x " + "LEFT OUTER JOIN " + - "(SELECT `id`,`name`,`validity_from_target` as `legend_persistence_start_date` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as legend_persistence_y " + + "(SELECT `id`,`name`,`validity_from_target` as `legend_persistence_start_date` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as legend_persistence_y " + "ON ((legend_persistence_x.`id` = legend_persistence_y.`id`) AND (legend_persistence_x.`name` = legend_persistence_y.`name`)) AND (legend_persistence_x.`legend_persistence_start_date` < legend_persistence_y.`legend_persistence_start_date`) " + "GROUP BY legend_persistence_x.`id`, legend_persistence_x.`name`, legend_persistence_x.`legend_persistence_start_date`) as legend_persistence_x " + "LEFT OUTER JOIN " + @@ -1128,16 +1129,16 @@ public void verifyBitemporalDeltaDateTimeBasedNoDeleteIndNoDataSplits(GeneratorR "(`id`, `name`, `amount`, `digest`, `validity_from_target`, `validity_through_target`, `batch_time_in`, `batch_time_out`) " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`amount`,legend_persistence_x.`digest`," + "legend_persistence_x.`validity_from_target` as `legend_persistence_start_date`,legend_persistence_y.`legend_persistence_end_date`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM (SELECT sink.`id`,sink.`name`,sink.`amount`,sink.`digest`,sink.`batch_time_in`," + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM (SELECT sink.`id`,sink.`name`,sink.`amount`,sink.`digest`,sink.`batch_time_in`," + "sink.`batch_time_out`,sink.`validity_from_target`,sink.`validity_through_target` " + - "FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as legend_persistence_x " + + "FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as legend_persistence_x " + "INNER JOIN " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`," + "legend_persistence_x.`legend_persistence_end_date` as `legend_persistence_end_date` FROM " + "(SELECT legend_persistence_x.`id`,legend_persistence_x.`name`,legend_persistence_x.`legend_persistence_start_date`," + "MIN(legend_persistence_y.`legend_persistence_start_date`) as `legend_persistence_end_date` " + "FROM (SELECT `id`,`name`,`validity_from_target` as `legend_persistence_start_date`,`validity_through_target` as `legend_persistence_end_date` " + - "FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) as legend_persistence_x " + + "FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) as legend_persistence_x " + "INNER JOIN " + "(SELECT `id`,`name`,`validity_from_reference` as `legend_persistence_start_date` FROM `mydb`.`staging` as stage) as legend_persistence_y " + "ON ((legend_persistence_x.`id` = legend_persistence_y.`id`) AND (legend_persistence_x.`name` = legend_persistence_y.`name`)) " + @@ -1151,10 +1152,10 @@ public void verifyBitemporalDeltaDateTimeBasedNoDeleteIndNoDataSplits(GeneratorR "AND (legend_persistence_x.`validity_from_target` = legend_persistence_y.`legend_persistence_start_date`))"; String expectedUpdateMain = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (EXISTS (SELECT * FROM `mydb`.`temp` as temp WHERE " + "((sink.`id` = temp.`id`) AND (sink.`name` = temp.`name`)) AND " + - "(sink.`validity_from_target` = temp.`validity_from_target`))) AND (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59'))"; + "(sink.`validity_from_target` = temp.`validity_from_target`))) AND (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59'))"; String expectedTempToMain = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `digest`, `batch_time_in`, `batch_time_out`, `validity_from_target`, `validity_through_target`) " + @@ -1173,8 +1174,8 @@ public void verifyBitemporalDeltaDateTimeBasedNoDeleteIndNoDataSplits(GeneratorR Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); String incomingRecordCount = "SELECT COUNT(*) as `incomingRecordCount` FROM `mydb`.`staging` as stage"; - String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')"; - String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) as `rowsInserted`"; + String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')"; + String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) as `rowsInserted`"; verifyStats(operations, incomingRecordCount, rowsUpdated, rowsDeleted, rowsInserted, rowsTerminated); } 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 index 4d8899447e4..801e8dcc7ac 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/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 @@ -15,8 +15,7 @@ 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.FileFormatType; 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; @@ -40,10 +39,7 @@ 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 java.util.*; import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_DELETED; import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_INSERTED; @@ -102,8 +98,8 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledNoExtraOptions() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(filesList).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) .build(); @@ -117,7 +113,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledNoExtraOptions() .relationalSink(BigQuerySink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .batchIdPattern("{NEXT_BATCH_ID}") .build(); @@ -137,11 +133,11 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledNoExtraOptions() 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.000000') " + + "(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:%E6S','2000-01-01 00:00:00.000000') " + "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.000000'),CURRENT_DATETIME(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"],\"task_id\":\"xyz123\"}'))"; + "(SELECT {NEXT_BATCH_ID},'my_name',PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),CURRENT_DATETIME(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"event_id\":\"xyz123\",\"file_paths\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); @@ -151,7 +147,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledNoExtraOptions() 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.000000')", statsSql.get(ROWS_INSERTED)); + 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:%E6S','2000-01-01 00:00:00.000000')", statsSql.get(ROWS_INSERTED)); } @Test @@ -163,20 +159,21 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledAllOptionsNoTaskId() .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) .build(); + Map loadOptions = new HashMap<>(); + loadOptions.put("encoding", "UTF8"); + loadOptions.put("max_bad_records", 100L); + loadOptions.put("null_marker", "NULL"); + loadOptions.put("quote", "'"); + loadOptions.put("compression", "GZIP"); + loadOptions.put("field_delimiter", ","); + loadOptions.put("skip_leading_rows", 1L); + 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()) + .fileFormat(FileFormatType.CSV) + .putAllLoadOptions(loadOptions) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) .build(); @@ -205,16 +202,16 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledAllOptionsNoTaskId() 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')"; + "(uris=['/path/xyz/file1.csv','/path/xyz/file2.csv'], compression='GZIP', encoding='UTF8', field_delimiter=',', format='CSV', max_bad_records=100, null_marker='NULL', quote=''', skip_leading_rows=1)"; 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.000000') " + + "(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:%E6S','2000-01-01 00:00:00.000000') " + "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.000000'),CURRENT_DATETIME(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}'," + - "PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; + "(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:%E6S','2000-01-01 00:00:00.000000'),CURRENT_DATETIME(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}'," + + "PARSE_JSON('{\"file_paths\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); @@ -224,7 +221,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledAllOptionsNoTaskId() 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.000000')", statsSql.get(ROWS_INSERTED)); + 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:%E6S','2000-01-01 00:00:00.000000')", statsSql.get(ROWS_INSERTED)); } @Test @@ -239,8 +236,8 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabledNoExtraOptions() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(filesList).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) .build(); @@ -254,7 +251,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabledNoExtraOptions() .relationalSink(BigQuerySink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -297,8 +294,8 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptions() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(filesList).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) .build(); @@ -312,7 +309,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptions() .relationalSink(BigQuerySink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -330,7 +327,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptions() 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.000000') " + + "(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:%E6S','2000-01-01 00:00:00.000000') " + "FROM `my_db`.`my_name_legend_persistence_temp` as legend_persistence_temp)"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); @@ -340,7 +337,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptions() 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.000000')", statsSql.get(ROWS_INSERTED)); + 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:%E6S','2000-01-01 00:00:00.000000')", statsSql.get(ROWS_INSERTED)); } @Test @@ -355,8 +352,8 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptionsUpperCase() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( BigQueryStagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(filesList).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) .build(); @@ -370,7 +367,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptionsUpperCase() .relationalSink(BigQuerySink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .caseConversion(CaseConversion.TO_UPPER) .build(); @@ -389,7 +386,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptionsUpperCase() 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.000000') " + + "(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:%E6S','2000-01-01 00:00:00.000000') " + "FROM `MY_DB`.`MY_NAME_LEGEND_PERSISTENCE_TEMP` as legend_persistence_temp)"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); @@ -399,7 +396,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptionsUpperCase() 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.000000')", statsSql.get(ROWS_INSERTED)); + 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:%E6S','2000-01-01 00:00:00.000000')", statsSql.get(ROWS_INSERTED)); } @Test @@ -462,7 +459,7 @@ public void testBulkLoadStagedFilesDatasetNotProvided() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(bulkLoad) .relationalSink(BigQuerySink.get()) - .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadEventIdValue(TASK_ID_VALUE) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) .build(); 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/IngestModeTest.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/IngestModeTest.java index adf83659f9f..43fadc60460 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/ingestmode/IngestModeTest.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/IngestModeTest.java @@ -167,9 +167,9 @@ public class IngestModeTest "`BATCH_STATUS` VARCHAR(32)," + "`TABLE_BATCH_ID` INTEGER)"; - protected String expectedMetadataTableIngestQuery = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),CURRENT_TIMESTAMP(),'DONE')"; + protected String expectedMetadataTableIngestQuery = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),CURRENT_TIMESTAMP(),'DONE')"; - protected String expectedMetadataTableIngestQueryWithUpperCase = "INSERT INTO BATCH_METADATA (`TABLE_NAME`, `TABLE_BATCH_ID`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as batch_metadata WHERE batch_metadata.`TABLE_NAME` = 'main'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),CURRENT_TIMESTAMP(),'DONE')"; + protected String expectedMetadataTableIngestQueryWithUpperCase = "INSERT INTO BATCH_METADATA (`TABLE_NAME`, `TABLE_BATCH_ID`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as batch_metadata WHERE batch_metadata.`TABLE_NAME` = 'main'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),CURRENT_TIMESTAMP(),'DONE')"; String expectedStagingCleanupQuery = "DELETE FROM `mydb`.`staging` as stage"; 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/NontemporalDeltaTest.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/NontemporalDeltaTest.java index 667cb8c5ccb..42494844153 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/ingestmode/NontemporalDeltaTest.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/NontemporalDeltaTest.java @@ -14,7 +14,6 @@ package org.finos.legend.engine.persistence.components.ingestmode; -import org.finos.legend.engine.persistence.components.AnsiTestArtifacts; import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.relational.RelationalSink; import org.finos.legend.engine.persistence.components.relational.api.DataSplitRange; @@ -94,10 +93,10 @@ public void verifyNontemporalDeltaWithAuditingFilterDupsNoVersioning(GeneratorRe "sink.`amount` = stage.`amount`," + "sink.`biz_date` = stage.`biz_date`," + "sink.`digest` = stage.`digest`," + - "sink.`batch_update_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_update_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHEN NOT MATCHED THEN INSERT " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "VALUES (stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))"; + "VALUES (stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery, preActionsSqlList.get(0)); Assertions.assertEquals(mergeSql, milestoningSqlList.get(0)); @@ -164,10 +163,10 @@ public void verifyNonTemporalDeltaWithWithAuditingFailOnDupsAllVersion(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) " + "as stage ON (sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`) " + "WHEN MATCHED AND sink.`digest` <> stage.`digest` " + - "THEN UPDATE SET sink.`id` = stage.`id`,sink.`name` = stage.`name`,sink.`amount` = stage.`amount`,sink.`biz_date` = stage.`biz_date`,sink.`digest` = stage.`digest`,sink.`batch_update_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "THEN UPDATE SET sink.`id` = stage.`id`,sink.`name` = stage.`name`,sink.`amount` = stage.`amount`,sink.`biz_date` = stage.`biz_date`,sink.`digest` = stage.`digest`,sink.`batch_update_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHEN NOT MATCHED " + "THEN INSERT (`id`, `name`, `amount`, `biz_date`, `digest`, `batch_update_time`) " + - "VALUES (stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))"; + "VALUES (stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery, operations.get(0).preActionsSql().get(0)); Assertions.assertEquals(enrichSqlWithDataSplits(mergeSql, dataSplitRanges.get(0)), operations.get(0).ingestSql().get(0)); @@ -279,6 +278,37 @@ public void verifyNontemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); } + @Override + public void verifyNontemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + + String mergeSql = "MERGE INTO `mydb`.`main` as sink " + + "USING " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest` FROM `mydb`.`staging` as stage WHERE (stage.`biz_date` > '2020-01-10') OR ((stage.`biz_date` > '2020-01-01') AND (stage.`biz_date` < '2020-01-05'))) as stage " + + "ON (sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`) " + + "WHEN MATCHED AND sink.`digest` <> stage.`digest` " + + "THEN UPDATE SET " + + "sink.`id` = stage.`id`," + + "sink.`name` = stage.`name`," + + "sink.`amount` = stage.`amount`," + + "sink.`biz_date` = stage.`biz_date`," + + "sink.`digest` = stage.`digest` " + + "WHEN NOT MATCHED THEN " + + "INSERT (`id`, `name`, `amount`, `biz_date`, `digest`) " + + "VALUES (stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`)"; + + Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTablePlusDigestCreateQuery, preActionsSqlList.get(0)); + Assertions.assertEquals(mergeSql, milestoningSqlList.get(0)); + + String incomingRecordCount = "SELECT COUNT(*) as `incomingRecordCount` FROM `mydb`.`staging` as stage WHERE (stage.`biz_date` > '2020-01-10') OR ((stage.`biz_date` > '2020-01-01') AND (stage.`biz_date` < '2020-01-05'))"; + // Stats + Assertions.assertEquals(incomingRecordCount, operations.postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + } + @Override public void verifyNontemporalDeltaWithFilterDupsMaxVersionWithStagingFilters(GeneratorResult operations) { 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/NontemporalSnapshotTest.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/NontemporalSnapshotTest.java index 1636e9de80d..c04a95e96de 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/ingestmode/NontemporalSnapshotTest.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/NontemporalSnapshotTest.java @@ -58,7 +58,7 @@ public void verifyNontemporalSnapshotWithAuditingFilterDupsNoVersioning(Generato String insertSql = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `batch_update_time`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage)"; Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTableWithAuditPKCreateQuery, preActionsSqlList.get(0)); @@ -79,7 +79,7 @@ public void verifyNontemporalSnapshotWithAuditingFailOnDupMaxVersion(GeneratorRe String insertSql = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `batch_update_time`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') FROM " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') FROM " + "`mydb`.`staging_legend_persistence_temp_staging` as stage)"; Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTableWithAuditPKCreateQuery, preActionsSqlList.get(0)); 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/UnitemporalDeltaBatchIdBasedTest.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/UnitemporalDeltaBatchIdBasedTest.java index 7290a5e44eb..21da3c27a14 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/ingestmode/UnitemporalDeltaBatchIdBasedTest.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/UnitemporalDeltaBatchIdBasedTest.java @@ -23,6 +23,8 @@ import java.util.List; +import static org.finos.legend.engine.persistence.components.common.DedupAndVersionErrorStatistics.MAX_DATA_ERRORS; + public class UnitemporalDeltaBatchIdBasedTest extends UnitmemporalDeltaBatchIdBasedTestCases { @Override @@ -316,6 +318,35 @@ public void verifyUnitemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(getExpectedMetadataTableIngestWithStagingFiltersQuery(), metadataIngestSql.get(0)); } + @Override + public void verifyUnitemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSql = operations.preActionsSql(); + List milestoningSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1 WHERE (sink.`batch_id_out` = 999999999) AND " + + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage WHERE (((sink.`id` = stage.`id`) AND " + + "(sink.`name` = stage.`name`)) AND (sink.`digest` <> stage.`digest`)) AND (stage.`batch_id_in` > 5)))"; + + String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999 FROM `mydb`.`staging` as stage " + + "WHERE (NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) " + + "AND (sink.`digest` = stage.`digest`) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))) " + + "AND (stage.`batch_id_in` > 5))"; + + Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableBatchIdBasedCreateQuery, preActionsSql.get(0)); + Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); + + Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); + Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); + Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); + } + @Override public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(GeneratorResult operations) { @@ -338,12 +369,74 @@ public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(Gene Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableBatchIdAndVersionBasedCreateQuery, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); + Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTempStagingTableWithVersionAndCount, preActionsSql.get(2)); + + String expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `version`, `legend_persistence_count`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER " + + "(PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`version` DESC) as `legend_persistence_rank` " + + "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "stage.`version`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "WHERE stage.`batch_id_in` > 5 GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, " + + "stage.`digest`, stage.`version`) as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; + + Assertions.assertEquals(BigQueryTestArtifacts.expectedTempStagingCleanupQuery, operations.deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters, operations.deduplicationAndVersioningSql().get(1)); + Assertions.assertEquals(BigQueryTestArtifacts.dataErrorCheckSqlForVersionAsVersion, operations.deduplicationAndVersioningErrorChecksSql().get(MAX_DATA_ERRORS)); Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); Assertions.assertEquals(getExpectedMetadataTableIngestWithStagingFiltersQuery(), metadataIngestSql.get(0)); } + @Override + public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithFilteredDataset(GeneratorResult operations) + { + List preActionsSql = operations.preActionsSql(); + List milestoningSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1 " + + "WHERE (sink.`batch_id_out` = 999999999) AND (EXISTS (SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (stage.`version` > sink.`version`)))"; + + String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `version`, `batch_id_in`, `batch_id_out`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999 FROM `mydb`.`staging_legend_persistence_temp_staging` " + + "as stage WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) " + + "AND (stage.`version` <= sink.`version`) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)))))"; + + Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableBatchIdAndVersionBasedCreateQuery, preActionsSql.get(0)); + Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); + Assertions.assertEquals(BigQueryTestArtifacts.expectedBaseTempStagingTableWithVersionAndCount, preActionsSql.get(2)); + + String expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `version`, `legend_persistence_count`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER " + + "(PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`version` DESC) as `legend_persistence_rank` " + + "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "stage.`version`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "WHERE stage.`batch_id_in` > 5 GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, " + + "stage.`digest`, stage.`version`) as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; + + Assertions.assertEquals(BigQueryTestArtifacts.expectedTempStagingCleanupQuery, operations.deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters, operations.deduplicationAndVersioningSql().get(1)); + Assertions.assertEquals(BigQueryTestArtifacts.dataErrorCheckSqlForVersionAsVersion, operations.deduplicationAndVersioningErrorChecksSql().get(MAX_DATA_ERRORS)); + + Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); + Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); + Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); + } + @Override public void verifyUnitemporalDeltaWithNoDedupMaxVersionWithoutPerformAndStagingFilters(GeneratorResult operations) { 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/UnitemporalDeltaBatchIdDateTimeBasedTest.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/UnitemporalDeltaBatchIdDateTimeBasedTest.java index 9cc6944a77d..9ae66a9d31d 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/ingestmode/UnitemporalDeltaBatchIdDateTimeBasedTest.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/UnitemporalDeltaBatchIdDateTimeBasedTest.java @@ -35,7 +35,7 @@ public void verifyUnitemporalDeltaNoDeleteIndNoDedupNoVersion(GeneratorResult op String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -45,7 +45,7 @@ public void verifyUnitemporalDeltaNoDeleteIndNoDedupNoVersion(GeneratorResult op "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) " + @@ -72,7 +72,7 @@ public void verifyUnitemporalDeltaNoDeleteIndFilterDupsAllVersionWithoutPerform( { String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -82,7 +82,7 @@ public void verifyUnitemporalDeltaNoDeleteIndFilterDupsAllVersionWithoutPerform( "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + "(NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + @@ -119,7 +119,7 @@ public void verifyUnitemporalDeltaWithDeleteIndMultiValuesNoDedupNoVersion(Gener String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET sink.`batch_id_out` = " + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE " + "(sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + @@ -131,7 +131,7 @@ public void verifyUnitemporalDeltaWithDeleteIndMultiValuesNoDedupNoVersion(Gener "`batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + "WHERE (NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) AND (sink.`digest` = stage.`digest`) " + "AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))) AND " + @@ -162,7 +162,7 @@ public void verifyUnitemporalDeltaWithDeleteInd(GeneratorResult operations) String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET sink.`batch_id_out` = " + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE " + "(sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + @@ -174,7 +174,7 @@ public void verifyUnitemporalDeltaWithDeleteInd(GeneratorResult operations) "`batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + "WHERE (NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) AND (sink.`digest` = stage.`digest`) " + "AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))) AND " + @@ -193,7 +193,7 @@ public void verifyUnitemporalDeltaWithDeleteIndFailOnDupsAllVersion(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + @@ -203,7 +203,7 @@ public void verifyUnitemporalDeltaWithDeleteIndFailOnDupsAllVersion(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + "(NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) AND " + "(sink.`digest` = stage.`digest`) AND ((sink.`id` = stage.`id`) AND " + @@ -236,8 +236,8 @@ public void verifyUnitemporalDeltaWithUpperCaseOptimizer(GeneratorResult operati List milestoningSql = operations.ingestSql(); List metadataIngestSql = operations.metadataIngestSql(); - String expectedMilestoneQuery = "UPDATE `MYDB`.`MAIN` as sink SET sink.`BATCH_ID_OUT` = (SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN')-1,sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') WHERE (sink.`BATCH_ID_OUT` = 999999999) AND (EXISTS (SELECT * FROM `MYDB`.`STAGING` as stage WHERE ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` <> stage.`DIGEST`)))"; - String expectedUpsertQuery = "INSERT INTO `MYDB`.`MAIN` (`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_ID_IN`, `BATCH_ID_OUT`, `BATCH_TIME_IN`, `BATCH_TIME_OUT`) (SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,(SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `MYDB`.`STAGING` as stage WHERE NOT (EXISTS (SELECT * FROM `MYDB`.`MAIN` as sink WHERE (sink.`BATCH_ID_OUT` = 999999999) AND (sink.`DIGEST` = stage.`DIGEST`) AND ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)))))"; + String expectedMilestoneQuery = "UPDATE `MYDB`.`MAIN` as sink SET sink.`BATCH_ID_OUT` = (SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN')-1,sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') WHERE (sink.`BATCH_ID_OUT` = 999999999) AND (EXISTS (SELECT * FROM `MYDB`.`STAGING` as stage WHERE ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` <> stage.`DIGEST`)))"; + String expectedUpsertQuery = "INSERT INTO `MYDB`.`MAIN` (`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_ID_IN`, `BATCH_ID_OUT`, `BATCH_TIME_IN`, `BATCH_TIME_OUT`) (SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,(SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `MYDB`.`STAGING` as stage WHERE NOT (EXISTS (SELECT * FROM `MYDB`.`MAIN` as sink WHERE (sink.`BATCH_ID_OUT` = 999999999) AND (sink.`DIGEST` = stage.`DIGEST`) AND ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableCreateQueryWithUpperCase, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQueryWithUpperCase, preActionsSql.get(1)); Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); @@ -254,7 +254,7 @@ public void verifyUnitemporalDeltaWithLessColumnsInStaging(GeneratorResult opera String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage WHERE " + "((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` <> stage.`digest`)))"; @@ -263,7 +263,7 @@ public void verifyUnitemporalDeltaWithLessColumnsInStaging(GeneratorResult opera "(`id`, `name`, `amount`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) AND (sink.`digest` = stage.`digest`) " + @@ -285,7 +285,7 @@ public void verifyUnitemporalDeltaWithPlaceholders(GeneratorResult operations) String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + "SET sink.`batch_id_out` = {BATCH_ID_PATTERN}-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TS_PATTERN}') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TS_PATTERN}') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -294,7 +294,7 @@ public void verifyUnitemporalDeltaWithPlaceholders(GeneratorResult operations) String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "{BATCH_ID_PATTERN},999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TS_PATTERN}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "{BATCH_ID_PATTERN},999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TS_PATTERN}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) " + @@ -329,7 +329,7 @@ public void verifyUnitemporalDeltaWithOnlySchemaSet(GeneratorResult operations) String expectedMilestoneQuery = "UPDATE `my_schema`.`main` as sink " + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `my_schema`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -339,7 +339,7 @@ public void verifyUnitemporalDeltaWithOnlySchemaSet(GeneratorResult operations) "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `my_schema`.`staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `my_schema`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) " + @@ -374,7 +374,7 @@ public void verifyUnitemporalDeltaWithDbAndSchemaBothSet(GeneratorResult operati String expectedMilestoneQuery = "UPDATE `mydb`.`my_schema`.`main` as sink " + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM `mydb`.`my_schema`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -384,7 +384,7 @@ public void verifyUnitemporalDeltaWithDbAndSchemaBothSet(GeneratorResult operati "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`my_schema`.`staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`my_schema`.`main` as sink " + "WHERE (sink.`batch_id_out` = 999999999) " + @@ -419,7 +419,7 @@ public void verifyUnitemporalDeltaWithDbAndSchemaBothNotSet(GeneratorResult oper String expectedMilestoneQuery = "UPDATE main as sink " + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1," + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) AND " + "(EXISTS (SELECT * FROM staging as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + @@ -429,7 +429,7 @@ public void verifyUnitemporalDeltaWithDbAndSchemaBothNotSet(GeneratorResult oper "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')," + - "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM staging as stage " + "WHERE NOT (EXISTS (SELECT * FROM main as sink " + "WHERE (sink.`batch_id_out` = 999999999) " + 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/UnitemporalDeltaDateTimeBasedTest.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/UnitemporalDeltaDateTimeBasedTest.java index cb6962a0515..3062b2d59ea 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/ingestmode/UnitemporalDeltaDateTimeBasedTest.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/UnitemporalDeltaDateTimeBasedTest.java @@ -33,8 +33,8 @@ public void verifyUnitemporalDeltaNoDeleteIndNoDedupNoVersioning(GeneratorResult List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + "(sink.`digest` <> stage.`digest`)))"; @@ -42,10 +42,10 @@ public void verifyUnitemporalDeltaNoDeleteIndNoDedupNoVersioning(GeneratorResult String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) " + "AND (sink.`digest` = stage.`digest`) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, preActionsSql.get(0)); @@ -57,9 +57,9 @@ public void verifyUnitemporalDeltaNoDeleteIndNoDedupNoVersioning(GeneratorResult // Stats String incomingRecordCount = "SELECT COUNT(*) as `incomingRecordCount` FROM `mydb`.`staging` as stage"; - String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')"; + String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')"; String rowsDeleted = "SELECT 0 as `rowsDeleted`"; - String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) as `rowsInserted`"; + String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) as `rowsInserted`"; String rowsTerminated = "SELECT 0 as `rowsTerminated`"; verifyStats(operations, incomingRecordCount, rowsUpdated, rowsDeleted, rowsInserted, rowsTerminated); } @@ -69,8 +69,8 @@ public void verifyUnitemporalDeltaNoDeleteIndFailOnDupsAllVersionWithoutPerform( { String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND " + "(sink.`digest` <> stage.`digest`)))"; @@ -78,11 +78,11 @@ public void verifyUnitemporalDeltaNoDeleteIndFailOnDupsAllVersionWithoutPerform( String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + "(NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) " + "AND (sink.`digest` = stage.`digest`) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, operations.get(0).preActionsSql().get(0)); @@ -98,9 +98,9 @@ public void verifyUnitemporalDeltaNoDeleteIndFailOnDupsAllVersionWithoutPerform( // Stats String incomingRecordCount = "SELECT COALESCE(SUM(stage.`legend_persistence_count`),0) as `incomingRecordCount` FROM `mydb`.`staging_legend_persistence_temp_staging` as stage WHERE (stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')"; - String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')"; + String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')"; String rowsDeleted = "SELECT 0 as `rowsDeleted`"; - String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) as `rowsInserted`"; + String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) as `rowsInserted`"; String rowsTerminated = "SELECT 0 as `rowsTerminated`"; verifyStats(operations.get(0), enrichSqlWithDataSplits(incomingRecordCount, dataSplitRanges.get(0)), rowsUpdated, rowsDeleted, rowsInserted, rowsTerminated); } @@ -113,9 +113,9 @@ public void verifyUnitemporalDeltaWithDeleteIndNoDedupNoVersioning(GeneratorResu List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE " + - "(sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "(sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) " + "AND ((sink.`digest` <> stage.`digest`) OR (stage.`delete_indicator` IN ('yes','1','true')))))"; @@ -124,9 +124,9 @@ public void verifyUnitemporalDeltaWithDeleteIndNoDedupNoVersioning(GeneratorResu "(`id`, `name`, `amount`, `biz_date`, `digest`, " + "`batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + "WHERE (NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND (sink.`digest` = stage.`digest`) " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND (sink.`digest` = stage.`digest`) " + "AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))) AND " + "(stage.`delete_indicator` NOT IN ('yes','1','true')))"; @@ -139,10 +139,10 @@ public void verifyUnitemporalDeltaWithDeleteIndNoDedupNoVersioning(GeneratorResu // Stats String incomingRecordCount = "SELECT COUNT(*) as `incomingRecordCount` FROM `mydb`.`staging` as stage"; - String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))))"; + String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))))"; String rowsDeleted = "SELECT 0 as `rowsDeleted`"; - String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))))) as `rowsInserted`"; - String rowsTerminated = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))))) as `rowsTerminated`"; + String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))))) as `rowsInserted`"; + String rowsTerminated = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))))) as `rowsTerminated`"; verifyStats(operations, incomingRecordCount, rowsUpdated, rowsDeleted, rowsInserted, rowsTerminated); } @@ -150,9 +150,9 @@ public void verifyUnitemporalDeltaWithDeleteIndNoDedupNoVersioning(GeneratorResu public void verifyUnitemporalDeltaWithDeleteIndFilterDupsAllVersion(List operations, List dataSplitRanges) { String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE " + - "(sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "(sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(EXISTS (SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((stage.`data_split` >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) " + "AND ((sink.`digest` <> stage.`digest`) OR (stage.`delete_indicator` IN ('yes','1','true')))))"; @@ -161,10 +161,10 @@ public void verifyUnitemporalDeltaWithDeleteIndFilterDupsAllVersion(List= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.`data_split` <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')) AND " + "(NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND (sink.`digest` = stage.`digest`) " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND (sink.`digest` = stage.`digest`) " + "AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))) AND " + "(stage.`delete_indicator` NOT IN ('yes','1','true')))"; @@ -181,10 +181,10 @@ public void verifyUnitemporalDeltaWithDeleteIndFilterDupsAllVersion(List milestoningSql = operations.ingestSql(); List metadataIngestSql = operations.metadataIngestSql(); - String expectedMilestoneQuery = "UPDATE `MYDB`.`MAIN` as sink SET sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') WHERE (sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND (EXISTS (SELECT * FROM `MYDB`.`STAGING` as stage WHERE ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` <> stage.`DIGEST`)))"; + String expectedMilestoneQuery = "UPDATE `MYDB`.`MAIN` as sink SET sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') WHERE (sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND (EXISTS (SELECT * FROM `MYDB`.`STAGING` as stage WHERE ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` <> stage.`DIGEST`)))"; - String expectedUpsertQuery = "INSERT INTO `MYDB`.`MAIN` (`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_TIME_IN`, `BATCH_TIME_OUT`) (SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `MYDB`.`STAGING` as stage WHERE NOT (EXISTS (SELECT * FROM `MYDB`.`MAIN` as sink WHERE (sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND (sink.`DIGEST` = stage.`DIGEST`) AND ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)))))"; + String expectedUpsertQuery = "INSERT INTO `MYDB`.`MAIN` (`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_TIME_IN`, `BATCH_TIME_OUT`) (SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `MYDB`.`STAGING` as stage WHERE NOT (EXISTS (SELECT * FROM `MYDB`.`MAIN` as sink WHERE (sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND (sink.`DIGEST` = stage.`DIGEST`) AND ((sink.`ID` = stage.`ID`) AND (sink.`NAME` = stage.`NAME`)))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQueryWithUpperCase, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQueryWithUpperCase, preActionsSql.get(1)); 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/UnitemporalSnapshotBatchIdDateTimeBasedTest.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/UnitemporalSnapshotBatchIdDateTimeBasedTest.java index 6e709c287b3..447d4cb9926 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/ingestmode/UnitemporalSnapshotBatchIdDateTimeBasedTest.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/UnitemporalSnapshotBatchIdDateTimeBasedTest.java @@ -40,7 +40,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupNoVersioning(Generat List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -48,7 +48,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupNoVersioning(Generat String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_id_out` = 999999999)))"; @@ -72,7 +72,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupMaxVersion(Generator Map deduplicationAndVersioningErrorChecksSql = operations.deduplicationAndVersioningErrorChecksSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -80,7 +80,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupMaxVersion(Generator String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_id_out` = 999999999)))"; @@ -89,7 +89,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupMaxVersion(Generator Assertions.assertEquals(BigQueryTestArtifacts.expectedTempStagingCleanupQuery, deduplicationAndVersioningSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndAllowDuplicates, deduplicationAndVersioningSql.get(1)); - Assertions.assertEquals(BigQueryTestArtifacts.dataErrorCheckSql, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); + Assertions.assertEquals(BigQueryTestArtifacts.dataErrorCheckSqlForBizDateAsVersion, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); @@ -105,7 +105,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionWithDeleteTargetDataEmptyBa List milestoningSql = operations.ingestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE sink.`batch_id_out` = 999999999"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableCreateQuery, preActionsSql.get(0)); @@ -124,14 +124,14 @@ public void verifyUnitemporalSnapshotWithoutPartitionWithUpperCaseOptimizerFilte String expectedMilestoneQuery = "UPDATE `MYDB`.`MAIN` as sink " + "SET sink.`BATCH_ID_OUT` = (SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA " + - "WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN')-1,sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN')-1,sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`BATCH_ID_OUT` = 999999999) AND (NOT (EXISTS (SELECT * FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage WHERE ((sink.`ID` = stage.`ID`) " + "AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` = stage.`DIGEST`))))"; String expectedUpsertQuery = "INSERT INTO `MYDB`.`MAIN` " + "(`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_ID_IN`, `BATCH_ID_OUT`, `BATCH_TIME_IN`, `BATCH_TIME_OUT`) " + "(SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`,(SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 " + "FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN'),999999999," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage WHERE NOT (stage.`DIGEST` IN (SELECT sink.`DIGEST` FROM `MYDB`.`MAIN` as sink WHERE sink.`BATCH_ID_OUT` = 999999999)))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableCreateQueryWithUpperCase, preActionsSql.get(0)); @@ -154,7 +154,7 @@ public void verifyUnitemporalSnapshotWithPartitionNoDedupNoVersioning(GeneratorR List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`)))) " + @@ -163,7 +163,7 @@ public void verifyUnitemporalSnapshotWithPartitionNoDedupNoVersioning(GeneratorR String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) AND (sink.`biz_date` = stage.`biz_date`))))"; @@ -197,7 +197,7 @@ public void verifyUnitemporalSnapshotWithPartitionFiltersNoDedupNoVersioning(Gen List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`)))) " + @@ -206,7 +206,7 @@ public void verifyUnitemporalSnapshotWithPartitionFiltersNoDedupNoVersioning(Gen String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) AND (sink.`biz_date` IN ('2000-01-01 00:00:00','2000-01-02 00:00:00')))))"; @@ -226,7 +226,7 @@ public void verifyUnitemporalSnapshotWithPartitionFiltersWithDeleteTargetDataEmp List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (sink.`biz_date` IN ('2000-01-01 00:00:00','2000-01-02 00:00:00'))"; @@ -252,7 +252,7 @@ public void verifyUnitemporalSnapshotWithLessColumnsInStaging(GeneratorResult op List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -260,7 +260,7 @@ public void verifyUnitemporalSnapshotWithLessColumnsInStaging(GeneratorResult op String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`digest`," + - "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_id_out` = 999999999)))"; @@ -280,7 +280,7 @@ public void verifyUnitemporalSnapshotWithPlaceholders(GeneratorResult operations List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_id_out` = {BATCH_ID_PATTERN}-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TS_PATTERN}') " + + "SET sink.`batch_id_out` = {BATCH_ID_PATTERN}-1,sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TS_PATTERN}') " + "WHERE (sink.`batch_id_out` = 999999999) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -288,7 +288,7 @@ public void verifyUnitemporalSnapshotWithPlaceholders(GeneratorResult operations String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "{BATCH_ID_PATTERN},999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TS_PATTERN}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "{BATCH_ID_PATTERN},999999999,PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TS_PATTERN}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_id_out` = 999999999)))"; 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/UnitemporalSnapshotDateTimeBasedTest.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/UnitemporalSnapshotDateTimeBasedTest.java index 8e748b0bb41..e51aa4cdfe3 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/ingestmode/UnitemporalSnapshotDateTimeBasedTest.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/UnitemporalSnapshotDateTimeBasedTest.java @@ -28,10 +28,10 @@ public class UnitemporalSnapshotDateTimeBasedTest extends UnitmemporalSnapshotDa { String incomingRecordCount = "SELECT COUNT(*) as `incomingRecordCount` FROM `mydb`.`staging` as stage"; - String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))))"; + String rowsUpdated = "SELECT COUNT(*) as `rowsUpdated` FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))))"; String rowsDeleted = "SELECT 0 as `rowsDeleted`"; - String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))))) as `rowsInserted`"; - String rowsTerminated = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'))))) as `rowsTerminated`"; + String rowsInserted = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))))) as `rowsInserted`"; + String rowsTerminated = "SELECT (SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))-(SELECT COUNT(*) FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000')) AND (EXISTS (SELECT * FROM `mydb`.`main` as sink2 WHERE ((sink2.`id` = sink.`id`) AND (sink2.`name` = sink.`name`)) AND (sink2.`batch_time_in` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'))))) as `rowsTerminated`"; @Override public void verifyUnitemporalSnapshotWithoutPartitionNoDedupNoVersion(GeneratorResult operations) @@ -41,8 +41,8 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupNoVersion(GeneratorR List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) " + + "SET sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -50,9 +50,9 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupNoVersion(GeneratorR String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + - "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59'))))"; + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59'))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); @@ -73,8 +73,8 @@ public void verifyUnitemporalSnapshotWithoutPartitionFailOnDupsMaxVersion(Genera Map deduplicationAndVersioningErrorChecksSql = operations.deduplicationAndVersioningErrorChecksSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) " + + "SET sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`))))"; @@ -82,9 +82,9 @@ public void verifyUnitemporalSnapshotWithoutPartitionFailOnDupsMaxVersion(Genera String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + - "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59'))))"; + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59'))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); @@ -98,7 +98,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionFailOnDupsMaxVersion(Genera Assertions.assertEquals(BigQueryTestArtifacts.expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndFilterDuplicates, deduplicationAndVersioningSql.get(1)); Assertions.assertEquals(BigQueryTestArtifacts.maxDupsErrorCheckSql, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DUPLICATES)); - Assertions.assertEquals(BigQueryTestArtifacts.dataErrorCheckSql, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); + Assertions.assertEquals(BigQueryTestArtifacts.dataErrorCheckSqlForBizDateAsVersion, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); } @Override @@ -109,8 +109,8 @@ public void verifyUnitemporalSnapshotWithoutPartitionWithDefaultEmptyBatchHandli List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')"; + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); @@ -127,17 +127,17 @@ public void verifyUnitemporalSnapshotWithoutPartitionWithUpperCaseOptimizer(Gene List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `MYDB`.`MAIN` as sink SET " + - "sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(NOT (EXISTS (SELECT * FROM `MYDB`.`STAGING` as stage WHERE ((sink.`ID` = stage.`ID`) " + "AND (sink.`NAME` = stage.`NAME`)) AND (sink.`DIGEST` = stage.`DIGEST`))))"; String expectedUpsertQuery = "INSERT INTO `MYDB`.`MAIN` " + "(`ID`, `NAME`, `AMOUNT`, `BIZ_DATE`, `DIGEST`, `BATCH_TIME_IN`, `BATCH_TIME_OUT`) " + "(SELECT stage.`ID`,stage.`NAME`,stage.`AMOUNT`,stage.`BIZ_DATE`,stage.`DIGEST`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `MYDB`.`STAGING` as stage " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `MYDB`.`STAGING` as stage " + "WHERE NOT (stage.`DIGEST` IN (SELECT sink.`DIGEST` FROM `MYDB`.`MAIN` as sink " + - "WHERE sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59'))))"; + "WHERE sink.`BATCH_TIME_OUT` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59'))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQueryWithUpperCase, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQueryWithUpperCase, preActionsSql.get(1)); @@ -155,8 +155,8 @@ public void verifyUnitemporalSnapshotWithPartitionNoDedupNoVersion(GeneratorResu List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + - "SET sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) " + + "SET sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) " + "AND (NOT (EXISTS " + "(SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`)))) " + "AND (EXISTS (SELECT * FROM `mydb`.`staging` as stage WHERE sink.`biz_date` = stage.`biz_date`))"; @@ -164,9 +164,9 @@ public void verifyUnitemporalSnapshotWithPartitionNoDedupNoVersion(GeneratorResu String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') " + "FROM `mydb`.`staging` as stage " + - "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND (sink.`biz_date` = stage.`biz_date`))))"; + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND (sink.`biz_date` = stage.`biz_date`))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, preActionsSql.get(0)); Assertions.assertEquals(BigQueryTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); @@ -185,8 +185,8 @@ public void verifyUnitemporalSnapshotWithPartitionFiltersNoDedupNoVersion(Genera List metadataIngestSql = operations.metadataIngestSql(); String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET " + - "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000') " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000') " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(NOT (EXISTS (SELECT * FROM `mydb`.`staging` as stage WHERE ((sink.`id` = stage.`id`) AND " + "(sink.`name` = stage.`name`)) AND (sink.`digest` = stage.`digest`)))) AND " + "(sink.`biz_date` IN ('2000-01-01 00:00:00','2000-01-02 00:00:00'))"; @@ -194,9 +194,9 @@ public void verifyUnitemporalSnapshotWithPartitionFiltersNoDedupNoVersion(Genera String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_time_in`, `batch_time_out`) " + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + + "PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','2000-01-01 00:00:00.000000'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59') FROM `mydb`.`staging` as stage " + "WHERE NOT (stage.`digest` IN (SELECT sink.`digest` FROM `mydb`.`main` as sink " + - "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','9999-12-31 23:59:59')) AND " + + "WHERE (sink.`batch_time_out` = PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','9999-12-31 23:59:59')) AND " + "(sink.`biz_date` IN ('2000-01-01 00:00:00','2000-01-02 00:00:00')))))"; Assertions.assertEquals(BigQueryTestArtifacts.expectedMainTableTimeBasedCreateQuery, preActionsSql.get(0)); 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/transformer/PlaceholderTest.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/transformer/PlaceholderTest.java index d486d75f3cf..d19fd8c7eff 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/transformer/PlaceholderTest.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/transformer/PlaceholderTest.java @@ -42,7 +42,7 @@ void testTimestampPlaceholder() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expectedSql = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TIMESTAMP_PLACEHOLDER}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_END_TIMESTAMP_PLACEHOLDER}'),'DONE')"; + String expectedSql = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TIMESTAMP_PLACEHOLDER}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_END_TIMESTAMP_PLACEHOLDER}'),'DONE')"; Assertions.assertEquals(expectedSql, list.get(0)); } @@ -56,7 +56,7 @@ void testTimestampPlaceholderWithUpperCase() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expectedSql = "INSERT INTO BATCH_METADATA (`TABLE_NAME`, `TABLE_BATCH_ID`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as batch_metadata WHERE UPPER(batch_metadata.`TABLE_NAME`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TIMESTAMP_PLACEHOLDER}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_END_TIMESTAMP_PLACEHOLDER}'),'DONE')"; + String expectedSql = "INSERT INTO BATCH_METADATA (`TABLE_NAME`, `TABLE_BATCH_ID`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`) (SELECT 'main',(SELECT COALESCE(MAX(batch_metadata.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as batch_metadata WHERE UPPER(batch_metadata.`TABLE_NAME`) = 'MAIN'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TIMESTAMP_PLACEHOLDER}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_END_TIMESTAMP_PLACEHOLDER}'),'DONE')"; Assertions.assertEquals(expectedSql, list.get(0)); } @@ -70,7 +70,7 @@ void testBatchIdAndTimestampPlaceholder() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expectedSql = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) (SELECT 'main',{BATCH_ID_PATTERN},PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_START_TIMESTAMP_PLACEHOLDER}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','{BATCH_END_TIMESTAMP_PLACEHOLDER}'),'DONE')"; + String expectedSql = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) (SELECT 'main',{BATCH_ID_PATTERN},PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_START_TIMESTAMP_PLACEHOLDER}'),PARSE_DATETIME('%Y-%m-%d %H:%M:%E6S','{BATCH_END_TIMESTAMP_PLACEHOLDER}'),'DONE')"; Assertions.assertEquals(expectedSql, list.get(0)); } 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 8d7be47cd26..b1fa9686c99 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 (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.000000'),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:%E6S','2000-01-01 00:00:00.000000'),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 (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.000000'),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:%E6S','2000-01-01 00:00:00.000000'),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/append/digest_generation/data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass1.csv new file mode 100644 index 00000000000..73a2f688718 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass1.csv @@ -0,0 +1,3 @@ +ANDY,3000,2022-12-03,2023-01-01 00:00:00,a11b7277f3c549f7a172efaba6170531 +HARRY,1000,2022-12-01,2023-01-01 00:00:00,181e95e5d4f3cb2861d4332351efc102 +ROBERT,2000,2022-12-02,2023-01-01 00:00:00,61e0cd6d24d93a03495c7e1557bb8ac7 \ 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/append/digest_generation/data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass2.csv new file mode 100644 index 00000000000..d268f49447d --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass2.csv @@ -0,0 +1,6 @@ +ANDY,3000,2022-12-03,2023-01-01 00:00:00,a11b7277f3c549f7a172efaba6170531 +ANDY,3100,2022-12-03,2023-01-02 00:00:00,a6d40d87fec7feb2e1419d88a6210e30 +HARRY,1000,2022-12-01,2023-01-01 00:00:00,181e95e5d4f3cb2861d4332351efc102 +MATT,4000,2022-12-06,2023-01-02 00:00:00,cb908dd9a1d284dca4e93a116a0a34e6 +ROBERT,2000,2022-12-02,2023-01-01 00:00:00,61e0cd6d24d93a03495c7e1557bb8ac7 +ROBERT,2000,2022-12-02,2023-01-02 00:00:00,5e9487021d62fe0c1036dee80bd35288 \ 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/append/digest_generation/data_pass3.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass3.csv new file mode 100644 index 00000000000..d17cefca258 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass3.csv @@ -0,0 +1,3 @@ +3,ANDY,3000,2022-12-03,2023-01-01 00:00:00,ab516a99f05bc4c9df9524b24e2e79fe,2000-01-01T00:00:00 +1,HARRY,1000,2022-12-01,2023-01-01 00:00:00,ca6964c25446026f294fca2cf80e9781,2000-01-01T00:00:00 +2,ROBERT,2000,2022-12-02,2023-01-01 00:00:00,f9ea83fc52c7548d74f9b7cb6d49313f,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/append/digest_generation/data_pass4.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass4.csv new file mode 100644 index 00000000000..0478d871307 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/append/digest_generation/data_pass4.csv @@ -0,0 +1,6 @@ +3,ANDY,3000,2022-12-03,2023-01-01 00:00:00,ab516a99f05bc4c9df9524b24e2e79fe,2000-01-01T00:00:00 +3,ANDY,3100,2022-12-03,2023-01-02 00:00:00,9ad9d80e387475658c0844cc90f8d284,2000-01-02T00:00:00 +1,HARRY,1000,2022-12-01,2023-01-01 00:00:00,ca6964c25446026f294fca2cf80e9781,2000-01-01T00:00:00 +4,MATT,4000,2022-12-06,2023-01-02 00:00:00,6740df64335a00377bbf4ca44fffff72,2000-01-02T00:00:00 +2,ROBERT,2000,2022-12-02,2023-01-01 00:00:00,f9ea83fc52c7548d74f9b7cb6d49313f,2000-01-01T00:00:00 +2,ROBERT,2000,2022-12-02,2023-01-02 00:00:00,c32a1dd4f2d691726bd52a32d4211994,2000-01-02T00: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/digest_generation/data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass1.csv new file mode 100644 index 00000000000..37e8837bd3e --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass1.csv @@ -0,0 +1,3 @@ +HARRY,1000,2022-12-01,2023-01-01 00:00:00 +ROBERT,2000,2022-12-02,2023-01-01 00:00:00 +ANDY,3000,2022-12-03,2023-01-01 00: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/digest_generation/data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass2.csv new file mode 100644 index 00000000000..8252b89a02a --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass2.csv @@ -0,0 +1,3 @@ +ROBERT,2000,2022-12-02,2023-01-02 00:00:00 +ANDY,3100,2022-12-03,2023-01-02 00:00:00 +MATT,4000,2022-12-06,2023-01-02 00: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/digest_generation/data_pass3.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass3.csv new file mode 100644 index 00000000000..9f0c612f79b --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass3.csv @@ -0,0 +1,3 @@ +1,HARRY,1000,2022-12-01,2023-01-01 00:00:00 +2,ROBERT,2000,2022-12-02,2023-01-01 00:00:00 +3,ANDY,3000,2022-12-03,2023-01-01 00: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/digest_generation/data_pass4.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass4.csv new file mode 100644 index 00000000000..e6f15f85ff6 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/digest_generation/data_pass4.csv @@ -0,0 +1,3 @@ +2,ROBERT,2000,2022-12-02,2023-01-02 00:00:00 +3,ANDY,3100,2022-12-03,2023-01-02 00:00:00 +4,MATT,4000,2022-12-06,2023-01-02 00: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-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 2858ce87f80..afb9547d356 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,7 +114,7 @@ public boolean enableConcurrentSafety() public abstract Optional infiniteBatchIdValue(); - public abstract Optional bulkLoadTaskIdValue(); + public abstract Optional bulkLoadEventIdValue(); @Default public String bulkLoadBatchStatusPattern() @@ -137,7 +137,7 @@ protected PlannerOptions plannerOptions() .enableSchemaEvolution(enableSchemaEvolution()) .createStagingDataset(createStagingDataset()) .enableConcurrentSafety(enableConcurrentSafety()) - .bulkLoadTaskIdValue(bulkLoadTaskIdValue()) + .bulkLoadEventIdValue(bulkLoadEventIdValue()) .build(); } 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 12faa47d745..7bf2618518f 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 @@ -140,7 +140,7 @@ public Set schemaEvolutionCapabilitySet() public abstract RelationalSink relationalSink(); - public abstract Optional bulkLoadTaskIdValue(); + public abstract Optional bulkLoadEventIdValue(); @Derived protected PlannerOptions plannerOptions() @@ -151,7 +151,7 @@ protected PlannerOptions plannerOptions() .enableSchemaEvolution(enableSchemaEvolution()) .createStagingDataset(createStagingDataset()) .enableConcurrentSafety(enableConcurrentSafety()) - .bulkLoadTaskIdValue(bulkLoadTaskIdValue()) + .bulkLoadEventIdValue(bulkLoadEventIdValue()) .build(); } @@ -512,7 +512,7 @@ private void init(Datasets datasets) .batchStartTimestampPattern(BATCH_START_TS_PATTERN) .batchEndTimestampPattern(BATCH_END_TS_PATTERN) .batchIdPattern(BATCH_ID_PATTERN) - .bulkLoadTaskIdValue(bulkLoadTaskIdValue()) + .bulkLoadEventIdValue(bulkLoadEventIdValue()) .build(); planner = Planners.get(enrichedDatasets, enrichedIngestMode, plannerOptions(), relationalSink().capabilities()); 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 52423165eab..993c1825a75 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 @@ -48,7 +48,8 @@ public enum FunctionName PARSE_JSON("PARSE_JSON"), TO_VARIANT("TO_VARIANT"), OBJECT_CONSTRUCT("OBJECT_CONSTRUCT"), - TO_JSON("TO_JSON"); + TO_JSON("TO_JSON"), + CONVERT("CONVERT"); 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-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/schemaops/statements/DeleteStatement.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/schemaops/statements/DeleteStatement.java index e85e00c7f95..9a2b3540898 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/schemaops/statements/DeleteStatement.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/schemaops/statements/DeleteStatement.java @@ -37,9 +37,9 @@ public DeleteStatement(Table table, Condition condition) } /* - DELETE GENERIC PLAN: - DELETE FROM table-Name [[AS] correlation-Name] [WHERE clause] - */ + DELETE GENERIC PLAN: + DELETE FROM table-Name [[AS] correlation-Name] [WHERE clause] + */ @Override public void genSql(StringBuilder builder) throws SqlDomException { 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/schemaops/statements/ShowCommand.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/schemaops/statements/ShowCommand.java index af84a7fe9eb..6b7939461ff 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/schemaops/statements/ShowCommand.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/schemaops/statements/ShowCommand.java @@ -18,33 +18,33 @@ 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.common.ShowType; +import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; + +import java.util.Optional; import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; public class ShowCommand implements SqlGen { private final ShowType operation; - private String schemaName; + private Optional schemaName; + private final String quoteIdentifier; - public ShowCommand(ShowType operation) - { - this(operation, null); - } - - public ShowCommand(ShowType operation, String schemaName) + public ShowCommand(ShowType operation, Optional schemaName, String quoteIdentifier) { this.operation = operation; this.schemaName = schemaName; + this.quoteIdentifier = quoteIdentifier; } - public String getSchemaName() + public Optional getSchemaName() { return schemaName; } public void setSchemaName(String schemaName) { - this.schemaName = schemaName; + this.schemaName = Optional.of(schemaName); } /* @@ -60,10 +60,10 @@ public void genSql(StringBuilder builder) throws SqlDomException { builder.append(Clause.SHOW.get()); builder.append(WHITE_SPACE + operation.name()); - if (operation == ShowType.TABLES && schemaName != null) + if (operation == ShowType.TABLES && schemaName.isPresent() && !schemaName.get().isEmpty()) { builder.append(WHITE_SPACE + Clause.FROM.get()); - builder.append(WHITE_SPACE + schemaName); + builder.append(WHITE_SPACE + SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/test/java/org/finos/legend/engine/persistence/components/relational/sqldom/schemaops/ShowCommandTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/test/java/org/finos/legend/engine/persistence/components/relational/sqldom/schemaops/ShowCommandTest.java index 8c69f0d9b5b..879a9ee2b91 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/test/java/org/finos/legend/engine/persistence/components/relational/sqldom/schemaops/ShowCommandTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/test/java/org/finos/legend/engine/persistence/components/relational/sqldom/schemaops/ShowCommandTest.java @@ -19,6 +19,8 @@ import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.statements.ShowCommand; import org.junit.jupiter.api.Test; +import java.util.Optional; + import static org.junit.jupiter.api.Assertions.assertEquals; public class ShowCommandTest @@ -28,9 +30,9 @@ public class ShowCommandTest public void testShowCommand() { Table table = new Table("CITIBIKE", "public", "trips", null, BaseTest.QUOTE_IDENTIFIER); - ShowCommand command = new ShowCommand(ShowType.TABLES, table.getSchema()); + ShowCommand command = new ShowCommand(ShowType.TABLES, Optional.of(table.getSchema()), BaseTest.QUOTE_IDENTIFIER); String sql = BaseTest.genSqlIgnoringErrors(command); - String expected = "SHOW TABLES FROM public"; + String expected = "SHOW TABLES FROM \"public\""; assertEquals(expected, sql); } @@ -38,7 +40,7 @@ public void testShowCommand() public void testShowCommandWithoutSchema() { Table table = new Table("CITIBIKE", null, "trips", null, BaseTest.QUOTE_IDENTIFIER); - ShowCommand command = new ShowCommand(ShowType.TABLES); + ShowCommand command = new ShowCommand(ShowType.TABLES, Optional.empty(), BaseTest.QUOTE_IDENTIFIER); String sql = BaseTest.genSqlIgnoringErrors(command); String expected = "SHOW TABLES"; assertEquals(expected, sql); 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/logicalplan/datasets/H2StagedFilesDatasetPropertiesAbstract.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/logicalplan/datasets/H2StagedFilesDatasetPropertiesAbstract.java index ea69a121e66..f067057cd10 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/logicalplan/datasets/H2StagedFilesDatasetPropertiesAbstract.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/logicalplan/datasets/H2StagedFilesDatasetPropertiesAbstract.java @@ -15,7 +15,7 @@ package org.finos.legend.engine.persistence.components.relational.h2.logicalplan.datasets; -import org.finos.legend.engine.persistence.components.common.FileFormat; +import org.finos.legend.engine.persistence.components.common.FileFormatType; import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetProperties; import org.immutables.value.Value; @@ -30,16 +30,20 @@ ) public interface H2StagedFilesDatasetPropertiesAbstract extends StagedFilesDatasetProperties { - FileFormat fileFormat(); + FileFormatType fileFormat(); @Value.Check default void validate() { - if (files().size() != 1) + if (filePatterns().size() > 0) + { + throw new IllegalArgumentException("Cannot build H2StagedFilesDatasetProperties, filePatterns not supported"); + } + if (filePaths().size() != 1) { throw new IllegalArgumentException("Cannot build H2StagedFilesDatasetProperties, only 1 file per load supported"); } - if (fileFormat() != FileFormat.CSV) + if (fileFormat() != FileFormatType.CSV) { throw new IllegalArgumentException("Cannot build H2StagedFilesDatasetProperties, only CSV file loading supported"); } 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/sql/visitor/DigestUdfVisitor.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/sql/visitor/DigestUdfVisitor.java index f40354b288d..46690aae586 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/sql/visitor/DigestUdfVisitor.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/sql/visitor/DigestUdfVisitor.java @@ -14,7 +14,13 @@ package org.finos.legend.engine.persistence.components.relational.h2.sql.visitor; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType; import org.finos.legend.engine.persistence.components.logicalplan.values.DigestUdf; +import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; +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.logicalplan.values.StagedFilesFieldValue; 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.physicalplan.PhysicalPlanNode; @@ -40,7 +46,18 @@ public VisitorResult visit(PhysicalPlanNode prev, DigestUdf current, VisitorCont for (int i = 0; i < current.values().size(); i++) { columnNameList.add(StringValue.of(current.fieldNames().get(i))); - columnValueList.add(current.values().get(i)); + + if (current.values().get(i) instanceof StagedFilesFieldValue) + { + // The field, being StagedFilesFieldValue, is already a String + StagedFilesFieldValue stagedFilesField = (StagedFilesFieldValue) current.values().get(i); + columnValueList.add(FieldValue.builder().fieldName(stagedFilesField.fieldName()).build()); + } + else + { + // Else need to convert the field into a String + columnValueList.add(FunctionImpl.builder().functionName(FunctionName.CONVERT).addValue(current.values().get(i), ObjectValue.of(DataType.VARCHAR.name())).build()); + } } ToArrayFunction columnNames = ToArrayFunction.builder().addAllValues(columnNameList).build(); 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/sql/visitor/StagedFilesDatasetReferenceVisitor.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/sql/visitor/StagedFilesDatasetReferenceVisitor.java index b697e4140ea..8f84482ee90 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/sql/visitor/StagedFilesDatasetReferenceVisitor.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/sql/visitor/StagedFilesDatasetReferenceVisitor.java @@ -32,7 +32,7 @@ public VisitorResult visit(PhysicalPlanNode prev, StagedFilesDatasetReference cu throw new IllegalStateException("Only H2StagedFilesDatasetProperties are supported for H2 Sink"); } H2StagedFilesDatasetProperties datasetProperties = (H2StagedFilesDatasetProperties) current.properties(); - CsvRead csvRead = new CsvRead(datasetProperties.files().get(0), String.join(",", current.columns()), null); + CsvRead csvRead = new CsvRead(datasetProperties.filePaths().get(0), String.join(",", current.columns()), null); prev.push(csvRead); return new VisitorResult(null); } 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/sql/visitor/ToArrayFunctionVisitor.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/sql/visitor/ToArrayFunctionVisitor.java index 1b993221bc6..7e46fce9d1e 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/sql/visitor/ToArrayFunctionVisitor.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/sql/visitor/ToArrayFunctionVisitor.java @@ -15,9 +15,6 @@ package org.finos.legend.engine.persistence.components.relational.h2.sql.visitor; import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanNode; -import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; -import org.finos.legend.engine.persistence.components.logicalplan.values.StagedFilesFieldValue; -import org.finos.legend.engine.persistence.components.logicalplan.values.Value; import org.finos.legend.engine.persistence.components.optimizer.Optimizer; import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; import org.finos.legend.engine.persistence.components.relational.h2.logicalplan.values.ToArrayFunction; @@ -49,17 +46,7 @@ public VisitorResult visit(PhysicalPlanNode prev, ToArrayFunction current, Visit if (current.values() != null) { List logicalPlanNodeList = new ArrayList<>(); - for (Value value : current.values()) - { - if (value instanceof StagedFilesFieldValue) - { - logicalPlanNodeList.add(FieldValue.builder().fieldName(((StagedFilesFieldValue) value).fieldName()).build()); - } - else - { - logicalPlanNodeList.add(value); - } - } + logicalPlanNodeList.addAll(current.values()); return new VisitorResult(function, logicalPlanNodeList); } return new VisitorResult(null); diff --git a/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/BaseTest.java b/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/BaseTest.java index 0341dd2620d..699402557b7 100644 --- a/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/BaseTest.java +++ b/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/BaseTest.java @@ -449,6 +449,16 @@ protected void loadStagingDataWithVersionInUpperCase(String path) throws Excepti h2Sink.executeStatement(loadSql); } + protected void loadStagingDataWithVersionWithoutDigest(String path) throws Exception + { + validateFileExists(path); + String loadSql = "TRUNCATE TABLE \"TEST\".\"staging\";" + + "INSERT INTO \"TEST\".\"staging\"(id, name, income, start_time ,expiry_date, version) " + + "SELECT CONVERT( \"id\",INT ), \"name\", CONVERT( \"income\", BIGINT), CONVERT( \"start_time\", DATETIME), CONVERT( \"expiry_date\", DATE), CONVERT( \"version\",INT)" + + " FROM CSVREAD( '" + path + "', 'id, name, income, start_time, expiry_date, version', NULL )"; + h2Sink.executeStatement(loadSql); + } + protected void loadStagingDataWithFilter(String path) throws Exception { validateFileExists(path); diff --git a/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/TestUtils.java b/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/TestUtils.java index 1ed5b1b8fd7..02bd2c12e9a 100644 --- a/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/TestUtils.java +++ b/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/TestUtils.java @@ -17,6 +17,13 @@ import com.opencsv.CSVReader; import org.finos.legend.engine.persistence.components.common.DatasetFilter; import org.finos.legend.engine.persistence.components.common.FilterType; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.And; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.GreaterThan; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.GreaterThanEqualTo; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.LessThan; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.LessThanEqualTo; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Or; import org.finos.legend.engine.persistence.components.logicalplan.datasets.CsvExternalDatasetReference; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; @@ -24,9 +31,13 @@ import org.finos.legend.engine.persistence.components.logicalplan.datasets.DerivedDataset; 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.FilteredDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.JsonExternalDatasetReference; import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; import org.finos.legend.engine.persistence.components.executor.RelationalExecutionHelper; +import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; +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.util.MetadataDataset; import org.junit.jupiter.api.Assertions; @@ -85,6 +96,7 @@ public class TestUtils // Special columns public static String digestName = "digest"; + public static String digestUDF = "LAKEHOUSE_MD5"; public static String versionName = "version"; public static String batchUpdateTimeName = "batch_update_time"; public static String batchIdInName = "batch_id_in"; @@ -266,6 +278,18 @@ public static SchemaDefinition getStagingSchemaWithNonPkVersion() .build(); } + public static SchemaDefinition getStagingSchemaWithNonPkVersionWithoutDigest() + { + return SchemaDefinition.builder() + .addFields(id) + .addFields(name) + .addFields(income) + .addFields(startTime) + .addFields(expiryDate) + .addFields(version) + .build(); + } + public static SchemaDefinition getStagingSchemaWithFilterForDB() { return SchemaDefinition.builder() @@ -355,6 +379,23 @@ public static DatasetDefinition getStagingTableWithNoPks() .build(); } + public static FilteredDataset getFilteredStagingTableWithComplexFilter() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(getSchemaWithNoPKs()) + .alias(stagingTableName) + .filter(And.builder() + .addConditions(GreaterThan.of(FieldValue.builder().fieldName(incomeName).datasetRefAlias(stagingTableName).build(), NumericalValue.of(1000L))) + .addConditions(Or.builder() + .addConditions(GreaterThanEqualTo.of(FieldValue.builder().fieldName(expiryDateName).datasetRefAlias(stagingTableName).build(), StringValue.of("2022-12-03"))) + .addConditions(LessThanEqualTo.of(FieldValue.builder().fieldName(expiryDateName).datasetRefAlias(stagingTableName).build(), StringValue.of("2022-12-01"))) + .build()) + .build()) + .build(); + } + public static DatasetDefinition getBasicStagingTableWithExpiryDatePk() { return DatasetDefinition.builder() @@ -382,6 +423,15 @@ public static DatasetDefinition getStagingTableWithNonPkVersion() .build(); } + public static DatasetDefinition getStagingTableWithNonPkVersionWithoutDigest() + { + return DatasetDefinition.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(getStagingSchemaWithNonPkVersionWithoutDigest()) + .build(); + } + public static DatasetDefinition getStagingTableWithFilterForDB() { return DatasetDefinition.builder() @@ -411,6 +461,20 @@ public static DerivedDataset getDerivedStagingTableWithFilter() .build(); } + public static FilteredDataset getFilteredStagingTable() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(getStagingSchema()) + .alias(stagingTableName) + .filter(Equals.of(FieldValue.builder() + .fieldName(batchName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(1L))) + .build(); + } + public static DerivedDataset getStagingTableWithFilterSecondPass() { return DerivedDataset.builder() @@ -423,6 +487,20 @@ public static DerivedDataset getStagingTableWithFilterSecondPass() .build(); } + public static FilteredDataset getFilteredStagingTableSecondPass() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(getStagingSchema()) + .alias(stagingTableName) + .filter(GreaterThan.of(FieldValue.builder() + .fieldName(batchName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(1L))) + .build(); + } + public static DerivedDataset getDerivedStagingTableWithFilterWithVersion() { return DerivedDataset.builder() @@ -434,6 +512,20 @@ public static DerivedDataset getDerivedStagingTableWithFilterWithVersion() .build(); } + public static FilteredDataset getFilteredStagingTableWithVersion() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(getStagingSchemaWithVersion()) + .alias(stagingTableName) + .filter(GreaterThanEqualTo.of(FieldValue.builder() + .fieldName(batchName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(2L))) + .build(); + } + public static DerivedDataset getStagingTableWithFilterWithVersionSecondPass() { return DerivedDataset.builder() @@ -445,6 +537,20 @@ public static DerivedDataset getStagingTableWithFilterWithVersionSecondPass() .build(); } + public static FilteredDataset getFilteredStagingTableWithVersionSecondPass() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(getStagingSchemaWithVersion()) + .alias(stagingTableName) + .filter(GreaterThanEqualTo.of(FieldValue.builder() + .fieldName(batchName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(3L))) + .build(); + } + public static JsonExternalDatasetReference getBasicJsonDatasetReferenceTable(String dataPath) { return JsonExternalDatasetReference.builder() @@ -719,6 +825,50 @@ public static DatasetDefinition getEntityPriceWithVersionStagingTable() .build(); } + public static FilteredDataset getEntityPriceWithVersionFilteredStagingTable() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .alias(stagingTableName) + .schema(SchemaDefinition.builder() + .addFields(date) + .addFields(entity) + .addFields(price) + .addFields(volume) + .addFields(digest) + .addFields(version) + .build() + ) + .filter(GreaterThanEqualTo.of(FieldValue.builder() + .fieldName(volumeName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(100L))) + .build(); + } + + public static FilteredDataset getEntityPriceWithVersionFilteredStagingTableSecondPass() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .alias(stagingTableName) + .schema(SchemaDefinition.builder() + .addFields(date) + .addFields(entity) + .addFields(price) + .addFields(volume) + .addFields(digest) + .addFields(version) + .build() + ) + .filter(GreaterThanEqualTo.of(FieldValue.builder() + .fieldName(volumeName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(500L))) + .build(); + } + public static DatasetDefinition getBitemporalMainTable() { return DatasetDefinition.builder() @@ -928,6 +1078,46 @@ public static DatasetDefinition getBitemporalFromOnlyStagingTableIdBased() .build(); } + public static FilteredDataset getBitemporalFromOnlyFilteredStagingTableIdBased() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(SchemaDefinition.builder() + .addFields(index) + .addFields(dateTime) + .addFields(balance) + .addFields(digest) + .build() + ) + .alias(stagingTableName) + .filter(LessThanEqualTo.of(FieldValue.builder() + .fieldName(balanceName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(3L))) + .build(); + } + + public static FilteredDataset getBitemporalFromOnlyFilteredStagingTableIdBasedSecondPass() + { + return FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(SchemaDefinition.builder() + .addFields(index) + .addFields(dateTime) + .addFields(balance) + .addFields(digest) + .build() + ) + .alias(stagingTableName) + .filter(LessThanEqualTo.of(FieldValue.builder() + .fieldName(balanceName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(20L))) + .build(); + } + public static DatasetDefinition getBitemporalFromOnlyStagingTableWithoutDuplicatesIdBased() { return DatasetDefinition.builder() diff --git a/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/ingestmode/bitemporal/BitemporalDeltaWithBatchIdTest.java b/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/ingestmode/bitemporal/BitemporalDeltaWithBatchIdTest.java index f45582ddb34..fa339e39789 100644 --- a/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/ingestmode/bitemporal/BitemporalDeltaWithBatchIdTest.java +++ b/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/ingestmode/bitemporal/BitemporalDeltaWithBatchIdTest.java @@ -27,6 +27,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.versioning.DigestBasedResolver; 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.FilteredDataset; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; import org.finos.legend.engine.persistence.components.relational.api.DataSplitRange; import org.junit.jupiter.api.Assertions; @@ -849,6 +850,59 @@ void testMilestoningSourceSpecifiesFromSet5WithDataSplitFilterDuplicates() throw executePlansAndVerifyResultsWithSpecifiedDataSplits(ingestMode, options, datasets, schema, expectedDataPass6, expectedStats, dataSplitRanges); } + /* + Scenario: Test milestoning Logic with only validity from time specified when staging table pre populated + */ + @Test + void testMilestoningSourceSpecifiesFromSet6WithStagingFilter() throws Exception + { + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + FilteredDataset stagingTable = TestUtils.getBitemporalFromOnlyFilteredStagingTableIdBased(); + + String[] schema = new String[] {indexName, balanceName, digestName, startDateTimeName, endDateTimeName, batchIdInName, batchIdOutName}; + + // Create staging table + createStagingTable(TestUtils.getBitemporalFromOnlyStagingTableIdBased()); + + BitemporalDelta ingestMode = BitemporalDelta.builder() + .digestField(digestName) + .transactionMilestoning(BatchId.builder() + .batchIdInName(batchIdInName) + .batchIdOutName(batchIdOutName) + .build()) + .validityMilestoning(ValidDateTime.builder() + .dateTimeFromName(startDateTimeName) + .dateTimeThruName(endDateTimeName) + .validityDerivation(SourceSpecifiesFromDateTime.builder() + .sourceDateTimeFromField(dateTimeName) + .build()) + .build()) + .build(); + + PlannerOptions options = PlannerOptions.builder().cleanupStagingData(false).collectStatistics(true).build(); + Datasets datasets = Datasets.builder().mainDataset(mainTable).stagingDataset(stagingTable).build(); + + // ------------ Perform Pass1 ------------------------ + String dataPass1 = basePathForInput + "source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass1.csv"; + String expectedDataPass1 = basePathForExpected + "source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass1.csv"; + // 1. Load Staging table + loadStagingDataForBitemporalFromOnly(dataPass1); + // 2. Execute Plan and Verify Results + Map expectedStats = createExpectedStatsMap(3, 0, 3, 0, 0); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass1, expectedStats); + + // ------------ Perform Pass2 ------------------------ + // 0. Create new filter + datasets = Datasets.of(mainTable, TestUtils.getBitemporalFromOnlyFilteredStagingTableIdBasedSecondPass()); + String dataPass2 = basePathForInput + "source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass2.csv"; + String expectedDataPass2 = basePathForExpected + "source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass2.csv"; + // 1. Load Staging table + loadStagingDataForBitemporalFromOnly(dataPass2); + // 2. Execute Plan and Verify Results + expectedStats = createExpectedStatsMap(8, 0, 6, 3, 0); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats); + } + /* Scenario: Test milestoning Logic with only validity from time specified when staging table pre populated */ diff --git a/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/ingestmode/bulkload/BulkLoadTest.java b/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/ingestmode/bulkload/BulkLoadTest.java index 4f09b145a66..d58eee0fe64 100644 --- a/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/ingestmode/bulkload/BulkLoadTest.java +++ b/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/ingestmode/bulkload/BulkLoadTest.java @@ -16,7 +16,7 @@ import org.finos.legend.engine.persistence.components.BaseTest; 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.FileFormatType; import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.ingestmode.BulkLoad; import org.finos.legend.engine.persistence.components.ingestmode.IngestMode; @@ -104,8 +104,8 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabledNoTaskId() throws Exce Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList(filePath)).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(Collections.singletonList(filePath)).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -177,8 +177,8 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList(filePath)).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(Collections.singletonList(filePath)).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -195,7 +195,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception .relationalSink(H2Sink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .bulkLoadEventIdValue(TASK_ID_VALUE_1) .build(); GeneratorResult operations = generator.generateOperations(datasets); @@ -250,8 +250,8 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList(filePath)).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(Collections.singletonList(filePath)).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -267,7 +267,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) .collectStatistics(true) - .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .bulkLoadEventIdValue(TASK_ID_VALUE_1) .executionTimestampClock(fixedClock_2000_01_01) .build(); @@ -325,8 +325,8 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList(filePath)).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(Collections.singletonList(filePath)).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -342,7 +342,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) .collectStatistics(true) - .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .bulkLoadEventIdValue(TASK_ID_VALUE_1) .executionTimestampClock(fixedClock_2000_01_01) .caseConversion(CaseConversion.TO_UPPER) .build(); @@ -399,8 +399,8 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabledTwoBatches() throws E Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList(filePath)).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(Collections.singletonList(filePath)).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); @@ -499,7 +499,7 @@ public void testBulkLoadStagedFilesDatasetNotProvided() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) - .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .bulkLoadEventIdValue(TASK_ID_VALUE_1) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) .build(); @@ -533,8 +533,8 @@ public void testBulkLoadStageHasPrimaryKey() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList("src/test/resources/data/bulk-load/input/staged_file1.csv")).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(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(); @@ -546,7 +546,7 @@ public void testBulkLoadStageHasPrimaryKey() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) - .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .bulkLoadEventIdValue(TASK_ID_VALUE_1) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) .build(); @@ -580,8 +580,8 @@ public void testBulkLoadMainHasPrimaryKey() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Collections.singletonList("src/test/resources/data/bulk-load/input/staged_file1.csv")).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(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(); @@ -593,7 +593,7 @@ public void testBulkLoadMainHasPrimaryKey() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) - .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .bulkLoadEventIdValue(TASK_ID_VALUE_1) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) .build(); @@ -615,8 +615,8 @@ public void testBulkLoadMoreThanOneFile() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.CSV) - .addAllFiles(Arrays.asList("src/test/resources/data/bulk-load/input/staged_file1.csv", "src/test/resources/data/bulk-load/input/staged_file2.csv")).build()) + .fileFormat(FileFormatType.CSV) + .addAllFilePaths(Arrays.asList("src/test/resources/data/bulk-load/input/staged_file1.csv", "src/test/resources/data/bulk-load/input/staged_file2.csv")).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); Assertions.fail("Exception was not thrown"); @@ -635,8 +635,8 @@ public void testBulkLoadNotCsvFile() Dataset stagedFilesDataset = StagedFilesDataset.builder() .stagedFilesDatasetProperties( H2StagedFilesDatasetProperties.builder() - .fileFormat(FileFormat.JSON) - .addAllFiles(Arrays.asList("src/test/resources/data/bulk-load/input/staged_file1.json")).build()) + .fileFormat(FileFormatType.JSON) + .addAllFilePaths(Arrays.asList("src/test/resources/data/bulk-load/input/staged_file1.json")).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) .build(); Assertions.fail("Exception was not thrown"); @@ -655,7 +655,7 @@ RelationalIngestor getRelationalIngestor(IngestMode ingestMode, PlannerOptions o .executionTimestampClock(executionTimestampClock) .cleanupStagingData(options.cleanupStagingData()) .collectStatistics(options.collectStatistics()) - .bulkLoadTaskIdValue(taskId) + .bulkLoadEventIdValue(taskId) .enableConcurrentSafety(true) .caseConversion(caseConversion) .build(); @@ -668,14 +668,14 @@ private void verifyBulkLoadMetadata(Map appendMetadata, String f Assertions.assertEquals("main", appendMetadata.get("table_name")); 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))); + Assertions.assertTrue(appendMetadata.get("batch_source_info").toString().contains(String.format("\"file_paths\":[\"%s\"]", fileName))); if (taskId.isPresent()) { - Assertions.assertTrue(appendMetadata.get("batch_source_info").toString().contains(String.format("\"task_id\":\"%s\"", taskId.get()))); + Assertions.assertTrue(appendMetadata.get("batch_source_info").toString().contains(String.format("\"event_id\":\"%s\"", taskId.get()))); } else { - Assertions.assertFalse(appendMetadata.get("batch_source_info").toString().contains("\"task_id\"")); + Assertions.assertFalse(appendMetadata.get("batch_source_info").toString().contains("\"event_id\"")); } } @@ -686,14 +686,14 @@ private void verifyBulkLoadMetadataForUpperCase(Map appendMetada Assertions.assertEquals("MAIN", appendMetadata.get("TABLE_NAME")); 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))); + Assertions.assertTrue(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains(String.format("\"file_paths\":[\"%s\"]", fileName))); if (taskId.isPresent()) { - Assertions.assertTrue(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains(String.format("\"task_id\":\"%s\"", taskId.get()))); + Assertions.assertTrue(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains(String.format("\"event_id\":\"%s\"", taskId.get()))); } else { - Assertions.assertFalse(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains("\"task_id\"")); + Assertions.assertFalse(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains("\"event_id\"")); } } diff --git a/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/ingestmode/nontemporal/AppendOnlyTest.java b/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/ingestmode/nontemporal/AppendOnlyTest.java index 11d59c8ad52..893bc6c1c75 100644 --- a/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/ingestmode/nontemporal/AppendOnlyTest.java +++ b/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/ingestmode/nontemporal/AppendOnlyTest.java @@ -24,14 +24,21 @@ import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditing; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.AllowDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.AllVersionsStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.DigestBasedResolver; import org.finos.legend.engine.persistence.components.ingestmode.versioning.MaxVersionStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.NoVersioningStrategy; 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.FilteredDataset; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; +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.api.RelationalIngestor; +import org.finos.legend.engine.persistence.components.relational.h2.H2DigestUtil; import org.finos.legend.engine.persistence.components.relational.h2.H2Sink; import org.finos.legend.engine.persistence.components.relational.jdbc.JdbcConnection; import org.junit.jupiter.api.Assertions; @@ -46,6 +53,7 @@ import static org.finos.legend.engine.persistence.components.TestUtils.batchUpdateTimeName; import static org.finos.legend.engine.persistence.components.TestUtils.dataSplitName; import static org.finos.legend.engine.persistence.components.TestUtils.digestName; +import static org.finos.legend.engine.persistence.components.TestUtils.digestUDF; import static org.finos.legend.engine.persistence.components.TestUtils.expiryDateName; import static org.finos.legend.engine.persistence.components.TestUtils.idName; import static org.finos.legend.engine.persistence.components.TestUtils.incomeName; @@ -85,7 +93,7 @@ void testAppendOnlyVanillaUpperCase() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(NoAuditing.builder().build()) @@ -130,6 +138,59 @@ void testAppendOnlyVanillaUpperCase() throws Exception Assertions.assertEquals(stagingTableList.size(), 0); } + /* + Scenario: Test Append Only vanilla case + staging table is cleaned up in the end with upper case (2) + */ + @Test + void testAppendOnlyVanillaUpperCaseWithFilteredDataset() throws Exception + { + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + FilteredDataset stagingTable = TestUtils.getFilteredStagingTableWithComplexFilter(); + + // Create staging table + h2Sink.executeStatement("CREATE TABLE IF NOT EXISTS \"TEST\".\"STAGING\"(\"NAME\" VARCHAR(64) NOT NULL,\"INCOME\" BIGINT,\"EXPIRY_DATE\" DATE)"); + + // Generate the milestoning object + AppendOnly ingestMode = AppendOnly.builder() + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) + .deduplicationStrategy(AllowDuplicates.builder().build()) + .versioningStrategy(NoVersioningStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .filterExistingRecords(false) + .build(); + + PlannerOptions options = PlannerOptions.builder().cleanupStagingData(false).collectStatistics(true).build(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + + String[] schema = new String[]{nameName.toUpperCase(), incomeName.toUpperCase(), expiryDateName.toUpperCase()}; + + // ------------ Perform incremental (append) milestoning With Clean Staging Table ------------------------ + String dataPass1 = basePath + "input/with_staging_filter/data_pass1.csv"; + String expectedDataPass1 = basePath + "expected/with_staging_filter/expected_pass1.csv"; + // 1. Load staging table + loadStagingDataWithNoPkInUpperCase(dataPass1); + // 2. Execute plans and verify results + Map expectedStats = new HashMap<>(); + expectedStats.put(StatisticName.INCOMING_RECORD_COUNT.name(), 2); + expectedStats.put(StatisticName.ROWS_DELETED.name(), 0); + expectedStats.put(StatisticName.ROWS_UPDATED.name(), 0); + expectedStats.put(StatisticName.ROWS_TERMINATED.name(), 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass1, expectedStats); + + // ------------ Perform incremental (append) milestoning With Clean Staging Table ------------------------ + String dataPass2 = basePath + "input/with_staging_filter/data_pass2.csv"; + String expectedDataPass2 = basePath + "expected/with_staging_filter/expected_pass2.csv"; + // 1. Load staging table + loadStagingDataWithNoPkInUpperCase(dataPass2); + // 2. Execute plans and verify results + expectedStats = new HashMap<>(); + expectedStats.put(StatisticName.INCOMING_RECORD_COUNT.name(), 2); + expectedStats.put(StatisticName.ROWS_DELETED.name(), 0); + expectedStats.put(StatisticName.ROWS_UPDATED.name(), 0); + expectedStats.put(StatisticName.ROWS_TERMINATED.name(), 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats); + } + /* Scenario: Test Append Only with auditing, no versioning, filter duplicates and filter existing records (1) */ @@ -144,7 +205,7 @@ void testAppendOnlyWithAuditingNoVersioningFilterDuplicatesFilterExistingRecords // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) @@ -189,7 +250,7 @@ void testAppendOnlyWithAuditingMaxVersionFilterDuplicatesFilterExistingRecordsUp // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(MaxVersionStrategy.builder() .versioningField(versionName) @@ -238,7 +299,7 @@ void testAppendOnlyWithAuditingMaxVersionFilterDuplicatesNoFilterExistingRecords // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(MaxVersionStrategy.builder() .versioningField(versionName) @@ -288,7 +349,7 @@ void testAppendOnlyWithAuditingAllVersionFilterDuplicatesFilterExistingRecords() // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder() .versioningField(versionName) @@ -345,7 +406,7 @@ void testAppendOnlyWithAuditingAllVersionFilterDuplicatesNoFilterExistingRecords // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder() .versioningField(versionName) @@ -388,6 +449,183 @@ void testAppendOnlyWithAuditingAllVersionFilterDuplicatesNoFilterExistingRecords executePlansAndVerifyResultsWithDerivedDataSplits(ingestMode, options, datasets, schema, expectedDataPass2, expectedStatsList, incrementalClock); } + /* + Scenario: Scenario: Test Append Only vanilla case + staging table is cleaned up in the end with upper case with UDF based digest generation + */ + @Test + void testAppendOnlyWithUDFDigestGeneration() throws Exception + { + // Register UDF + H2DigestUtil.registerMD5Udf(h2Sink, digestUDF); + + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + DatasetDefinition stagingTable = TestUtils.getStagingTableWithNoPks(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + + // Create staging table + h2Sink.executeStatement("CREATE TABLE IF NOT EXISTS \"TEST\".\"STAGING\"(\"NAME\" VARCHAR(64) NOT NULL,\"INCOME\" BIGINT,\"EXPIRY_DATE\" DATE)"); + + // Generate the milestoning object + AppendOnly ingestMode = AppendOnly.builder() + .deduplicationStrategy(AllowDuplicates.builder().build()) + .versioningStrategy(NoVersioningStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .filterExistingRecords(false) + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(digestUDF).digestField(digestName).build()) + .build(); + + // Verify SQLs using generator + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(ingestMode) + .relationalSink(H2Sink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .caseConversion(CaseConversion.TO_UPPER) + .build(); + + GeneratorResult operations = generator.generateOperations(datasets); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"TEST\".\"MAIN\"" + + "(\"NAME\" VARCHAR(64) NOT NULL,\"INCOME\" BIGINT,\"EXPIRY_DATE\" DATE,\"DIGEST\" VARCHAR)"; + + String expectedIngestSql = "INSERT INTO \"TEST\".\"MAIN\" " + + "(\"NAME\", \"INCOME\", \"EXPIRY_DATE\", \"DIGEST\") " + + "(SELECT staging.\"NAME\" as \"NAME\",staging.\"INCOME\" as \"INCOME\",staging.\"EXPIRY_DATE\" as \"EXPIRY_DATE\"," + + "LAKEHOUSE_MD5(ARRAY['NAME','INCOME','EXPIRY_DATE'],ARRAY[CONVERT(staging.\"NAME\",VARCHAR),CONVERT(staging.\"INCOME\",VARCHAR),CONVERT(staging.\"EXPIRY_DATE\",VARCHAR)]) " + + "FROM \"TEST\".\"STAGING\" as staging)"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); + + + // Verify execution using ingestor + PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); + String[] schema = new String[]{nameName.toUpperCase(), incomeName.toUpperCase(), expiryDateName.toUpperCase(), digestName.toUpperCase()}; + + // ------------ Perform incremental (append) milestoning With Clean Staging Table ------------------------ + String dataPass1 = basePath + "input/digest_generation/data_pass1.csv"; + String expectedDataPass1 = basePath + "expected/digest_generation/expected_pass1.csv"; + // 1. Load staging table + loadStagingDataWithNoPkInUpperCase(dataPass1); + // 2. Execute plans and verify results + Map expectedStats = new HashMap<>(); + expectedStats.put(StatisticName.INCOMING_RECORD_COUNT.name(), 3); + expectedStats.put(StatisticName.ROWS_DELETED.name(), 0); + expectedStats.put(StatisticName.ROWS_UPDATED.name(), 0); + expectedStats.put(StatisticName.ROWS_TERMINATED.name(), 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass1, expectedStats); + // 3. Assert that the staging table is truncated + List> stagingTableList = h2Sink.executeQuery("select * from \"TEST\".\"STAGING\""); + Assertions.assertEquals(stagingTableList.size(), 0); + + // ------------ Perform incremental (append) milestoning With Clean Staging Table ------------------------ + String dataPass2 = basePath + "input/digest_generation/data_pass2.csv"; + String expectedDataPass2 = basePath + "expected/digest_generation/expected_pass2.csv"; + // 1. Load staging table + loadStagingDataWithNoPkInUpperCase(dataPass2); + // 2. Execute plans and verify results + expectedStats = new HashMap<>(); + expectedStats.put(StatisticName.INCOMING_RECORD_COUNT.name(), 3); + expectedStats.put(StatisticName.ROWS_DELETED.name(), 0); + expectedStats.put(StatisticName.ROWS_UPDATED.name(), 0); + expectedStats.put(StatisticName.ROWS_TERMINATED.name(), 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats); + // 3. Assert that the staging table is truncated + stagingTableList = h2Sink.executeQuery("select * from \"TEST\".\"STAGING\""); + Assertions.assertEquals(stagingTableList.size(), 0); + } + + /* + Scenario: Test Append Only with auditing, all version, filter duplicates and no filter existing records with UDF based digest generation + */ + @Test + void testAppendOnlyWithUDFDigestGeneration2() throws Exception + { + // Register UDF + H2DigestUtil.registerMD5Udf(h2Sink, digestUDF); + + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + DatasetDefinition stagingTable = TestUtils.getStagingTableWithNonPkVersionWithoutDigest(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + IncrementalClock incrementalClock = new IncrementalClock(fixedExecutionZonedDateTime1.toInstant(), ZoneOffset.UTC, 1000); + + // Create staging table + createStagingTableWithoutPks(stagingTable); + + // Generate the milestoning object + AppendOnly ingestMode = AppendOnly.builder() + .deduplicationStrategy(FilterDuplicates.builder().build()) + .versioningStrategy(AllVersionsStrategy.builder() + .versioningField(versionName) + .dataSplitFieldName(dataSplitName) + .mergeDataVersionResolver(DigestBasedResolver.INSTANCE) + .performStageVersioning(true) + .build()) + .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) + .filterExistingRecords(false) + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(digestUDF).digestField(digestName).build()) + .build(); + + // Verify SQLs using generator + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(ingestMode) + .relationalSink(H2Sink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(datasets); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"TEST\".\"main\"" + + "(\"id\" INTEGER NOT NULL,\"name\" VARCHAR(64) NOT NULL,\"income\" BIGINT,\"start_time\" TIMESTAMP NOT NULL,\"expiry_date\" DATE,\"version\" INTEGER,\"batch_update_time\" TIMESTAMP NOT NULL,\"digest\" VARCHAR,PRIMARY KEY (\"id\", \"start_time\", \"batch_update_time\"))"; + + String expectedIngestSql = "INSERT INTO \"TEST\".\"main\" " + + "(\"id\", \"name\", \"income\", \"start_time\", \"expiry_date\", \"version\", \"digest\", \"batch_update_time\") " + + "(SELECT staging.\"id\" as \"id\",staging.\"name\" as \"name\",staging.\"income\" as \"income\",staging.\"start_time\" as \"start_time\",staging.\"expiry_date\" as \"expiry_date\",staging.\"version\" as \"version\"," + + "LAKEHOUSE_MD5(ARRAY['id','name','income','start_time','expiry_date','version'],ARRAY[CONVERT(staging.\"id\",VARCHAR),CONVERT(staging.\"name\",VARCHAR),CONVERT(staging.\"income\",VARCHAR),CONVERT(staging.\"start_time\",VARCHAR),CONVERT(staging.\"expiry_date\",VARCHAR),CONVERT(staging.\"version\",VARCHAR)])," + + "'2000-01-01 00:00:00.000000' " + + "FROM \"TEST\".\"staging_legend_persistence_temp_staging\" as staging WHERE (staging.\"data_split\" >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (staging.\"data_split\" <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); + + + // Verify execution using ingestor + PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); + String[] schema = new String[]{idName, nameName, incomeName, startTimeName, expiryDateName, versionName, digestName, batchUpdateTimeName}; + + // ------------ Perform incremental (append) milestoning Pass1 ------------------------ + String dataPass1 = basePath + "input/digest_generation2/data_pass1.csv"; + String expectedDataPass1 = basePath + "expected/digest_generation2/expected_pass1.csv"; + // 1. Load staging table + loadStagingDataWithVersionWithoutDigest(dataPass1); + // 2. Execute plans and verify results + List> expectedStatsList = new ArrayList<>(); + Map expectedStats1 = createExpectedStatsMap(3, 0, 3, 0, 0); + Map expectedStats2 = createExpectedStatsMap(1, 0, 1, 0, 0); + expectedStatsList.add(expectedStats1); + expectedStatsList.add(expectedStats2); + executePlansAndVerifyResultsWithDerivedDataSplits(ingestMode, options, datasets, schema, expectedDataPass1, expectedStatsList, incrementalClock); + + // ------------ Perform incremental (append) milestoning Pass2 ------------------------ + String dataPass2 = basePath + "input/digest_generation2/data_pass2.csv"; + String expectedDataPass2 = basePath + "expected/digest_generation2/expected_pass2.csv"; + // 1. Load staging table + loadStagingDataWithVersionWithoutDigest(dataPass2); + // 2. Execute plans and verify results + expectedStatsList = new ArrayList<>(); + expectedStats1 = createExpectedStatsMap(4, 0, 3, 0, 0); + expectedStatsList.add(expectedStats1); + expectedStatsList.add(expectedStats2); + executePlansAndVerifyResultsWithDerivedDataSplits(ingestMode, options, datasets, schema, expectedDataPass2, expectedStatsList, incrementalClock); + } + /* Scenario: test Append Only with auditing, no version, allow duplicates and filter existing records when staging data is imported along with digest field population */ @@ -400,7 +638,7 @@ void testAppendOnlyWithStagingDataImportedWithPopulateDigest() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) @@ -439,7 +677,7 @@ void testAppendOnlyWithLessColumnsInStaging() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) @@ -480,7 +718,7 @@ void testAppendOnlyDoNotCreateTables() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(NoAuditing.builder().build()) diff --git a/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/ingestmode/nontemporal/NontemporalDeltaTest.java b/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/ingestmode/nontemporal/NontemporalDeltaTest.java index b0dfc3d65a8..5eb28d99c2c 100644 --- a/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/ingestmode/nontemporal/NontemporalDeltaTest.java +++ b/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/ingestmode/nontemporal/NontemporalDeltaTest.java @@ -32,9 +32,13 @@ import org.finos.legend.engine.persistence.components.ingestmode.versioning.DigestBasedResolver; import org.finos.legend.engine.persistence.components.ingestmode.versioning.MaxVersionStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.VersionColumnBasedResolver; +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.DatasetDefinition; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DerivedDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FilteredDataset; +import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; +import org.finos.legend.engine.persistence.components.logicalplan.values.NumericalValue; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; import org.finos.legend.engine.persistence.components.relational.api.DataSplitRange; import org.finos.legend.engine.persistence.components.versioning.TestDedupAndVersioning; @@ -45,7 +49,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.logging.Filter; import static org.finos.legend.engine.persistence.components.TestUtils.*; @@ -1007,4 +1010,79 @@ void testNonTemporalDeltaWithAllVersionDigestBasedAndStagingFilters() throws Exc executePlansAndVerifyResultsWithDerivedDataSplits(ingestMode, options, datasets, schema, expectedDataPass2, expectedStatsList, fixedClock_2000_01_01); } + @Test + void testNonTemporalDeltaWithAllVersionDigestBasedAndFilteredDataset() throws Exception + { + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + DatasetDefinition stagingDataset = DatasetDefinition.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(TestDedupAndVersioning.baseSchemaWithVersionAndBatch) + .build(); + + createStagingTableWithoutPks(stagingDataset); + FilteredDataset stagingTable = FilteredDataset.builder() + .group(testSchemaName) + .name(stagingTableName) + .schema(TestDedupAndVersioning.baseSchemaWithVersion) + .filter(Equals.of(FieldValue.builder() + .fieldName(batchName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(1L))) + .build(); + String path = "src/test/resources/data/incremental-delta-milestoning/input/with_staging_filter/with_all_version/digest_based/data1.csv"; + TestDedupAndVersioning.loadDataIntoStagingTableWithVersionAndBatch(path); + + // Generate the milestoning object + NontemporalDelta ingestMode = NontemporalDelta.builder() + .digestField(digestName) + .auditing(NoAuditing.builder().build()) + .versioningStrategy(AllVersionsStrategy.builder() + .versioningField(versionName) + .mergeDataVersionResolver(DigestBasedResolver.INSTANCE) + .performStageVersioning(true) + .build()) + .build(); + + PlannerOptions options = PlannerOptions.builder().cleanupStagingData(false).collectStatistics(true).build(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + + String[] schema = new String[]{idName, nameName, versionName, incomeName, expiryDateName, digestName}; + + // ------------ Perform incremental (delta) milestoning Pass1 ------------------------ + String expectedDataPass1 = basePath + "expected/with_staging_filter/with_all_version/digest_based/expected_pass1.csv"; + // 2. Execute plans and verify results + List> expectedStatsList = new ArrayList<>(); + Map expectedStats1 = new HashMap<>(); + expectedStats1.put(StatisticName.INCOMING_RECORD_COUNT.name(), 3); + expectedStats1.put(StatisticName.ROWS_TERMINATED.name(), 0); + expectedStats1.put(StatisticName.ROWS_DELETED.name(), 0); + Map expectedStats2 = new HashMap<>(); + expectedStats2.put(StatisticName.INCOMING_RECORD_COUNT.name(), 1); + expectedStats2.put(StatisticName.ROWS_TERMINATED.name(), 0); + expectedStats2.put(StatisticName.ROWS_DELETED.name(), 0); + Map expectedStats3 = new HashMap<>(); + expectedStats3.put(StatisticName.INCOMING_RECORD_COUNT.name(), 1); + expectedStats3.put(StatisticName.ROWS_TERMINATED.name(), 0); + expectedStats3.put(StatisticName.ROWS_DELETED.name(), 0); + expectedStatsList.add(expectedStats1); + expectedStatsList.add(expectedStats2); + expectedStatsList.add(expectedStats3); + executePlansAndVerifyResultsWithDerivedDataSplits(ingestMode, options, datasets, schema, expectedDataPass1, expectedStatsList, fixedClock_2000_01_01); + + // ------------ Perform incremental (delta) milestoning Pass2 Filter Duplicates ------------------------ + String expectedDataPass2 = basePath + "expected/with_staging_filter/with_all_version/digest_based/expected_pass2.csv"; + expectedStatsList = new ArrayList<>(); + Map expectedStats4 = new HashMap<>(); + expectedStats4.put(StatisticName.INCOMING_RECORD_COUNT.name(), 3); + expectedStats4.put(StatisticName.ROWS_TERMINATED.name(), 0); + expectedStats4.put(StatisticName.ROWS_DELETED.name(), 0); + expectedStatsList.add(expectedStats4); + stagingTable = stagingTable.withFilter(Equals.of(FieldValue.builder() + .fieldName(batchName) + .datasetRefAlias(stagingTableName) + .build(), NumericalValue.of(2L))); + datasets = Datasets.of(mainTable, stagingTable); + executePlansAndVerifyResultsWithDerivedDataSplits(ingestMode, options, datasets, schema, expectedDataPass2, expectedStatsList, fixedClock_2000_01_01); + } } \ 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/java/org/finos/legend/engine/persistence/components/ingestmode/nontemporal/NontemporalSnapshotTest.java b/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/ingestmode/nontemporal/NontemporalSnapshotTest.java index 9e1ce6ca59b..61b05cc6966 100644 --- a/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/ingestmode/nontemporal/NontemporalSnapshotTest.java +++ b/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/ingestmode/nontemporal/NontemporalSnapshotTest.java @@ -26,6 +26,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.versioning.NoVersioningStrategy; 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.FilteredDataset; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; import org.finos.legend.engine.persistence.components.versioning.TestDedupAndVersioning; import org.junit.jupiter.api.Assertions; @@ -95,6 +96,48 @@ void testNontemporalSnapshotNoAuditing() throws Exception executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats); } + /* + Scenario: Test Nontemporal Snapshot with no auditing + */ + @Test + void testNontemporalSnapshotNoAuditingWithFilteredDataset() throws Exception + { + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + FilteredDataset stagingTable = TestUtils.getFilteredStagingTable(); + + // Create staging table + DatasetDefinition stagingTableForDB = TestUtils.getStagingTableWithFilterForDB(); + createStagingTable(stagingTableForDB); + + // Generate the milestoning object + NontemporalSnapshot ingestMode = NontemporalSnapshot.builder().auditing(NoAuditing.builder().build()).build(); + PlannerOptions options = PlannerOptions.builder().cleanupStagingData(false).collectStatistics(true).build(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + + String[] schema = new String[]{idName, nameName, incomeName, startTimeName, expiryDateName, digestName}; + + // ------------ Perform snapshot milestoning Pass1 ------------------------ + String dataPass1 = basePath + "input/with_staging_filter/data_pass1.csv"; + String expectedDataPass1 = basePath + "expected/with_staging_filter/expected_pass1.csv"; + // 1. Load staging table + loadStagingDataWithFilter(dataPass1); + // 2. Execute plans and verify results + Map expectedStats = createExpectedStatsMap(5, 0, 5, 0, 0); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass1, expectedStats); + + // ------------ Perform snapshot milestoning Pass2 ------------------------ + // 0. Create new filter + datasets = Datasets.of(mainTable, TestUtils.getFilteredStagingTableSecondPass()); + String dataPass2 = basePath + "input/with_staging_filter/data_pass2.csv"; + String expectedDataPass2 = basePath + "expected/with_staging_filter/expected_pass2.csv"; + // 1. Load staging table + loadStagingDataWithFilter(dataPass2); + // 2. Execute plans and verify results + expectedStats.clear(); + expectedStats = createExpectedStatsMap(3, 5, 3, 0, 0); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats); + } + /* Scenario: Test Nontemporal Snapshot when auditing is enabled */ @@ -352,6 +395,4 @@ void testNontemporalSnapshotWithFailOnDupsNoVersioning() throws Exception Assertions.assertEquals("Encountered Duplicates, Failing the batch as Fail on Duplicates is set as Deduplication strategy", e.getMessage()); } } - - } diff --git a/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/ingestmode/unitemporal/UnitemporalDeltaTest.java b/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/ingestmode/unitemporal/UnitemporalDeltaTest.java index c5a6709584f..01adb8d1f12 100644 --- a/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/ingestmode/unitemporal/UnitemporalDeltaTest.java +++ b/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/ingestmode/unitemporal/UnitemporalDeltaTest.java @@ -30,6 +30,7 @@ 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.DerivedDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FilteredDataset; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; import org.finos.legend.engine.persistence.components.relational.api.IngestorResult; import org.junit.jupiter.api.Assertions; @@ -886,6 +887,65 @@ void testMilestoningWithFilterStagingTableWithMaxVersioningGreaterThanWithDedupW executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass3, expectedStats); } + @Test + void testMilestoningWithMaxVersioningGreaterThanWithDedupWithFilteredDatasetWithUpperCase() throws Exception + { + DatasetDefinition mainTable = TestUtils.getUnitemporalMainTableWithVersion(); + FilteredDataset stagingTable = TestUtils.getFilteredStagingTableWithVersion(); + + String[] schema = new String[]{idName.toUpperCase(), nameName.toUpperCase(), incomeName.toUpperCase(), startTimeName.toUpperCase(), expiryDateName.toUpperCase(), digestName.toUpperCase(), versionName.toUpperCase(), batchIdInName.toUpperCase(), batchIdOutName.toUpperCase(), batchTimeInName.toUpperCase(), batchTimeOutName.toUpperCase()}; + + // Create staging table + h2Sink.executeStatement("CREATE TABLE IF NOT EXISTS \"TEST\".\"STAGING\"(\"ID\" INTEGER NOT NULL,\"NAME\" VARCHAR(64) NOT NULL,\"INCOME\" BIGINT,\"START_TIME\" TIMESTAMP NOT NULL,\"EXPIRY_DATE\" DATE,\"DIGEST\" VARCHAR,\"VERSION\" INT,\"BATCH\" INT,PRIMARY KEY (\"ID\", \"START_TIME\", \"VERSION\", \"BATCH\"))"); + + UnitemporalDelta ingestMode = UnitemporalDelta.builder() + .digestField(digestName) + .transactionMilestoning(BatchIdAndDateTime.builder() + .batchIdInName(batchIdInName) + .batchIdOutName(batchIdOutName) + .dateTimeInName(batchTimeInName) + .dateTimeOutName(batchTimeOutName) + .build()) + .versioningStrategy(MaxVersionStrategy.builder() + .versioningField(versionName) + .mergeDataVersionResolver(VersionColumnBasedResolver.of(VersionComparator.GREATER_THAN)) + .performStageVersioning(true) + .build()) + .build(); + + PlannerOptions options = PlannerOptions.builder().cleanupStagingData(false).collectStatistics(true).build(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + + // ------------ Perform Pass1 ------------------------ + String dataPass1 = basePathForInput + "with_staging_filter/with_max_versioning/greater_than/with_dedup/staging_data_pass1.csv"; + String expectedDataPass1 = basePathForExpected + "with_staging_filter/with_max_versioning/greater_than/with_dedup/expected_pass1.csv"; + // 1. Load staging table + loadStagingDataWithFilterWithVersionInUpperCase(dataPass1); + // 2. Execute plans and verify results + Map expectedStats = createExpectedStatsMap(3, 0, 3, 0, 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass1, expectedStats, fixedClock_2000_01_01); + + // ------------ Perform Pass2 ------------------------ + // 0. Create new filter + datasets = Datasets.of(mainTable, TestUtils.getFilteredStagingTableWithVersionSecondPass()); + String dataPass2 = basePathForInput + "with_staging_filter/with_max_versioning/greater_than/with_dedup/staging_data_pass2.csv"; + String expectedDataPass2 = basePathForExpected + "with_staging_filter/with_max_versioning/greater_than/with_dedup/expected_pass2.csv"; + // 1. Load staging table + loadStagingDataWithFilterWithVersionInUpperCase(dataPass2); + // 2. Execute plans and verify results + expectedStats = createExpectedStatsMap(9, 0, 1, 1, 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats, fixedClock_2000_01_01); + + // ------------ Perform Pass3 empty batch (No Impact) ------------------------- + String dataPass3 = "src/test/resources/data/empty_file.csv"; + String expectedDataPass3 = basePathForExpected + "with_staging_filter/with_max_versioning/greater_than/with_dedup/expected_pass3.csv"; + // 1. Load staging table + loadStagingDataWithFilterWithVersionInUpperCase(dataPass3); + // 2. Execute plans and verify results + expectedStats = createExpectedStatsMap(0, 0, 0, 0, 0); + executePlansAndVerifyForCaseConversion(ingestMode, options, datasets, schema, expectedDataPass3, expectedStats); + } + @Test void testMilestoningWithMaxVersioningFail() throws Exception { diff --git a/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/ingestmode/unitemporal/UnitemporalSnapshotTest.java b/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/ingestmode/unitemporal/UnitemporalSnapshotTest.java index 8ab15d09f9f..f4642b4039a 100644 --- a/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/ingestmode/unitemporal/UnitemporalSnapshotTest.java +++ b/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/ingestmode/unitemporal/UnitemporalSnapshotTest.java @@ -26,6 +26,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.versioning.MaxVersionStrategy; 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.FilteredDataset; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; import org.finos.legend.engine.persistence.components.util.MetadataDataset; import org.junit.jupiter.api.Assertions; @@ -526,6 +527,70 @@ void testUnitemporalSnapshotMilestoningLogicMaxVersionWithPartitionFilterDuplica executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass3, expectedStats, fixedClock_2000_01_01); } + /* + Scenario: Test milestoning Logic with max version and with Partition when staging table pre populated + */ + @Test + void testUnitemporalSnapshotMilestoningLogicMaxVersionWithPartitionFilterDuplicatesWithFilteredDataset() throws Exception + { + DatasetDefinition mainTable = TestUtils.getDefaultMainTable(); + FilteredDataset stagingTable = TestUtils.getEntityPriceWithVersionFilteredStagingTable(); + + String[] schema = new String[]{dateName, entityName, priceName, volumeName, digestName, versionName, batchIdInName, batchIdOutName, batchTimeInName, batchTimeOutName}; + + // Create staging table + createStagingTableWithoutPks(TestUtils.getEntityPriceWithVersionStagingTable()); + + UnitemporalSnapshot ingestMode = UnitemporalSnapshot.builder() + .digestField(digestName) + .transactionMilestoning(BatchIdAndDateTime.builder() + .batchIdInName(batchIdInName) + .batchIdOutName(batchIdOutName) + .dateTimeInName(batchTimeInName) + .dateTimeOutName(batchTimeOutName) + .build()) + .addAllPartitionFields(Collections.singletonList(dateName)) + .versioningStrategy(MaxVersionStrategy.builder() + .versioningField(versionName) + .mergeDataVersionResolver(DigestBasedResolver.builder().build()) + .performStageVersioning(true) + .build()) + .deduplicationStrategy(FilterDuplicates.builder().build()) + .build(); + + PlannerOptions options = PlannerOptions.builder().collectStatistics(true).cleanupStagingData(false).build(); + Datasets datasets = Datasets.of(mainTable, stagingTable); + + // ------------ Perform unitemporal snapshot milestoning Pass1 ------------------------ + String dataPass1 = basePathForInput + "with_staging_filter/staging_data_pass1.csv"; + String expectedDataPass1 = basePathForExpected + "with_staging_filter/expected_pass1.csv"; + // 1. Load staging table + loadStagingDataForWithPartitionWithVersion(dataPass1); + // 2. Execute plans and verify results + Map expectedStats = createExpectedStatsMap(6, 0, 4, 0, 0); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass1, expectedStats, fixedClock_2000_01_01); + + // ------------ Perform unitemporal snapshot milestoning Pass2 ------------------------ + // 0. Create new filter + datasets = Datasets.of(mainTable, TestUtils.getEntityPriceWithVersionFilteredStagingTableSecondPass()); + String dataPass2 = basePathForInput + "with_staging_filter/staging_data_pass2.csv"; + String expectedDataPass2 = basePathForExpected + "with_staging_filter/expected_pass2.csv"; + // 1. Load staging table + loadStagingDataForWithPartitionWithVersion(dataPass2); + // 2. Execute plans and verify results + expectedStats = createExpectedStatsMap(1, 0, 1, 0, 2); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass2, expectedStats, fixedClock_2000_01_01); + + // ------------ Perform unitemporal snapshot milestoning Pass3 (Empty Batch) ------------------------ + String dataPass3 = "src/test/resources/data/empty_file.csv"; + String expectedDataPass3 = basePathForExpected + "with_staging_filter/expected_pass3.csv"; + // 1. Load Staging table + loadStagingDataForWithPartitionWithVersion(dataPass3); + // 2. Execute plans and verify results + expectedStats = createExpectedStatsMap(0, 0, 0, 0, 0); + executePlansAndVerifyResults(ingestMode, options, datasets, schema, expectedDataPass3, expectedStats, fixedClock_2000_01_01); + } + /* Scenario: Test milestoning Logic with max version and with Partition when staging table pre populated with upper case */ diff --git a/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/logicalplan/operations/SchemaEvolutionTest.java b/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/logicalplan/operations/SchemaEvolutionTest.java index b59eb9776c2..f350510e5e1 100644 --- a/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/logicalplan/operations/SchemaEvolutionTest.java +++ b/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/logicalplan/operations/SchemaEvolutionTest.java @@ -17,11 +17,10 @@ import org.finos.legend.engine.persistence.components.BaseTest; import org.finos.legend.engine.persistence.components.TestUtils; 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.ingestmode.AppendOnly; 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.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition; import org.finos.legend.engine.persistence.components.planner.PlannerOptions; import org.finos.legend.engine.persistence.components.relational.api.IngestorResult; @@ -31,7 +30,6 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -57,7 +55,7 @@ void testAddColumn() throws Exception createTempTable(mainTable); AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -109,7 +107,7 @@ void testDataTypeConversion() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -162,7 +160,7 @@ void testDataTypeSizeChange() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -217,7 +215,7 @@ void testColumnNullabilityChange() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -270,7 +268,7 @@ void testDataTypeConversionAndColumnNullabilityChange() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -325,7 +323,7 @@ void testDataTypeConversionAndDataTypeSizeChange() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -380,7 +378,7 @@ void testMakeMainColumnNullable() throws Exception createTempTable(mainTable); AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); @@ -433,7 +431,7 @@ void testSchemaEvolutionFailPKTypeDifferent() throws Exception // Generate the milestoning object AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestName) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestName).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeName).build()) .build(); diff --git a/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/versioning/TestDedupAndVersioning.java b/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/versioning/TestDedupAndVersioning.java index 984e5ab7277..30e7c601748 100644 --- a/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/versioning/TestDedupAndVersioning.java +++ b/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/versioning/TestDedupAndVersioning.java @@ -26,6 +26,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.deduplication.AllowDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FailOnDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.AllVersionsStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.DigestBasedResolver; import org.finos.legend.engine.persistence.components.ingestmode.versioning.MaxVersionStrategy; @@ -188,7 +189,7 @@ void testNoDedupAllVersioningDoNotPerform() Datasets datasets = Datasets.of(mainTable, stagingTable); IngestMode ingestMode = AppendOnly.builder() .auditing(DateTimeAuditing.builder().dateTimeField("append_time").build()) - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder().versioningField("version").performStageVersioning(false).mergeDataVersionResolver(DigestBasedResolver.INSTANCE).build()) .build(); @@ -207,7 +208,7 @@ void testNoDedupAllVersion() throws Exception Datasets datasets = Datasets.of(mainTable, stagingTable); IngestMode ingestMode = AppendOnly.builder() .auditing(DateTimeAuditing.builder().dateTimeField("append_time").build()) - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder().versioningField("version") .mergeDataVersionResolver(DigestBasedResolver.INSTANCE).performStageVersioning(true).build()) @@ -323,7 +324,7 @@ void testFilterDupsAllVersionDoNotPerform() throws Exception Datasets datasets = Datasets.of(mainTable, stagingTable); IngestMode ingestMode = AppendOnly.builder() .auditing(DateTimeAuditing.builder().dateTimeField("append_time").build()) - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder().versioningField("version") .mergeDataVersionResolver(DigestBasedResolver.INSTANCE).performStageVersioning(false).build()) @@ -348,7 +349,7 @@ void testFilterDupsAllVersion() throws Exception Datasets datasets = Datasets.of(mainTable, stagingTable); IngestMode ingestMode = AppendOnly.builder() .auditing(DateTimeAuditing.builder().dateTimeField("append_time").build()) - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder().versioningField("version") .mergeDataVersionResolver(DigestBasedResolver.INSTANCE).performStageVersioning(true).build()) @@ -489,7 +490,7 @@ void testFailOnDupsAllVersionDoNotPerform() throws Exception Datasets datasets = Datasets.of(mainTable, stagingTable); IngestMode ingestMode = AppendOnly.builder() .auditing(DateTimeAuditing.builder().dateTimeField("append_time").build()) - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) .deduplicationStrategy(FailOnDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder().versioningField("version") .mergeDataVersionResolver(DigestBasedResolver.INSTANCE).performStageVersioning(false).build()) @@ -529,7 +530,7 @@ void testFailOnDupsAllVersion() throws Exception Datasets datasets = Datasets.of(mainTable, stagingTable); IngestMode ingestMode = AppendOnly.builder() .auditing(DateTimeAuditing.builder().dateTimeField("append_time").build()) - .digestField("digest") + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField("digest").build()) .deduplicationStrategy(FailOnDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder().versioningField("version") .mergeDataVersionResolver(DigestBasedResolver.INSTANCE).performStageVersioning(true).build()) @@ -659,6 +660,4 @@ private void verifyResults(String expectedDataPath, String [] schema) throws IOE List> tableData = h2Sink.executeQuery(String.format("select * from \"TEST\".\"%s\"", tempStagingTableName)); TestUtils.assertFileAndTableDataEquals(schema, expectedDataPath, tableData); } - - } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass1.csv new file mode 100644 index 00000000000..203200dfdd5 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass1.csv @@ -0,0 +1,3 @@ +1,1,DIGEST1,2022-01-02 00:00:00.0,2022-01-05 00:00:00.0,1,999999999 +1,2,DIGEST2,2022-01-05 00:00:00.0,9999-12-31 23:59:59.0,1,999999999 +2,3,DIGEST3,2022-01-02 00:00:00.0,9999-12-31 23:59:59.0,1,999999999 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass2.csv new file mode 100644 index 00000000000..ca1c9be0742 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/expected/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/expected_pass2.csv @@ -0,0 +1,12 @@ +1,1,DIGEST1,2022-01-02 00:00:00.0,2022-01-05 00:00:00.0,1,1 +1,2,DIGEST2,2022-01-05 00:00:00.0,9999-12-31 23:59:59.0,1,1 +2,3,DIGEST3,2022-01-02 00:00:00.0,9999-12-31 23:59:59.0,1,1 +1,4,DIGEST4,2022-01-01 00:00:00.0,2022-01-02 00:00:00.0,2,999999999 +1,5,DIGEST5,2022-01-03 00:00:00.0,2022-01-04 00:00:00.0,2,999999999 +1,6,DIGEST6,2022-01-04 00:00:00.0,2022-01-05 00:00:00.0,2,999999999 +1,11,DIGEST11,2022-01-05 00:00:00.0,2022-01-07 00:00:00.0,2,999999999 +1,7,DIGEST7,2022-01-07 00:00:00.0,9999-12-31 23:59:59.0,2,999999999 +2,8,DIGEST8,2022-01-02 00:00:00.0,2022-01-05 00:00:00.0,2,999999999 +2,10,DIGEST10,2022-01-05 00:00:00.0,9999-12-31 23:59:59.0,2,999999999 +3,9,DIGEST9,2022-01-07 00:00:00.0,9999-12-31 23:59:59.0,2,999999999 +1,1,DIGEST1,2022-01-02 00:00:00.0,2022-01-03 00:00:00.0,2,999999999 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass1.csv new file mode 100644 index 00000000000..27a901a4005 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass1.csv @@ -0,0 +1,5 @@ +1,2022-01-02 00:00:00.0,1,DIGEST1 +1,2022-01-05 00:00:00.0,2,DIGEST2 +2,2022-01-02 00:00:00.0,3,DIGEST3 +2,2022-01-05 00:00:00.0,4,DIGEST4 +3,2022-01-02 00:00:00.0,5,DIGEST5 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass2.csv new file mode 100644 index 00000000000..365aef453f6 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bitemporal-incremental-milestoning/input/batch_id_based/source_specifies_from/without_delete_ind/set_6_with_staging_filter/staging_data_pass2.csv @@ -0,0 +1,10 @@ +1,2022-01-01 00:00:00.0,4,DIGEST4 +1,2022-01-02 00:00:00.0,100,DIGEST12 +1,2022-01-03 00:00:00.0,5,DIGEST5 +1,2022-01-04 00:00:00.0,6,DIGEST6 +1,2022-01-05 00:00:00.0,11,DIGEST11 +1,2022-01-07 00:00:00.0,7,DIGEST7 +2,2022-01-02 00:00:00.0,8,DIGEST8 +2,2022-01-05 00:00:00.0,10,DIGEST10 +2,2022-01-06 00:00:00.0,21,DIGEST13 +3,2022-01-07 00:00:00.0,9,DIGEST9 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass1.csv new file mode 100644 index 00000000000..fb8bd28722f --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass1.csv @@ -0,0 +1,3 @@ +HARRY,1000,2022-12-01,f7cd27572192ed441b479526e4741677 +ROBERT,2000,2022-12-02,c1e270e47dd44183847e26022491a0f4 +ANDY,3000,2022-12-03,ddc893bc350aba9292db1e1ea5dff172 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass2.csv new file mode 100644 index 00000000000..4774adb615c --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation/expected_pass2.csv @@ -0,0 +1,6 @@ +HARRY,1000,2022-12-01,f7cd27572192ed441b479526e4741677 +ROBERT,2000,2022-12-02,c1e270e47dd44183847e26022491a0f4 +ANDY,3000,2022-12-03,ddc893bc350aba9292db1e1ea5dff172 +ROBERT,2000,2022-12-02,c1e270e47dd44183847e26022491a0f4 +ANDY,3100,2022-12-03,508b8dba2c48cf5ea84f8133ebb12d90 +MATT,4000,2022-12-06,ea65523c56a461d57df1ca1dd476dc89 \ 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/incremental-append-milestoning/expected/digest_generation2/expected_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass1.csv new file mode 100644 index 00000000000..e3ff7537069 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass1.csv @@ -0,0 +1,4 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,1,dd94f3aa99f1a1160323db30bc81824d,2000-01-01 00:00:02.0 +2,ROBERT,2000,2020-01-02 00:00:00.0,2022-12-02,1,412f2c7dd39d0e8f2a84d13633af1202,2000-01-01 00:00:02.0 +3,ANDY,3000,2020-01-03 00:00:00.0,2022-12-03,1,6513c7a9913473b2f0b03013575d1751,2000-01-01 00:00:02.0 +3,ANDY,4000,2020-01-03 00:00:00.0,2022-12-03,2,a6d9a840e1f527f844c694e41dedf2c7,2000-01-01 00:00:03.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass2.csv new file mode 100644 index 00000000000..68bd1bb3205 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/digest_generation2/expected_pass2.csv @@ -0,0 +1,7 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,1,dd94f3aa99f1a1160323db30bc81824d,2000-01-01 00:00:02.0 +2,ROBERT,2000,2020-01-02 00:00:00.0,2022-12-02,1,412f2c7dd39d0e8f2a84d13633af1202,2000-01-01 00:00:02.0 +3,ANDY,3000,2020-01-03 00:00:00.0,2022-12-03,1,6513c7a9913473b2f0b03013575d1751,2000-01-01 00:00:02.0 +3,ANDY,4000,2020-01-03 00:00:00.0,2022-12-03,2,a6d9a840e1f527f844c694e41dedf2c7,2000-01-01 00:00:03.0 +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,1,dd94f3aa99f1a1160323db30bc81824d,2000-01-01 00:00:06.0 +2,ROBERT,2001,2020-01-02 00:00:00.0,2022-12-02,2,5f0f3f716a79862c3039f3bea3f4ad9a,2000-01-01 00:00:06.0 +4,SANDY,4000,2020-01-04 00:00:00.0,2022-12-04,1,032e6539befc2378772bca93a2f8d591,2000-01-01 00:00:06.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass1.csv new file mode 100644 index 00000000000..95012897702 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass1.csv @@ -0,0 +1,2 @@ +ANDY,3000,2022-12-03 +MINDY,4000,2022-12-04 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass2.csv new file mode 100644 index 00000000000..bd89a58f93e --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/expected/with_staging_filter/expected_pass2.csv @@ -0,0 +1,4 @@ +ANDY,3000,2022-12-03 +MINDY,4000,2022-12-04 +ROBERT,2000,2022-12-05 +MATT,4000,2022-12-05 \ 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/incremental-append-milestoning/input/digest_generation/data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass1.csv new file mode 100644 index 00000000000..179b54e57d8 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass1.csv @@ -0,0 +1,3 @@ +HARRY,1000,2022-12-01 +ROBERT,2000,2022-12-02 +ANDY,3000,2022-12-03 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass2.csv new file mode 100644 index 00000000000..7bf2b920ce4 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation/data_pass2.csv @@ -0,0 +1,3 @@ +ROBERT,2000,2022-12-02 +ANDY,3100,2022-12-03 +MATT,4000,2022-12-06 \ 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/incremental-append-milestoning/input/digest_generation2/data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass1.csv new file mode 100644 index 00000000000..2694c70a227 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass1.csv @@ -0,0 +1,4 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,1 +2,ROBERT,2000,2020-01-02 00:00:00.0,2022-12-02,1 +3,ANDY,3000,2020-01-03 00:00:00.0,2022-12-03,1 +3,ANDY,4000,2020-01-03 00:00:00.0,2022-12-03,2 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass2.csv new file mode 100644 index 00000000000..38d09bb021a --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/digest_generation2/data_pass2.csv @@ -0,0 +1,4 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,1 +2,ROBERT,2001,2020-01-02 00:00:00.0,2022-12-02,2 +4,SANDY,4000,2020-01-04 00:00:00.0,2022-12-04,1 +4,SANDY,4000,2020-01-04 00:00:00.0,2022-12-04,1 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass1.csv new file mode 100644 index 00000000000..bd64f3e7b12 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass1.csv @@ -0,0 +1,4 @@ +HARRY,1000,2022-12-01 +ROBERT,2000,2022-12-02 +ANDY,3000,2022-12-03 +MINDY,4000,2022-12-04 \ 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/incremental-append-milestoning/input/with_staging_filter/data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass2.csv new file mode 100644 index 00000000000..df1fb53595a --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/incremental-append-milestoning/input/with_staging_filter/data_pass2.csv @@ -0,0 +1,3 @@ +ROBERT,2000,2022-12-05 +ANDY,999,2022-12-03 +MATT,4000,2022-12-05 \ 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/snapshot-milestoning/expected/with_staging_filter/expected_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass1.csv new file mode 100644 index 00000000000..f51b12ce482 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass1.csv @@ -0,0 +1,5 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,DIGEST1 +2,ROBERT,2000,2020-01-02 00:00:00.0,2022-12-02,DIGEST2 +3,ANDY,3000,2020-01-03 00:00:00.0,2022-12-03,DIGEST3 +4,MICHEL,4000,2020-01-04 00:00:00.0,2022-12-04,DIGEST4 +5,LIZA,5000,2020-01-05 00:00:00.0,2022-12-05,DIGEST5 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass2.csv new file mode 100644 index 00000000000..bf3890397c4 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/expected/with_staging_filter/expected_pass2.csv @@ -0,0 +1,3 @@ +4,MICHEL,4001,2020-01-04 00:00:00.0,2022-12-04,DIGEST4_UPDATED +5,LIZA,5001,2020-01-05 00:00:00.0,2022-12-05,DIGEST5_UPDATED +6,MINDY,6001,2020-01-06 00:00:00.0,2022-12-06,DIGEST6 \ 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/snapshot-milestoning/input/with_staging_filter/data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass1.csv new file mode 100644 index 00000000000..4d5f3874a63 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass1.csv @@ -0,0 +1,8 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,DIGEST1,1 +2,ROBERT,2000,2020-01-02 00:00:00.0,2022-12-02,DIGEST2,1 +3,ANDY,3000,2020-01-03 00:00:00.0,2022-12-03,DIGEST3,1 +4,MICHEL,4000,2020-01-04 00:00:00.0,2022-12-04,DIGEST4,1 +5,LIZA,5000,2020-01-05 00:00:00.0,2022-12-05,DIGEST5,1 +4,MICHEL,4001,2020-01-04 00:00:00.0,2022-12-04,DIGEST4_UPDATED,2 +5,LIZA,5001,2020-01-05 00:00:00.0,2022-12-05,DIGEST5_UPDATED,2 +6,MINDY,6001,2020-01-06 00:00:00.0,2022-12-06,DIGEST6,2 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass2.csv new file mode 100644 index 00000000000..4d58ebb9356 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/snapshot-milestoning/input/with_staging_filter/data_pass2.csv @@ -0,0 +1,8 @@ +1,HARRY,1000,2020-01-01 00:00:00.0,2022-12-01,DIGEST1,1 +2,ROBERT,2000,2020-01-02 00:00:00.0,2022-12-02,DIGEST2,1 +3,ANDY,3000,2020-01-03 00:00:00.0,2022-12-03,DIGEST3,1 +4,MICHEL,4000,2020-01-04 00:00:00.0,2022-12-04,DIGEST4,1 +5,LIZA,5000,2020-01-05 00:00:00.0,2022-12-05,DIGEST5,1 +4,MICHEL,4001,2020-01-04 00:00:00.0,2022-12-04,DIGEST4_UPDATED,2 +5,LIZA,5001,2020-01-05 00:00:00.0,2022-12-05,DIGEST5_UPDATED,2 +6,MINDY,6001,2020-01-06 00:00:00.0,2022-12-06,DIGEST6,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-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass1.csv new file mode 100644 index 00000000000..b7c23ba34bd --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass1.csv @@ -0,0 +1,4 @@ +2021-12-01,GS,383.82,300,DIGEST3_UPDATED2,3,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-01,JPM,161.00,100,DIGEST2,1,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-02,GS,37800.00,999,DIGEST6,1,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-02,JPMX,159.83,200,DIGEST5_UPDATED,2,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass2.csv new file mode 100644 index 00000000000..71d5fc848e3 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass2.csv @@ -0,0 +1,5 @@ +2021-12-01,GS,383.82,300,DIGEST3_UPDATED2,3,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-01,JPM,161.00,100,DIGEST2,1,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-02,GS,37800.00,999,DIGEST6,1,1,1,2000-01-01 00:00:00.0,2000-01-01 00:00:00.0 +2021-12-02,JPMX,159.83,200,DIGEST5_UPDATED,2,1,1,2000-01-01 00:00:00.0,2000-01-01 00:00:00.0 +2021-12-02,JPM,159.83,1000,DIGEST7,1,2,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass3.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass3.csv new file mode 100644 index 00000000000..71d5fc848e3 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/expected/batch_id_and_time_based/with_staging_filter/expected_pass3.csv @@ -0,0 +1,5 @@ +2021-12-01,GS,383.82,300,DIGEST3_UPDATED2,3,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-01,JPM,161.00,100,DIGEST2,1,1,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 +2021-12-02,GS,37800.00,999,DIGEST6,1,1,1,2000-01-01 00:00:00.0,2000-01-01 00:00:00.0 +2021-12-02,JPMX,159.83,200,DIGEST5_UPDATED,2,1,1,2000-01-01 00:00:00.0,2000-01-01 00:00:00.0 +2021-12-02,JPM,159.83,1000,DIGEST7,1,2,999999999,2000-01-01 00:00:00.0,9999-12-31 23:59:59.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass1.csv new file mode 100644 index 00000000000..699aa27b114 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass1.csv @@ -0,0 +1,9 @@ +2021-12-01,IBM,116.92,10,DIGEST1,1 +2021-12-01,JPM,161.00,100,DIGEST2,1 +2021-12-01,GS,383.82,10,DIGEST3,1 +2021-12-01,GS,383.82,200,DIGEST3_UPDATED1,2 +2021-12-01,GS,383.82,300,DIGEST3_UPDATED2,3 +2021-12-02,IBM,117.37,10,DIGEST4,1 +2021-12-02,JPMX,159.83,100,DIGEST5,1 +2021-12-02,JPMX,159.83,200,DIGEST5_UPDATED,2 +2021-12-02,GS,37800.00,999,DIGEST6,1 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass2.csv new file mode 100644 index 00000000000..2a3a853b910 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/unitemporal-snapshot-milestoning/input/batch_id_and_time_based/with_staging_filter/staging_data_pass2.csv @@ -0,0 +1,4 @@ +2021-12-02,IBM,117.37,10,DIGEST4,1 +2021-12-02,JPM,159.83,1000,DIGEST7,1 +2021-12-02,GS,378.00,0,DIGEST8,2 +2021-12-02,GS,378.00,0,DIGEST8,2 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/optimizer/StringCaseOptimizer.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/optimizer/StringCaseOptimizer.java index 960f19296f5..a728db56743 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/optimizer/StringCaseOptimizer.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/optimizer/StringCaseOptimizer.java @@ -46,8 +46,8 @@ public PhysicalPlanNode optimize(PhysicalPlanNode component) else if (component instanceof ShowCommand) { ShowCommand command = (ShowCommand) component; - command.setSchemaName(applyCase(command.getSchemaName())); - command.setDatabaseName(applyCase(command.getDatabaseName())); + command.setSchemaName(applyCase(command.getSchemaName().orElse(null))); + command.setDatabaseName(applyCase(command.getDatabaseName().orElse(null))); command.setTableName(applyCase(command.getTableName())); return command; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SQLCreateVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SQLCreateVisitor.java index cbeaa125245..6e07ff5b435 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SQLCreateVisitor.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SQLCreateVisitor.java @@ -35,7 +35,8 @@ public class SQLCreateVisitor implements LogicalPlanVisitor public VisitorResult visit(PhysicalPlanNode prev, Create current, VisitorContext context) { CreateTable createTable = new CreateTable(); - if (!current.dataset().schema().shardSpecification().isPresent() || current.dataset().schema().shardSpecification().get().shardKeys().size() == 0) + // if the table is not sharded, it will be created as REFERENCE TABLE in memsql + if (current.dataset().schema().shardSpecification().isPresent() && !current.dataset().schema().shardSpecification().get().isSharded()) { List tableTypeList = Arrays.asList(new ReferenceTableType()); createTable = new CreateTable(tableTypeList); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SchemaDefinitionVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SchemaDefinitionVisitor.java index 340552b8160..d3f83511727 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SchemaDefinitionVisitor.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/SchemaDefinitionVisitor.java @@ -85,18 +85,18 @@ public VisitorResult visit(PhysicalPlanNode prev, SchemaDefinition current, Visi prev.push(constraint); } - boolean isShard = current.shardSpecification().isPresent() && current.shardSpecification().get().shardKeys().size() > 0; + boolean hasShardKeys = current.shardSpecification().isPresent() && current.shardSpecification().get().shardKeys().size() > 0; // if table is sharded and primary keys are present if (isTableColumnStore) { - if (pkNum >= 1 && isShard) + if (pkNum >= 1 && hasShardKeys) { TableConstraint constraint = new UnenforcedUniqueIndexConstraint(pkFields.stream().map(Field::name).collect(Collectors.toList()), context.quoteIdentifier()); prev.push(constraint); } } - if (isShard) + if (hasShardKeys) { TableConstraint constraint = new ShardKeyConstraint(current.shardSpecification().get().shardKeys().stream().map(Field::name).collect(Collectors.toList()), context.quoteIdentifier()); prev.push(constraint); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/ShowVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/ShowVisitor.java index 473a0bd7126..3446298dd89 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/ShowVisitor.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sql/visitor/ShowVisitor.java @@ -28,35 +28,18 @@ public class ShowVisitor implements LogicalPlanVisitor @Override public VisitorResult visit(PhysicalPlanNode prev, Show current, VisitorContext context) { - ShowCommand command; - if (current.dataset().datasetReference().database().isPresent() && current.dataset().datasetReference().group().isPresent()) - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - current.dataset().datasetReference().database().get(), - current.dataset().datasetReference().group().get(), - current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - } - else if (current.dataset().datasetReference().group().isPresent()) - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - null, - current.dataset().datasetReference().group().get(), - current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - } - else - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - null, - null, - current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - } + ShowCommand command = new ShowCommand( + ShowType.valueOf(current.operation().name()), + current.dataset().datasetReference().database(), + current.dataset().datasetReference().group(), + current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new), + context.quoteIdentifier()); + for (Optimizer optimizer : context.optimizers()) { command = (ShowCommand) optimizer.optimize(command); } + prev.push(command); return new VisitorResult(null); } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sqldom/schemaops/statements/ShowCommand.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sqldom/schemaops/statements/ShowCommand.java index 9e3f603e01d..0fabe5d2aba 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sqldom/schemaops/statements/ShowCommand.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/main/java/org/finos/legend/engine/persistence/components/relational/memsql/sqldom/schemaops/statements/ShowCommand.java @@ -20,41 +20,45 @@ import org.finos.legend.engine.persistence.components.relational.sqldom.common.ShowType; import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; +import java.util.Optional; + import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; public class ShowCommand implements SqlGen { private final ShowType operation; - private String databaseName; - private String schemaName; + private Optional databaseName; + private Optional schemaName; private String tableName; + private final String quoteIdentifier; - public ShowCommand(ShowType operation, String databaseName, String schemaName, String tableName) + public ShowCommand(ShowType operation, Optional databaseName, Optional schemaName, String tableName, String quoteIdentifier) { this.operation = operation; this.databaseName = databaseName; this.schemaName = schemaName; this.tableName = tableName; + this.quoteIdentifier = quoteIdentifier; } - public String getDatabaseName() + public Optional getDatabaseName() { return databaseName; } public void setDatabaseName(String databaseName) { - this.databaseName = databaseName; + this.databaseName = Optional.of(databaseName); } - public String getSchemaName() + public Optional getSchemaName() { return schemaName; } public void setSchemaName(String schemaName) { - this.schemaName = schemaName; + this.schemaName = Optional.of(schemaName); } public String getTableName() @@ -75,7 +79,7 @@ public void setTableName(String tableName) SHOW [FULL] [TEMPORARY] TABLES [{FROM | IN} db_name] - [[EXTENDED] LIKE pattern | WHERE TABLE_TYPE {= | !=} {'VIEW' | 'BASE TABLE'}] + [[EXTENDED] LIKE 'pattern' | WHERE TABLE_TYPE {= | !=} {'VIEW' | 'BASE TABLE'}] SHOW SCHEMAS [LIKE 'pattern'] @@ -91,33 +95,33 @@ public void genSql(StringBuilder builder) throws SqlDomException if (operation == ShowType.COLUMNS) { builder.append(WHITE_SPACE + Clause.FROM.get()); - builder.append(WHITE_SPACE + tableName); - if ((databaseName != null && !databaseName.isEmpty()) && (schemaName != null && !schemaName.isEmpty())) + builder.append(WHITE_SPACE + SqlGenUtils.getQuotedField(tableName, quoteIdentifier)); + if ((databaseName.isPresent() && !databaseName.get().isEmpty()) && (schemaName.isPresent() && !schemaName.get().isEmpty())) { builder.append(WHITE_SPACE); builder.append(Clause.IN.get() + WHITE_SPACE); - builder.append(databaseName + SqlGenUtils.DOT + schemaName); + builder.append(SqlGenUtils.getQuotedField(databaseName.get(), quoteIdentifier) + SqlGenUtils.DOT + SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } - else if (schemaName != null && !schemaName.isEmpty()) + else if (schemaName.isPresent() && !schemaName.get().isEmpty()) { builder.append(WHITE_SPACE); builder.append(Clause.IN.get() + WHITE_SPACE); - builder.append(schemaName); + builder.append(SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } } else if (operation == ShowType.TABLES) { - if ((databaseName != null && !databaseName.isEmpty()) && (schemaName != null && !schemaName.isEmpty())) + if ((databaseName.isPresent() && !databaseName.get().isEmpty()) && (schemaName.isPresent() && !schemaName.get().isEmpty())) { builder.append(WHITE_SPACE); builder.append(Clause.FROM.get() + WHITE_SPACE); - builder.append(databaseName + SqlGenUtils.DOT + schemaName); + builder.append(SqlGenUtils.getQuotedField(databaseName.get(), quoteIdentifier) + SqlGenUtils.DOT + SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } - else if (schemaName != null && !schemaName.isEmpty()) + else if (schemaName.isPresent() && !schemaName.get().isEmpty()) { builder.append(WHITE_SPACE); builder.append(Clause.FROM.get() + WHITE_SPACE); - builder.append(schemaName); + builder.append(SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } builder.append(WHITE_SPACE + Clause.LIKE.get()); builder.append(WHITE_SPACE); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/AppendOnlyTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/AppendOnlyTest.java index 20c714fa2a7..2ca43639eba 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/AppendOnlyTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/AppendOnlyTest.java @@ -20,6 +20,7 @@ import org.finos.legend.engine.persistence.components.relational.api.GeneratorResult; import org.finos.legend.engine.persistence.components.relational.memsql.MemSqlSink; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; @@ -250,4 +251,28 @@ public void verifyAppendOnlyWithAuditingFilterDupsMaxVersionNoFilterExistingReco Assertions.assertEquals(rowsInserted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_INSERTED)); Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); } + + @Override + @Test + public void testAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration() + { + // Digest UDF Generation not available for Memsql sink + } + + @Override + public void verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(GeneratorResult operations) + { + } + + @Override + @Test + public void testAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration() + { + // Digest UDF Generation not available for Memsql sink + } + + @Override + public void verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(List generatorResults, List dataSplitRanges) + { + } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BitemporalDeltaSourceSpecifiesFromTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BitemporalDeltaSourceSpecifiesFromTest.java index 9de07694b8c..c046af228c5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BitemporalDeltaSourceSpecifiesFromTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BitemporalDeltaSourceSpecifiesFromTest.java @@ -310,10 +310,10 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplits(Generator @Override public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplits(List operations, List dataSplitRanges) { - String tempName = operations.get(0).preActionsSql().get(2).split("CREATE REFERENCE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; - String tempWithDeleteIndicatorName = operations.get(0).preActionsSql().get(3).split("CREATE REFERENCE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; + String tempName = operations.get(0).preActionsSql().get(2).split("CREATE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; + String tempWithDeleteIndicatorName = operations.get(0).preActionsSql().get(3).split("CREATE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; - String expectedBitemporalFromOnlyDefaultTempTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS " + tempName + + String expectedBitemporalFromOnlyDefaultTempTableCreateQuery = "CREATE TABLE IF NOT EXISTS " + tempName + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -325,7 +325,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplits(List operations, List dataSplitRanges) { - String tempName = operations.get(0).preActionsSql().get(2).split("CREATE REFERENCE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; - String tempWithDeleteIndicatorName = operations.get(0).preActionsSql().get(3).split("CREATE REFERENCE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; - String stageWithoutDuplicatesName = operations.get(0).preActionsSql().get(4).split("CREATE REFERENCE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; + String tempName = operations.get(0).preActionsSql().get(2).split("CREATE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; + String tempWithDeleteIndicatorName = operations.get(0).preActionsSql().get(3).split("CREATE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; + String stageWithoutDuplicatesName = operations.get(0).preActionsSql().get(4).split("CREATE TABLE IF NOT EXISTS ")[1].split("\\(")[0]; - String expectedBitemporalFromOnlyDefaultTempTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS " + tempName + + String expectedBitemporalFromOnlyDefaultTempTableCreateQuery = "CREATE TABLE IF NOT EXISTS " + tempName + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -782,7 +782,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplitsFilterDu "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - String expectedBitemporalFromOnlyDefaultTempTableWithDeleteIndicatorCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS " + tempWithDeleteIndicatorName + + String expectedBitemporalFromOnlyDefaultTempTableWithDeleteIndicatorCreateQuery = "CREATE TABLE IF NOT EXISTS " + tempWithDeleteIndicatorName + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -795,7 +795,7 @@ public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndWithDataSplitsFilterDu "`delete_indicator` TINYINT(1)," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - String expectedBitemporalFromOnlyStageWithDeleteIndicatorWithDataSplitWithoutDuplicatesTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS " + stageWithoutDuplicatesName + + String expectedBitemporalFromOnlyStageWithDeleteIndicatorWithDataSplitWithoutDuplicatesTableCreateQuery = "CREATE TABLE IF NOT EXISTS " + stageWithoutDuplicatesName + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/MemsqlTestArtifacts.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/MemsqlTestArtifacts.java index 12cb43e9b10..dbbb6f2a5e1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/MemsqlTestArtifacts.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/MemsqlTestArtifacts.java @@ -16,28 +16,28 @@ public class MemsqlTestArtifacts { - public static String expectedBaseTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBaseTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + "`biz_date` DATE," + "PRIMARY KEY (`id`, `name`))"; - public static String expectedStagingTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging`(" + + public static String expectedStagingTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`staging`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + "`biz_date` DATE," + "PRIMARY KEY (`id`, `name`))"; - public static String expectedBaseTableCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + + public static String expectedBaseTableCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + "(`ID` INTEGER NOT NULL," + "`NAME` VARCHAR(256) NOT NULL," + "`AMOUNT` DOUBLE," + "`BIZ_DATE` DATE," + "PRIMARY KEY (`ID`, `NAME`))"; - public static String expectedBaseTablePlusDigestCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBaseTablePlusDigestCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -45,7 +45,7 @@ public class MemsqlTestArtifacts "`digest` VARCHAR(256)," + "PRIMARY KEY (`id`, `name`))"; - public static String expectedStagingTableWithDigestCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging`(" + + public static String expectedStagingTableWithDigestCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`staging`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -53,49 +53,58 @@ public class MemsqlTestArtifacts "`digest` VARCHAR(256)," + "PRIMARY KEY (`id`, `name`))"; - public static String expectedBaseTablePlusDigestPlusVersionCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + - "`id` INTEGER NOT NULL," + - "`name` VARCHAR(256) NOT NULL," + - "`amount` DOUBLE," + - "`biz_date` DATE," + - "`digest` VARCHAR(256)," + - "`version` INTEGER," + - "PRIMARY KEY (`id`, `name`))"; + public static String expectedBaseTablePlusDigestPlusVersionCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + + "`id` INTEGER NOT NULL," + + "`name` VARCHAR(256) NOT NULL," + + "`amount` DOUBLE," + + "`biz_date` DATE," + + "`digest` VARCHAR(256)," + + "`version` INTEGER," + + "PRIMARY KEY (`id`, `name`))"; + + public static String expectedBaseTempStagingTableWithCount = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + + "(`id` INTEGER NOT NULL," + + "`name` VARCHAR(256) NOT NULL," + + "`amount` DOUBLE," + + "`biz_date` DATE," + + "`legend_persistence_count` INTEGER)"; + + public static String expectedBaseTempStagingTableWithVersionAndCount = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + + "(`id` INTEGER NOT NULL," + + "`name` VARCHAR(256) NOT NULL," + + "`amount` DOUBLE," + + "`biz_date` DATE," + + "`digest` VARCHAR(256)," + + "`version` INTEGER," + + "`legend_persistence_count` INTEGER)"; - public static String expectedBaseTempStagingTableWithCount = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + + public static String expectedBaseTempStagingTablePlusDigestWithCount = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + "`biz_date` DATE," + + "`digest` VARCHAR(256)," + "`legend_persistence_count` INTEGER)"; - public static String expectedBaseTempStagingTablePlusDigestWithCount = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + - "(`id` INTEGER NOT NULL," + - "`name` VARCHAR(256) NOT NULL," + - "`amount` DOUBLE," + - "`biz_date` DATE," + - "`digest` VARCHAR(256)," + - "`legend_persistence_count` INTEGER)"; - - public static String expectedBaseTempStagingTablePlusDigestWithCountAndDataSplit = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + - "(`id` INTEGER NOT NULL," + - "`name` VARCHAR(256) NOT NULL," + - "`amount` DOUBLE," + - "`biz_date` DATE," + - "`digest` VARCHAR(256)," + - "`legend_persistence_count` INTEGER," + - "`data_split` INTEGER NOT NULL)"; - - public static String expectedBaseTablePlusDigestPlusVersionCreateQueryUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`(" + - "`ID` INTEGER NOT NULL," + - "`NAME` VARCHAR(256) NOT NULL," + - "`AMOUNT` DOUBLE," + - "`BIZ_DATE` DATE," + - "`DIGEST` VARCHAR(256)," + - "`VERSION` INTEGER," + - "PRIMARY KEY (`ID`, `NAME`))"; - - public static String expectedBaseTablePlusDigestCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`(" + + public static String expectedBaseTempStagingTablePlusDigestWithCountAndDataSplit = "CREATE TABLE IF NOT EXISTS `mydb`.`staging_legend_persistence_temp_staging`" + + "(`id` INTEGER NOT NULL," + + "`name` VARCHAR(256) NOT NULL," + + "`amount` DOUBLE," + + "`biz_date` DATE," + + "`digest` VARCHAR(256)," + + "`legend_persistence_count` INTEGER," + + "`data_split` INTEGER NOT NULL)"; + + public static String expectedBaseTablePlusDigestPlusVersionCreateQueryUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`(" + + "`ID` INTEGER NOT NULL," + + "`NAME` VARCHAR(256) NOT NULL," + + "`AMOUNT` DOUBLE," + + "`BIZ_DATE` DATE," + + "`DIGEST` VARCHAR(256)," + + "`VERSION` INTEGER," + + "PRIMARY KEY (`ID`, `NAME`))"; + + public static String expectedBaseTablePlusDigestCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`(" + "`ID` INTEGER NOT NULL," + "`NAME` VARCHAR(256) NOT NULL," + "`AMOUNT` DOUBLE," + @@ -103,32 +112,32 @@ public class MemsqlTestArtifacts "`DIGEST` VARCHAR(256)," + "PRIMARY KEY (`ID`, `NAME`))"; - public static String expectedBaseTableCreateQueryWithNoPKs = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBaseTableCreateQueryWithNoPKs = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER," + "`name` VARCHAR(256)," + "`amount` DOUBLE," + "`biz_date` DATE," + "`digest` VARCHAR(256))"; - public static String expectedStagingTableCreateQueryWithNoPKs = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging`(" + + public static String expectedStagingTableCreateQueryWithNoPKs = "CREATE TABLE IF NOT EXISTS `mydb`.`staging`(" + "`id` INTEGER," + "`name` VARCHAR(256)," + "`amount` DOUBLE," + "`biz_date` DATE," + "`digest` VARCHAR(256))"; - public static String expectedBaseTableCreateQueryWithAuditAndNoPKs = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedBaseTableCreateQueryWithAuditAndNoPKs = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER,`name` VARCHAR(256),`amount` DOUBLE,`biz_date` DATE,`digest` VARCHAR(256),`batch_update_time` DATETIME)"; - public static String expectedMainTableBatchIdAndVersionBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedMainTableBatchIdAndVersionBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL,`name` VARCHAR(256) NOT NULL,`amount` DOUBLE,`biz_date` DATE,`digest` VARCHAR(256),`version` INTEGER," + "`batch_id_in` INTEGER NOT NULL,`batch_id_out` INTEGER,PRIMARY KEY (`id`, `name`, `batch_id_in`))"; - public static String expectedMainTableBatchIdAndVersionBasedCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + + public static String expectedMainTableBatchIdAndVersionBasedCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + "(`ID` INTEGER NOT NULL,`NAME` VARCHAR(256) NOT NULL,`AMOUNT` DOUBLE,`BIZ_DATE` DATE,`DIGEST` VARCHAR(256),`VERSION` INTEGER,`BATCH_ID_IN` INTEGER NOT NULL," + "`BATCH_ID_OUT` INTEGER,PRIMARY KEY (`ID`, `NAME`, `BATCH_ID_IN`))"; - public static String expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -137,16 +146,16 @@ public class MemsqlTestArtifacts "`batch_update_time` DATETIME NOT NULL," + "PRIMARY KEY (`id`, `name`, `batch_update_time`))"; - public static String expectedBaseTablePlusDigestPlusUpdateTimestampCreateQueryUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`(" + - "`ID` INTEGER NOT NULL," + - "`NAME` VARCHAR(256) NOT NULL," + - "`AMOUNT` DOUBLE," + - "`BIZ_DATE` DATE," + - "`DIGEST` VARCHAR(256)," + - "`BATCH_UPDATE_TIME` DATETIME NOT NULL," + - "PRIMARY KEY (`ID`, `NAME`, `BATCH_UPDATE_TIME`))"; + public static String expectedBaseTablePlusDigestPlusUpdateTimestampCreateQueryUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`(" + + "`ID` INTEGER NOT NULL," + + "`NAME` VARCHAR(256) NOT NULL," + + "`AMOUNT` DOUBLE," + + "`BIZ_DATE` DATE," + + "`DIGEST` VARCHAR(256)," + + "`BATCH_UPDATE_TIME` DATETIME NOT NULL," + + "PRIMARY KEY (`ID`, `NAME`, `BATCH_UPDATE_TIME`))"; - public static String expectedBaseTableWithAuditNotPKCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBaseTableWithAuditNotPKCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -155,7 +164,7 @@ public class MemsqlTestArtifacts "`batch_update_time` DATETIME," + "PRIMARY KEY (`id`, `name`))"; - public static String expectedBaseTableWithAuditPKCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBaseTableWithAuditPKCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -171,11 +180,11 @@ public class MemsqlTestArtifacts public static String cleanUpMainTableSql = "DELETE FROM `mydb`.`main` as sink"; public static String cleanupMainTableSqlUpperCase = "DELETE FROM `MYDB`.`MAIN` as sink"; - public static String expectedMainTableBatchIdBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedMainTableBatchIdBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL,`name` VARCHAR(256) NOT NULL,`amount` DOUBLE,`biz_date` DATE,`digest` VARCHAR(256)," + "`batch_id_in` INTEGER NOT NULL,`batch_id_out` INTEGER,PRIMARY KEY (`id`, `name`, `batch_id_in`))"; - public static String expectedMetadataTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS batch_metadata" + + public static String expectedMetadataTableCreateQuery = "CREATE TABLE IF NOT EXISTS batch_metadata" + "(`table_name` VARCHAR(255)," + "`batch_start_ts_utc` DATETIME," + "`batch_end_ts_utc` DATETIME," + @@ -183,7 +192,7 @@ public class MemsqlTestArtifacts "`table_batch_id` INTEGER," + "`staging_filters` JSON)"; - public static String expectedMetadataTableCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS BATCH_METADATA" + + public static String expectedMetadataTableCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS BATCH_METADATA" + "(`TABLE_NAME` VARCHAR(255)," + "`BATCH_START_TS_UTC` DATETIME," + "`BATCH_END_TS_UTC` DATETIME," + @@ -191,7 +200,7 @@ public class MemsqlTestArtifacts "`TABLE_BATCH_ID` INTEGER," + "`STAGING_FILTERS` JSON)"; - public static String expectedMainTableBatchIdBasedCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + + public static String expectedMainTableBatchIdBasedCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + "(`ID` INTEGER NOT NULL,`NAME` VARCHAR(256) NOT NULL,`AMOUNT` DOUBLE,`BIZ_DATE` DATE,`DIGEST` VARCHAR(256)," + "`BATCH_ID_IN` INTEGER NOT NULL,`BATCH_ID_OUT` INTEGER,PRIMARY KEY (`ID`, `NAME`, `BATCH_ID_IN`))"; @@ -200,11 +209,11 @@ public class MemsqlTestArtifacts public static String expectedMetadataTableIngestQueryWithUpperCase = "INSERT INTO BATCH_METADATA (`TABLE_NAME`, `TABLE_BATCH_ID`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`)" + " (SELECT 'MAIN',(SELECT COALESCE(MAX(BATCH_METADATA.`TABLE_BATCH_ID`),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.`TABLE_NAME`) = 'MAIN'),'2000-01-01 00:00:00.000000',CURRENT_TIMESTAMP(),'DONE')"; - + public static String expectedMetadataTableIngestQueryWithPlaceHolders = "INSERT INTO batch_metadata (`table_name`, `table_batch_id`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`) " + "(SELECT 'main',{BATCH_ID_PATTERN},'{BATCH_START_TS_PATTERN}','{BATCH_END_TS_PATTERN}','DONE')"; - public static String expectedMainTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedMainTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -216,7 +225,7 @@ public class MemsqlTestArtifacts "`batch_time_out` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`))"; - public static String expectedMainTableCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + + public static String expectedMainTableCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + "(`ID` INTEGER NOT NULL," + "`NAME` VARCHAR(256) NOT NULL," + "`AMOUNT` DOUBLE," + @@ -228,15 +237,15 @@ public class MemsqlTestArtifacts "`BATCH_TIME_OUT` DATETIME," + "PRIMARY KEY (`ID`, `NAME`, `BATCH_ID_IN`))"; - public static String expectedMainTableTimeBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedMainTableTimeBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL,`name` VARCHAR(256) NOT NULL,`amount` DOUBLE,`biz_date` DATE,`digest` VARCHAR(256)," + "`batch_time_in` DATETIME NOT NULL,`batch_time_out` DATETIME,PRIMARY KEY (`id`, `name`, `batch_time_in`))"; - public static String expectedMainTableTimeBasedCreateQueryWithUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + + public static String expectedMainTableTimeBasedCreateQueryWithUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + "(`ID` INTEGER NOT NULL,`NAME` VARCHAR(256) NOT NULL,`AMOUNT` DOUBLE,`BIZ_DATE` DATE,`DIGEST` VARCHAR(256)," + "`BATCH_TIME_IN` DATETIME NOT NULL,`BATCH_TIME_OUT` DATETIME,PRIMARY KEY (`ID`, `NAME`, `BATCH_TIME_IN`))"; - public static String expectedBitemporalMainTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedBitemporalMainTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -247,7 +256,7 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalStagingTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging`(" + + public static String expectedBitemporalStagingTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`staging`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -256,7 +265,7 @@ public class MemsqlTestArtifacts "`digest` VARCHAR(256)," + "PRIMARY KEY (`id`, `name`, `validity_from_reference`))"; - public static String expectedBitemporalMainTableWithVersionWithBatchIdDatetimeCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedBitemporalMainTableWithVersionWithBatchIdDatetimeCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -270,7 +279,7 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalMainTableWithVersionBatchDateTimeCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedBitemporalMainTableWithVersionBatchDateTimeCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -282,37 +291,37 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_time_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyMainTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedBitemporalFromOnlyMainTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + + "(`id` INTEGER NOT NULL," + + "`name` VARCHAR(256) NOT NULL," + + "`amount` DOUBLE," + + "`digest` VARCHAR(256)," + + "`batch_id_in` INTEGER NOT NULL," + + "`batch_id_out` INTEGER," + + "`validity_from_target` DATETIME NOT NULL," + + "`validity_through_target` DATETIME," + + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; + + public static String expectedBitemporalFromOnlyMainTableWithVersionCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + "`digest` VARCHAR(256)," + + "`version` INTEGER," + "`batch_id_in` INTEGER NOT NULL," + "`batch_id_out` INTEGER," + "`validity_from_target` DATETIME NOT NULL," + "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyMainTableWithVersionCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + - "(`id` INTEGER NOT NULL," + - "`name` VARCHAR(256) NOT NULL," + - "`amount` DOUBLE," + - "`digest` VARCHAR(256)," + - "`version` INTEGER," + - "`batch_id_in` INTEGER NOT NULL," + - "`batch_id_out` INTEGER," + - "`validity_from_target` DATETIME NOT NULL," + - "`validity_through_target` DATETIME," + - "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - - public static String expectedBitemporalFromOnlyStagingTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`staging`" + + public static String expectedBitemporalFromOnlyStagingTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`staging`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE,`validity_from_reference` DATETIME NOT NULL," + "`digest` VARCHAR(256)," + "PRIMARY KEY (`id`, `name`, `validity_from_reference`))"; - public static String expectedBitemporalFromOnlyMainTableBatchIdAndTimeBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`" + + public static String expectedBitemporalFromOnlyMainTableBatchIdAndTimeBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -325,7 +334,7 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyMainTableDateTimeBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`main`(" + + public static String expectedBitemporalFromOnlyMainTableDateTimeBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`main`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -336,7 +345,7 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_time_in`, `validity_from_target`))"; - public static String expectedBitemporalMainTableCreateQueryUpperCase = "CREATE REFERENCE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + + public static String expectedBitemporalMainTableCreateQueryUpperCase = "CREATE TABLE IF NOT EXISTS `MYDB`.`MAIN`" + "(`ID` INTEGER NOT NULL," + "`NAME` VARCHAR(256) NOT NULL," + "`AMOUNT` DOUBLE," + @@ -347,30 +356,30 @@ public class MemsqlTestArtifacts "`VALIDITY_THROUGH_TARGET` DATETIME," + "PRIMARY KEY (`ID`, `NAME`, `BATCH_ID_IN`, `VALIDITY_FROM_TARGET`))"; - public static String expectedBitemporalFromOnlyTempTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`temp`" + + public static String expectedBitemporalFromOnlyTempTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`temp`" + + "(`id` INTEGER NOT NULL," + + "`name` VARCHAR(256) NOT NULL," + + "`amount` DOUBLE," + + "`digest` VARCHAR(256)," + + "`batch_id_in` INTEGER NOT NULL," + + "`batch_id_out` INTEGER," + + "`validity_from_target` DATETIME NOT NULL," + + "`validity_through_target` DATETIME," + + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; + + public static String expectedBitemporalFromOnlyTempTableWithVersionCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`temp`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + "`digest` VARCHAR(256)," + + "`version` INTEGER," + "`batch_id_in` INTEGER NOT NULL," + "`batch_id_out` INTEGER," + "`validity_from_target` DATETIME NOT NULL," + "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyTempTableWithVersionCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`temp`" + - "(`id` INTEGER NOT NULL," + - "`name` VARCHAR(256) NOT NULL," + - "`amount` DOUBLE," + - "`digest` VARCHAR(256)," + - "`version` INTEGER," + - "`batch_id_in` INTEGER NOT NULL," + - "`batch_id_out` INTEGER," + - "`validity_from_target` DATETIME NOT NULL," + - "`validity_through_target` DATETIME," + - "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - - public static String expectedBitemporalFromOnlyTempTableBatchIdAndTimeBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`temp`(" + + public static String expectedBitemporalFromOnlyTempTableBatchIdAndTimeBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`temp`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -383,7 +392,7 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyTempTableDateTimeBasedCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`temp`(" + + public static String expectedBitemporalFromOnlyTempTableDateTimeBasedCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`temp`(" + "`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -394,7 +403,7 @@ public class MemsqlTestArtifacts "`validity_through_target` DATETIME," + "PRIMARY KEY (`id`, `name`, `batch_time_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyStageWithoutDuplicatesTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`stagingWithoutDuplicates`" + + public static String expectedBitemporalFromOnlyStageWithoutDuplicatesTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`stagingWithoutDuplicates`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -402,7 +411,7 @@ public class MemsqlTestArtifacts "`digest` VARCHAR(256)," + "PRIMARY KEY (`id`, `name`, `validity_from_reference`))"; - public static String expectedBitemporalFromOnlyTempTableWithDeleteIndicatorCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`tempWithDeleteIndicator`" + + public static String expectedBitemporalFromOnlyTempTableWithDeleteIndicatorCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`tempWithDeleteIndicator`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -414,7 +423,7 @@ public class MemsqlTestArtifacts "`delete_indicator` VARCHAR(256)," + "PRIMARY KEY (`id`, `name`, `batch_id_in`, `validity_from_target`))"; - public static String expectedBitemporalFromOnlyStageWithVersionWithDataSplitWithoutDuplicatesTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`stagingWithoutDuplicates`" + + public static String expectedBitemporalFromOnlyStageWithVersionWithDataSplitWithoutDuplicatesTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`stagingWithoutDuplicates`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -424,7 +433,7 @@ public class MemsqlTestArtifacts "`data_split` BIGINT NOT NULL," + "PRIMARY KEY (`id`, `name`, `validity_from_reference`, `data_split`))"; - public static String expectedBitemporalFromOnlyStageWithDeleteIndicatorWithoutDuplicatesTableCreateQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`stagingWithoutDuplicates`" + + public static String expectedBitemporalFromOnlyStageWithDeleteIndicatorWithoutDuplicatesTableCreateQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`stagingWithoutDuplicates`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -443,39 +452,43 @@ public class MemsqlTestArtifacts "as stage WHERE stage.`legend_persistence_rank` = 1)"; public static String expectedInsertIntoBaseTempStagingPlusDigestWithFilterDuplicates = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + - "(`id`, `name`, `amount`, `biz_date`, `digest`, `legend_persistence_count`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + - "COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + - "GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`)"; + "(`id`, `name`, `amount`, `biz_date`, `digest`, `legend_persistence_count`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`)"; public static String expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndFilterDuplicates = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + - "(`id`, `name`, `amount`, `biz_date`, `digest`, `legend_persistence_count`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`legend_persistence_count` as `legend_persistence_count` FROM " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER " + - "(PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` DESC) as `legend_persistence_rank` FROM " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,COUNT(*) as `legend_persistence_count` FROM " + - "`mydb`.`staging` as stage GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`) as stage) as stage " + - "WHERE stage.`legend_persistence_rank` = 1)"; + "(`id`, `name`, `amount`, `biz_date`, `digest`, `legend_persistence_count`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`legend_persistence_count` as `legend_persistence_count` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER " + + "(PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` DESC) as `legend_persistence_rank` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,COUNT(*) as `legend_persistence_count` FROM " + + "`mydb`.`staging` as stage GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`) as stage) as stage " + + "WHERE stage.`legend_persistence_rank` = 1)"; public static String expectedInsertIntoBaseTempStagingPlusDigestWithAllVersionAndFilterDuplicates = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + - "(`id`, `name`, `amount`, `biz_date`, `digest`, `legend_persistence_count`, `data_split`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER (PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` ASC) as `data_split` " + - "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + - "GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`) as stage)"; + "(`id`, `name`, `amount`, `biz_date`, `digest`, `legend_persistence_count`, `data_split`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER (PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` ASC) as `data_split` " + + "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, stage.`digest`) as stage)"; public static String maxDupsErrorCheckSql = "SELECT MAX(stage.`legend_persistence_count`) as `MAX_DUPLICATES` FROM " + "`mydb`.`staging_legend_persistence_temp_staging` as stage"; - public static String dataErrorCheckSql = "SELECT MAX(`legend_persistence_distinct_rows`) as `MAX_DATA_ERRORS` FROM " + + public static String dataErrorCheckSqlForBizDateAsVersion = "SELECT MAX(`legend_persistence_distinct_rows`) as `MAX_DATA_ERRORS` FROM " + "(SELECT COUNT(DISTINCT(`digest`)) as `legend_persistence_distinct_rows` FROM " + "`mydb`.`staging_legend_persistence_temp_staging` as stage GROUP BY `id`, `name`, `biz_date`) as stage"; + public static String dataErrorCheckSqlForVersionAsVersion = "SELECT MAX(`legend_persistence_distinct_rows`) as `MAX_DATA_ERRORS` FROM " + + "(SELECT COUNT(DISTINCT(`digest`)) as `legend_persistence_distinct_rows` FROM " + + "`mydb`.`staging_legend_persistence_temp_staging` as stage GROUP BY `id`, `name`, `version`) as stage"; + public static String expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndAllowDuplicates = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + - "(`id`, `name`, `amount`, `biz_date`, `digest`) " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest` FROM " + - "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,DENSE_RANK() " + - "OVER (PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` DESC) as `legend_persistence_rank` " + - "FROM `mydb`.`staging` as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; + "(`id`, `name`, `amount`, `biz_date`, `digest`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,DENSE_RANK() " + + "OVER (PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`biz_date` DESC) as `legend_persistence_rank` " + + "FROM `mydb`.`staging` as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; public static String expectedTempStagingCleanupQueryInUpperCase = "DELETE FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage"; public static String expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndAllowDuplicatesUpperCase = "INSERT INTO `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` " + @@ -489,4 +502,4 @@ public class MemsqlTestArtifacts public static String dataErrorCheckSqlUpperCase = "SELECT MAX(`LEGEND_PERSISTENCE_DISTINCT_ROWS`) as `MAX_DATA_ERRORS` " + "FROM (SELECT COUNT(DISTINCT(`DIGEST`)) as `LEGEND_PERSISTENCE_DISTINCT_ROWS` " + "FROM `MYDB`.`STAGING_LEGEND_PERSISTENCE_TEMP_STAGING` as stage GROUP BY `ID`, `NAME`, `BIZ_DATE`) as stage"; -} +} \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/NontemporalDeltaTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/NontemporalDeltaTest.java index e5daeed87f7..84a76261b96 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/NontemporalDeltaTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/NontemporalDeltaTest.java @@ -326,6 +326,36 @@ public void verifyNontemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); } + @Override + public void verifyNontemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + + String updateSql = "UPDATE `mydb`.`main` as sink " + + "INNER JOIN " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest` FROM `mydb`.`staging` as stage " + + "WHERE (stage.`biz_date` > '2020-01-10') OR ((stage.`biz_date` > '2020-01-01') AND (stage.`biz_date` < '2020-01-05'))) as stage " + + "ON ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` <> stage.`digest`) " + + "SET sink.`id` = stage.`id`,sink.`name` = stage.`name`,sink.`amount` = stage.`amount`,sink.`biz_date` = stage.`biz_date`,sink.`digest` = stage.`digest`"; + + String insertSql = "INSERT INTO `mydb`.`main` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest` FROM `mydb`.`staging` as stage WHERE (NOT (EXISTS " + + "(SELECT * FROM `mydb`.`main` as sink WHERE (sink.`id` = stage.`id`) AND " + + "(sink.`name` = stage.`name`)))) AND ((stage.`biz_date` > '2020-01-10') OR ((stage.`biz_date` > '2020-01-01') AND (stage.`biz_date` < '2020-01-05'))))"; + + Assertions.assertEquals(MemsqlTestArtifacts.expectedBaseTablePlusDigestCreateQuery, preActionsSqlList.get(0)); + Assertions.assertEquals(updateSql, milestoningSqlList.get(0)); + Assertions.assertEquals(insertSql, milestoningSqlList.get(1)); + + String incomingRecordCount = "SELECT COUNT(*) as `incomingRecordCount` FROM `mydb`.`staging` as stage WHERE (stage.`biz_date` > '2020-01-10') OR ((stage.`biz_date` > '2020-01-01') AND (stage.`biz_date` < '2020-01-05'))"; + // Stats + Assertions.assertEquals(incomingRecordCount, operations.postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + } + @Override public void verifyNontemporalDeltaWithFilterDupsMaxVersionWithStagingFilters(GeneratorResult operations) { diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdBasedTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdBasedTest.java index 5719e415d13..3eb99c652fa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdBasedTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdBasedTest.java @@ -21,9 +21,10 @@ import org.finos.legend.engine.persistence.components.testcases.ingestmode.unitemporal.UnitmemporalDeltaBatchIdBasedTestCases; import org.junit.jupiter.api.Assertions; -import java.util.ArrayList; import java.util.List; +import static org.finos.legend.engine.persistence.components.common.DedupAndVersionErrorStatistics.MAX_DATA_ERRORS; + public class UnitemporalDeltaBatchIdBasedTest extends UnitmemporalDeltaBatchIdBasedTestCases { @Override @@ -317,6 +318,35 @@ public void verifyUnitemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(getExpectedMetadataTableIngestQueryWithStagingFilters("{\"batch_id_in\":{\"GT\":5}}"), metadataIngestSql.get(0)); } + @Override + public void verifyUnitemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSql = operations.preActionsSql(); + List milestoningSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink SET sink.`batch_id_out` = " + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1 " + + "WHERE (sink.`batch_id_out` = 999999999) AND (EXISTS (SELECT * FROM `mydb`.`staging` as stage " + + "WHERE (((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (sink.`digest` <> stage.`digest`)) " + + "AND (stage.`batch_id_in` > 5)))"; + + String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `batch_id_in`, `batch_id_out`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE " + + "UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999 FROM `mydb`.`staging` as stage " + + "WHERE (NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) " + + "AND (sink.`digest` = stage.`digest`) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`))))) " + + "AND (stage.`batch_id_in` > 5))"; + + Assertions.assertEquals(MemsqlTestArtifacts.expectedMainTableBatchIdBasedCreateQuery, preActionsSql.get(0)); + Assertions.assertEquals(MemsqlTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); + + Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); + Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); + Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); + } + @Override public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(GeneratorResult operations) { @@ -339,12 +369,74 @@ public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(Gene Assertions.assertEquals(MemsqlTestArtifacts.expectedMainTableBatchIdAndVersionBasedCreateQuery, preActionsSql.get(0)); Assertions.assertEquals(MemsqlTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); + Assertions.assertEquals(MemsqlTestArtifacts.expectedBaseTempStagingTableWithVersionAndCount, preActionsSql.get(2)); + + String expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `version`, `legend_persistence_count`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER " + + "(PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`version` DESC) as `legend_persistence_rank` " + + "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "stage.`version`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "WHERE stage.`batch_id_in` > 5 GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, " + + "stage.`digest`, stage.`version`) as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; + + Assertions.assertEquals(MemsqlTestArtifacts.expectedTempStagingCleanupQuery, operations.deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters, operations.deduplicationAndVersioningSql().get(1)); + Assertions.assertEquals(MemsqlTestArtifacts.dataErrorCheckSqlForVersionAsVersion, operations.deduplicationAndVersioningErrorChecksSql().get(MAX_DATA_ERRORS)); Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); Assertions.assertEquals(getExpectedMetadataTableIngestQueryWithStagingFilters("{\"batch_id_in\":{\"GT\":5}}"), metadataIngestSql.get(0)); } + @Override + public void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithFilteredDataset(GeneratorResult operations) + { + List preActionsSql = operations.preActionsSql(); + List milestoningSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + String expectedMilestoneQuery = "UPDATE `mydb`.`main` as sink " + + "SET sink.`batch_id_out` = (SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata " + + "WHERE UPPER(batch_metadata.`table_name`) = 'MAIN')-1 WHERE (sink.`batch_id_out` = 999999999) AND " + + "(EXISTS (SELECT * FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "WHERE ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)) AND (stage.`version` > sink.`version`)))"; + + String expectedUpsertQuery = "INSERT INTO `mydb`.`main` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `version`, `batch_id_in`, `batch_id_out`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "(SELECT COALESCE(MAX(batch_metadata.`table_batch_id`),0)+1 FROM batch_metadata as batch_metadata WHERE " + + "UPPER(batch_metadata.`table_name`) = 'MAIN'),999999999 FROM `mydb`.`staging_legend_persistence_temp_staging` as stage " + + "WHERE NOT (EXISTS (SELECT * FROM `mydb`.`main` as sink WHERE (sink.`batch_id_out` = 999999999) AND " + + "(stage.`version` <= sink.`version`) AND ((sink.`id` = stage.`id`) AND (sink.`name` = stage.`name`)))))"; + + Assertions.assertEquals(MemsqlTestArtifacts.expectedMainTableBatchIdAndVersionBasedCreateQuery, preActionsSql.get(0)); + Assertions.assertEquals(MemsqlTestArtifacts.expectedMetadataTableCreateQuery, preActionsSql.get(1)); + Assertions.assertEquals(MemsqlTestArtifacts.expectedBaseTempStagingTableWithVersionAndCount, preActionsSql.get(2)); + + String expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters = "INSERT INTO `mydb`.`staging_legend_persistence_temp_staging` " + + "(`id`, `name`, `amount`, `biz_date`, `digest`, `version`, `legend_persistence_count`) " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count` FROM " + + "(SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`,stage.`version`," + + "stage.`legend_persistence_count` as `legend_persistence_count`,DENSE_RANK() OVER " + + "(PARTITION BY stage.`id`,stage.`name` ORDER BY stage.`version` DESC) as `legend_persistence_rank` " + + "FROM (SELECT stage.`id`,stage.`name`,stage.`amount`,stage.`biz_date`,stage.`digest`," + + "stage.`version`,COUNT(*) as `legend_persistence_count` FROM `mydb`.`staging` as stage " + + "WHERE stage.`batch_id_in` > 5 GROUP BY stage.`id`, stage.`name`, stage.`amount`, stage.`biz_date`, " + + "stage.`digest`, stage.`version`) as stage) as stage WHERE stage.`legend_persistence_rank` = 1)"; + + Assertions.assertEquals(MemsqlTestArtifacts.expectedTempStagingCleanupQuery, operations.deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(expectedInsertIntoBaseTempStagingWithMaxVersionFilterDupsWithStagingFilters, operations.deduplicationAndVersioningSql().get(1)); + Assertions.assertEquals(MemsqlTestArtifacts.dataErrorCheckSqlForVersionAsVersion, operations.deduplicationAndVersioningErrorChecksSql().get(MAX_DATA_ERRORS)); + + Assertions.assertEquals(expectedMilestoneQuery, milestoningSql.get(0)); + Assertions.assertEquals(expectedUpsertQuery, milestoningSql.get(1)); + Assertions.assertEquals(getExpectedMetadataTableIngestQuery(), metadataIngestSql.get(0)); + } + @Override public void verifyUnitemporalDeltaWithNoDedupMaxVersionWithoutPerformAndStagingFilters(GeneratorResult operations) { diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdDateTimeBasedTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdDateTimeBasedTest.java index 02a21455a2b..3bedbebbb25 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdDateTimeBasedTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalDeltaBatchIdDateTimeBasedTest.java @@ -315,7 +315,7 @@ public void verifyUnitemporalDeltaWithOnlySchemaSet(GeneratorResult operations) List milestoningSql = operations.ingestSql(); List metadataIngestSql = operations.metadataIngestSql(); - String expectedCreateMainTableQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `my_schema`.`main`" + + String expectedCreateMainTableQuery = "CREATE TABLE IF NOT EXISTS `my_schema`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -360,7 +360,7 @@ public void verifyUnitemporalDeltaWithDbAndSchemaBothSet(GeneratorResult operati List milestoningSql = operations.ingestSql(); List metadataIngestSql = operations.metadataIngestSql(); - String expectedCreateMainTableQuery = "CREATE REFERENCE TABLE IF NOT EXISTS `mydb`.`my_schema`.`main`" + + String expectedCreateMainTableQuery = "CREATE TABLE IF NOT EXISTS `mydb`.`my_schema`.`main`" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + @@ -405,7 +405,7 @@ public void verifyUnitemporalDeltaWithDbAndSchemaBothNotSet(GeneratorResult oper List milestoningSql = operations.ingestSql(); List metadataIngestSql = operations.metadataIngestSql(); - String expectedCreateMainTableQuery = "CREATE REFERENCE TABLE IF NOT EXISTS main" + + String expectedCreateMainTableQuery = "CREATE TABLE IF NOT EXISTS main" + "(`id` INTEGER NOT NULL," + "`name` VARCHAR(256) NOT NULL," + "`amount` DOUBLE," + diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotBatchIdDateTimeBasedTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotBatchIdDateTimeBasedTest.java index 2112ff4dedc..a793c829593 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotBatchIdDateTimeBasedTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotBatchIdDateTimeBasedTest.java @@ -93,7 +93,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionNoDedupMaxVersion(Generator Assertions.assertEquals(MemsqlTestArtifacts.expectedTempStagingCleanupQuery, deduplicationAndVersioningSql.get(0)); Assertions.assertEquals(MemsqlTestArtifacts.expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndAllowDuplicates, deduplicationAndVersioningSql.get(1)); - Assertions.assertEquals(MemsqlTestArtifacts.dataErrorCheckSql, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); + Assertions.assertEquals(MemsqlTestArtifacts.dataErrorCheckSqlForBizDateAsVersion, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); verifyStats(operations, incomingRecordCount, rowsUpdated, rowsDeleted, rowsInserted, rowsTerminated); } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotDateTimeBasedTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotDateTimeBasedTest.java index 0f96eeb95b6..ab72f14d23e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotDateTimeBasedTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/UnitemporalSnapshotDateTimeBasedTest.java @@ -98,7 +98,7 @@ public void verifyUnitemporalSnapshotWithoutPartitionFailOnDupsMaxVersion(Genera Assertions.assertEquals(MemsqlTestArtifacts.expectedInsertIntoBaseTempStagingPlusDigestWithMaxVersionAndFilterDuplicates, deduplicationAndVersioningSql.get(1)); Assertions.assertEquals(MemsqlTestArtifacts.maxDupsErrorCheckSql, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DUPLICATES)); - Assertions.assertEquals(MemsqlTestArtifacts.dataErrorCheckSql, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); + Assertions.assertEquals(MemsqlTestArtifacts.dataErrorCheckSqlForBizDateAsVersion, deduplicationAndVersioningErrorChecksSql.get(DedupAndVersionErrorStatistics.MAX_DATA_ERRORS)); } @Override diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/BaseTestUtils.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/BaseTestUtils.java index cd88eb60ad8..9dd725f2d3e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/BaseTestUtils.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/BaseTestUtils.java @@ -46,25 +46,25 @@ public class BaseTestUtils public static Index index = Index.builder().indexName("my_idx").addAllColumns(Arrays.asList("col_int")).build(); public static SchemaDefinition schemaWithAllColumns = SchemaDefinition.builder() - .addFields(colInt) - .addFields(colInteger) - .addFields(colBigint) - .addFields(colTinyint) - .addFields(colSmallint) - .addFields(colChar) - .addFields(colVarchar) - .addFields(colTimestamp) - .addFields(colDatetime) - .addFields(colDate) - .addFields(colReal) - .addFields(colFloat) - .addFields(colDecimal) - .addFields(colDouble) - .addFields(colTime) - .addFields(colBoolean) - .build(); + .addFields(colInt) + .addFields(colInteger) + .addFields(colBigint) + .addFields(colTinyint) + .addFields(colSmallint) + .addFields(colChar) + .addFields(colVarchar) + .addFields(colTimestamp) + .addFields(colDatetime) + .addFields(colDate) + .addFields(colReal) + .addFields(colFloat) + .addFields(colDecimal) + .addFields(colDouble) + .addFields(colTime) + .addFields(colBoolean) + .build(); - public static SchemaDefinition schemaWithAllColumnsWithShardColumnStore = SchemaDefinition.builder() + public static SchemaDefinition schemaWithAllColumnsWithShardsAndColumnStore = SchemaDefinition.builder() .addFields(colInt) .addFields(colInteger) .addFields(colBigint) @@ -72,14 +72,23 @@ public class BaseTestUtils .shardSpecification(ShardSpecification.builder().addShardKeys(colInt).build()) .build(); - public static SchemaDefinition schemaWithColumnStoreWithoutShard = SchemaDefinition.builder() + public static SchemaDefinition schemaWithColumnStoreUnsharded = SchemaDefinition.builder() + .addFields(colInt) + .addFields(colInteger) + .addFields(colBigint) + .columnStoreSpecification(ColumnStoreSpecification.builder().columnStore(true).addColumnStoreKeys(colInt).build()) + .shardSpecification(ShardSpecification.builder().isSharded(false).build()) + .build(); + + public static SchemaDefinition schemaWithColumnStoreWithKeylessSharding = SchemaDefinition.builder() .addFields(colInt) .addFields(colInteger) .addFields(colBigint) .columnStoreSpecification(ColumnStoreSpecification.builder().columnStore(true).addColumnStoreKeys(colInt).build()) + .shardSpecification(ShardSpecification.builder().isSharded(true).build()) .build(); - public static SchemaDefinition schemaWithRowStoreWithoutShard = SchemaDefinition.builder() + public static SchemaDefinition schemaWithRowStoreWithoutShardDefinition = SchemaDefinition.builder() .addFields(colInt) .addFields(colInteger) .addFields(colBigint) @@ -94,25 +103,25 @@ public class BaseTestUtils .build(); public static SchemaDefinition schemaWithColumnStore = SchemaDefinition.builder() - .addFields(colInt) - .addFields(colInteger) - .addFields(colBigint) - .addFields(colTinyint) - .addFields(colSmallint) - .addFields(colChar) - .addFields(colVarchar) - .addFields(colTimestamp) - .addFields(colDatetime) - .addFields(colDate) - .addFields(colReal) - .addFields(colFloat) - .addFields(colDecimal) - .addFields(colDouble) - .addFields(colTime) - .addFields(colBoolean) - .columnStoreSpecification(ColumnStoreSpecification.builder() - .columnStore(true) - .addColumnStoreKeys(colBigint) - .build()) - .build(); -} + .addFields(colInt) + .addFields(colInteger) + .addFields(colBigint) + .addFields(colTinyint) + .addFields(colSmallint) + .addFields(colChar) + .addFields(colVarchar) + .addFields(colTimestamp) + .addFields(colDatetime) + .addFields(colDate) + .addFields(colReal) + .addFields(colFloat) + .addFields(colDecimal) + .addFields(colDouble) + .addFields(colTime) + .addFields(colBoolean) + .columnStoreSpecification(ColumnStoreSpecification.builder() + .columnStore(true) + .addColumnStoreKeys(colBigint) + .build()) + .build(); +} \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/CreateTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/CreateTest.java index bbcbbee8715..5acc259ef77 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/CreateTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/CreateTest.java @@ -30,26 +30,21 @@ import java.util.List; import java.util.Optional; -import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.schemaWithAllColumnsWithShardColumnStore; -import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.schemaWithColumnStoreWithoutShard; -import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.schemaWithRowStoreWithoutShard; -import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.schemaWithRowStoreShards; -import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.schemaWithAllColumns; -import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.schemaWithColumnStore; +import static org.finos.legend.engine.persistence.components.logicalplan.operations.BaseTestUtils.*; public class CreateTest { @Test - public void testCreateTableWithColumnStoreShards() + public void testCreateTableWithColumnStoreSharded() { DatasetDefinition dataset = DatasetDefinition.builder() - .database("my_db") - .group("my_schema") - .name("my_table") - .alias("my_alias") - .schema(schemaWithAllColumnsWithShardColumnStore) - .build(); + .database("my_db") + .group("my_schema") + .name("my_table") + .alias("my_alias") + .schema(schemaWithAllColumnsWithShardsAndColumnStore) + .build(); Operation createTable = Create.of(true,dataset); @@ -65,14 +60,14 @@ public void testCreateTableWithColumnStoreShards() } @Test - public void testCreateTableWithColumnStoreWithoutShards() + public void testCreateTableWithColumnStoreUnsharded() { DatasetDefinition dataset = DatasetDefinition.builder() .database("my_db") .group("my_schema") .name("my_table") .alias("my_alias") - .schema(schemaWithColumnStoreWithoutShard) + .schema(schemaWithColumnStoreUnsharded) .build(); Operation createTable = Create.of(true,dataset); @@ -89,14 +84,14 @@ public void testCreateTableWithColumnStoreWithoutShards() } @Test - public void testCreateTableWithRowStoreWithoutShards() + public void testCreateTableWithColumnStoreWithKeylessSharding() { DatasetDefinition dataset = DatasetDefinition.builder() .database("my_db") .group("my_schema") .name("my_table") .alias("my_alias") - .schema(schemaWithRowStoreWithoutShard) + .schema(schemaWithColumnStoreWithKeylessSharding) .build(); Operation createTable = Create.of(true,dataset); @@ -107,7 +102,31 @@ public void testCreateTableWithRowStoreWithoutShards() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expectedAdd = "CREATE REFERENCE TABLE IF NOT EXISTS `my_db`.`my_schema`.`my_table`(`col_int` INTEGER NOT NULL PRIMARY KEY,`col_integer` INTEGER NOT NULL UNIQUE,`col_bigint` BIGINT,INDEX `my_idx` (`col_int`))"; + String expectedAdd = "CREATE TABLE IF NOT EXISTS `my_db`.`my_schema`.`my_table`(`col_int` INTEGER NOT NULL PRIMARY KEY,`col_integer` INTEGER NOT NULL UNIQUE,`col_bigint` BIGINT,KEY CLUSTERED_COLUMN_INDEX (`col_int`) USING CLUSTERED COLUMNSTORE)"; + + Assertions.assertEquals(expectedAdd, list.get(0)); + } + + @Test + public void testCreateTableWithRowStoreWithoutShardDefinition() + { + DatasetDefinition dataset = DatasetDefinition.builder() + .database("my_db") + .group("my_schema") + .name("my_table") + .alias("my_alias") + .schema(schemaWithRowStoreWithoutShardDefinition) + .build(); + + Operation createTable = Create.of(true,dataset); + + RelationalTransformer transformer = new RelationalTransformer(MemSqlSink.get()); + + LogicalPlan logicalPlan = LogicalPlan.builder().addOps(createTable).build(); + SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); + List list = physicalPlan.getSqlList(); + + String expectedAdd = "CREATE TABLE IF NOT EXISTS `my_db`.`my_schema`.`my_table`(`col_int` INTEGER NOT NULL PRIMARY KEY,`col_integer` INTEGER NOT NULL UNIQUE,`col_bigint` BIGINT,INDEX `my_idx` (`col_int`))"; Assertions.assertEquals(expectedAdd, list.get(0)); } @@ -141,12 +160,12 @@ public void testCreateTableWithRowStoreWithShards() public void testAlterTableWithUpperCase() { DatasetDefinition dataset = DatasetDefinition.builder() - .database("my_db") - .group("my_schema") - .name("my_table") - .alias("my_alias") - .schema(schemaWithAllColumns) - .build(); + .database("my_db") + .group("my_schema") + .name("my_table") + .alias("my_alias") + .schema(schemaWithAllColumns) + .build(); Field column = Field.builder().name("column").type(FieldType.of(DataType.VARCHAR, 64, null)).nullable(false).build(); Field newColumn = Field.builder().name("column1").type(FieldType.of(DataType.VARCHAR, 64, null)).nullable(false).build(); @@ -159,8 +178,8 @@ public void testAlterTableWithUpperCase() LogicalPlan logicalPlan = LogicalPlan.builder().addOps(add, changeDatatype, nullableColumn, dropColumn, renameColumn).build(); RelationalTransformer transformer = new RelationalTransformer( - MemSqlSink.get(), - TransformOptions.builder().addOptimizers(new UpperCaseOptimizer()).build()); + MemSqlSink.get(), + TransformOptions.builder().addOptimizers(new UpperCaseOptimizer()).build()); SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); @@ -182,11 +201,11 @@ public void testAlterTableWithUpperCase() public void testAlterTableChangeDataTypeAndColumnStore() { DatasetDefinition dataset = DatasetDefinition.builder() - .database("my_db") - .group("my_schema") - .name("my_table") - .schema(schemaWithColumnStore) - .build(); + .database("my_db") + .group("my_schema") + .name("my_table") + .schema(schemaWithColumnStore) + .build(); Field column = Field.builder().name("column").type(FieldType.of(DataType.VARCHAR, 64, null)).nullable(false).build(); Operation changeDataType = Alter.of(dataset, Alter.AlterOperation.CHANGE_DATATYPE, column, Optional.empty()); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/ShowTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/ShowTest.java index e7b46bf87d8..90af5d7706a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/ShowTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/src/test/java/org/finos/legend/engine/persistence/components/logicalplan/operations/ShowTest.java @@ -40,7 +40,7 @@ public void testShowTablesCommand() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW TABLES FROM CITIBIKE.public LIKE 'trips'"; + String expected = "SHOW TABLES FROM `CITIBIKE`.`public` LIKE 'trips'"; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -54,7 +54,7 @@ public void testShowTablesCommandWithUpperCase() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW TABLES FROM CITIBIKE.PUBLIC LIKE 'TRIPS'"; + String expected = "SHOW TABLES FROM `CITIBIKE`.`PUBLIC` LIKE 'TRIPS'"; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -82,7 +82,7 @@ public void testShowTablesCommandWithSchemaWithoutDb() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW TABLES FROM public LIKE 'trips'"; + String expected = "SHOW TABLES FROM `public` LIKE 'trips'"; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -110,7 +110,7 @@ public void testShowColumnsCommand() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW COLUMNS FROM trips IN CITIBIKE.public"; + String expected = "SHOW COLUMNS FROM `trips` IN `CITIBIKE`.`public`"; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -124,7 +124,7 @@ public void testShowColumnsCommandWithoutSchema() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW COLUMNS FROM trips"; + String expected = "SHOW COLUMNS FROM `trips`"; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -138,7 +138,7 @@ public void testShowColumnsCommandWithSchemaWithoutDb() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW COLUMNS FROM trips IN public"; + String expected = "SHOW COLUMNS FROM `trips` IN `public`"; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } 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-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/logicalplan/datasets/FileFormat.java similarity index 82% 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/common/FileFormat.java rename to 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/logicalplan/datasets/FileFormat.java index 75cf32a3a55..afd3b7148dd 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-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/logicalplan/datasets/FileFormat.java @@ -12,12 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.persistence.components.common; +package org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets; -public enum FileFormat +public interface FileFormat { - CSV, - JSON, - AVRO, - PARQUET; + } 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/logicalplan/datasets/SnowflakeStagedFilesDatasetPropertiesAbstract.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/logicalplan/datasets/SnowflakeStagedFilesDatasetPropertiesAbstract.java index c3f190f6b2e..751698e6ad2 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/logicalplan/datasets/SnowflakeStagedFilesDatasetPropertiesAbstract.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/logicalplan/datasets/SnowflakeStagedFilesDatasetPropertiesAbstract.java @@ -18,7 +18,7 @@ import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetProperties; import org.immutables.value.Value; -import java.util.List; +import java.util.Map; import java.util.Optional; @Value.Immutable @@ -33,5 +33,7 @@ public interface SnowflakeStagedFilesDatasetPropertiesAbstract extends StagedFil { String location(); - Optional fileFormat(); + Optional fileFormat(); + + Map copyOptions(); } 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/logicalplan/datasets/StandardFileFormatAbstract.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/logicalplan/datasets/StandardFileFormatAbstract.java new file mode 100644 index 00000000000..a117e6ecbb4 --- /dev/null +++ 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/logicalplan/datasets/StandardFileFormatAbstract.java @@ -0,0 +1,35 @@ +// 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.snowflake.logicalplan.datasets; + +import org.finos.legend.engine.persistence.components.common.FileFormatType; +import org.immutables.value.Value; + +import java.util.Map; + +@Value.Immutable +@Value.Style( + typeAbstract = "*Abstract", + typeImmutable = "*", + jdkOnly = true, + optionalAcceptNullable = true, + strictBuilder = true +) +public interface StandardFileFormatAbstract extends FileFormat +{ + FileFormatType formatType(); + + Map formatOptions(); +} 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/sqldom/common/ExternalVolume.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/logicalplan/datasets/UserDefinedFileFormatAbstract.java similarity index 59% rename from 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/sqldom/common/ExternalVolume.java rename to 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/logicalplan/datasets/UserDefinedFileFormatAbstract.java index ca942ee9a5c..b55a25112be 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/sqldom/common/ExternalVolume.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/logicalplan/datasets/UserDefinedFileFormatAbstract.java @@ -12,22 +12,21 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.common; -import org.finos.legend.engine.persistence.components.relational.sqldom.SqlGen; +package org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets; -public class ExternalVolume implements SqlGen -{ - private String externalVolume; - - public ExternalVolume(String externalVolume) - { - this.externalVolume = externalVolume; - } +import org.immutables.value.Value; - @Override - public void genSql(StringBuilder builder) - { - builder.append(String.format("with EXTERNAL_VOLUME = '%s'", externalVolume)); - } +@Value.Immutable +@Value.Style( + typeAbstract = "*Abstract", + typeImmutable = "*", + jdkOnly = true, + optionalAcceptNullable = true, + strictBuilder = true +) +public interface UserDefinedFileFormatAbstract extends FileFormat +{ + @Value.Parameter(order = 0) + String formatName(); } 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/optmizer/StringCaseOptimizer.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/optmizer/StringCaseOptimizer.java index 3b57ef53797..f2cb3de201e 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/optmizer/StringCaseOptimizer.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/optmizer/StringCaseOptimizer.java @@ -46,8 +46,8 @@ public PhysicalPlanNode optimize(PhysicalPlanNode component) else if (component instanceof ShowCommand) { ShowCommand command = (ShowCommand) component; - command.setSchemaName(applyCase(command.getSchemaName())); - command.setDatabaseName(applyCase(command.getDatabaseName())); + command.setSchemaName(applyCase(command.getSchemaName().orElse(null))); + command.setDatabaseName(applyCase(command.getDatabaseName().orElse(null))); command.setTableName(applyCase(command.getTableName())); return command; } 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/sql/visitor/CopyVisitor.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/sql/visitor/CopyVisitor.java index e77fd16878e..c476b8ec0c7 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/sql/visitor/CopyVisitor.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/sql/visitor/CopyVisitor.java @@ -17,26 +17,66 @@ 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.snowflake.logicalplan.datasets.FileFormat; +import org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets.SnowflakeStagedFilesDatasetProperties; +import org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets.StandardFileFormat; +import org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets.UserDefinedFileFormat; import org.finos.legend.engine.persistence.components.relational.snowflake.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.HashMap; import java.util.List; +import java.util.Map; +import java.util.Optional; public class CopyVisitor implements LogicalPlanVisitor { - @Override public VisitorResult visit(PhysicalPlanNode prev, Copy current, VisitorContext context) { + SnowflakeStagedFilesDatasetProperties properties = (SnowflakeStagedFilesDatasetProperties) current.stagedFilesDatasetProperties(); CopyStatement copyStatement = new CopyStatement(); + setCopyStatementProperties(properties, 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); } + + private static void setCopyStatementProperties(SnowflakeStagedFilesDatasetProperties properties, CopyStatement copyStatement) + { + copyStatement.setFilePatterns(properties.filePatterns()); + copyStatement.setFilePaths(properties.filePaths()); + + // Add default option into the map + Map copyOptions = new HashMap<>(properties.copyOptions()); + if (!copyOptions.containsKey("ON_ERROR") && !copyOptions.containsKey("on_error")) + { + copyOptions.put("ON_ERROR", "ABORT_STATEMENT"); + } + copyStatement.setCopyOptions(copyOptions); + + Optional fileFormat = properties.fileFormat(); + if (fileFormat.isPresent()) + { + FileFormat format = properties.fileFormat().get(); + if (format instanceof UserDefinedFileFormat) + { + UserDefinedFileFormat userDefinedFileFormat = (UserDefinedFileFormat) format; + copyStatement.setUserDefinedFileFormatName(userDefinedFileFormat.formatName()); + } + else if (format instanceof StandardFileFormat) + { + StandardFileFormat standardFileFormat = (StandardFileFormat) format; + copyStatement.setFileFormatType(standardFileFormat.formatType()); + copyStatement.setFileFormatOptions(standardFileFormat.formatOptions()); + } + } + } } 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/sql/visitor/DatasetAdditionalPropertiesVisitor.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/sql/visitor/DatasetAdditionalPropertiesVisitor.java index 2f3cf631879..aca8b6e2f39 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/sql/visitor/DatasetAdditionalPropertiesVisitor.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/sql/visitor/DatasetAdditionalPropertiesVisitor.java @@ -14,9 +14,9 @@ package org.finos.legend.engine.persistence.components.relational.snowflake.sql.visitor; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.IcebergProperties; import org.finos.legend.engine.persistence.components.logicalplan.datasets.TableOrigin; import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; -import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.common.ExternalVolume; import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.tabletypes.IcebergTableType; import org.finos.legend.engine.persistence.components.relational.sqldom.tabletypes.TableType; @@ -39,9 +39,13 @@ protected void handleTags(PhysicalPlanNode prev, Map tags) prev.push(tags); } - protected void handleExternalVolume(PhysicalPlanNode prev, String externalVolume) + protected void handleIcebergProperties(PhysicalPlanNode prev, IcebergProperties icebergProperties) { - prev.push(new ExternalVolume(externalVolume)); + prev.push(new org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.common.IcebergProperties( + icebergProperties.catalog(), + icebergProperties.externalVolume(), + icebergProperties.baseLocation() + )); } private TableType mapTableType(TableOrigin tableOrigin) 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/sql/visitor/ShowVisitor.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/sql/visitor/ShowVisitor.java index c618d5cc387..f262b998355 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/sql/visitor/ShowVisitor.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/sql/visitor/ShowVisitor.java @@ -28,31 +28,13 @@ public class ShowVisitor implements LogicalPlanVisitor @Override public VisitorResult visit(PhysicalPlanNode prev, Show current, VisitorContext context) { - ShowCommand command; - if (current.dataset().datasetReference().database().isPresent() && current.dataset().datasetReference().group().isPresent()) - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - current.dataset().datasetReference().database().get(), - current.dataset().datasetReference().group().get(), - current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - } - else if (current.dataset().datasetReference().group().isPresent()) - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - null, - current.dataset().datasetReference().group().get(), - current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - } - else - { - command = new ShowCommand( - ShowType.valueOf(current.operation().name()), - null, - null, - current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - } + ShowCommand command = new ShowCommand( + ShowType.valueOf(current.operation().name()), + current.dataset().datasetReference().database(), + current.dataset().datasetReference().group(), + current.dataset().datasetReference().name().orElseThrow(IllegalStateException::new), + context.quoteIdentifier()); + for (Optimizer optimizer : context.optimizers()) { command = (ShowCommand) optimizer.optimize(command); 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/sql/visitor/StagedFilesDatasetReferenceVisitor.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/sql/visitor/StagedFilesDatasetReferenceVisitor.java index ccb15d743cb..286d60ae4af 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/sql/visitor/StagedFilesDatasetReferenceVisitor.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/sql/visitor/StagedFilesDatasetReferenceVisitor.java @@ -34,8 +34,6 @@ public VisitorResult visit(PhysicalPlanNode prev, StagedFilesDatasetReference cu } SnowflakeStagedFilesDatasetProperties datasetProperties = (SnowflakeStagedFilesDatasetProperties) current.properties(); StagedFilesTable stagedFiles = new StagedFilesTable(datasetProperties.location()); - datasetProperties.fileFormat().ifPresent(stagedFiles::setFileFormat); - stagedFiles.setFilePattern(datasetProperties.files().stream().map(s -> '(' + s + ')').collect(Collectors.joining("|"))); current.alias().ifPresent(stagedFiles::setAlias); prev.push(stagedFiles); return new VisitorResult(null); 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/sqldom/common/IcebergProperties.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/sqldom/common/IcebergProperties.java new file mode 100644 index 00000000000..f0712f8c703 --- /dev/null +++ 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/sqldom/common/IcebergProperties.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.engine.persistence.components.relational.snowflake.sqldom.common; + +import org.finos.legend.engine.persistence.components.relational.sqldom.SqlGen; +import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; + +public class IcebergProperties implements SqlGen +{ + private final String catalog; + private final String externalVolume; + private final String baseLocation; + + private static final String CATALOG = "CATALOG"; + private static final String EXTERNAL_VOLUME = "EXTERNAL_VOLUME"; + private static final String BASE_LOCATION = "BASE_LOCATION"; + + public IcebergProperties(String catalog, String externalVolume, String baseLocation) + { + this.catalog = catalog; + this.externalVolume = externalVolume; + this.baseLocation = baseLocation; + } + + @Override + public void genSql(StringBuilder builder) + { + builder.append(CATALOG); + builder.append(SqlGenUtils.ASSIGNMENT_OPERATOR); + builder.append(SqlGenUtils.singleQuote(catalog)); + builder.append(SqlGenUtils.COMMA + SqlGenUtils.WHITE_SPACE); + + builder.append(EXTERNAL_VOLUME); + builder.append(SqlGenUtils.ASSIGNMENT_OPERATOR); + builder.append(SqlGenUtils.singleQuote(externalVolume)); + builder.append(SqlGenUtils.COMMA + SqlGenUtils.WHITE_SPACE); + + builder.append(BASE_LOCATION); + builder.append(SqlGenUtils.ASSIGNMENT_OPERATOR); + builder.append(SqlGenUtils.singleQuote(baseLocation)); + } +} 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/sqldom/schemaops/expressions/table/StagedFilesTable.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/sqldom/schemaops/expressions/table/StagedFilesTable.java index 2bb2eac9f63..946183301ca 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/sqldom/schemaops/expressions/table/StagedFilesTable.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/sqldom/schemaops/expressions/table/StagedFilesTable.java @@ -18,16 +18,9 @@ import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.expresssions.table.TableLike; import org.finos.legend.engine.persistence.components.relational.sqldom.utils.StringUtils; -import java.util.ArrayList; -import java.util.List; - -import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.*; - public class StagedFilesTable extends TableLike { private String location; - private String fileFormat; - private String filePattern; public StagedFilesTable(String location) { @@ -53,22 +46,6 @@ public void genSqlWithoutAlias(StringBuilder builder) throws SqlDomException { validate(); builder.append(location); - // Add FILE_FORMAT, PATTERN - if (StringUtils.notEmpty(fileFormat) || StringUtils.notEmpty(filePattern)) - { - builder.append(WHITE_SPACE + OPEN_PARENTHESIS); - List options = new ArrayList<>(); - if (StringUtils.notEmpty(fileFormat)) - { - options.add(String.format("FILE_FORMAT => '%s'", fileFormat)); - } - if (StringUtils.notEmpty(filePattern)) - { - options.add(String.format("PATTERN => '%s'", filePattern)); - } - builder.append(String.join(COMMA + WHITE_SPACE, options)); - builder.append(CLOSING_PARENTHESIS); - } } @Override @@ -84,14 +61,4 @@ void validate() throws SqlDomException throw new SqlDomException("location is mandatory"); } } - - public void setFileFormat(String fileFormat) - { - this.fileFormat = fileFormat; - } - - public void setFilePattern(String filePattern) - { - this.filePattern = filePattern; - } } 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/sqldom/schemaops/statements/CopyStatement.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/sqldom/schemaops/statements/CopyStatement.java index 04480fb8659..6560bbc0edb 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/sqldom/schemaops/statements/CopyStatement.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/sqldom/schemaops/statements/CopyStatement.java @@ -14,16 +14,23 @@ package org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.schemaops.statements; +import org.finos.legend.engine.persistence.components.common.FileFormatType; 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.Table; import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.statements.DMLStatement; import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.statements.SelectStatement; import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.values.Field; +import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; +import org.finos.legend.engine.persistence.components.relational.sqldom.utils.StringUtils; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +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.WHITE_SPACE; 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.CLOSING_PARENTHESIS; @@ -34,10 +41,16 @@ public class CopyStatement implements DMLStatement private Table table; private final List columns; private SelectStatement selectStatement; + private List filePatterns; + private List filePaths; + private String userDefinedFileFormatName; + private FileFormatType fileFormatType; + private Map fileFormatOptions; + private Map copyOptions; public CopyStatement() { - columns = new ArrayList<>(); + this.columns = new ArrayList<>(); } public CopyStatement(Table table, List columns, SelectStatement selectStatement) @@ -49,12 +62,16 @@ public CopyStatement(Table table, List columns, SelectStatement selectSta /* Copy GENERIC PLAN for Snowflake: - COPY INTO [.] (COLUMN_LIST) - FROM - ( SELECT [.]$[:] [ , [.]$[:] , ... ] - FROM { | } - [ ( FILE_FORMAT => '.', PATTERN => '' ) ] [ ] ) - on_error = 'ABORT_STATEMENT' + -------------------------------- + COPY INTO [.] (COLUMN_LIST) + FROM + ( SELECT [.]$[.] [ , [.]$[.] ... ] + FROM { internalStage | externalStage } ) + [ FILES = ( '' [ , '' ] [ , ... ] ) ] + [ PATTERN = '' ] + [ FILE_FORMAT = ( { FORMAT_NAME = '[.]' | + TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ] + [ copyOptions ] */ @Override @@ -88,8 +105,67 @@ public void genSql(StringBuilder builder) throws SqlDomException selectStatement.genSql(builder); builder.append(CLOSING_PARENTHESIS); - builder.append(WHITE_SPACE); - builder.append("on_error = 'ABORT_STATEMENT'"); + // File Paths + if (filePaths != null && !filePaths.isEmpty()) + { + String filePathsStr = filePaths.stream().map(path -> SqlGenUtils.singleQuote(path)).collect(Collectors.joining(", ")); + builder.append(String.format(" FILES = (%s)", filePathsStr)); + } + // File Patterns + else if (filePatterns != null && !filePatterns.isEmpty()) + { + String filePatternStr = filePatterns.stream().map(s -> '(' + s + ')').collect(Collectors.joining("|")); + builder.append(String.format(" PATTERN = '%s'", filePatternStr)); + } + + // FILE_FORMAT + if (StringUtils.notEmpty(userDefinedFileFormatName)) + { + builder.append(String.format(" FILE_FORMAT = (FORMAT_NAME = '%s')", userDefinedFileFormatName)); + } + else if (fileFormatType != null) + { + builder.append(" FILE_FORMAT = "); + builder.append(OPEN_PARENTHESIS); + fileFormatOptions = new HashMap<>(fileFormatOptions); + fileFormatOptions.put("TYPE", fileFormatType.name()); + addOptions(fileFormatOptions, builder); + builder.append(CLOSING_PARENTHESIS); + } + + // Add copy Options + if (copyOptions != null && !copyOptions.isEmpty()) + { + builder.append(WHITE_SPACE); + addOptions(copyOptions, builder); + } + } + + + private void addOptions(Map options, StringBuilder builder) + { + if (options != null && options.size() > 0) + { + int ctr = 0; + for (String option : options.keySet().stream().sorted().collect(Collectors.toList())) + { + ctr++; + builder.append(option); + builder.append(WHITE_SPACE + ASSIGNMENT_OPERATOR + WHITE_SPACE); + if (options.get(option) instanceof String) + { + builder.append(SqlGenUtils.singleQuote(options.get(option))); + } + else + { + builder.append(options.get(option)); + } + if (ctr < options.size()) + { + builder.append(COMMA + WHITE_SPACE); + } + } + } } @Override @@ -121,4 +197,34 @@ void validate() throws SqlDomException throw new SqlDomException("table is mandatory for Copy Table Command"); } } + + public void setFilePatterns(List filePatterns) + { + this.filePatterns = filePatterns; + } + + public void setFilePaths(List filePaths) + { + this.filePaths = filePaths; + } + + public void setUserDefinedFileFormatName(String userDefinedFileFormatName) + { + this.userDefinedFileFormatName = userDefinedFileFormatName; + } + + public void setFileFormatType(FileFormatType fileFormatType) + { + this.fileFormatType = fileFormatType; + } + + public void setFileFormatOptions(Map fileFormatOptions) + { + this.fileFormatOptions = fileFormatOptions; + } + + public void setCopyOptions(Map copyOptions) + { + this.copyOptions = copyOptions; + } } 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/sqldom/schemaops/statements/CreateTable.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/sqldom/schemaops/statements/CreateTable.java index 7f34cf5a513..4653d29fcf7 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/sqldom/schemaops/statements/CreateTable.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/sqldom/schemaops/statements/CreateTable.java @@ -14,7 +14,7 @@ package org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.schemaops.statements; -import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.common.ExternalVolume; +import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.common.IcebergProperties; import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.tabletypes.IcebergTableType; import org.finos.legend.engine.persistence.components.relational.sqldom.SqlDomException; import org.finos.legend.engine.persistence.components.relational.sqldom.SqlGen; @@ -38,15 +38,12 @@ public class CreateTable implements DDLStatement { private Table table; private final List modifiers; // dataset - - private ExternalVolume externalVolume; private final List columns; // schema private final List tableConstraints; // table level private final List types; // dataset private final List clusterKeys; private Map tags; - - private static final String ICEBERG_CATALOG_INTEGRATION_SUFFIX = "ICEBERG_TABLE_2022 = true"; + private IcebergProperties icebergProperties; public CreateTable() { @@ -80,14 +77,6 @@ public void genSql(StringBuilder builder) throws SqlDomException builder.append(WHITE_SPACE); table.genSqlWithoutAlias(builder); - // External Volume - if (externalVolume != null) - { - builder.append(WHITE_SPACE); - externalVolume.genSql(builder); - builder.append(WHITE_SPACE); - } - // Columns + table constraints builder.append(OPEN_PARENTHESIS); SqlGen.genSqlList(builder, columns, EMPTY, COMMA); @@ -121,10 +110,11 @@ public void genSql(StringBuilder builder) throws SqlDomException builder.append(CLOSING_PARENTHESIS); } - // Iceberg unified Catalog suppoprt + // Iceberg Unified Catalog support if (types.stream().anyMatch(tableType -> tableType instanceof IcebergTableType)) { - builder.append(WHITE_SPACE + ICEBERG_CATALOG_INTEGRATION_SUFFIX); + builder.append(WHITE_SPACE); + icebergProperties.genSql(builder); } } @@ -156,9 +146,9 @@ else if (node instanceof ClusteringKeyConstraint) { clusterKeys.add((ClusteringKeyConstraint) node); } - else if (node instanceof ExternalVolume) + else if (node instanceof IcebergProperties) { - externalVolume = (ExternalVolume) node; + icebergProperties = (IcebergProperties) node; } else if (node instanceof Map) { @@ -176,9 +166,9 @@ void validate() throws SqlDomException { throw new SqlDomException("Columns list is mandatory for Create Table Command"); } - if (types.stream().anyMatch(tableType -> tableType instanceof IcebergTableType) && externalVolume == null) + if (types.stream().anyMatch(tableType -> tableType instanceof IcebergTableType) && icebergProperties == null) { - throw new SqlDomException("External Volume is mandatory for Iceberg Table"); + throw new SqlDomException("Iceberg properties are mandatory for Iceberg Table"); } } } 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/sqldom/schemaops/statements/ShowCommand.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/sqldom/schemaops/statements/ShowCommand.java index 1a61470b5dd..95074201d73 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/sqldom/schemaops/statements/ShowCommand.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/sqldom/schemaops/statements/ShowCommand.java @@ -20,41 +20,46 @@ import org.finos.legend.engine.persistence.components.relational.sqldom.common.ShowType; import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; +import java.util.Optional; + import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; public class ShowCommand implements SqlGen { private final ShowType operation; - private String databaseName; - private String schemaName; + private Optional databaseName; + private Optional schemaName; private String tableName; + private final String quoteIdentifier; + - public ShowCommand(ShowType operation, String databaseName, String schemaName, String tableName) + public ShowCommand(ShowType operation, Optional databaseName, Optional schemaName, String tableName, String quoteIdentifier) { this.operation = operation; this.databaseName = databaseName; this.schemaName = schemaName; this.tableName = tableName; + this.quoteIdentifier = quoteIdentifier; } - public String getDatabaseName() + public Optional getDatabaseName() { return databaseName; } public void setDatabaseName(String databaseName) { - this.databaseName = databaseName; + this.databaseName = Optional.of(databaseName); } - public String getSchemaName() + public Optional getSchemaName() { return schemaName; } public void setSchemaName(String schemaName) { - this.schemaName = schemaName; + this.schemaName = Optional.of(schemaName); } public String getTableName() @@ -71,7 +76,7 @@ public void setTableName(String tableName) SHOW { SCHEMAS | - TABLES [LIKE 'tableName'] [ IN schemaName ] | + TABLES [LIKE 'pattern'] [ IN schemaName ] | } */ @@ -86,17 +91,17 @@ public void genSql(StringBuilder builder) throws SqlDomException builder.append(WHITE_SPACE + Clause.LIKE.get()); builder.append(WHITE_SPACE); builder.append(SqlGenUtils.singleQuote(tableName)); - if (databaseName != null && schemaName != null) + if (databaseName.isPresent() && !databaseName.get().isEmpty() && schemaName.isPresent() && !schemaName.get().isEmpty()) { builder.append(WHITE_SPACE); builder.append(Clause.IN.get() + WHITE_SPACE); - builder.append(databaseName + SqlGenUtils.DOT + schemaName); + builder.append(SqlGenUtils.getQuotedField(databaseName.get(), quoteIdentifier) + SqlGenUtils.DOT + SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } - else if (schemaName != null) + else if (schemaName.isPresent() && !schemaName.get().isEmpty()) { builder.append(WHITE_SPACE); builder.append(Clause.IN.get() + WHITE_SPACE); - builder.append(schemaName); + builder.append(SqlGenUtils.getQuotedField(schemaName.get(), quoteIdentifier)); } } } 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/SnowflakeTestArtifacts.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/SnowflakeTestArtifacts.java index 1cb69388daf..86413fc9f94 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/SnowflakeTestArtifacts.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/SnowflakeTestArtifacts.java @@ -37,4 +37,18 @@ public class SnowflakeTestArtifacts "\"BATCH_STATUS\" VARCHAR(32)," + "\"TABLE_BATCH_ID\" INTEGER," + "\"STAGING_FILTERS\" VARIANT)"; + + public static String expectedBaseTempStagingTableWithCountAndDataSplit = "CREATE TABLE IF NOT EXISTS \"mydb\".\"staging_legend_persistence_temp_staging\"" + + "(\"id\" INTEGER NOT NULL," + + "\"name\" VARCHAR NOT NULL," + + "\"amount\" DOUBLE," + + "\"biz_date\" DATE," + + "\"legend_persistence_count\" INTEGER," + + "\"data_split\" INTEGER NOT NULL)"; + + public static String expectedInsertIntoBaseTempStagingWithAllVersionAndFilterDuplicates = "INSERT INTO \"mydb\".\"staging_legend_persistence_temp_staging\" " + + "(\"id\", \"name\", \"amount\", \"biz_date\", \"legend_persistence_count\", \"data_split\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"legend_persistence_count\" as \"legend_persistence_count\",DENSE_RANK() OVER (PARTITION BY stage.\"id\",stage.\"name\" ORDER BY stage.\"biz_date\" ASC) as \"data_split\" " + + "FROM (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",COUNT(*) as \"legend_persistence_count\" FROM \"mydb\".\"staging\" as stage " + + "GROUP BY stage.\"id\", stage.\"name\", stage.\"amount\", stage.\"biz_date\") as stage)"; } 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/AppendOnlyTest.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/AppendOnlyTest.java index a55f29a2994..64b59eecc4e 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/AppendOnlyTest.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/AppendOnlyTest.java @@ -14,11 +14,114 @@ package org.finos.legend.engine.persistence.components.ingestmode; +import org.finos.legend.engine.persistence.components.AnsiTestArtifacts; +import org.finos.legend.engine.persistence.components.SnowflakeTestArtifacts; +import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.relational.RelationalSink; +import org.finos.legend.engine.persistence.components.relational.api.DataSplitRange; +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.snowflake.SnowflakeSink; +import org.finos.legend.engine.persistence.components.scenarios.AppendOnlyScenarios; +import org.finos.legend.engine.persistence.components.scenarios.TestScenario; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.List; public class AppendOnlyTest extends org.finos.legend.engine.persistence.components.ingestmode.nontemporal.AppendOnlyTest { + String incomingRecordCount = "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage"; + String rowsUpdated = "SELECT 0 as \"rowsUpdated\""; + String rowsTerminated = "SELECT 0 as \"rowsTerminated\""; + String rowsDeleted = "SELECT 0 as \"rowsDeleted\""; + + @Override + @Test + public void testAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration() + { + TestScenario scenario = new AppendOnlyScenarios().NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); + verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(operations); + } + + @Override + public void verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(GeneratorResult operations) + { + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + + String insertSql = "INSERT INTO \"mydb\".\"main\" " + + "(\"id\", \"name\", \"amount\", \"biz_date\", \"digest\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\"," + + "LAKEHOUSE_MD5(OBJECT_CONSTRUCT('id',stage.\"id\",'name',stage.\"name\",'amount',stage.\"amount\",'biz_date',stage.\"biz_date\")) " + + "FROM \"mydb\".\"staging\" as stage)"; + Assertions.assertEquals(AnsiTestArtifacts.expectedBaseTableCreateQueryWithNoPKs, preActionsSqlList.get(0)); + Assertions.assertEquals(insertSql, milestoningSqlList.get(0)); + + // Stats + Assertions.assertEquals(incomingRecordCount, operations.postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsUpdated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_UPDATED)); + Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + Assertions.assertNull(operations.postIngestStatisticsSql().get(StatisticName.ROWS_INSERTED)); + } + + @Override + @Test + public void testAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration() + { + TestScenario scenario = new AppendOnlyScenarios().WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + List operations = generator.generateOperationsWithDataSplits(scenario.getDatasets(), dataSplitRangesOneToTwo); + verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(operations, dataSplitRangesOneToTwo); + } + + @Override + public void verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(List generatorResults, List dataSplitRanges) + { + String insertSql = "INSERT INTO \"mydb\".\"main\" " + + "(\"id\", \"name\", \"amount\", \"biz_date\", \"digest\", \"batch_update_time\") " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\"," + + "LAKEHOUSE_MD5(OBJECT_CONSTRUCT('id',stage.\"id\",'name',stage.\"name\",'amount',stage.\"amount\",'biz_date',stage.\"biz_date\"))," + + "'2000-01-01 00:00:00.000000' " + + "FROM \"mydb\".\"staging_legend_persistence_temp_staging\" as stage WHERE (stage.\"data_split\" >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.\"data_split\" <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}'))"; + + Assertions.assertEquals(AnsiTestArtifacts.expectedBaseTablePlusDigestPlusUpdateTimestampCreateQuery, generatorResults.get(0).preActionsSql().get(0)); + Assertions.assertEquals(SnowflakeTestArtifacts.expectedBaseTempStagingTableWithCountAndDataSplit, generatorResults.get(0).preActionsSql().get(1)); + + Assertions.assertEquals(AnsiTestArtifacts.expectedTempStagingCleanupQuery, generatorResults.get(0).deduplicationAndVersioningSql().get(0)); + Assertions.assertEquals(SnowflakeTestArtifacts.expectedInsertIntoBaseTempStagingWithAllVersionAndFilterDuplicates, generatorResults.get(0).deduplicationAndVersioningSql().get(1)); + + Assertions.assertEquals(enrichSqlWithDataSplits(insertSql, dataSplitRanges.get(0)), generatorResults.get(0).ingestSql().get(0)); + Assertions.assertEquals(enrichSqlWithDataSplits(insertSql, dataSplitRanges.get(1)), generatorResults.get(1).ingestSql().get(0)); + Assertions.assertEquals(2, generatorResults.size()); + + // Stats + String incomingRecordCount = "SELECT COALESCE(SUM(stage.\"legend_persistence_count\"),0) as \"incomingRecordCount\" FROM \"mydb\".\"staging_legend_persistence_temp_staging\" as stage " + + "WHERE (stage.\"data_split\" >= '{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}') AND (stage.\"data_split\" <= '{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}')"; + String rowsInserted = "SELECT COUNT(*) as \"rowsInserted\" FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_update_time\" = (SELECT MAX(sink.\"batch_update_time\") FROM \"mydb\".\"main\" as sink)"; + + Assertions.assertEquals(enrichSqlWithDataSplits(incomingRecordCount, dataSplitRanges.get(0)), generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(enrichSqlWithDataSplits(incomingRecordCount, dataSplitRanges.get(1)), generatorResults.get(1).postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsUpdated, generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_UPDATED)); + Assertions.assertEquals(rowsDeleted, generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + Assertions.assertEquals(enrichSqlWithDataSplits(rowsInserted, dataSplitRanges.get(0)), generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_INSERTED)); + Assertions.assertEquals(rowsTerminated, generatorResults.get(0).postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + } @Override public RelationalSink getRelationalSink() 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 70529e54d7e..54d26d645c9 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 @@ -15,6 +15,7 @@ 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.FileFormatType; 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; @@ -32,6 +33,8 @@ 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.snowflake.SnowflakeSink; +import org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets.StandardFileFormat; +import org.finos.legend.engine.persistence.components.relational.snowflake.logicalplan.datasets.UserDefinedFileFormat; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -86,8 +89,11 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersDerived() .stagedFilesDatasetProperties( SnowflakeStagedFilesDatasetProperties.builder() .location("my_location") - .fileFormat("my_file_format") - .addAllFiles(filesList).build()) + .fileFormat(StandardFileFormat.builder() + .formatType(FileFormatType.CSV) + .putFormatOptions("FIELD_DELIMITER", ",") + .build()) + .addAllFilePatterns(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2)).build()) .build(); @@ -101,7 +107,7 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersDerived() .relationalSink(SnowflakeSink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue("task123") + .bulkLoadEventIdValue("task123") .batchIdPattern("{NEXT_BATCH_ID}") .build(); @@ -117,11 +123,13 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersDerived() "(\"col_int\", \"col_integer\", \"batch_id\", \"append_time\") " + "FROM " + "(SELECT legend_persistence_stage.$1 as \"col_int\",legend_persistence_stage.$2 as \"col_integer\",{NEXT_BATCH_ID},'2000-01-01 00:00:00.000000' " + - "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'"; + "FROM my_location as legend_persistence_stage) " + + "PATTERN = '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)' " + + "FILE_FORMAT = (FIELD_DELIMITER = ',', TYPE = 'CSV')" + + " 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 {NEXT_BATCH_ID},'my_name','2000-01-01 00:00:00.000000',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"],\"task_id\":\"task123\"}'))"; + "(SELECT {NEXT_BATCH_ID},'my_name','2000-01-01 00:00:00.000000',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"event_id\":\"task123\",\"file_patterns\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); @@ -146,8 +154,8 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersProvided() .stagedFilesDatasetProperties( SnowflakeStagedFilesDatasetProperties.builder() .location("my_location") - .fileFormat("my_file_format") - .addAllFiles(filesList).build()) + .fileFormat(StandardFileFormat.builder().formatType(FileFormatType.CSV).build()) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col3, col4)).build()) .alias("t") .build(); @@ -161,7 +169,7 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersProvided() .ingestMode(bulkLoad) .relationalSink(SnowflakeSink.get()) .collectStatistics(true) - .bulkLoadTaskIdValue("task123") + .bulkLoadEventIdValue("task123") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -175,8 +183,10 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersProvided() "(\"col_bigint\", \"col_variant\", \"batch_id\") " + "FROM " + "(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'"; + "FROM my_location as t) " + + "FILES = ('/path/xyz/file1.csv', '/path/xyz/file2.csv') " + + "FILE_FORMAT = (TYPE = 'CSV') " + + "ON_ERROR = 'ABORT_STATEMENT'"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); @@ -199,8 +209,8 @@ public void testBulkLoadWithUpperCaseConversionAndNoTaskId() .stagedFilesDatasetProperties( SnowflakeStagedFilesDatasetProperties.builder() .location("my_location") - .fileFormat("my_file_format") - .addAllFiles(filesList).build()) + .fileFormat(UserDefinedFileFormat.of("my_file_format")) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2)).build()) .build(); @@ -232,13 +242,14 @@ public void testBulkLoadWithUpperCaseConversionAndNoTaskId() "(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))," + "(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.000000' " + - "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'"; + "FROM my_location as legend_persistence_stage) " + + "FILES = ('/path/xyz/file1.csv', '/path/xyz/file2.csv') " + + "FILE_FORMAT = (FORMAT_NAME = 'my_file_format') " + + "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.000000',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; + "'MY_NAME','2000-01-01 00:00:00.000000',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"file_paths\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); @@ -312,7 +323,7 @@ public void testBulkLoadStagedFilesDatasetNotProvided() .relationalSink(SnowflakeSink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue("batch123") + .bulkLoadEventIdValue("batch123") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagingDataset)); @@ -337,8 +348,8 @@ public void testBulkLoadWithDigest() .stagedFilesDatasetProperties( SnowflakeStagedFilesDatasetProperties.builder() .location("my_location") - .fileFormat("my_file_format") - .addAllFiles(filesList).build()) + .fileFormat(UserDefinedFileFormat.of("my_file_format")) + .addAllFilePaths(filesList).build()) .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2)).build()) .build(); @@ -352,7 +363,7 @@ public void testBulkLoadWithDigest() .relationalSink(SnowflakeSink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadTaskIdValue("task123") + .bulkLoadEventIdValue("task123") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -369,9 +380,133 @@ public void testBulkLoadWithDigest() "(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))," + "(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.000000' " + - "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'"; + "FROM my_location as legend_persistence_stage) " + + "FILES = ('/path/xyz/file1.csv', '/path/xyz/file2.csv') " + + "FILE_FORMAT = (FORMAT_NAME = 'my_file_format') " + + "ON_ERROR = 'ABORT_STATEMENT'"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedIngestSql, ingestSql.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\" = '2000-01-01 00:00:00.000000'", statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadWithDigestAndForceOption() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField("batch_id") + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestField("digest").digestUdfName("LAKEHOUSE_UDF").build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + SnowflakeStagedFilesDatasetProperties.builder() + .location("my_location") + .fileFormat(UserDefinedFileFormat.of("my_file_format")) + .putCopyOptions("FORCE", true) + .addAllFilePatterns(filesList).build()) + .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().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(SnowflakeSink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadEventIdValue("task123") + .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\" 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))," + + "(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.000000' " + + "FROM my_location as legend_persistence_stage) " + + "PATTERN = '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)' " + + "FILE_FORMAT = (FORMAT_NAME = 'my_file_format') " + + "FORCE = true, ON_ERROR = 'ABORT_STATEMENT'"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedIngestSql, ingestSql.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\" = '2000-01-01 00:00:00.000000'", statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadWithDigestAndForceOptionAndOnErrorOption() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField("batch_id") + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestField("digest").digestUdfName("LAKEHOUSE_UDF").build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + SnowflakeStagedFilesDatasetProperties.builder() + .location("my_location") + .fileFormat(StandardFileFormat.builder() + .formatType(FileFormatType.CSV) + .putFormatOptions("FIELD_DELIMITER", ",") + .build()) + .putCopyOptions("ON_ERROR", "SKIP_FILE") + .addAllFilePatterns(filesList).build()) + .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().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(SnowflakeSink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadEventIdValue("task123") + .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\" 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))," + + "(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.000000' " + + "FROM my_location as legend_persistence_stage) " + + "PATTERN = '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)' " + + "FILE_FORMAT = (FIELD_DELIMITER = ',', TYPE = 'CSV') " + + "ON_ERROR = 'SKIP_FILE'"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); 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/NontemporalDeltaMergeTest.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/NontemporalDeltaMergeTest.java index 49ffe9bfc6e..149d2fc7619 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/NontemporalDeltaMergeTest.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/NontemporalDeltaMergeTest.java @@ -265,6 +265,37 @@ public void verifyNontemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); } + @Override + public void verifyNontemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations) + { + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + + String mergeSql = "MERGE INTO \"mydb\".\"main\" as sink " + + "USING " + + "(SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\" FROM \"mydb\".\"staging\" as stage WHERE (stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))) as stage " + + "ON (sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\") " + + "WHEN MATCHED AND sink.\"digest\" <> stage.\"digest\" " + + "THEN UPDATE SET " + + "sink.\"id\" = stage.\"id\"," + + "sink.\"name\" = stage.\"name\"," + + "sink.\"amount\" = stage.\"amount\"," + + "sink.\"biz_date\" = stage.\"biz_date\"," + + "sink.\"digest\" = stage.\"digest\" " + + "WHEN NOT MATCHED THEN " + + "INSERT (\"id\", \"name\", \"amount\", \"biz_date\", \"digest\") " + + "VALUES (stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"biz_date\",stage.\"digest\")"; + + Assertions.assertEquals(AnsiTestArtifacts.expectedBaseTablePlusDigestCreateQuery, preActionsSqlList.get(0)); + Assertions.assertEquals(mergeSql, milestoningSqlList.get(0)); + + String incomingRecordCount = "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage WHERE (stage.\"biz_date\" > '2020-01-10') OR ((stage.\"biz_date\" > '2020-01-01') AND (stage.\"biz_date\" < '2020-01-05'))"; + // Stats + Assertions.assertEquals(incomingRecordCount, operations.postIngestStatisticsSql().get(StatisticName.INCOMING_RECORD_COUNT)); + Assertions.assertEquals(rowsTerminated, operations.postIngestStatisticsSql().get(StatisticName.ROWS_TERMINATED)); + Assertions.assertEquals(rowsDeleted, operations.postIngestStatisticsSql().get(StatisticName.ROWS_DELETED)); + } + @Override public void verifyNontemporalDeltaWithFilterDupsMaxVersionWithStagingFilters(GeneratorResult operations) { 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/logicalplan/operations/CreateTableTest.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/logicalplan/operations/CreateTableTest.java index c8a96a8745b..b9d52ed474b 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/logicalplan/operations/CreateTableTest.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/logicalplan/operations/CreateTableTest.java @@ -17,12 +17,11 @@ import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetAdditionalProperties; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.IcebergProperties; import org.finos.legend.engine.persistence.components.logicalplan.datasets.TableOrigin; import org.finos.legend.engine.persistence.components.relational.SqlPlan; import org.finos.legend.engine.persistence.components.relational.snowflake.SnowflakeSink; import org.finos.legend.engine.persistence.components.relational.snowflake.optmizer.UpperCaseOptimizer; -import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.tabletypes.IcebergTableType; -import org.finos.legend.engine.persistence.components.relational.sqldom.tabletypes.TableType; import org.finos.legend.engine.persistence.components.relational.transformer.RelationalTransformer; import org.finos.legend.engine.persistence.components.transformer.TransformOptions; import org.junit.jupiter.api.Assertions; @@ -141,7 +140,7 @@ public void testCreateTableWithClusteringKeyWithUpperCase() } @Test - public void testCreateIcebergTableExternalVolumeMissing() + public void testCreateIcebergTablePropertiesMissing() { DatasetDefinition dataset = DatasetDefinition.builder() .database("my_db") @@ -162,7 +161,7 @@ public void testCreateIcebergTableExternalVolumeMissing() } catch (Exception e) { - Assertions.assertTrue(e.getMessage().contains("External Volume is mandatory for Iceberg Table")); + Assertions.assertTrue(e.getMessage().contains("Iceberg properties are mandatory for Iceberg Table")); } } @@ -178,7 +177,7 @@ public void testCreateIcebergTable() .schema(schemaWithAllColumns) .datasetAdditionalProperties(DatasetAdditionalProperties.builder() .tableOrigin(TableOrigin.ICEBERG) - .externalVolume("my_ext_vol") + .icebergProperties(IcebergProperties.builder().externalVolume("my_ext_vol").catalog("SNOWFLAKE").baseLocation("my_location").build()) .build()) .build(); Operation create = Create.of(true, dataset); @@ -187,13 +186,12 @@ public void testCreateIcebergTable() SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); String expected = "CREATE ICEBERG TABLE IF NOT EXISTS \"my_db\".\"my_schema\".\"my_table\"" + - " with EXTERNAL_VOLUME = 'my_ext_vol' " + "(\"col_int\" INTEGER NOT NULL PRIMARY KEY,\"col_integer\" INTEGER NOT NULL UNIQUE,\"col_bigint\" BIGINT," + "\"col_tinyint\" TINYINT,\"col_smallint\" SMALLINT,\"col_char\" CHAR,\"col_varchar\" VARCHAR," + "\"col_string\" VARCHAR,\"col_timestamp\" TIMESTAMP,\"col_datetime\" DATETIME,\"col_date\" DATE," + "\"col_real\" DOUBLE,\"col_float\" DOUBLE,\"col_decimal\" NUMBER(10,4),\"col_double\" DOUBLE," + "\"col_binary\" BINARY,\"col_time\" TIME,\"col_numeric\" NUMBER(38,0),\"col_boolean\" BOOLEAN," + - "\"col_varbinary\" BINARY(10)) ICEBERG_TABLE_2022 = true"; + "\"col_varbinary\" BINARY(10)) CATALOG='SNOWFLAKE', EXTERNAL_VOLUME='my_ext_vol', BASE_LOCATION='my_location'"; Assertions.assertEquals(expected, list.get(0)); } 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/logicalplan/operations/ShowTest.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/logicalplan/operations/ShowTest.java index 420a8b2226f..ddf24c67f61 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/logicalplan/operations/ShowTest.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/logicalplan/operations/ShowTest.java @@ -40,7 +40,7 @@ public void testShowCommand() LogicalPlan logicalPlan = LogicalPlanFactory.getLogicalPlanForDoesDatasetExist(dataset); SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW TABLES LIKE 'trips' IN CITIBIKE.public"; + String expected = "SHOW TABLES LIKE 'trips' IN \"CITIBIKE\".\"public\""; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -57,7 +57,7 @@ public void testShowCommandWithUpperCase() LogicalPlan logicalPlan = LogicalPlanFactory.getLogicalPlanForDoesDatasetExist(dataset); SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW TABLES LIKE 'TRIPS' IN CITIBIKE.PUBLIC"; + String expected = "SHOW TABLES LIKE 'TRIPS' IN \"CITIBIKE\".\"PUBLIC\""; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } @@ -83,7 +83,7 @@ public void testShowCommandWithSchemaWithoutDb() LogicalPlan logicalPlan = LogicalPlanFactory.getLogicalPlanForDoesDatasetExist(dataset); SqlPlan physicalPlan = transformer.generatePhysicalPlan(logicalPlan); List list = physicalPlan.getSqlList(); - String expected = "SHOW TABLES LIKE 'trips' IN public"; + String expected = "SHOW TABLES LIKE 'trips' IN \"public\""; assertEquals(1, list.size()); assertEquals(expected, list.get(0)); } 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/relational/snowflake/sqldom/schemaops/CopyStatementTest.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/relational/snowflake/sqldom/schemaops/CopyStatementTest.java index b9435bc80af..78877a8d46e 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/relational/snowflake/sqldom/schemaops/CopyStatementTest.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/relational/snowflake/sqldom/schemaops/CopyStatementTest.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.schemaops; +import org.finos.legend.engine.persistence.components.common.FileFormatType; import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.schemaops.expressions.table.StagedFilesTable; import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.schemaops.statements.CopyStatement; import org.finos.legend.engine.persistence.components.relational.snowflake.sqldom.schemaops.values.StagedFilesField; @@ -26,7 +27,9 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,7 +38,7 @@ public class CopyStatementTest public static String QUOTE_IDENTIFIER = "\"%s\""; @Test - void testSelectStageStatement() throws SqlDomException + void testCopyStatementWithFilesAndStandardFileFormat() throws SqlDomException { StagedFilesTable stagedFiles = new StagedFilesTable("t","@my_stage"); List selectItems = Arrays.asList( @@ -55,20 +58,29 @@ void testSelectStageStatement() throws SqlDomException ); CopyStatement copyStatement = new CopyStatement(table, columns, selectStatement); + copyStatement.setFilePaths(Arrays.asList("path1", "path2")); + copyStatement.setFileFormatType(FileFormatType.CSV); + Map fileFormatOptions = new HashMap<>(); + fileFormatOptions.put("COMPRESSION", "AUTO"); + copyStatement.setFileFormatOptions(fileFormatOptions); + Map copyOptions = new HashMap<>(); + copyOptions.put("ON_ERROR", "ABORT_STATEMENT"); + copyStatement.setCopyOptions(copyOptions); + String sql1 = genSqlIgnoringErrors(copyStatement); assertEquals("COPY INTO \"mydb\".\"mytable1\" " + "(\"field1\", \"field2\", \"field3\", \"field4\") " + "FROM " + "(SELECT t.$1 as \"field1\",t.$2 as \"field2\",t.$3 as \"field3\",t.$4 as \"field4\" FROM @my_stage as t) " + - "on_error = 'ABORT_STATEMENT'", sql1); + "FILES = ('path1', 'path2') " + + "FILE_FORMAT = (COMPRESSION = 'AUTO', TYPE = 'CSV') " + + "ON_ERROR = 'ABORT_STATEMENT'", sql1); } @Test - void testSelectStageStatementWithPatternAndFileFormat() throws SqlDomException + void testCopyStatementWithPatternAndFileFormatAndForceOption() throws SqlDomException { StagedFilesTable stagedFiles = new StagedFilesTable("t","@my_stage"); - stagedFiles.setFileFormat("my_file_format"); - stagedFiles.setFilePattern("my_pattern"); List selectItems = Arrays.asList( new StagedFilesField(QUOTE_IDENTIFIER, 1, "t", "field1", "field1"), @@ -87,14 +99,24 @@ void testSelectStageStatementWithPatternAndFileFormat() throws SqlDomException new Field("field4", QUOTE_IDENTIFIER) ); + Map copyOptions = new HashMap<>(); + copyOptions.put("FORCE", true); + copyOptions.put("ON_ERROR", "ABORT_STATEMENT"); CopyStatement copyStatement = new CopyStatement(table, columns, selectStatement); + copyStatement.setFilePatterns(Arrays.asList("my_pattern1", "my_pattern2")); + copyStatement.setUserDefinedFileFormatName("my_file_format"); + copyStatement.setCopyOptions(copyOptions); + String sql1 = genSqlIgnoringErrors(copyStatement); - assertEquals("COPY INTO \"mydb\".\"mytable1\" " + + String expectedStr = "COPY INTO \"mydb\".\"mytable1\" " + "(\"field1\", \"field2\", \"field3\", \"field4\") " + "FROM " + "(SELECT t.$1:field1 as \"field1\",t.$1:field2 as \"field2\",t.$1:field3 as \"field3\",t.$1:field4 as \"field4\" " + - "FROM @my_stage (FILE_FORMAT => 'my_file_format', PATTERN => 'my_pattern') as t) " + - "on_error = 'ABORT_STATEMENT'", sql1); + "FROM @my_stage as t) " + + "PATTERN = '(my_pattern1)|(my_pattern2)' " + + "FILE_FORMAT = (FORMAT_NAME = 'my_file_format') " + + "FORCE = true, ON_ERROR = 'ABORT_STATEMENT'"; + assertEquals(expectedStr, sql1); } public static String genSqlIgnoringErrors(SqlGen item) 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/BaseTest.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/BaseTest.java index adf0d700745..fab7988915f 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/BaseTest.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/BaseTest.java @@ -18,13 +18,21 @@ import org.finos.legend.engine.persistence.components.common.FilterType; import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.ingestmode.DeriveMainDatasetSchemaFromStaging; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.And; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.GreaterThan; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.LessThan; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Or; 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.DerivedDataset; 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.FilteredDataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; +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.relational.api.DataSplitRange; import org.finos.legend.engine.persistence.components.relational.api.GeneratorResult; import org.finos.legend.engine.persistence.components.scenarios.TestScenario; @@ -74,6 +82,7 @@ public class BaseTest protected String stagingTableWithoutDuplicatesAlias = "stage"; protected String digestField = "digest"; + protected String digestUdf = "LAKEHOUSE_MD5"; protected String versionField = "version"; protected String bizDateField = "biz_date"; protected String snapshotIdField = "snapshot_id"; @@ -260,6 +269,13 @@ public class BaseTest .addFields(digest) .build(); + protected SchemaDefinition baseTableSchemaWithNoPrimaryKeysAndNoDigest = SchemaDefinition.builder() + .addFields(idNonPrimary) + .addFields(nameNonPrimary) + .addFields(amount) + .addFields(bizDate) + .build(); + protected SchemaDefinition baseTableSchemaWithAuditAndNoPrimaryKeys = SchemaDefinition.builder() .addFields(idNonPrimary) .addFields(nameNonPrimary) @@ -562,6 +578,11 @@ protected String enrichSqlWithDataSplits(String sql, DataSplitRange dataSplitRan .schema(baseTableSchemaWithNoPrimaryKeys) .build(); + protected Dataset stagingTableWithNoPrimaryKeysAndNoDigest = DatasetDefinition.builder() + .database(stagingDbName).name(stagingTableName).alias(stagingTableAlias) + .schema(baseTableSchemaWithNoPrimaryKeysAndNoDigest) + .build(); + protected Dataset mainTableWithNoPrimaryKeysHavingAuditField = DatasetDefinition.builder() .database(mainDbName).name(mainTableName).alias(mainTableAlias) .schema(baseTableSchemaWithAuditAndNoPrimaryKeys) @@ -612,6 +633,36 @@ protected String enrichSqlWithDataSplits(String sql, DataSplitRange dataSplitRan .addDatasetFilters(DatasetFilter.of("biz_date", FilterType.LESS_THAN, "2020-01-03")) .build(); + protected Dataset filteredStagingTable = FilteredDataset.builder() + .database(stagingDbName).name(stagingTableName).alias(stagingTableAlias) + .schema(baseTableSchemaWithDigest) + .filter(GreaterThan.of(FieldValue.builder() + .fieldName(batchIdInField) + .datasetRefAlias(stagingTableAlias) + .build(), NumericalValue.of(5L))) + .build(); + + protected Dataset filteredStagingTableWithVersion = FilteredDataset.builder() + .database(stagingDbName).name(stagingTableName).alias(stagingTableAlias) + .schema(baseTableSchemaWithDigestAndVersion) + .filter(GreaterThan.of(FieldValue.builder() + .fieldName(batchIdInField) + .datasetRefAlias(stagingTableAlias) + .build(), NumericalValue.of(5L))) + .build(); + + protected Dataset filteredStagingTableWithComplexFilter = FilteredDataset.builder() + .database(stagingDbName).name(stagingTableName).alias(stagingTableAlias) + .schema(baseTableSchemaWithDigest) + .filter(Or.builder() + .addConditions(GreaterThan.of(FieldValue.builder().fieldName(bizDateField).datasetRefAlias(stagingTableAlias).build(), StringValue.of("2020-01-10"))) + .addConditions(And.builder() + .addConditions(GreaterThan.of(FieldValue.builder().fieldName(bizDateField).datasetRefAlias(stagingTableAlias).build(), StringValue.of("2020-01-01"))) + .addConditions(LessThan.of(FieldValue.builder().fieldName(bizDateField).datasetRefAlias(stagingTableAlias).build(), StringValue.of("2020-01-05"))) + .build()) + .build()) + .build(); + protected Dataset stagingTableWithBaseSchemaAndDigestAndDeleteIndicator = DatasetDefinition.builder() .database(stagingDbName).name(stagingTableName).alias(stagingTableAlias) .schema(stagingTableSchemaWithDeleteIndicator) 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/scenarios/AppendOnlyScenarios.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/scenarios/AppendOnlyScenarios.java index 3c71d88d913..49727a03797 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/scenarios/AppendOnlyScenarios.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/scenarios/AppendOnlyScenarios.java @@ -21,6 +21,8 @@ import org.finos.legend.engine.persistence.components.ingestmode.deduplication.AllowDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FailOnDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.AllVersionsStrategy; import org.finos.legend.engine.persistence.components.ingestmode.versioning.DigestBasedResolver; import org.finos.legend.engine.persistence.components.ingestmode.versioning.MaxVersionStrategy; @@ -30,7 +32,7 @@ public class AppendOnlyScenarios extends BaseTest { /* - Test Scenarios for Non-temporal Delta + Test Scenarios for Append Only Variables: 1) Auditing: No Auditing, With Auditing 2) Versioning: NoVersion, MaxVersion, AllVersion @@ -91,7 +93,7 @@ public class AppendOnlyScenarios extends BaseTest public TestScenario NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(NoAuditing.builder().build()) @@ -110,7 +112,7 @@ public TestScenario NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_REC public TestScenario WITH_AUDITING__FILTER_DUPS__NO_VERSIONING__WITH_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeField).build()) @@ -122,7 +124,7 @@ public TestScenario WITH_AUDITING__FILTER_DUPS__NO_VERSIONING__WITH_FILTER_EXIST public TestScenario WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FailOnDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder() .versioningField(bizDateField) @@ -140,7 +142,7 @@ public TestScenario WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING public TestScenario NO_AUDITING__FILTER_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder() .versioningField(bizDateField) @@ -157,7 +159,7 @@ public TestScenario NO_AUDITING__FILTER_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RE public TestScenario WITH_AUDITING__FILTER_DUPS__ALL_VERSION__WITH_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(AllVersionsStrategy.builder() .versioningField(bizDateField) @@ -174,7 +176,7 @@ public TestScenario WITH_AUDITING__FILTER_DUPS__ALL_VERSION__WITH_FILTER_EXISTIN public TestScenario WITH_AUDITING__FAIL_ON_DUPS__MAX_VERSION__WITH_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FailOnDuplicates.builder().build()) .versioningStrategy(MaxVersionStrategy.builder() .versioningField(bizDateField) @@ -190,7 +192,7 @@ public TestScenario WITH_AUDITING__FAIL_ON_DUPS__MAX_VERSION__WITH_FILTER_EXISTI public TestScenario WITH_AUDITING__FILTER_DUPS__MAX_VERSION__NO_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .versioningStrategy(MaxVersionStrategy.builder() .versioningField(bizDateField) @@ -207,7 +209,7 @@ public TestScenario WITH_AUDITING__FILTER_DUPS__MAX_VERSION__NO_FILTER_EXISTING_ public TestScenario NO_AUDITING__NO_DEDUP__NO_VERSIONING__WITH_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(NoAuditing.builder().build()) @@ -219,7 +221,7 @@ public TestScenario NO_AUDITING__NO_DEDUP__NO_VERSIONING__WITH_FILTER_EXISTING_R public TestScenario WITH_AUDITING__ALLOW_DUPLICATES__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS() { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(AllowDuplicates.builder().build()) .versioningStrategy(NoVersioningStrategy.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeField).build()) @@ -227,4 +229,33 @@ public TestScenario WITH_AUDITING__ALLOW_DUPLICATES__NO_VERSIONING__NO_FILTER_EX .build(); return new TestScenario(mainTableWithNoPrimaryKeysHavingAuditField, stagingTableWithNoPrimaryKeys, ingestMode); } + + public TestScenario NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION() + { + AppendOnly ingestMode = AppendOnly.builder() + .deduplicationStrategy(AllowDuplicates.builder().build()) + .versioningStrategy(NoVersioningStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .filterExistingRecords(false) + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(digestUdf).digestField(digestField).build()) + .build(); + return new TestScenario(mainTableWithNoPrimaryKeys, stagingTableWithNoPrimaryKeysAndNoDigest, ingestMode); + } + + public TestScenario WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION() + { + AppendOnly ingestMode = AppendOnly.builder() + .deduplicationStrategy(FailOnDuplicates.builder().build()) + .versioningStrategy(AllVersionsStrategy.builder() + .versioningField(bizDateField) + .dataSplitFieldName(dataSplitField) + .mergeDataVersionResolver(DigestBasedResolver.INSTANCE) + .performStageVersioning(true) + .build()) + .auditing(DateTimeAuditing.builder().dateTimeField(batchUpdateTimeField).build()) + .filterExistingRecords(false) + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(digestUdf).digestField(digestField).build()) + .build(); + return new TestScenario(mainTableWithBaseSchemaHavingDigestAndAuditField, stagingTableWithBaseSchema, ingestMode); + } } 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/scenarios/NonTemporalDeltaScenarios.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/scenarios/NonTemporalDeltaScenarios.java index 5fb0be6ba7a..9b956004abd 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/scenarios/NonTemporalDeltaScenarios.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/scenarios/NonTemporalDeltaScenarios.java @@ -117,6 +117,15 @@ public TestScenario NO_VERSIONING__WITH_STAGING_FILTER() return new TestScenario(mainTableWithBaseSchemaAndDigest, stagingTableWithFilters, ingestMode); } + public TestScenario NO_VERSIONING__WITH_FILTERED_DATASET() + { + NontemporalDelta ingestMode = NontemporalDelta.builder() + .digestField(digestField) + .auditing(NoAuditing.builder().build()) + .build(); + return new TestScenario(mainTableWithBaseSchemaAndDigest, filteredStagingTableWithComplexFilter, ingestMode); + } + public TestScenario FILTER_DUPS__MAX_VERSION__WITH_STAGING_FILTER() { NontemporalDelta ingestMode = NontemporalDelta.builder() 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/scenarios/UnitemporalDeltaBatchIdBasedScenarios.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/scenarios/UnitemporalDeltaBatchIdBasedScenarios.java index 49b3f90aa94..d8cb52f53e6 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/scenarios/UnitemporalDeltaBatchIdBasedScenarios.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/scenarios/UnitemporalDeltaBatchIdBasedScenarios.java @@ -171,6 +171,19 @@ public TestScenario BATCH_ID_BASED__NO_VERSIONING__WITH_STAGING_FILTER() return new TestScenario(mainTableWithBatchIdBasedSchema, stagingTableWithFilter, ingestMode); } + public TestScenario BATCH_ID_BASED__NO_VERSIONING__WITH_FILTERED_DATASET() + { + UnitemporalDelta ingestMode = UnitemporalDelta.builder() + .digestField(digestField) + .transactionMilestoning(BatchId.builder() + .batchIdInName(batchIdInField) + .batchIdOutName(batchIdOutField) + .build()) + .versioningStrategy(NoVersioningStrategy.builder().build()) + .build(); + return new TestScenario(mainTableWithBatchIdBasedSchema, filteredStagingTable, ingestMode); + } + public TestScenario BATCH_ID_BASED__FILTER_DUPS__MAX_VERSION__WITH_STAGING_FILTER() { UnitemporalDelta ingestMode = UnitemporalDelta.builder() @@ -185,6 +198,20 @@ public TestScenario BATCH_ID_BASED__FILTER_DUPS__MAX_VERSION__WITH_STAGING_FILTE return new TestScenario(mainTableWithBatchIdAndVersionBasedSchema, stagingTableWithFilterAndVersion, ingestMode); } + public TestScenario BATCH_ID_BASED__FILTER_DUPS__MAX_VERSION__WITH_FILTERED_DATASET() + { + UnitemporalDelta ingestMode = UnitemporalDelta.builder() + .digestField(digestField) + .transactionMilestoning(BatchId.builder() + .batchIdInName(batchIdInField) + .batchIdOutName(batchIdOutField) + .build()) + .versioningStrategy(MaxVersionStrategy.builder().performStageVersioning(true).versioningField(version.name()).mergeDataVersionResolver(VersionColumnBasedResolver.of(VersionComparator.GREATER_THAN)).build()) + .deduplicationStrategy(FilterDuplicates.builder().build()) + .build(); + return new TestScenario(mainTableWithBatchIdAndVersionBasedSchema, filteredStagingTableWithVersion, ingestMode); + } + public TestScenario BATCH_ID_BASED__NO_DEDUP__MAX_VERSION_WITHOUT_PERFORM__WITH_STAGING_FILTER() { UnitemporalDelta ingestMode = UnitemporalDelta.builder() 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/AppendOnlyTestCases.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/AppendOnlyTestCases.java index a3cf0a5f3e3..26b25c7f317 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/AppendOnlyTestCases.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/AppendOnlyTestCases.java @@ -19,6 +19,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.AppendOnly; import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; import org.finos.legend.engine.persistence.components.relational.CaseConversion; import org.finos.legend.engine.persistence.components.relational.RelationalSink; @@ -216,7 +217,7 @@ void testAppendOnlyValidationDateTimeFieldMissing() try { AppendOnly ingestMode = AppendOnly.builder() - .digestField(digestField) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(digestField).build()) .deduplicationStrategy(FilterDuplicates.builder().build()) .auditing(DateTimeAuditing.builder().build()) .build(); @@ -247,5 +248,39 @@ void testAppendOnlyNoAuditingFilterExistingRecords() } } + @Test + public void testAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration() + { + TestScenario scenario = scenarios.NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); + verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(operations); + } + + public abstract void verifyAppendOnlyNoAuditingAllowDuplicatesNoVersioningNoFilterExistingRecordsUdfDigestGeneration(GeneratorResult operations); + + @Test + public void testAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration() + { + TestScenario scenario = scenarios.WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS__UDF_DIGEST_GENERATION(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + List operations = generator.generateOperationsWithDataSplits(scenario.getDatasets(), dataSplitRangesOneToTwo); + verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(operations, dataSplitRangesOneToTwo); + } + + public abstract void verifyAppendOnlyWithAuditingFailOnDuplicatesAllVersionNoFilterExistingRecordsUdfDigestGeneration(List generatorResults, List dataSplitRanges); + public abstract 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/NontemporalDeltaTestCases.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/NontemporalDeltaTestCases.java index 87ad65d7f20..520434e8786 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/NontemporalDeltaTestCases.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/NontemporalDeltaTestCases.java @@ -234,6 +234,7 @@ void testNontemporalDeltaWithNoVersionAndStagingFilter() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(testScenario.getIngestMode()) .relationalSink(getRelationalSink()) + .cleanupStagingData(false) .collectStatistics(true) .build(); @@ -243,6 +244,23 @@ void testNontemporalDeltaWithNoVersionAndStagingFilter() public abstract void verifyNontemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult operations); + @Test + void testNontemporalDeltaWithNoVersionAndFilteredDataset() + { + TestScenario testScenario = scenarios.NO_VERSIONING__WITH_FILTERED_DATASET(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(testScenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .cleanupStagingData(false) + .collectStatistics(true) + .build(); + + GeneratorResult operations = generator.generateOperations(testScenario.getDatasets()); + verifyNontemporalDeltaWithNoVersionAndFilteredDataset(operations); + } + + public abstract void verifyNontemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations); + @Test void testNontemporalDeltaWithFilterDupsMaxVersionWithStagingFilters() { @@ -250,6 +268,7 @@ void testNontemporalDeltaWithFilterDupsMaxVersionWithStagingFilters() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(testScenario.getIngestMode()) .relationalSink(getRelationalSink()) + .cleanupStagingData(false) .collectStatistics(true) .build(); @@ -266,6 +285,7 @@ void testNontemporalDeltaWithNoDedupMaxVersioningWithoutPerformWithStagingFilter RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(testScenario.getIngestMode()) .relationalSink(getRelationalSink()) + .cleanupStagingData(false) .collectStatistics(true) .build(); 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/derivation/AppendOnlyBasedDerivationTest.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/derivation/AppendOnlyBasedDerivationTest.java index 29aa39969cd..c6abb417906 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/derivation/AppendOnlyBasedDerivationTest.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/derivation/AppendOnlyBasedDerivationTest.java @@ -20,6 +20,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditing; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.AllowDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FailOnDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.scenarios.AppendOnlyScenarios; import org.finos.legend.engine.persistence.components.scenarios.TestScenario; import org.junit.jupiter.api.Assertions; @@ -37,7 +38,8 @@ void testAppendOnlyAllowDuplicatesNoAuditingNoVersioningNoFilterExistingRecords( TestScenario scenario = scenarios.NO_AUDITING__NO_DEDUP__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS(); assertDerivedMainDataset(scenario); AppendOnly mode = (AppendOnly) scenario.getIngestMode().accept(new IngestModeCaseConverter(String::toUpperCase)); - Assertions.assertEquals("DIGEST", mode.digestField().get()); + Assertions.assertTrue(mode.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assertions.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) mode.digestGenStrategy()).digestField()); Assertions.assertTrue(mode.auditing() instanceof NoAuditing); Assertions.assertTrue(mode.deduplicationStrategy() instanceof AllowDuplicates); } @@ -49,7 +51,8 @@ void testAppendOnlyFailOnDuplicatesWithAuditingAllVersionNoFilterExistingRecords TestScenario scenario = scenarios.WITH_AUDITING__FAIL_ON_DUPS__ALL_VERSION__NO_FILTER_EXISTING_RECORDS(); assertDerivedMainDataset(scenario); AppendOnly mode = (AppendOnly) scenario.getIngestMode().accept(new IngestModeCaseConverter(String::toUpperCase)); - Assertions.assertEquals("DIGEST", mode.digestField().get()); + Assertions.assertTrue(mode.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assertions.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) mode.digestGenStrategy()).digestField()); Assertions.assertEquals("DATA_SPLIT", mode.dataSplitField().get()); Assertions.assertTrue(mode.auditing() instanceof DateTimeAuditing); DateTimeAuditing auditing = (DateTimeAuditing) mode.auditing(); @@ -64,7 +67,8 @@ void testAppendOnlyAllowDuplicatesWithAuditingNoVersioningNoFilterExistingRecord TestScenario scenario = scenarios.WITH_AUDITING__ALLOW_DUPLICATES__NO_VERSIONING__NO_FILTER_EXISTING_RECORDS(); assertDerivedMainDataset(scenario); AppendOnly mode = (AppendOnly) scenario.getIngestMode().accept(new IngestModeCaseConverter(String::toUpperCase)); - Assertions.assertEquals("DIGEST", mode.digestField().get()); + Assertions.assertTrue(mode.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assertions.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) mode.digestGenStrategy()).digestField()); Assertions.assertTrue(mode.auditing() instanceof DateTimeAuditing); DateTimeAuditing auditing = (DateTimeAuditing) mode.auditing(); Assertions.assertEquals("BATCH_UPDATE_TIME", auditing.dateTimeField()); 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/unitemporal/UnitmemporalDeltaBatchIdBasedTestCases.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/unitemporal/UnitmemporalDeltaBatchIdBasedTestCases.java index 63a34113aa7..e5b9e0ffdf9 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/unitemporal/UnitmemporalDeltaBatchIdBasedTestCases.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/unitemporal/UnitmemporalDeltaBatchIdBasedTestCases.java @@ -269,7 +269,7 @@ void testUnitemporalDeltaWithNoVersioningAndStagingFilters() .ingestMode(scenario.getIngestMode()) .relationalSink(getRelationalSink()) .executionTimestampClock(fixedClock_2000_01_01) - .cleanupStagingData(true) + .cleanupStagingData(false) .build(); GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); verifyUnitemporalDeltaWithNoVersionAndStagingFilter(operations); @@ -277,6 +277,22 @@ void testUnitemporalDeltaWithNoVersioningAndStagingFilters() public abstract void verifyUnitemporalDeltaWithNoVersionAndStagingFilter(GeneratorResult operations); + @Test + void testUnitemporalDeltaWithNoVersioningAndFilteredDataset() + { + TestScenario scenario = scenarios.BATCH_ID_BASED__NO_VERSIONING__WITH_FILTERED_DATASET(); + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .executionTimestampClock(fixedClock_2000_01_01) + .cleanupStagingData(false) + .build(); + GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); + verifyUnitemporalDeltaWithNoVersionAndFilteredDataset(operations); + } + + public abstract void verifyUnitemporalDeltaWithNoVersionAndFilteredDataset(GeneratorResult operations); + @Test void testUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter() { @@ -286,7 +302,7 @@ void testUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter() .ingestMode(scenario.getIngestMode()) .relationalSink(getRelationalSink()) .executionTimestampClock(fixedClock_2000_01_01) - .cleanupStagingData(true) + .cleanupStagingData(false) .build(); GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); this.verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(operations); @@ -294,6 +310,23 @@ void testUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter() public abstract void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithStagingFilter(GeneratorResult operations); + @Test + void testUnitemporalDeltaWithFilterDupsMaxVersionWithFilteredDataset() + { + TestScenario scenario = scenarios.BATCH_ID_BASED__FILTER_DUPS__MAX_VERSION__WITH_FILTERED_DATASET(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(scenario.getIngestMode()) + .relationalSink(getRelationalSink()) + .executionTimestampClock(fixedClock_2000_01_01) + .cleanupStagingData(false) + .build(); + GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); + this.verifyUnitemporalDeltaWithFilterDupsMaxVersionWithFilteredDataset(operations); + } + + public abstract void verifyUnitemporalDeltaWithFilterDupsMaxVersionWithFilteredDataset(GeneratorResult operations); + @Test void testUnitemporalDeltaWithNoDedupMaxVersionWithoutPerformAndStagingFilters() { @@ -303,7 +336,7 @@ void testUnitemporalDeltaWithNoDedupMaxVersionWithoutPerformAndStagingFilters() .ingestMode(scenario.getIngestMode()) .relationalSink(getRelationalSink()) .executionTimestampClock(fixedClock_2000_01_01) - .cleanupStagingData(true) + .cleanupStagingData(false) .collectStatistics(true) .build(); GeneratorResult operations = generator.generateOperations(scenario.getDatasets()); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/AppendOnlyMapper.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/AppendOnlyMapper.java index 7e97be5066e..9ee7343a6ae 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/AppendOnlyMapper.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/AppendOnlyMapper.java @@ -18,6 +18,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.deduplication.DeduplicationStrategy; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FailOnDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.dataset.DatasetType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.persister.ingestmode.appendonly.AppendOnly; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.relational.temporality.Nontemporal; @@ -31,7 +32,7 @@ public class AppendOnlyMapper public static org.finos.legend.engine.persistence.components.ingestmode.AppendOnly from(AppendOnly appendOnly) { return org.finos.legend.engine.persistence.components.ingestmode.AppendOnly.builder() - .digestField(DIGEST_FIELD_DEFAULT) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(DIGEST_FIELD_DEFAULT).build()) .filterExistingRecords(appendOnly.filterDuplicates) .auditing(appendOnly.auditing.accept(MappingVisitors.MAP_TO_COMPONENT_AUDITING)) .build(); @@ -52,7 +53,7 @@ public static org.finos.legend.engine.persistence.components.ingestmode.AppendOn } return org.finos.legend.engine.persistence.components.ingestmode.AppendOnly.builder() - .digestField(DIGEST_FIELD_DEFAULT) + .digestGenStrategy(UserProvidedDigestGenStrategy.builder().digestField(DIGEST_FIELD_DEFAULT).build()) .filterExistingRecords(filterExistingRecords) .auditing(temporality.auditing.accept(org.finos.legend.engine.testable.persistence.mapper.v2.MappingVisitors.MAP_TO_COMPONENT_NONTEMPORAL_AUDITING)) .build(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/DeriveDatasets.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/DeriveDatasets.java index aeb17585d55..39c58854d83 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/DeriveDatasets.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/DeriveDatasets.java @@ -78,10 +78,7 @@ public DeriveDatasets(Dataset mainDataset, String testData) public Datasets visit(AppendOnly appendOnly) { Dataset stagingDataset = stagingDatasetBuilder.schema(stagingSchemaDefinitionBuilder.build()).build(); - if (appendOnly.filterDuplicates) - { - enrichMainSchemaWithDigest(); - } + enrichMainSchemaWithDigest(); boolean baseSchemaHasPks = baseSchema.fields().stream().anyMatch(field -> field.primaryKey()); appendOnly.auditing.accept(new MappingVisitors.EnrichSchemaWithAuditing(mainSchemaDefinitionBuilder, baseSchema, baseSchemaHasPks)); Dataset enrichedMainDataset = mainDatasetDefinitionBuilder.schema(mainSchemaDefinitionBuilder.build()).build(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/IngestModeVisitors.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/IngestModeVisitors.java index c02dbf1f05b..9bad42ae936 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/IngestModeVisitors.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v1/IngestModeVisitors.java @@ -50,10 +50,7 @@ public Set visit(AppendOnly appendOnly) { fieldsToIgnore.add(auditField.get()); } - if (appendOnly.filterDuplicates) - { - fieldsToIgnore.add(DIGEST_FIELD_DEFAULT); - } + fieldsToIgnore.add(DIGEST_FIELD_DEFAULT); return fieldsToIgnore; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v2/IngestModeMapper.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v2/IngestModeMapper.java index 4a7dfbe3edc..1da328f1c97 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v2/IngestModeMapper.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/main/java/org/finos/legend/engine/testable/persistence/mapper/v2/IngestModeMapper.java @@ -193,11 +193,7 @@ public static Datasets deriveDatasets(ServiceOutputTarget serviceOutputTarget, D else { ignoreAuditField(fieldsToIgnore, nontemporal); - org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.relational.temporality.updatesHandling.AppendOnly appendOnlyHandling = (org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.relational.temporality.updatesHandling.AppendOnly) nontemporal.updatesHandling; - if (appendOnlyHandling.appendStrategy instanceof FilterDuplicates) - { - enrichMainSchemaWithDigest(baseSchema, mainSchemaDefinitionBuilder); - } + enrichMainSchemaWithDigest(baseSchema, mainSchemaDefinitionBuilder); Dataset stagingDataset = getStagingDataset(baseSchema, stagingDatasetBuilder, fieldsToIgnore, fieldsToAdd); Dataset enrichedMainDataset = mainDatasetDefinitionBuilder.schema(mainSchemaDefinitionBuilder.build()).build(); return Datasets.of(enrichedMainDataset, stagingDataset); @@ -288,22 +284,9 @@ private static Set extractFieldsToExclude(DatasetType datasetType, Tempo } else { - if (nontemporal.updatesHandling instanceof Overwrite) - { - ignoreAuditField(fieldsToIgnore, nontemporal); - fieldsToIgnore.add(DIGEST_FIELD_DEFAULT); - return fieldsToIgnore; - } - else - { - ignoreAuditField(fieldsToIgnore, nontemporal); - org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.relational.temporality.updatesHandling.AppendOnly appendOnlyHandling = (org.finos.legend.engine.protocol.pure.v1.model.packageableElement.persistence.relational.temporality.updatesHandling.AppendOnly) nontemporal.updatesHandling; - if (appendOnlyHandling.appendStrategy instanceof FilterDuplicates) - { - fieldsToIgnore.add(DIGEST_FIELD_DEFAULT); - } - return fieldsToIgnore; - } + ignoreAuditField(fieldsToIgnore, nontemporal); + fieldsToIgnore.add(DIGEST_FIELD_DEFAULT); + return fieldsToIgnore; } } case Unitemporal: diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/ingestmode/appendonly/TestAppendOnlyWithAllowDuplicates.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/ingestmode/appendonly/TestAppendOnlyWithAllowDuplicates.java index c21aa6882ff..23f7d5f7bae 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/ingestmode/appendonly/TestAppendOnlyWithAllowDuplicates.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/ingestmode/appendonly/TestAppendOnlyWithAllowDuplicates.java @@ -67,7 +67,7 @@ public void testAppendOnlyWithFailure() throws Exception AssertPass batch2Status = (AssertPass) testFailed.assertStatuses.get(1); // no space - Assert.assertEquals("[{\"ID\":1,\"NAME\":\"ANDY\"},{\"ID\":2,\"NAME\":\"BRAD\"}]", batch1Status.actual); + Assert.assertEquals("[{\"ID\":1,\"DIGEST\":\"fd0de4a73667047d16c76c8a6a61610f\",\"NAME\":\"ANDY\"},{\"ID\":2,\"DIGEST\":\"5c38f8982fc67a7f1cdf2e3c00a29339\",\"NAME\":\"BRAD\"}]", batch1Status.actual); // with space Assert.assertEquals("[{\"ID\":1, \"NAME\":\"CHLOE\"},{\"ID\":2, \"NAME\":\"BRAD\"}]", batch1Status.expected); Assert.assertTrue(batch1Status.message.contains("AssertionError: Results do not match the expected data")); @@ -129,7 +129,7 @@ public void testAppendOnlyWithFailureV2() throws Exception AssertPass batch2Status = (AssertPass) testFailed.assertStatuses.get(1); // no space - Assert.assertEquals("[{\"ID\":1,\"NAME\":\"ANDY\"},{\"ID\":2,\"NAME\":\"BRAD\"}]", batch1Status.actual); + Assert.assertEquals("[{\"ID\":1,\"DIGEST\":\"fd0de4a73667047d16c76c8a6a61610f\",\"NAME\":\"ANDY\"},{\"ID\":2,\"DIGEST\":\"5c38f8982fc67a7f1cdf2e3c00a29339\",\"NAME\":\"BRAD\"}]", batch1Status.actual); // with space Assert.assertEquals("[{\"ID\":1, \"NAME\":\"CHLOE\"},{\"ID\":2, \"NAME\":\"BRAD\"}]", batch1Status.expected); Assert.assertTrue(batch1Status.message.contains("AssertionError: Results do not match the expected data")); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/IngestModeMapperTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/IngestModeMapperTest.java index 0d6245a757d..23034058ed4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/IngestModeMapperTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/IngestModeMapperTest.java @@ -23,6 +23,7 @@ import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditing; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.AllowDuplicates; import org.finos.legend.engine.persistence.components.ingestmode.deduplication.FilterDuplicates; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy; import org.finos.legend.engine.persistence.components.ingestmode.merge.DeleteIndicatorMergeStrategy; import org.finos.legend.engine.persistence.components.ingestmode.merge.NoDeletesMergeStrategy; import org.finos.legend.engine.persistence.components.ingestmode.transactionmilestoning.BatchId; @@ -82,7 +83,8 @@ public void testMapperForAppendOnly() throws Exception Assert.assertTrue(componentIngestMode instanceof AppendOnly); AppendOnly appendOnly = (AppendOnly) componentIngestMode; - Assert.assertEquals("DIGEST", appendOnly.digestField().get()); + Assert.assertTrue(appendOnly.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assert.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) appendOnly.digestGenStrategy()).digestField()); Assert.assertTrue(appendOnly.auditing() instanceof NoAuditing); Assert.assertFalse(appendOnly.filterExistingRecords()); @@ -93,7 +95,8 @@ public void testMapperForAppendOnly() throws Exception Assert.assertTrue(componentIngestMode instanceof AppendOnly); appendOnly = (AppendOnly) componentIngestMode; - Assert.assertEquals("DIGEST", appendOnly.digestField().get()); + Assert.assertTrue(appendOnly.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assert.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) appendOnly.digestGenStrategy()).digestField()); Assert.assertTrue(appendOnly.auditing() instanceof NoAuditing); Assert.assertTrue(appendOnly.filterExistingRecords()); @@ -104,7 +107,8 @@ public void testMapperForAppendOnly() throws Exception Assert.assertTrue(componentIngestMode instanceof AppendOnly); appendOnly = (AppendOnly) componentIngestMode; - Assert.assertEquals("DIGEST", appendOnly.digestField().get()); + Assert.assertTrue(appendOnly.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assert.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) appendOnly.digestGenStrategy()).digestField()); Assert.assertTrue(appendOnly.auditing() instanceof DateTimeAuditing); DateTimeAuditing dateTimeAuditing = (DateTimeAuditing) appendOnly.auditing(); Assert.assertEquals("AUDIT_TIME", dateTimeAuditing.dateTimeField()); @@ -117,7 +121,8 @@ public void testMapperForAppendOnly() throws Exception Assert.assertTrue(componentIngestMode instanceof AppendOnly); appendOnly = (AppendOnly) componentIngestMode; - Assert.assertEquals("DIGEST", appendOnly.digestField().get()); + Assert.assertTrue(appendOnly.digestGenStrategy() instanceof UserProvidedDigestGenStrategy); + Assert.assertEquals("DIGEST", ((UserProvidedDigestGenStrategy) appendOnly.digestGenStrategy()).digestField()); Assert.assertTrue(appendOnly.auditing() instanceof DateTimeAuditing); dateTimeAuditing = (DateTimeAuditing) appendOnly.auditing(); Assert.assertEquals("AUDIT_TIME", dateTimeAuditing.dateTimeField()); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/TestFieldsToExclude.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/TestFieldsToExclude.java index 9c0025147f5..dd7c6796565 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/TestFieldsToExclude.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/src/test/java/org/finos/legend/engine/testable/persistence/mapper/TestFieldsToExclude.java @@ -41,7 +41,7 @@ public void testFieldsToExcludeForAppendOnly() { IngestMode ingestMode = getAppendOnlyNoAuditingNoFilteringDuplicates(); Set fieldsToIgnore = ingestMode.accept(IngestModeVisitors.EXTRACT_FIELDS_TO_EXCLUDE); - Assert.assertTrue(fieldsToIgnore.isEmpty()); + Assert.assertTrue(fieldsToIgnore.contains("DIGEST")); ingestMode = getAppendOnlyNoAuditingWithFilteringDuplicates(); fieldsToIgnore = ingestMode.accept(IngestModeVisitors.EXTRACT_FIELDS_TO_EXCLUDE); @@ -50,6 +50,7 @@ public void testFieldsToExcludeForAppendOnly() ingestMode = getAppendOnlyDatetimeAuditingNoFilteringDuplicates(); fieldsToIgnore = ingestMode.accept(IngestModeVisitors.EXTRACT_FIELDS_TO_EXCLUDE); Assert.assertTrue(fieldsToIgnore.contains("AUDIT_TIME")); + Assert.assertTrue(fieldsToIgnore.contains("DIGEST")); ingestMode = getAppendOnlyDatetimeAuditingWithFilteringDuplicates(); fieldsToIgnore = ingestMode.accept(IngestModeVisitors.EXTRACT_FIELDS_TO_EXCLUDE); From 504d9b6930ae413e75d7f8999a30efd5002a94e6 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Mon, 4 Dec 2023 14:19:39 +0000 Subject: [PATCH 24/54] Legend SQL - Minor alias issue fix (#2493) --- .../binding/fromPure/fromPure.pure | 15 ++++++++------- .../binding/fromPure/tests/testTranspile.pure | 11 ++++++----- 2 files changed, 14 insertions(+), 12 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 8600b749b8a..16403abe1aa 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 @@ -238,11 +238,7 @@ 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 projection = $querySpec.select->processProjection($querySpec.groupBy, $querySpec.having, $querySpec.orderBy.sortKey, $querySpec.where->processWhere($fromContext)); + let projection = $querySpec.select->processProjection($querySpec.groupBy, $querySpec.having, $querySpec.orderBy.sortKey, $querySpec.where->processWhere($from)); let query = $querySpec.limit->processLimitOffset($querySpec.offset, $querySpec.orderBy->processOrderBy($projection.second.selectItems, @@ -266,7 +262,7 @@ function <> meta::external::query::sql::transformation::queryToP ^$alias(alias = if ($finalAlias->isEmpty(), | $alias.alias, | $finalAlias.alias), realias = $realias);, a:AllColumns[1] | if ($a.prefix->isEmpty(), - | $query.aliases;,//$query.contexts->map(c | $c.aliases)->concatenate($query.aliases), + | $query.aliases;, | $query.context($a.prefix).aliases->map(alias | let finalAlias = $query.alias($alias.name, $alias.alias, false); let realias = if ($alias.realias->isNotEmpty() && $finalAlias->isEmpty(), | $alias.realias, | $finalAlias.realias); @@ -3283,6 +3279,10 @@ Class meta::external::query::sql::transformation::queryToPure::SQLLambdaParamete name:String[1]; variable: VariableExpression[1]; value: ValueSpecification[1]; + + toString(){ + $this.name; + }:String[1]; } function meta::external::query::sql::transformation::queryToPure::rootContext(sources: SQLSource[*], extensions: meta::pure::extension::Extension[*]):SqlTransformContext[1] @@ -3330,7 +3330,8 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte $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' + $this.contexts->map(c | $c.toString($indent + ' '))->joinStrings('\n'), | '') + - if ($this.assignments->isNotEmpty(), | $indent + 'assigments: ' + $this.assignments->size()->toString(), | '') + if ($this.assignments->isNotEmpty(), | $indent + 'assigments: ' + $this.assignments->size()->toString(), | '') + + if ($this.parameters->isNotEmpty(), | $indent + 'parameters: ' + $this.parameters->map(p | $p.toString)->joinStrings('\n'), | '') }:String[1]; context(name:String[0..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 49a943b5eb9..da8edbd9490 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 @@ -1409,7 +1409,7 @@ function <> meta::external::query::sql::transformation::queryToPure:: 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')))}) + {row1, row2|(($row1.getInteger('Integer_t1') == $row2.getInteger('int_t0')) && ($row1.getString('String_t1') == $row2.getString('str_t0')))}) ->restrict(['int_t0', 'Integer_t1']) ->renameColumns([ pair('int_t0', 'int'), @@ -2241,9 +2241,10 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testParameterizedMultiLineJoin():Boolean[1] { - test( - 'SELECT * FROM service(\'/service/service4/{id}\', id => \'abc\') union select ID, Integer, "The Enum Value" from service(\'/service/service3\')', - + test([ + 'SELECT * FROM service(\'/service/service4/{id}\', id => \'abc\') union select ID, Integer, "The Enum Value" AS "Enum" from service(\'/service/service3\')', + 'SELECT t.* FROM (SELECT * FROM service(\'/service/service4/{id}\', id => \'abc\') union select ID, Integer, "The Enum Value" as "Enum" from service(\'/service/service3\')) "t"' + ], {id_1:String[1], ints_1:Integer[*], date_1:StrictDate[0..1]| let const_3 = 123; @@ -2262,7 +2263,7 @@ function <> meta::external::query::sql::transformation::queryToPure:: [ 'ID', 'Integer', 'The Enum Value', 'The Type', 'Const' ] - )->restrict(['ID', 'Integer', 'The Enum Value']));}) + )->restrict(['ID', 'Integer', 'The Enum Value'])->renameColumns(pair('The Enum Value', 'Enum')));}) } From 1d42264af00a8901ace223c61a5b4238560e060e Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Mon, 4 Dec 2023 13:00:18 -0500 Subject: [PATCH 25/54] ES support for count(*) and bugfixes on sorting grouo by results (#2494) --- .../src/main/resources/core/pure/tds/tds.pure | 18 ++- .../pom.xml | 4 + .../result/ElasticsearchTDSResultHelper.java | 14 +- .../v7/result/ExecutionRequestVisitor.java | 148 +++++++++++++++--- .../tds/AbstractResultPathVisitor.java | 6 + .../functions/pure_to_elasticsearch.pure | 93 +++++++---- .../functions/specification_utils.pure | 45 +++--- .../functions/tds_utils.pure | 7 +- .../protocol/v1_33_0/serialization.pure | 11 ++ .../protocol/vX_X_X/serialization.pure | 11 ++ .../elasticsearch_plan_test.pure | 7 + .../elasticsearch_plan_test_aggregation.pure | 93 +++++++++-- ...ticsearch_plan_test_aggregation_count.pure | 128 +++++++++++++++ .../elasticsearch_plan_test_sort.pure | 16 ++ 14 files changed, 508 insertions(+), 93 deletions(-) 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 b316194352e..52c656f16d4 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,8 +441,22 @@ function <> meta::pure::tds::multipleColumnComp(row:TDSRow[1], o if ($sortInfo->isEmpty(), | 0, | let s = $sortInfo->head(); - 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()))); + let rowVal = if($row.isNull($s.column->toOne()), |[], |$row.get($s.column->toOne())); + let otherVal = if($other.isNull($s.column->toOne()), |[], |$other.get($s.column->toOne())); + + let res = $rowVal->match([ + none: Any[0]| + $otherVal->match([ + none: Any[0] | 0, + otherVal: Any[1] | 1 + ]), + val: Any[1]| + $otherVal->match([ + none: Any[0] | -1, + otherVal: Any[1] | $val->compare($otherVal) + ]) + ]); + if ($res == 0, |$row->multipleColumnComp($other, $sortInfo->tail()), |if ($s.direction == SortDirection.ASC, |$res,|-$res)); ); } 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 a4709a0f3e8..65becc64aa6 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 @@ -37,6 +37,10 @@ org.finos.legend.engine legend-engine-executionPlan-execution + + org.finos.legend.engine + legend-engine-executionPlan-dependencies + org.finos.legend.engine legend-engine-xt-authentication-protocol diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ElasticsearchTDSResultHelper.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ElasticsearchTDSResultHelper.java index 7626326f789..d516e36427f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ElasticsearchTDSResultHelper.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ElasticsearchTDSResultHelper.java @@ -18,6 +18,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import java.math.BigDecimal; +import java.time.Instant; +import java.util.Calendar; import java.util.List; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.tuple.Pair; @@ -140,7 +142,17 @@ private static Function jsonToTDSValue(TDSColumn column) case "Date": case "DateTime": case "StrictDate": - return Functions.chain(JsonNode::asText, PureDate::parsePureDate); + return x -> + { + if (x.isLong()) + { + return PureDate.fromTemporal(Instant.ofEpochMilli(x.asLong()), Calendar.MILLISECOND); + } + else + { + return PureDate.parsePureDate(x.asText()); + } + }; default: throw new UnsupportedOperationException("TDS type not supported: " + column.type); } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java index 4c89bb358ca..3a1b256e3b9 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/v7/result/ExecutionRequestVisitor.java @@ -52,6 +52,7 @@ import org.eclipse.collections.api.map.MutableMap; import org.eclipse.collections.impl.block.function.checked.ThrowingFunction2; import org.eclipse.collections.impl.lazy.iterator.CollectIterator; +import org.eclipse.collections.impl.lazy.iterator.FlatCollectIterator; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.plan.execution.nodes.helpers.ExecutionNodeTDSResultHelper; import org.finos.legend.engine.plan.execution.nodes.state.ExecutionState; @@ -67,11 +68,14 @@ import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.executionPlan.Elasticsearch7RequestExecutionNode; import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.executionPlan.tds.TDSColumnResultPath; import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.executionPlan.tds.TDSMetadata; +import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.tds.AggregateResultPath; +import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.tds.DocCountAggregateResultPath; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.ElasticsearchObjectMapperProvider; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.LiteralOrExpression; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.global.search.SearchRequest; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.global.search.types.Hit; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.global.search.types.TotalHits; +import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.global.search.types.TotalHitsRelation; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.AbstractRequestBaseVisitor; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.FieldValue; import org.finos.legend.engine.protocol.store.elasticsearch.v7.specification.types.RequestBase; @@ -172,6 +176,13 @@ private Iterator processAggregateResponse(SearchRequest searchRequest, List tdsColumns = ((TDSResultType) this.node.resultType).tdsColumns; List columnResultPaths = ((TDSMetadata) node.metadata).columnResultPaths; + List docCountName = columnResultPaths.stream() + .map(x -> x.resultPath) + .filter(DocCountAggregateResultPath.class::isInstance) + .map(DocCountAggregateResultPath.class::cast) + .map(x -> String.join(".", x.fieldPath)) + .collect(Collectors.toList()); + List> extractors = ListIterate.zip(tdsColumns, columnResultPaths).stream() .map(ElasticsearchTDSResultHelper::aggregationTransformer) .collect(Collectors.toList()); @@ -191,7 +202,7 @@ private Iterator processAggregateResponse(SearchRequest searchRequest, bucketsParser.nextToken(); bucketsParser.clearCurrentToken(); Iterator compositeBucketIterator = bucketsParser.readValuesAs(CompositeBucket.class); - objectNodeStream = processComposite(aggregateTDSResultVisitor, compositeBucketIterator, lastBucket); + objectNodeStream = processComposite(aggregateTDSResultVisitor, compositeBucketIterator, docCountName, lastBucket); } else if (aggregationContainer.terms != null) { @@ -222,7 +233,7 @@ else if (aggregationContainer.terms != null) bucketsParser.nextToken(); bucketsParser.clearCurrentToken(); Iterator bucketsIterator = bucketsParser.readValuesAs(bucketClazz); - objectNodeStream = processTermsBucket(key, aggregateTDSResultVisitor, bucketsIterator, lastBucket); + objectNodeStream = processTermsBucket(key, aggregateTDSResultVisitor, bucketsIterator, docCountName, lastBucket); } else if (aggregationContainer.multi_terms != null) { @@ -230,7 +241,7 @@ else if (aggregationContainer.multi_terms != null) bucketsParser.nextToken(); bucketsParser.clearCurrentToken(); Iterator bucketsIterator = bucketsParser.readValuesAs(MultiTermsBucket.class); - objectNodeStream = processMultiTermsBucket(aggregationContainerEntry.getKey(), aggregateTDSResultVisitor, bucketsIterator, lastBucket); + objectNodeStream = processMultiTermsBucket(aggregationContainerEntry.getKey(), aggregateTDSResultVisitor, bucketsIterator, docCountName, lastBucket); } else if (aggregationContainer.filters != null) { @@ -239,19 +250,34 @@ else if (aggregationContainer.filters != null) filtersParser.nextToken(); filtersParser.clearCurrentToken(); FiltersAggregate filtersAggregate = filtersParser.readValueAs(FiltersAggregate.class); - objectNodeStream = processFiltersBucket(aggregateTDSResultVisitor, key, filtersAggregate); + objectNodeStream = processFiltersBucket(aggregateTDSResultVisitor, key, docCountName, filtersAggregate); } } if (objectNodeStream == null) { - Map aggregateMap = aggsParser.readValueAs(new TypeReference>() + Map aggregateMap; + + if (searchRequest.body.aggregations.isEmpty()) + { + aggregateMap = Collections.emptyMap(); + } + else { + aggregateMap = aggsParser.readValueAs(new TypeReference>() + { - }); + }); + } MutableMap result = Maps.mutable.empty(); + for (String docValue : docCountName) + { + Assert.assertTrue(totalHits.relation.equals(TotalHitsRelation.eq), () -> "Doc value count operation could not be computed as elastic give inaccurate total hits!"); + result.put(docValue, totalHits.value.unionValue()); + } + for (Map.Entry entry : aggregateMap.entrySet()) { result.put(entry.getKey(), ((AggregateBase) entry.getValue().unionValue()).accept(aggregateTDSResultVisitor)); @@ -265,7 +291,7 @@ else if (aggregationContainer.filters != null) return new CollectIterator<>(objectNodeStream, h -> extractors.stream().map(x -> x.apply(h)).toArray()); } - private static Iterator processFiltersBucket(AggregateTDSResultVisitor aggregateTDSResultVisitor, String key, FiltersAggregate filtersAggregate) + private static Iterator processFiltersBucket(AggregateTDSResultVisitor aggregateTDSResultVisitor, String key, List docCountName, FiltersAggregate filtersAggregate) { Buckets buckets = filtersAggregate.buckets; @@ -280,9 +306,12 @@ private static Iterator processFiltersBucket(AggregateTDSResultVisit continue; } - MutableMap result = Maps.mutable.empty(); + MutableMap result = Maps.mutable.with(key, bucketEntry.getKey()); - result.put(key, bucketEntry.getKey()); + for (String docValue : docCountName) + { + result.put(docValue, value.doc_count.unionValue()); + } for (Map.Entry aggregateEntry : value.__additionalProperties.entrySet()) { @@ -294,13 +323,18 @@ private static Iterator processFiltersBucket(AggregateTDSResultVisit return bucketResults.iterator(); } - private static Iterator processComposite(AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, Procedure lastBucket) + private static Iterator processComposite(AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, List docCountName, Procedure lastBucket) { return new CollectIterator<>(buckets, b -> { lastBucket.accept(b); MutableMap map = Maps.mutable.empty(); + for (String docValue : docCountName) + { + map.put(docValue, b.doc_count.unionValue()); + } + for (Map.Entry entry : b.key.entrySet()) { map.put(entry.getKey(), entry.getValue().unionValue()); @@ -315,7 +349,7 @@ private static Iterator processComposite(AggregateTDSResultVisitor a }); } - private static Iterator processMultiTermsBucket(String key, AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, Procedure lastBucket) + private static Iterator processMultiTermsBucket(String key, AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, List docCountName, Procedure lastBucket) { String[] fields = key.split("~"); @@ -324,6 +358,11 @@ private static Iterator processMultiTermsBucket(String key, Aggregat lastBucket.accept(b); MutableMap map = Maps.mutable.empty(); + for (String docValue : docCountName) + { + map.put(docValue, b.doc_count.unionValue()); + } + for (int i = 0; i < fields.length; i++) { String field = fields[i]; @@ -340,20 +379,86 @@ private static Iterator processMultiTermsBucket(String key, Aggregat }); } - private static Iterator processTermsBucket(String key, AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, Procedure lastBucket) + private static Iterator processTermsBucket(String key, AggregateTDSResultVisitor aggregateTDSResultVisitor, Iterator buckets, List docCountName, Procedure lastBucket) { MultiBucketKeyVisitor multiBucketKeyVisitor = new MultiBucketKeyVisitor(); - return new CollectIterator<>(buckets, b -> + return new FlatCollectIterator<>(buckets, bucket -> { - lastBucket.accept(b); - MutableMap map = Maps.mutable.with(key, b.accept(multiBucketKeyVisitor)); + lastBucket.accept(bucket); + Object keyValue = bucket.accept(multiBucketKeyVisitor); + keyValue = keyValue instanceof LiteralOrExpression ? ((LiteralOrExpression) keyValue).unionValue() : keyValue; - for (Map.Entry entry : b.__additionalProperties.entrySet()) + List results = Lists.mutable.empty(); + + Aggregate nullKey = bucket.__additionalProperties.get(key + "~missing~_last"); + boolean nullLast = true; + if (nullKey == null) { - map.put(entry.getKey(), ((AggregateBase) entry.getValue().unionValue()).accept(aggregateTDSResultVisitor)); + nullKey = bucket.__additionalProperties.get(key + "~missing~_first"); + nullLast = false; } + Aggregate notNullKey = bucket.__additionalProperties.get(key + "~exists"); - return ElasticsearchObjectMapperProvider.OBJECT_MAPPER.valueToTree(map); + if (notNullKey != null && notNullKey.filter.doc_count.value != 0) + { + MutableMap map = Maps.mutable.with(key, keyValue); + + for (String docValue : docCountName) + { + map.put(docValue, notNullKey.filter.doc_count.unionValue()); + } + + for (Map.Entry entry : notNullKey.filter.__additionalProperties.entrySet()) + { + map.put(entry.getKey(), ((AggregateBase) entry.getValue().unionValue()).accept(aggregateTDSResultVisitor)); + } + + results.add(ElasticsearchObjectMapperProvider.OBJECT_MAPPER.valueToTree(map)); + } + + if (nullKey != null && nullKey.missing.doc_count.value != 0) + { + MutableMap map = Maps.mutable.with(key, null); + + for (String docValue : docCountName) + { + map.put(docValue, nullKey.missing.doc_count.unionValue()); + } + + for (Map.Entry entry : nullKey.missing.__additionalProperties.entrySet()) + { + map.put(entry.getKey(), ((AggregateBase) entry.getValue().unionValue()).accept(aggregateTDSResultVisitor)); + } + + if (!nullLast) + { + results.add(0, ElasticsearchObjectMapperProvider.OBJECT_MAPPER.valueToTree(map)); + } + else + { + results.add(ElasticsearchObjectMapperProvider.OBJECT_MAPPER.valueToTree(map)); + } + } + + // backward compatible processing... before the missing/existing was introduced + if (nullKey == null && notNullKey == null) + { + MutableMap map = Maps.mutable.with(key, keyValue); + + for (String docValue : docCountName) + { + map.put(docValue, bucket.doc_count.unionValue()); + } + + for (Map.Entry entry : bucket.__additionalProperties.entrySet()) + { + map.put(entry.getKey(), ((AggregateBase) entry.getValue().unionValue()).accept(aggregateTDSResultVisitor)); + } + + results.add(ElasticsearchObjectMapperProvider.OBJECT_MAPPER.valueToTree(map)); + } + + return results; }); } @@ -518,6 +623,7 @@ private class ElasticsearchResultSpliterator extends Spliterators.AbstractSplite private final SearchRequest searchRequest; private final List activities; + private final boolean isAggregation; private boolean closed = false; private InputStream currInputStream = EmptyInputStream.INSTANCE; private MultiBucketBase lastBucket = null; @@ -528,6 +634,9 @@ private ElasticsearchResultSpliterator(SearchRequest searchRequest, List x.resultPath) + .allMatch(x -> x instanceof AggregateResultPath || x instanceof DocCountAggregateResultPath); } @Override @@ -539,11 +648,10 @@ public boolean tryAdvance(Consumer> action) this.closeCurrentInputStream(); boolean next = false; - boolean isAggregation = !this.searchRequest.body.aggregations.isEmpty(); ThrowingFunction2> processor; - if (isAggregation) + if (this.isAggregation) { processor = (x, y) -> ExecutionRequestVisitor.this.processAggregateResponse(this.searchRequest, x, y, b -> { diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/src/main/java/org/finos/legend/engine/protocol/store/elasticsearch/v7/metamodel/tds/AbstractResultPathVisitor.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/src/main/java/org/finos/legend/engine/protocol/store/elasticsearch/v7/metamodel/tds/AbstractResultPathVisitor.java index 0aa6da99d5e..e25dc2633dd 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/src/main/java/org/finos/legend/engine/protocol/store/elasticsearch/v7/metamodel/tds/AbstractResultPathVisitor.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/src/main/java/org/finos/legend/engine/protocol/store/elasticsearch/v7/metamodel/tds/AbstractResultPathVisitor.java @@ -48,4 +48,10 @@ public T visit(SourceFieldResultPath val) { return defaultValue(val); } + + @Override + public T visit(DocCountAggregateResultPath val) + { + return defaultValue(val); + } } 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 0a9ec272d0d..41aa16d9013 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 @@ -48,6 +48,7 @@ Class meta::external::store::elasticsearch::v7::pureToEs::State inFilter: Boolean[1]; inProject: Boolean[1]; aggregationQuery: Boolean[1]; + sorted: Boolean[1] = false; sq: StoreQuery[1]; exeCtx: Elasticsearch7ExecutionContext[1]; extensions: Extension[*]; @@ -176,7 +177,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processDistinct(vs $initReq.debug(|'Processing ->distinct'); let currReq = process($vs.parametersValues->at(0), $initReq); assertFalse($currReq.aggregationQuery, |'distinct not supported in aggregation queries'); - processGroupBy($currReq.tdsESDetails, [], $currReq); + processGroupBy($currReq.tdsESDetails, [], ^$currReq(aggregationQuery = true)); } function meta::external::store::elasticsearch::v7::pureToEs::processExtend(vs : FunctionExpression[1], initReq: State[1]): State[1] @@ -331,31 +332,50 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: processGroupBy($groupByTdsESDetails, $aggregateValues, $groupedReq); } +Class meta::external::store::elasticsearch::v7::pureToEs::GroupByAggregation +{ + container: AggregationContainer[0..1]; + tdsESDetail: TDSESDetail[1]; + extraConfig: Function<{SearchRequestBody[1]->SearchRequestBody[1]}>[0..1]; +} + function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(groupByTdsESDetails: TDSESDetail[*], aggregateValues: meta::pure::tds::AggregateValue[*], initReq: State[1]): State[1] { let aggPairs = $aggregateValues->map({x | - let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $initReq).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), - | - $initReq.supportedAggregationFunctions->findAndEvalSupportedFunction($aggFunc->cast(@FunctionExpression), $rawToAggregate.path(), $initReq) - , - | - fail('Unsupported aggregation functions: ' + $aggFunc->printValueSpecification('')); - ^AggregationContainer(); - ); + // is a count(*)? + if ($aggFunc->instanceOf(FunctionExpression) + && $aggFunc->cast(@FunctionExpression).func == count_Any_MANY__Integer_1_ + && $x.mapFn->functionReturnType().rawType == TDSRow, + | + let resultPath = ^DocCountAggregateResultPath(fieldPath = $x.name, property = Integer->defaultRuntimePropertyForPureType()); + let toAggregate = ^TDSESDetail(resultPath = $resultPath, type = Integer, name = $x.name); + ^GroupByAggregation(tdsESDetail = $toAggregate, extraConfig = sr: SearchRequestBody[1] | ^$sr(track_total_hits = ^TrackHits(enabled = true->literal()))); + , + | + let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $initReq).first; - let aggReturnType = $x.aggregateFn->functionReturnType().rawType->toOne()->cast(@DataType); - let resultPath = ^AggregateResultPath(fieldPath = $rawToAggregate.name, property = $rawToAggregate.resultPath.property, fieldToAggregate = $rawToAggregate.resultPath); - let toAggregate = ^$rawToAggregate(type = $aggReturnType, resultPath = $resultPath); - pair($toAggregate, $container); + let container = if ($aggFunc->instanceOf(FunctionExpression), + | + $initReq.supportedAggregationFunctions->findAndEvalSupportedFunction($aggFunc->cast(@FunctionExpression), $rawToAggregate.path(), $initReq) + , + | + fail('Unsupported aggregation functions: ' + $aggFunc->printValueSpecification('')); + ^AggregationContainer(); + ); + + let aggReturnType = $x.aggregateFn->functionReturnType().rawType->toOne()->cast(@DataType); + let resultPath = ^AggregateResultPath(fieldPath = $rawToAggregate.name, property = $rawToAggregate.resultPath.property, fieldToAggregate = $rawToAggregate.resultPath); + let toAggregate = ^$rawToAggregate(type = $aggReturnType, resultPath = $resultPath); + ^GroupByAggregation(tdsESDetail = $toAggregate, container = $container); + ); }); - let filterBuckets = if($groupByTdsESDetails->size() == 1 && $groupByTdsESDetails->at(0).path()->in($aggPairs.first.resultPath->cast(@AggregateResultPath).fieldToAggregate.path())->not(), + let filterBuckets = if($initReq.sorted->not() && $groupByTdsESDetails->size() == 1 && $groupByTdsESDetails->at(0).path()->in($aggPairs.tdsESDetail.resultPath->filter(x | $x->instanceOf(AggregateResultPath))->cast(@AggregateResultPath).fieldToAggregate.path())->not(), | - let detailsAtRutimeMappingTime = $groupByTdsESDetails->at(0).runtimeMappingVSTDSDetails; - let result = $groupByTdsESDetails->at(0).runtimeMappingVS->optimizeForFiltersAggregation(false, ^$initReq(tdsESDetails = $detailsAtRutimeMappingTime)); + let detailsAtRuntimeMappingTime = $groupByTdsESDetails->at(0).runtimeMappingVSTDSDetails; + let result = $groupByTdsESDetails->at(0).runtimeMappingVS->optimizeForFiltersAggregation(false, ^$initReq(tdsESDetails = $detailsAtRuntimeMappingTime)); let reqResult = $result.first; pair(^$reqResult(tdsESDetails = $initReq.tdsESDetails), $result.second); , @@ -367,7 +387,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(grou let groupedReq = $filterBuckets.first; - let aggregations = newMap($aggPairs->map(x | pair($x.first.name, $x.second))); + let aggregations = newMap($aggPairs->filter(x | $x.container->isNotEmpty())->map(x | pair($x.tdsESDetail.name, $x.container->toOne()))); let aggregationsForSearch = if ($groupByTdsESDetails->isEmpty(), | // no group by field - just run the aggregations @@ -397,12 +417,11 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(grou )); let groupByTdsESDetailsAsAgg = $groupByTdsESDetails->map({x | - let resultPath = ^AggregateResultPath(fieldPath = $x.resultPath.fieldPath, property = $x.resultPath.property); + let resultPath = ^AggregateResultPath(fieldPath = $x.resultPath.fieldPath, property = $x.resultPath.property, fieldToAggregate = $x.resultPath); let toAggregate = ^$x(resultPath = $resultPath); }); - let search = $groupedReq.search; - // $search.runtime_mappings = // todo remove runtime mapping if optmized + let search = $aggPairs.extraConfig->fold({l, sr | $l->eval($sr)}, $groupedReq.search); let newSearch = ^$search( size = 0->literal() // avoiding reading all the matches, we just want the aggregate results ,aggregations = $aggregationsForSearch @@ -413,7 +432,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(grou ^$groupedReq( search = $newSearch, - tdsESDetails = $groupByTdsESDetailsAsAgg->concatenate($aggPairs.first) + tdsESDetails = $groupByTdsESDetailsAsAgg->concatenate($aggPairs.tdsESDetail) ); } @@ -522,7 +541,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSort(vs : Fu { $initReq.debug(|'Processing ->sort'); let debug = $initReq.debug; - let currReq = process($vs.parametersValues->at(0), ^$initReq(debug = ^$debug(space = $debug.space + '\t'))); + let currReq = process($vs.parametersValues->at(0), ^$initReq(sorted = true, debug = ^$debug(space = $debug.space + '\t'))); let columnsToSort = $sorts.column; @@ -550,12 +569,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSort(vs : Fu let sortOnAggregatedValues = $toSort.first->filter(x | $x.path()->in($compositeSources.first)->not()); - let toSortByName = $toSort->map(x | pair($x.first.path(), $x.second)); + let toSortByName = $toSort->map(x | pair($x.first.resultPath->match([a: AggregateResultPath[1] | $a.path(), d: DocCountAggregateResultPath[1] | '_count']), $x.second)); let sortedContainer = if ($sortOnAggregatedValues->isEmpty(), | sortOnCompositeAggregationContainer($toSortByName, $container.aggregations, $composite, $compositeSources) , - | sortOnTermsAggregationContainer($toSortByName, $container.aggregations, $composite, $compositeSources) + | sortOnTermsAggregationContainer($toSortByName, $container.aggregations, $composite, $compositeSources, $currReq) ); ^$search(aggregations = $sortedContainer); @@ -566,7 +585,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSort(vs : Fu , | let sortCombo = $toSort->map({x | - let fieldSort = ^FieldSort(order = $x.second); + let fieldSort = ^FieldSort(order = $x.second, missing = if($x.second == SortOrder.desc, |'_first', |'_last')->literal()); let fieldMap = newMap(pair($x.first.path(), $fieldSort)); ^SortCombinations(options = ^SortOptions(__additionalProperty = $fieldMap)); }); @@ -587,7 +606,7 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: 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)))); + ^$compositeSourcePair(second = ^CompositeAggregationSource(terms = ^$sourceTerms(missing_order = if($x.second == SortOrder.desc, |MissingOrder.first, |MissingOrder.last), order = ^TermsAggregationSortOrder(order = $x.second)))); }); let notSortedTerms = $compositeSources @@ -605,7 +624,8 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: toSort : Pair[*], aggregations : Map[0..1], composite : CompositeAggregation[1], - compositeSources : Pair[*] + compositeSources : Pair[*], + state: State[1] ): Map[1] { let compositeSourcesToSort = $toSort->map(x | $compositeSources->filter(m | $m.first == $x.first)); @@ -613,21 +633,28 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: if ($compositeSources->size() == 1, | let aggSorts = $toSort->filter(x | $x.first->in($compositeSources.first)->not()); - let sorts = $toSort->map(s | pair(if($s->in($aggSorts)->not(), |'_key', |$s.first), $s.second)); + let sorts = $toSort->map(s | pair(if($s->in($aggSorts)->not(), |'_key', | if ($s.first->startsWith('_')->not(), |$compositeSources->toOne().first + '~exists>' + $s.first, |$s.first)), $s.second)); let terms = $compositeSources->toOne().second.terms->toOne(); let sortedTerms = ^$terms( size = [], // todo allow to set limit? missing_bucket = [], - missing = [], /*todo handle null / missing*/ + // we need to assing a sentinel value for missing/null, otherwise the bucket will be skipped... + missing = $state.tdsESDetails->filter(x | $x.path() == $terms.field.value)->toOne('no field found?').resultPath.property->propertySupport().defaultIfMissingAsString->toOne('cannot group by on \'%s\' when sorting'->format($terms.field))->literal(), order = ^TermsAggregationSortOrder(orderMap = $sorts->map(s | $s->newMap())) ); - let sortedContainer = ^AggregationContainer(terms = $sortedTerms, aggregations = $aggregations); + + let existAgg = ^AggregationContainer(filter = ^QueryContainer(exists = ^ExistsQuery(field = $terms.field->toOne())), aggregations = $aggregations); + let missingAgg = ^AggregationContainer(missing = ^MissingAggregation(field = $terms.field), aggregations = $aggregations); + + let nullOrder = $sorts->filter(x | $x.first == '_key')->map(x | if($x.second == SortOrder.desc, |'_first', |'_last'))->defaultIfEmpty('_last')->toOne(); + + let sortedContainer = ^AggregationContainer(terms = $sortedTerms, aggregations = [pair($compositeSources->toOne().first + '~exists', $existAgg), pair($compositeSources->toOne().first + '~missing~' + $nullOrder, $missingAgg)]->newMap()); pair($compositeSources->toOne().first, $sortedContainer); , | 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' + | 'The group by / sort combination is not supported on Elasticsearch' ); let terms = $compositeSources.second.terms->map(x | ^MultiTermLookup(field = $x.field->toOne(), missing = [] /*todo handle null / missing*/)); @@ -670,7 +697,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::defaultSize(): Inte 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( - search = ^SearchRequestBody(_source = ^SourceConfig(fetch = false->literal()), track_total_hits = ^TrackHits(enabled = true->literal())), + search = ^SearchRequestBody(_source = ^SourceConfig(fetch = false->literal())), inFilter = false, inProject = false, aggregationQuery = false, 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 04e1782db40..f8cbe143223 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 @@ -54,55 +54,54 @@ Class meta::external::store::elasticsearch::v7::specification::utils::property:: { propertyType: Class[1]; pureType: Type[1]; - // canAggregate: Boolean[0..1]; - // canSort: Boolean[0..1]; - // canScript: Boolean[0..1]; + defaultIfMissingAsString: String[0..1]; } function <> meta::external::store::elasticsearch::v7::specification::utils::property::newPropertySupport( propertyType: Class[1], - pureType: Type[1] + pureType: Type[1], + defaultIfMissingAsString: String[0..1] ): PropertySupport[1] { - ^PropertySupport(propertyType = $propertyType, pureType = $pureType); + ^PropertySupport(propertyType = $propertyType, pureType = $pureType, defaultIfMissingAsString = $defaultIfMissingAsString); } function meta::external::store::elasticsearch::v7::specification::utils::property::propertySupports(): Function<{Nil[1] -> PropertySupport[1]}>[1..*] { [ // structured - p:ObjectProperty[1] | newPropertySupport(ObjectProperty, Map), - p:NestedProperty[1] | newPropertySupport(NestedProperty, Map), + p:ObjectProperty[1] | newPropertySupport(ObjectProperty, Map, []), + p:NestedProperty[1] | newPropertySupport(NestedProperty, Map, []), // string - p:TextProperty[1] | newPropertySupport(TextProperty, String), // todo this is special for searches, and not good on terms - p:KeywordProperty[1] | newPropertySupport(KeywordProperty, String), - p:WildcardProperty[1] | newPropertySupport(WildcardProperty, String), + p:TextProperty[1] | newPropertySupport(TextProperty, String, '~'->repeatString(20)), // todo this is special for searches, and not good on terms + p:KeywordProperty[1] | newPropertySupport(KeywordProperty, String, '~'->repeatString(20)), + p:WildcardProperty[1] | newPropertySupport(WildcardProperty, String, '~'->repeatString(20)), // boolean - p:BooleanProperty[1] | newPropertySupport(BooleanProperty, Boolean), + p:BooleanProperty[1] | newPropertySupport(BooleanProperty, Boolean, 'false'), // date - p:DateNanosProperty[1] | newPropertySupport(DateNanosProperty, Date), - p:DateProperty[1] | newPropertySupport(DateProperty, Date), + p:DateNanosProperty[1] | newPropertySupport(DateNanosProperty, Date, []), + p:DateProperty[1] | newPropertySupport(DateProperty, Date, '9999-12-31T23:59:59.999Z'), // integer - p:ShortNumberProperty[1] | newPropertySupport(ShortNumberProperty, Integer), - p:ByteNumberProperty[1] | newPropertySupport(ByteNumberProperty, Integer), - p:IntegerNumberProperty[1] | newPropertySupport(IntegerNumberProperty, Integer), - p:LongNumberProperty[1] | newPropertySupport(LongNumberProperty, Integer), + p:ShortNumberProperty[1] | newPropertySupport(ShortNumberProperty, Integer, '32767'), + p:ByteNumberProperty[1] | newPropertySupport(ByteNumberProperty, Integer, '127'), + p:IntegerNumberProperty[1] | newPropertySupport(IntegerNumberProperty, Integer, '2147483647'), + p:LongNumberProperty[1] | newPropertySupport(LongNumberProperty, Integer, '9223372036854775807'), //float - p:FloatNumberProperty[1] | newPropertySupport(FloatNumberProperty, Float), - p:HalfFloatNumberProperty[1] | newPropertySupport(HalfFloatNumberProperty, Float), - p:DoubleNumberProperty[1] | newPropertySupport(DoubleNumberProperty, Float), + p:FloatNumberProperty[1] | newPropertySupport(FloatNumberProperty, Float, []), + p:HalfFloatNumberProperty[1] | newPropertySupport(HalfFloatNumberProperty, Float, []), + p:DoubleNumberProperty[1] | newPropertySupport(DoubleNumberProperty, Float, []), //decimal (?) - p:ScaledFloatNumberProperty[1] | newPropertySupport(ScaledFloatNumberProperty, Decimal), - p:UnsignedLongNumberProperty[1] | newPropertySupport(UnsignedLongNumberProperty, Decimal), // big integer equivalent? + p:ScaledFloatNumberProperty[1] | newPropertySupport(ScaledFloatNumberProperty, Decimal, []), + p:UnsignedLongNumberProperty[1] | newPropertySupport(UnsignedLongNumberProperty, Decimal, []), // big integer equivalent? // catch all - not supported - {p:PropertyBase[1] | fail('Type not supported: ' + $p->type()->elementToPath()); newPropertySupport(ObjectProperty, Map);} + {p:PropertyBase[1] | fail('Type not supported: ' + $p->type()->elementToPath()); newPropertySupport(ObjectProperty, Map, []);} ] } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure index 4bf12adeb7d..ce0a8546f66 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/tds_utils.pure @@ -89,5 +89,10 @@ Class meta::external::store::elasticsearch::v7::metamodel::tds::FieldResultPath Class meta::external::store::elasticsearch::v7::metamodel::tds::AggregateResultPath extends meta::external::store::elasticsearch::v7::metamodel::tds::ResultPath { - fieldToAggregate: meta::external::store::elasticsearch::v7::metamodel::tds::ResultPath[0..1]; + fieldToAggregate: meta::external::store::elasticsearch::v7::metamodel::tds::ResultPath[1]; +} + +Class meta::external::store::elasticsearch::v7::metamodel::tds::DocCountAggregateResultPath extends meta::external::store::elasticsearch::v7::metamodel::tds::ResultPath +{ + } \ 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_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 5ea22efa20a..d3885896c32 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 @@ -12,6 +12,7 @@ // 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::tds::*; import meta::external::store::elasticsearch::v7::metamodel::executionPlan::tds::*; import meta::json::*; @@ -109,6 +110,11 @@ function meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionP ), agg: AggregateResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::AggregateResultPath( _type = 'aggregateResultPath', + fieldPath = $agg.fieldPath, + fieldToAggregate = $agg.fieldToAggregate->map(x | $x->meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::transformResultPath($extensions)) + ), + agg: DocCountAggregateResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::DocCountAggregateResultPath( + _type = 'docCountAggregateResultPath', fieldPath = $agg.fieldPath ), id: _IDResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::_IDResultPath( @@ -180,6 +186,11 @@ Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::DocValue } Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::AggregateResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + fieldToAggregate: meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath[1]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::DocCountAggregateResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath { } 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 671be7132ef..a0cc1390048 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 @@ -12,6 +12,7 @@ // 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::tds::*; import meta::external::store::elasticsearch::v7::metamodel::executionPlan::tds::*; import meta::json::*; @@ -109,6 +110,11 @@ function meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPl ), agg: AggregateResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::AggregateResultPath( _type = 'aggregateResultPath', + fieldPath = $agg.fieldPath, + fieldToAggregate = $agg.fieldToAggregate->map(x | $x->meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::transformResultPath($extensions)) + ), + agg: DocCountAggregateResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::DocCountAggregateResultPath( + _type = 'docCountAggregateResultPath', fieldPath = $agg.fieldPath ), id: _IDResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::_IDResultPath( @@ -180,6 +186,11 @@ Class meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::DocValueR } Class meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::AggregateResultPath extends meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::ResultPath +{ + fieldToAggregate: meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::ResultPath[1]; +} + +Class meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::DocCountAggregateResultPath extends meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::ResultPath { } 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 5e4ef2f83a1..99537058368 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 @@ -278,6 +278,9 @@ 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() ] @@ -290,6 +293,10 @@ function meta::external::store::elasticsearch::executionTest::testCase::assertTd ->zip($actual->sort($actual.columns.name).rows->map(r | $actual.columns->map(c | $r.get($c)))) ); + // println($description); + // println($zipped.first); + // println($zipped.second); + $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_aggregation.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure index ca101408ad1..441ba465757 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation.pure @@ -70,7 +70,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test distinct on single columns on Elasticsearch (translated as a group by)'} -meta::external::store::elasticsearch::executionTest::testCase::tds::distinct::testDistinctSingleColumn(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::distinct::testDistinctSingleColumn(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->restrict('Director')->distinct()); } @@ -78,7 +78,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::distinct::te function <> {doc.doc = 'Test distinct on multiple columns on Elasticsearch (translated as a group by)'} -meta::external::store::elasticsearch::executionTest::testCase::tds::distinct::testDistinctMultipleColumns(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::distinct::testDistinctMultipleColumns(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->restrict(['Director', 'MPAA'])->distinct()); } @@ -86,7 +86,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::distinct::te function <> {doc.doc = 'Test restrict group by columns on Elasticsearch'} -meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::testRestrictGroupByColumns(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::restrict::testRestrictGroupByColumns(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->groupBy(['Director', 'MPAA'], [ agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()), agg('avgBudget', r | $r.getInteger('Budget'), agg | $agg->average()) ])->restrict(['Director', 'avgBudget'])); } @@ -94,7 +94,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::restrict::te function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionNestedIf(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByExpressionNestedIf(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') < %1990-01-01, @@ -109,7 +109,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionNestedIfAggregateOnExpression(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByExpressionNestedIfAggregateOnExpression(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') < %1990-01-01, @@ -124,7 +124,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOverridesExistingColumnName(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByExpressionOverridesExistingColumnName(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') < %1990-01-01, @@ -139,7 +139,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByIfExpressionOnAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByIfExpressionOnAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') < today()->adjust(-15, DurationUnit.YEARS), @@ -154,7 +154,7 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOnAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByExpressionOnAdjustTodayFunctions(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.getDate('ReleaseDate') < today()->adjust(-15, DurationUnit.YEARS), @@ -162,10 +162,10 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes } -function +function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByIfExpressionOnAdjustNowFunctions(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByIfExpressionOnAdjustNowFunctions(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), @@ -180,7 +180,37 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOnAdjustNowFunctions(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::sort::testGroupByIfExpressionOnAdjustNowFunctions_WithSortAsc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < now()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < now()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))->sort([asc('sumBudget'), asc('Bucket')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::sort::testGroupByIfExpressionOnAdjustNowFunctions_WithSortDesc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < now()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < now()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))->sort([desc('Bucket'), desc('sumBudget')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByExpressionOnAdjustNowFunctions(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), @@ -190,9 +220,46 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::tes function <> {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} -meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::testGroupByExpressionOnAdjustNowFunctions2(config:TestConfig[1]):Boolean[1] +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::sort::testGroupByExpressionOnAdjustNowFunctions_WithSortAsc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + $x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + 'Is Old?')])->groupBy('Is Old?', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))->sort([asc('sumBudget'), asc('Is Old?')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::sort::testGroupByExpressionOnAdjustNowFunctions_WithSortDesc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + $x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + 'Is Old?')])->groupBy('Is Old?', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))->sort([desc('Is Old?'), desc('sumBudget')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::testGroupByExpressionOnAdjustNowFunctions2(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.getDate('ReleaseDate') < now(), 'Is Old?')])->groupBy('Is Old?', agg('sumBudget', r | $r.getInteger('Budget'), agg | $agg->sum()))); -} \ No newline at end of file +} + +function + <> + {doc.doc = 'Test sort distinct on nullable column on Elasticsearch (translated as a group by)'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::distinct::sort::testDistinctNullableColumnWithAscSort(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict(['MPAA'])->distinct()->sort(asc('MPAA'))); +} + + +function + <> + {doc.doc = 'Test sort distinct on nullable column on Elasticsearch (translated as a group by)'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::distinct::sort::testDistinctNullableColumnWithDescSort(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->restrict(['MPAA'])->distinct()->sort(desc('MPAA'))); +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation_count.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation_count.pure index 7d8f011ae88..d9763dce799 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation_count.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_aggregation_count.pure @@ -33,4 +33,132 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testEmptyCountAggregation(config:TestConfig[1]):Boolean[1] { $config->testTdsExpression(x|$x->filter(r | $r.getString('_id') == 'N/A')->groupBy([], agg('count', r | $r.getString('MainActor.Name'), agg | $agg->count()))); +} + +function + <> + {doc.doc = 'Test count aggregation on nullable field on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountAggregationOnNullable(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r.getNullableString('MPAA'), agg | $agg->count()))); +} + + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r, agg | $agg->count()))); +} + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_WithSortAsc_countFirst(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r, agg | $agg->count()))->sort([asc('count'), asc('MPAA')])); +} + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_WithSortAsc_groupByFirst(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r, agg | $agg->count()))->sort([asc('MPAA'), asc('count')])); +} + + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_WithSortDesc_countFirst(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r, agg | $agg->count()))->sort([desc('count'), desc('MPAA')])); +} + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_WithSortDesc_groupByFirst(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy('MPAA', agg('count', r | $r, agg | $agg->count()))->sort([desc('MPAA'), desc('count')])); +} + + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_NoGroupByColumns(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy([], agg('count', r | $r, agg | $agg->count()))); +} + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_NoGroupByColumns_WithSort(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy([], agg('count', r | $r, agg | $agg->count()))->sort('count')); +} + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_WithSortAsc_multipleGroupBy(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy(['ReleaseDate', 'MPAA'], agg('count', r | $r, agg | $agg->count()))->sort([asc('MPAA'), asc('ReleaseDate')])); +} + +function + <> + {doc.doc = 'Test count * aggregation on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::count::testCountStarAggregationOnNullable_WithSortDesc_multipleGroupBy(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->groupBy(['ReleaseDate', 'MPAA'], agg('count', r | $r, agg | $agg->count()))->sort([desc('MPAA'), desc('ReleaseDate')])); +} + +function + <> + {doc.doc = 'Test count * aggregation on if expressions Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::count::testGroupByIfExpressionOnAdjustNowFunctionsAndCountAgg(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < now()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < now()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('countRows', r | $r, agg | $agg->count()))); +} + +function + <> + {doc.doc = 'Test count * aggregation on if expressions Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::count::testGroupByIfExpressionOnAdjustNowFunctionsAndCountAgg_WithSortAsc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < now()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < now()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('countRows', r | $r, agg | $agg->count()))->sort([asc('countRows'), asc('Bucket')])); +} + +function + <> + {doc.doc = 'Test count * aggregation on if expressions Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::expressions::count::testGroupByIfExpressionOnAdjustNowFunctionsAndCountAgg_WithSortDesc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < now()->adjust(-15, DurationUnit.YEARS), + |'Oldest', + |if($x.getDate('ReleaseDate') < now()->adjust(-10, DurationUnit.YEARS), + |'Older', + |if($x.getDate('ReleaseDate') < now()->adjust(-5, DurationUnit.YEARS), + |'Newer', + |'Newest'))), 'Bucket')])->groupBy('Bucket', agg('countRows', r | $r, agg | $agg->count()))->sort([desc('countRows'), desc('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_sort.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_sort.pure index d8147f511fb..6743a64cf56 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_sort.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_sort.pure @@ -145,3 +145,19 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::sort::date:: { $config->testTdsExpression(x | $x->sort(desc('ReleaseDate'))); } + +function + <> + {doc.doc = 'Test sort on null Keyword field on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::sort::keyword::testSortOnNullableAsc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->sort([asc('MPAA'), desc('Title')])); +} + +function + <> + {doc.doc = 'Test sort null Keyword field on Elasticsearch'} +meta::external::store::elasticsearch::executionTest::testCase::tds::sort::keyword::testSortOnNullableDesc(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->sort([desc('MPAA'), asc('Title')])); +} \ No newline at end of file From b5cf7740f8d05212fed0d703d8d55dac4b374b47 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Mon, 4 Dec 2023 18:50:08 +0000 Subject: [PATCH 26/54] Legend SQL - remove duplicates from restrict (#2495) --- .../binding/fromPure/fromPure.pure | 6 +++--- .../binding/fromPure/tests/testTranspile.pure | 21 ++++++++++++++++++- 2 files changed, 23 insertions(+), 4 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 16403abe1aa..6baecee1be0 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 @@ -270,7 +270,7 @@ function <> meta::external::query::sql::transformation::queryToP ^$alias(alias = if ($finalAlias->isEmpty(), | $alias.alias, | $finalAlias.alias), realias = $realias); );); ]) - ); + )->removeDuplicatesBy(a | $a.actual); let expected = $expectedWithRealias->map(p | let clash = $expectedWithRealias.expected->filter(f | $f == $p.expected)->size() > 1; @@ -724,7 +724,7 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processRestrict(columns:String[*], context: SqlTransformContext[1]):FunctionExpression[1] { - appendTdsFunc($context.expression->toOne(), restrict_TabularDataSet_1__String_MANY__TabularDataSet_1_, list(iv($columns))); + appendTdsFunc($context.expression->toOne(), restrict_TabularDataSet_1__String_MANY__TabularDataSet_1_, list(iv($columns->removeDuplicates()))); } function <> meta::external::query::sql::transformation::queryToPure::processRename(selectItems:SingleColumn[*], context: SqlTransformContext[1]):FunctionExpression[1] @@ -3568,4 +3568,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 da8edbd9490..3b18da5beb8 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 @@ -1441,6 +1441,25 @@ function <> meta::external::query::sql::transformation::queryToPure:: }) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testUnionWithRestrictAllNeeded():Boolean[1] +{ + test('SELECT * FROM (SELECT * FROM service."/service/service1" UNION SELECT * 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' ]) + ->concatenate( + 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' ]) + ) + }) +} + + function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectFromAliasedUnion():Boolean[1] { test('SELECT 1 AS "Number of Records",' + @@ -2485,4 +2504,4 @@ function meta::external::query::sql::transformation::queryToPure::tests::process let context = rootContext($sources, $extensions); $query->processRootQuery(^$context(scopeWithFrom = $scopeWithFrom)); -} \ No newline at end of file +} From a6eac56bfe96638c4ca83222099ab2a93fa449f2 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:16:19 +0000 Subject: [PATCH 27/54] [maven-release-plugin] prepare release legend-engine-4.35.5 --- 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 +- .../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-quality-pure/pom.xml | 6 ++---- .../legend-engine-xts-analytics-quality/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 +- .../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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/pom.xml | 2 +- .../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 +- .../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-deployment/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-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 +- .../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-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 +- .../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 +- .../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 +- .../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 +- .../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-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-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-xt-text-compiler/pom.xml | 2 +- .../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 ++-- 395 files changed, 399 insertions(+), 401 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index f7ab45c79c5..731af2a6c17 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.35.5-SNAPSHOT + 4.35.5 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 63c9d6da6b8..3f5745265d9 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.35.5-SNAPSHOT + 4.35.5 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 2d2301b7b2e..51b835db57f 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.35.5-SNAPSHOT + 4.35.5 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 377405fa9cd..f00092c3e8a 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.35.5-SNAPSHOT + 4.35.5 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 f6cfbc0ab3f..6314413cff4 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.35.5-SNAPSHOT + 4.35.5 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 092917c22f4..943dc402180 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.35.5-SNAPSHOT + 4.35.5 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 1b50c660f68..87fcba79ae8 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.35.5-SNAPSHOT + 4.35.5 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 5ca1fe09a25..bb5f1fd8893 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index cf873414257..cd73c1e74fb 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.35.5-SNAPSHOT + 4.35.5 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 06893e3f452..8f9763c1008 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5-SNAPSHOT + 4.35.5 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 21df6918ce6..13fe47650c6 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.35.5-SNAPSHOT + 4.35.5 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 84e32db2e98..167732f2f98 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.35.5-SNAPSHOT + 4.35.5 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 493643bfa55..2fd75ac02c6 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.35.5-SNAPSHOT + 4.35.5 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 20bfbf06970..c7a5614defa 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.35.5-SNAPSHOT + 4.35.5 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 725356b71d4..6aae01a4f07 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.35.5-SNAPSHOT + 4.35.5 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 3edba51be32..d29f11c2277 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.35.5-SNAPSHOT + 4.35.5 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 2bea19c0bf3..bff29d27ea2 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.35.5-SNAPSHOT + 4.35.5 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 15745335c01..56dac45bb16 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.35.5-SNAPSHOT + 4.35.5 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 0b87cc6b9e6..8399c67b8d4 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.35.5-SNAPSHOT + 4.35.5 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 aff6e96f926..deb43f96c06 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.35.5-SNAPSHOT + 4.35.5 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 6523b0df7e1..75b8a49cf44 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.35.5-SNAPSHOT + 4.35.5 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 7bb2f1d0f00..c99214395de 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.35.5-SNAPSHOT + 4.35.5 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 a201975846e..b1db9fe3792 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.35.5-SNAPSHOT + 4.35.5 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 5863251785f..c2ca3ef567a 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.35.5-SNAPSHOT + 4.35.5 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 0dbc7525172..5d57f6c7fe7 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.35.5-SNAPSHOT + 4.35.5 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 e3b76a0dcbd..05974f151de 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.35.5-SNAPSHOT + 4.35.5 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 6a32a615bd9..f39f7e05723 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.35.5-SNAPSHOT + 4.35.5 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 87e22dba699..4776731644c 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.35.5-SNAPSHOT + 4.35.5 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 8909cbff705..a010b0a7cf2 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.35.5-SNAPSHOT + 4.35.5 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 8f193038da9..919a3f320fb 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.35.5-SNAPSHOT + 4.35.5 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 846b19b7884..87969aed842 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.35.5-SNAPSHOT + 4.35.5 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 fab9af6128a..da343a1109b 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.35.5-SNAPSHOT + 4.35.5 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 fd7c406c276..25eb4f13b80 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.35.5-SNAPSHOT + 4.35.5 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 255b52b3b25..4e6b1bb715f 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.35.5-SNAPSHOT + 4.35.5 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 d2bec4dc883..d1d1b345ce8 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.35.5-SNAPSHOT + 4.35.5 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 b2bec68e13e..4328e109965 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.35.5-SNAPSHOT + 4.35.5 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 789e0ec732c..a18e9ddc12b 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.35.5-SNAPSHOT + 4.35.5 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 58f1b79145a..ccfe976df4a 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.35.5-SNAPSHOT + 4.35.5 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 3f0dc5dc957..11a5b824f87 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.35.5-SNAPSHOT + 4.35.5 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 127f6a0ffc1..5c9f59cf2b5 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.35.5-SNAPSHOT + 4.35.5 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 63b51284fae..f2bce5e33a9 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.35.5-SNAPSHOT + 4.35.5 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 0ed257d3c94..13a2e2e773c 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.35.5-SNAPSHOT + 4.35.5 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 4c3bd157e26..06f41023e07 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 23ba28ba0ad..328fd145de2 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5-SNAPSHOT + 4.35.5 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 149c55ed302..f540c455459 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.35.5-SNAPSHOT + 4.35.5 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 016173e3f3c..abb945a8022 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.35.5-SNAPSHOT + 4.35.5 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 b2776a26fd2..ec3212206f2 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.35.5-SNAPSHOT + 4.35.5 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 8b1031e4575..e6972a57c70 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.35.5-SNAPSHOT + 4.35.5 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 ac5d2a4e18c..e59604bf93c 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.35.5-SNAPSHOT + 4.35.5 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 f05a366c1ab..ae6c4baee8a 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.35.5-SNAPSHOT + 4.35.5 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 f505e3c098d..44887ee5bef 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.35.5-SNAPSHOT + 4.35.5 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 2d355e3536c..6c862c7d77d 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.35.5-SNAPSHOT + 4.35.5 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 a82f34798a5..65758b5795c 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.35.5-SNAPSHOT + 4.35.5 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 38ae80091e0..7e726125f1c 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.35.5-SNAPSHOT + 4.35.5 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 f68a977164f..0efe13bc2ca 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.35.5-SNAPSHOT + 4.35.5 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 833fd9383be..6d8d3e06b36 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.35.5-SNAPSHOT + 4.35.5 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 8e968302b5b..5be9694c956 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.35.5-SNAPSHOT + 4.35.5 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 a4782ff6147..0f1150ff98e 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.35.5-SNAPSHOT + 4.35.5 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 24d9bfb8929..c69073aebb7 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.35.5-SNAPSHOT + 4.35.5 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 b4f9ad4f00e..f181239e17f 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.35.5-SNAPSHOT + 4.35.5 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 9e3f7f33f61..49d2ef0d1ae 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.35.5-SNAPSHOT + 4.35.5 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 c7c20567ead..5a46e09de27 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.35.5-SNAPSHOT + 4.35.5 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 a6a2ca2df67..9abb2c56770 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.35.5-SNAPSHOT + 4.35.5 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 eaf8d4bac14..4465a8f8a38 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.35.5-SNAPSHOT + 4.35.5 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 c1d9104fdd8..ab82bf18bc1 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.35.5-SNAPSHOT + 4.35.5 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 b5d35a44643..5f63bd53486 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 8b250cc5028..34e56bb19f2 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5-SNAPSHOT + 4.35.5 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 d0f48ab6ffc..6625f88de85 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.35.5-SNAPSHOT + 4.35.5 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 66a8bb925a4..d3e32f1e2e8 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.35.5-SNAPSHOT + 4.35.5 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 c1117122dd7..d2c7b37a1b6 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.35.5-SNAPSHOT + 4.35.5 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 61fd04898d2..2b6a6a0bdc9 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.35.5-SNAPSHOT + 4.35.5 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 986168e1ae9..c8528e09ae9 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.35.5-SNAPSHOT + 4.35.5 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 9e5b2b50b8a..82dd1fae898 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.35.5-SNAPSHOT + 4.35.5 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 01dc9e933dd..6e5a6e9cdf4 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.35.5-SNAPSHOT + 4.35.5 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 5fa20fa4e02..e0e9667b1e2 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.35.5-SNAPSHOT + 4.35.5 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 8ecf0792b29..db6be1d9826 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.35.5-SNAPSHOT + 4.35.5 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 03b172b33e3..95e78181364 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.35.5-SNAPSHOT + 4.35.5 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 42fac39fbdd..dc4ff5101a2 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.35.5-SNAPSHOT + 4.35.5 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 805f769c976..f00d14a8413 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.35.5-SNAPSHOT + 4.35.5 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 8996e5d1fcd..9696b39d28c 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.35.5-SNAPSHOT + 4.35.5 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 1bf796cc808..5e0415352e5 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.35.5-SNAPSHOT + 4.35.5 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 58362f060f0..e32a33efd7f 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.35.5-SNAPSHOT + 4.35.5 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 df6245d343e..fb4720d5916 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml index 1f92e7e880b..0cf9a7e6685 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -1,11 +1,9 @@ - + legend-engine-xts-analytics-quality org.finos.legend.engine - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml index dbf6f592b64..77f9c1a3c22 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -2,7 +2,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.35.5-SNAPSHOT + 4.35.5 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 773b859bc64..9fb7d4c5275 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.35.5-SNAPSHOT + 4.35.5 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 4ceb82c1fc6..cfa795ec278 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.35.5-SNAPSHOT + 4.35.5 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 3d690027066..e7748b1542a 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.35.5-SNAPSHOT + 4.35.5 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 2d7d7962f33..9920a4c205b 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.35.5-SNAPSHOT + 4.35.5 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 b2d7b6a6e26..28c8290b346 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.35.5-SNAPSHOT + 4.35.5 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 66d96f4d72c..3e5ab1487d3 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index e29bcd74b1c..46a19479bd4 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.35.5-SNAPSHOT + 4.35.5 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 b23dd10a678..743b2f2f08c 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.35.5-SNAPSHOT + 4.35.5 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 c4bf68692bc..2caa580b2ad 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 31fade510d4..8c089850d42 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.35.5-SNAPSHOT + 4.35.5 legend-engine-xts-arrow 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 77d02f2d1ac..343c658e7be 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.35.5-SNAPSHOT + 4.35.5 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 444f1ea7533..165280aefcb 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.35.5-SNAPSHOT + 4.35.5 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 0a8d63ca003..b781236b220 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.35.5-SNAPSHOT + 4.35.5 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 6e8818a5463..fec3e317285 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.35.5-SNAPSHOT + 4.35.5 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 40acfc0cd9f..fb367ff1afc 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.35.5-SNAPSHOT + 4.35.5 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 033b8ad0198..9454ee91c14 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 81ebea33d82..27e1cf09b3c 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.35.5-SNAPSHOT + 4.35.5 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 fe36599c27f..a99352f1c7b 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.35.5-SNAPSHOT + 4.35.5 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 acef5e3061b..4697a44a1ca 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index d69a9bfd97c..0d3e3ff0e4e 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.35.5-SNAPSHOT + 4.35.5 4.0.0 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 f1c0f972342..86308443f3e 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 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 index 864050e7ea3..8bdb6680587 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 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 index a3eef798d32..28e5ca623b7 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 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 index 40bf067fe49..bf87e2c32dc 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 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 index bc311eab04a..4ed122537ca 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 03ad09de83a..9ac16320cb8 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5-SNAPSHOT + 4.35.5 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 3d335d64920..52d7d1ccb20 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.35.5-SNAPSHOT + 4.35.5 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 3764a9c76f0..209fb45fef5 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 05d56279243..c18b10a67f1 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index 94f22dd5036..d62f9a627ad 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 4f3df7a7145..fe70c19fb15 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index 51b8f24026e..e8060ad6c80 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index 10e7e591f46..2e1f588ae09 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 978548d0751..11f20bfe436 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index 0f979d0150d..a202eed0e5a 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5-SNAPSHOT + 4.35.5 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 7bf2383f236..67072a42d16 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.35.5-SNAPSHOT + 4.35.5 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 3dd380f2167..6f594005a21 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.35.5-SNAPSHOT + 4.35.5 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 0d76c07a08a..21f657f0b8f 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 40536f682b7..e3bf48e3912 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.35.5-SNAPSHOT + 4.35.5 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 7c70be2467e..74fe72d91a9 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index f8099be0b88..ce321ffc6ae 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.35.5-SNAPSHOT + 4.35.5 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 edf9cb2f7a5..bc9b7b62eba 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.35.5-SNAPSHOT + 4.35.5 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 f111d7e071d..4c804e3b2c6 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.35.5-SNAPSHOT + 4.35.5 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 3efa65d1192..d542e3bdb70 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.35.5-SNAPSHOT + 4.35.5 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 2fce9cd2583..95abc25f8f7 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.35.5-SNAPSHOT + 4.35.5 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 4e910fc5ef8..bdb49f32eab 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.35.5-SNAPSHOT + 4.35.5 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 1421bc8bc4f..d93b4f2eb50 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.35.5-SNAPSHOT + 4.35.5 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 fb6fd7a837b..d1b3483dd65 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 0e4c6c876c8..7dc14b81a4c 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.35.5-SNAPSHOT + 4.35.5 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 593558169d9..2d617d9780a 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.35.5-SNAPSHOT + 4.35.5 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 f5b9648f077..03cbfc411c3 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.35.5-SNAPSHOT + 4.35.5 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 fa0d9716df9..001cb962875 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.35.5-SNAPSHOT + 4.35.5 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 b5936f1599d..49cedd4db87 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.35.5-SNAPSHOT + 4.35.5 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 7957fb384f4..8dc07d5127f 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.35.5-SNAPSHOT + 4.35.5 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 c3312e14bb5..e2a110c311e 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index ffd5009c9a2..6a2e06e6089 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.35.5-SNAPSHOT + 4.35.5 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 65becc64aa6..be9ea2bed95 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.35.5-SNAPSHOT + 4.35.5 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 6e8b5c2c2ad..3d958a5aa83 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.35.5-SNAPSHOT + 4.35.5 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 d41fc45f29c..149aaa20a26 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.35.5-SNAPSHOT + 4.35.5 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 22dc0584536..161cf891ae0 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.35.5-SNAPSHOT + 4.35.5 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 45937accfde..90f6f9d8a30 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.35.5-SNAPSHOT + 4.35.5 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 607089bf3ba..6f38c2b07a2 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.35.5-SNAPSHOT + 4.35.5 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 2841478c550..58e847d8868 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 3e37348527b..c121782f947 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.35.5-SNAPSHOT + 4.35.5 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 c4db5d3edfd..007cdb04d73 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.35.5-SNAPSHOT + 4.35.5 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 a06b17d516a..e417f43c016 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.35.5-SNAPSHOT + 4.35.5 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 1570d04505e..239186d54fd 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.35.5-SNAPSHOT + 4.35.5 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 187626ec721..552ba3be8e8 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.35.5-SNAPSHOT + 4.35.5 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 9c111be3476..ebda4cf5654 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.35.5-SNAPSHOT + 4.35.5 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 f33d33d67fc..d3be76565d8 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.35.5-SNAPSHOT + 4.35.5 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 40a5d375045..99017379893 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 3eb332bbfb3..02566d40c17 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.35.5-SNAPSHOT + 4.35.5 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 f2e8dcbc264..159210bdaac 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.35.5-SNAPSHOT + 4.35.5 4.0.0 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 index 27465319519..50efe7f708f 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.35.5-SNAPSHOT + 4.35.5 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 41b5d7b3408..7d97865d05b 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.35.5-SNAPSHOT + 4.35.5 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 1fc5e730cab..a8947b65f31 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 85642507004..ebf5a5f003a 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.35.5-SNAPSHOT + 4.35.5 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 d6cfc126a5b..99ff8d63ac7 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.35.5-SNAPSHOT + 4.35.5 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 5330c8fa45e..1923ffe2f08 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.35.5-SNAPSHOT + 4.35.5 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 89ba2922f23..55987ef8021 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.35.5-SNAPSHOT + 4.35.5 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 9f2ded7c791..aabf614cfce 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 66309b27b7e..3087f3d2b95 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.35.5-SNAPSHOT + 4.35.5 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 3293852b915..5f5a68b9783 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.35.5-SNAPSHOT + 4.35.5 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.5-SNAPSHOT + 4.35.5 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 587759c86d9..16227d01b9f 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.35.5-SNAPSHOT + 4.35.5 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 35fe2a149ca..25764c6fc45 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.35.5-SNAPSHOT + 4.35.5 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 429b335f37e..cf6eb181103 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.35.5-SNAPSHOT + 4.35.5 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 14a45357706..10dcb481420 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.35.5-SNAPSHOT + 4.35.5 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 356942860bb..fe9b902c02d 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.35.5-SNAPSHOT + 4.35.5 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 d52abe64c1d..0229892dd3f 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.35.5-SNAPSHOT + 4.35.5 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 27258ac7861..108a00a2cca 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 25b0b6e70d0..57072d8ab92 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.35.5-SNAPSHOT + 4.35.5 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 b03945df45c..5bc9c011775 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.35.5-SNAPSHOT + 4.35.5 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 ecc14177d3c..f42bdd5cac1 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.35.5-SNAPSHOT + 4.35.5 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 b59a3451001..a06ed25c30b 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 2e857c4fa19..f64219c7a94 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.35.5-SNAPSHOT + 4.35.5 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 94034984329..298e8397e52 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.35.5-SNAPSHOT + 4.35.5 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 52d9daf7265..49f3271bc4b 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.35.5-SNAPSHOT + 4.35.5 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 17734f2e90f..8124aae3baf 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.35.5-SNAPSHOT + 4.35.5 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 803985179e8..a941500540e 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.35.5-SNAPSHOT + 4.35.5 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 2bc4125b355..fd0cfe5f45d 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.35.5-SNAPSHOT + 4.35.5 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 ed9e0465359..d8537659115 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 4673374c1bb..269c73c9f9b 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.35.5-SNAPSHOT + 4.35.5 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 859eecae7d1..8afbaabdab4 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.35.5-SNAPSHOT + 4.35.5 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 e19996d5ada..8d255930793 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index b3bcb41eb6b..33e8a087176 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.35.5-SNAPSHOT + 4.35.5 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 3ef5f763d6e..2d0fd21cb01 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.35.5-SNAPSHOT + 4.35.5 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 9b7a618961b..cc7d139e78f 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.35.5-SNAPSHOT + 4.35.5 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 39082371caf..adb65d10cc3 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.35.5-SNAPSHOT + 4.35.5 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 667c4bd7dd1..7e22485571f 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 816d9eac8a2..c4beaec42af 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.35.5-SNAPSHOT + 4.35.5 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 217af937794..bfd605722bd 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.35.5-SNAPSHOT + 4.35.5 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 a531ce07fbf..a4e545790a0 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.35.5-SNAPSHOT + 4.35.5 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 33d4e8495e5..100bf074e6b 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.35.5-SNAPSHOT + 4.35.5 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 e7918fec3a6..b0a23de6b5c 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.35.5-SNAPSHOT + 4.35.5 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 5a6c804c25c..c423990e514 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.35.5-SNAPSHOT + 4.35.5 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 793bf4cea75..a5621d7f2ec 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 8aa604be6dd..36956e316da 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.35.5-SNAPSHOT + 4.35.5 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 2270a6a1884..7368fe4adc2 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.35.5-SNAPSHOT + 4.35.5 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 eff55bf323e..cb40ba8097d 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.35.5-SNAPSHOT + 4.35.5 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 28066628b8d..6a0d82e2e73 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index d8dc2429812..139eb05b721 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.35.5-SNAPSHOT + 4.35.5 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 1cfe9e00344..d35060321c4 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.35.5-SNAPSHOT + 4.35.5 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 d82c9228ee2..ebf0d1c08fc 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.35.5-SNAPSHOT + 4.35.5 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 9718c2abdd7..8c1d9b515ce 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.35.5-SNAPSHOT + 4.35.5 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 14e543a948b..ac0fdd91a7a 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.35.5-SNAPSHOT + 4.35.5 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 a9ae1f43721..d19f55c47d5 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.35.5-SNAPSHOT + 4.35.5 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 bd6a77d82bb..803a9957ac9 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.35.5-SNAPSHOT + 4.35.5 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 b9d0451971d..1359f7a44c9 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.35.5-SNAPSHOT + 4.35.5 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 15c0806f12f..24eab4e4cac 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.35.5-SNAPSHOT + 4.35.5 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 8feb5346752..a98950cb9e2 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.35.5-SNAPSHOT + 4.35.5 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 99ce23f391f..e605cc649db 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 0c8f28e8f63..f5b770c9497 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.35.5-SNAPSHOT + 4.35.5 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 a99ed6673e2..c7e9595f867 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.35.5-SNAPSHOT + 4.35.5 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 4967a88d5f1..f38c2d53b59 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.35.5-SNAPSHOT + 4.35.5 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 4a3729ae6a7..0e9841bbc20 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.35.5-SNAPSHOT + 4.35.5 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 3acda56961b..a26ed458d29 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.35.5-SNAPSHOT + 4.35.5 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 5486025530e..83a99dec7a0 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.35.5-SNAPSHOT + 4.35.5 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 4ef834ede73..c44caa0de16 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.35.5-SNAPSHOT + 4.35.5 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 7fa92081c7d..ad960ba8cf6 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.35.5-SNAPSHOT + 4.35.5 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 c1cbb23bb7f..e49a55cc84b 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.35.5-SNAPSHOT + 4.35.5 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 3abc3034ff4..95e90d63c90 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.35.5-SNAPSHOT + 4.35.5 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 d0d4c4bcd31..0db7722968f 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.35.5-SNAPSHOT + 4.35.5 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 9530e2043dc..434faf780de 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.35.5-SNAPSHOT + 4.35.5 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 b7d09f16b4c..040281c60b8 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.35.5-SNAPSHOT + 4.35.5 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 9d15ae75ac8..3eff016dee7 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.35.5-SNAPSHOT + 4.35.5 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 d2f2ce4f865..b9d89d4f330 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.35.5-SNAPSHOT + 4.35.5 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 97d9e5cc5ec..bdea0a77278 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.35.5-SNAPSHOT + 4.35.5 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 d63b2e1ceaf..a83ae901730 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.35.5-SNAPSHOT + 4.35.5 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 80ebef577d3..7b0c4949cd9 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.35.5-SNAPSHOT + 4.35.5 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 1b959c121da..b7bed6e063b 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.35.5-SNAPSHOT + 4.35.5 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 0db5dcf51ef..f585c40f778 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.35.5-SNAPSHOT + 4.35.5 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 81e695335af..5a1a2db2ca5 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.35.5-SNAPSHOT + 4.35.5 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 9d791b6412f..ee55e8dc012 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.35.5-SNAPSHOT + 4.35.5 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 652747852ae..814f6161749 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.35.5-SNAPSHOT + 4.35.5 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 db78dbe812f..fda3a73cb71 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.35.5-SNAPSHOT + 4.35.5 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 88fc043545d..679ea0dee42 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 94dc161aff7..f6d041b417c 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.35.5-SNAPSHOT + 4.35.5 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 ae2275ae04b..f0ce277d2f9 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.35.5-SNAPSHOT + 4.35.5 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 6d902b110c9..8d393e72170 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.35.5-SNAPSHOT + 4.35.5 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 a21dd80eb83..56eaf27cbb8 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.35.5-SNAPSHOT + 4.35.5 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 05dd507efa6..195feb76b92 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.35.5-SNAPSHOT + 4.35.5 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.5-SNAPSHOT + 4.35.5 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index c44ca61f78c..5a022cc3531 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.35.5-SNAPSHOT + 4.35.5 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 cb7a8f25786..e3ab0b5fb92 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.35.5-SNAPSHOT + 4.35.5 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 7d481a06275..567e87914de 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.35.5-SNAPSHOT + 4.35.5 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 6c4f74aca79..1d4c3402dca 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.35.5-SNAPSHOT + 4.35.5 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 989f5bb14aa..186cfebda1b 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.35.5-SNAPSHOT + 4.35.5 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 e09910b7e10..43189489211 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.35.5-SNAPSHOT + 4.35.5 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 df8877f8b6c..e39aa3ad873 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.35.5-SNAPSHOT + 4.35.5 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 7dffe3119e0..aef2d8b9be9 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.35.5-SNAPSHOT + 4.35.5 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 ce26b090fc6..3fd9361871b 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.35.5-SNAPSHOT + 4.35.5 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 a49a3d0b31a..1f883499bab 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.35.5-SNAPSHOT + 4.35.5 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 4053b73664e..3412319111d 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.35.5-SNAPSHOT + 4.35.5 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 001af6d99d0..85f6d0c77df 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.35.5-SNAPSHOT + 4.35.5 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 5beb1092e0a..6c06d08584a 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.35.5-SNAPSHOT + 4.35.5 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 a72c1c7b7e8..da9e1c1a460 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.35.5-SNAPSHOT + 4.35.5 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 a77063ddc6e..e8b11593828 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.35.5-SNAPSHOT + 4.35.5 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 0d125a2a025..8a37a9af6a4 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.35.5-SNAPSHOT + 4.35.5 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 d815c2b7a6d..920b4c37144 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.35.5-SNAPSHOT + 4.35.5 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 02cd4f9370d..e1e0077fd39 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.35.5-SNAPSHOT + 4.35.5 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 85f5bd5ae08..48554778322 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.35.5-SNAPSHOT + 4.35.5 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 237b23d3660..fb9d915e02b 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.35.5-SNAPSHOT + 4.35.5 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 4656fdc9529..fc22a254216 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.35.5-SNAPSHOT + 4.35.5 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 5406dfc72a6..2735f993f16 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.35.5-SNAPSHOT + 4.35.5 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 496a9e02031..35ca88e0f41 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.35.5-SNAPSHOT + 4.35.5 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 4b937d67458..671d64ae9be 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.35.5-SNAPSHOT + 4.35.5 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 f1a8d435f3b..f047c0cc971 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.35.5-SNAPSHOT + 4.35.5 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 c71cb442444..df82a99e19c 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.35.5-SNAPSHOT + 4.35.5 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 e5d73204666..83bd5424870 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.35.5-SNAPSHOT + 4.35.5 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 b30733b58ca..957764716df 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.35.5-SNAPSHOT + 4.35.5 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 3e3ea301973..391b6330939 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.35.5-SNAPSHOT + 4.35.5 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 a6e234d6291..3b3b6d0ad35 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.35.5-SNAPSHOT + 4.35.5 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 169f49c72bb..6409be2f9e5 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.35.5-SNAPSHOT + 4.35.5 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 7aae4790184..cd4239ded8a 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.35.5-SNAPSHOT + 4.35.5 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 1251123ceac..f123083c158 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.35.5-SNAPSHOT + 4.35.5 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 bc65f3e3a44..006e09f6c3b 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.35.5-SNAPSHOT + 4.35.5 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 f0f8043cd1e..35fb86f338e 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.35.5-SNAPSHOT + 4.35.5 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 7db4f0de805..eae74a61a9f 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.35.5-SNAPSHOT + 4.35.5 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 96042ec9228..8b9aba65a72 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.35.5-SNAPSHOT + 4.35.5 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 7b2c672e999..ad0999681f1 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.35.5-SNAPSHOT + 4.35.5 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 fbb8caa2c4a..7735d0e4328 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.35.5-SNAPSHOT + 4.35.5 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 2e1eb1e3552..ed46a042a64 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.35.5-SNAPSHOT + 4.35.5 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 ca6fe1bcd2d..57c5babf0ec 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.35.5-SNAPSHOT + 4.35.5 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 735dbef96f7..0f7babf5114 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.35.5-SNAPSHOT + 4.35.5 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 b7341853c6c..3e59013efac 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.35.5-SNAPSHOT + 4.35.5 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 40ba5cc1e33..4048660e1ba 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.35.5-SNAPSHOT + 4.35.5 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 45a86bd7699..d8c944bc6c0 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.35.5-SNAPSHOT + 4.35.5 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 5ea0a14e92c..15cdd407d9a 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.35.5-SNAPSHOT + 4.35.5 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 399c50e2422..800cf114ce6 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.35.5-SNAPSHOT + 4.35.5 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 cd3c3f7975f..e7d61ab4d8e 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.35.5-SNAPSHOT + 4.35.5 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 0708edc9aa6..4657af54734 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.35.5-SNAPSHOT + 4.35.5 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 9be950a1e73..836a50b8e64 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.35.5-SNAPSHOT + 4.35.5 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 517b69adf08..86faca8f435 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.35.5-SNAPSHOT + 4.35.5 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 882231ff954..cece0f7c31c 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.35.5-SNAPSHOT + 4.35.5 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 c4b18a7954b..2b26fd0663e 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.35.5-SNAPSHOT + 4.35.5 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 be11f37f382..a7ea6a9532c 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.35.5-SNAPSHOT + 4.35.5 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 341cf8b49c8..016ef736f03 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.35.5-SNAPSHOT + 4.35.5 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 9df8222815a..b42221cbef4 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.35.5-SNAPSHOT + 4.35.5 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 b5ea283cabb..cfb90fc60e4 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.35.5-SNAPSHOT + 4.35.5 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 30834e2aa76..4f331e133ed 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.35.5-SNAPSHOT + 4.35.5 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 f36d122079e..833b06a3ffa 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.35.5-SNAPSHOT + 4.35.5 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 c1db21092cf..3dec00276fe 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.35.5-SNAPSHOT + 4.35.5 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 81fd7e8cbb0..86e4e259abd 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.35.5-SNAPSHOT + 4.35.5 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 54e59025f04..4a2251e0d8b 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.35.5-SNAPSHOT + 4.35.5 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 4bd5e0c3457..45e0879bb80 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.35.5-SNAPSHOT + 4.35.5 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 07d5f070cf8..d9bba4c0dd1 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.35.5-SNAPSHOT + 4.35.5 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 4a431b558db..f60f0d92fe7 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.35.5-SNAPSHOT + 4.35.5 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 eac48702eef..fd01b35e79a 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.35.5-SNAPSHOT + 4.35.5 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 6fa256d55a2..5b3e5d8d388 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.35.5-SNAPSHOT + 4.35.5 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 6378d681d3b..b91bce5c199 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.35.5-SNAPSHOT + 4.35.5 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 b35aa9fa6c4..06d58c305c4 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.35.5-SNAPSHOT + 4.35.5 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 f0105abbf2c..36e23fda770 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.35.5-SNAPSHOT + 4.35.5 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 dce28fce03b..b5edef124f3 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.35.5-SNAPSHOT + 4.35.5 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 4d469e8c0eb..9e4124ba02e 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.35.5-SNAPSHOT + 4.35.5 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 81ed1975b04..fecf3dd9490 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.35.5-SNAPSHOT + 4.35.5 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 0ef61fd4873..85a3d8e1915 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.35.5-SNAPSHOT + 4.35.5 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 9cda7ed4081..3e1b80e7c07 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.35.5-SNAPSHOT + 4.35.5 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 e368e6bc6e8..a76fa0870d6 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.35.5-SNAPSHOT + 4.35.5 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 12dfd53eb69..d5050d9acbc 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.35.5-SNAPSHOT + 4.35.5 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 135ae64d473..55a096132bd 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.35.5-SNAPSHOT + 4.35.5 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 39fa4432022..ee02fa8b5ac 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.35.5-SNAPSHOT + 4.35.5 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 2c8a30fe2b4..9fe41bda307 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.35.5-SNAPSHOT + 4.35.5 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 c4e604f42cb..c96815ab526 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.35.5-SNAPSHOT + 4.35.5 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 944bdbfc3c5..6c57234ff50 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.35.5-SNAPSHOT + 4.35.5 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 e741512a3a3..009c56d3f21 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.35.5-SNAPSHOT + 4.35.5 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 ab8682e19f1..4f2c57f25e6 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.35.5-SNAPSHOT + 4.35.5 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 642534b5d00..3f81c17a63f 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.35.5-SNAPSHOT + 4.35.5 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 fe2e223021a..a2502fa2d17 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.35.5-SNAPSHOT + 4.35.5 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 1bbb79eca5a..7da2df0a8c2 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.35.5-SNAPSHOT + 4.35.5 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 8176271db2f..a5ca5bec589 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.35.5-SNAPSHOT + 4.35.5 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 622c2246fa4..1412a603c31 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.35.5-SNAPSHOT + 4.35.5 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 b0e80680571..7f168ea0887 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.35.5-SNAPSHOT + 4.35.5 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 88a253dde31..a23f0ef1b30 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.35.5-SNAPSHOT + 4.35.5 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 81493117446..8cc8ae41ccf 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.35.5-SNAPSHOT + 4.35.5 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 70ad0e63e8d..35c3d5d9320 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.35.5-SNAPSHOT + 4.35.5 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 939311c280a..35053382d9f 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.35.5-SNAPSHOT + 4.35.5 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 f9bbfa340b1..b333d0d5810 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 2440b73bcf1..ac599328ac1 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.35.5-SNAPSHOT + 4.35.5 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 309bc63b2bb..f22c854d48b 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index c788e9905ce..eab1799ba64 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.35.5-SNAPSHOT + 4.35.5 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 ef850bc2c5f..dbd05b1feda 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.35.5-SNAPSHOT + 4.35.5 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 46b1d7551dd..bedcd696526 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 2fc99f153d0..76d51ecc743 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.35.5-SNAPSHOT + 4.35.5 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 8ac25fd4fa1..df9b6bd56ea 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.35.5-SNAPSHOT + 4.35.5 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 a1e499fc862..fbe4b0385f6 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.35.5-SNAPSHOT + 4.35.5 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 c1b509769c7..df289163253 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.35.5-SNAPSHOT + 4.35.5 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 efb4f9af9f9..aa8fe0f0696 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.35.5-SNAPSHOT + 4.35.5 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 02cac8b656b..35d1f9626fe 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.35.5-SNAPSHOT + 4.35.5 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 6524a563c1e..25b280ff90c 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.35.5-SNAPSHOT + 4.35.5 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 49d5a1b7271..cd77019dc28 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.35.5-SNAPSHOT + 4.35.5 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 693a4e5c925..58393f60471 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 3faf5acb3cc..54ed9d447a6 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.35.5-SNAPSHOT + 4.35.5 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 6f9b5bd2e38..834923063ec 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.35.5-SNAPSHOT + 4.35.5 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 84895998999..614f6f5e19a 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.35.5-SNAPSHOT + 4.35.5 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 0c22fe37300..f8a8d099546 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.35.5-SNAPSHOT + 4.35.5 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 0214deead6b..0480a871a79 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.35.5-SNAPSHOT + 4.35.5 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 3dacdc06d6b..5ea3ff27180 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 67873bd07ad..1ef0636c3e1 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.35.5-SNAPSHOT + 4.35.5 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 20212c47557..15fdf29eec2 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.35.5-SNAPSHOT + 4.35.5 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 bdd2b44b95e..067d091080f 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.35.5-SNAPSHOT + 4.35.5 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 b50cdbdfac5..5f25ed09457 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.35.5-SNAPSHOT + 4.35.5 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 f24c662e3ca..4159a7423ec 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.35.5-SNAPSHOT + 4.35.5 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 a8860e3c6a9..a9d854a212e 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.35.5-SNAPSHOT + 4.35.5 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 b87e8c33600..da06aec6ce9 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 46be8a51229..4b6ebcdab75 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.35.5-SNAPSHOT + 4.35.5 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 1459301bd37..a3575b37fa8 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.35.5-SNAPSHOT + 4.35.5 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 b7d308ab323..7ccc516d7b6 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.35.5-SNAPSHOT + 4.35.5 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 19482b6d4f6..4c1d43f002b 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.35.5-SNAPSHOT + 4.35.5 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 3507d7f2e7a..652f0709873 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.35.5-SNAPSHOT + 4.35.5 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 7bb107ad67f..4fd1de678c5 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.35.5-SNAPSHOT + 4.35.5 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 bff7742ac81..9e23195ad6e 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.35.5-SNAPSHOT + 4.35.5 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 b49456ec4fd..c86d7c129e9 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.35.5-SNAPSHOT + 4.35.5 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 8cc5ea03325..6c3d46ba200 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.35.5-SNAPSHOT + 4.35.5 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 7acd9fa3ff8..83dafc12d47 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.35.5-SNAPSHOT + 4.35.5 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 35f6b18d490..5be9494e5c1 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.35.5-SNAPSHOT + 4.35.5 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 8fe83443d18..86df7ffc670 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.35.5-SNAPSHOT + 4.35.5 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 18a754bc6f0..4ab2bebc8f5 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.35.5-SNAPSHOT + 4.35.5 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 2cb6410e788..61f11d93ef6 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 1481e685be4..b124d2ba52f 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.35.5-SNAPSHOT + 4.35.5 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 f2009f9682a..ef3607ea438 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.35.5-SNAPSHOT + 4.35.5 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 7a9b87aed9e..3ade960dc3e 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.35.5-SNAPSHOT + 4.35.5 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 5ee73ca6747..da4ce12fc51 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.35.5-SNAPSHOT + 4.35.5 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 e902fc445dc..ef2d9ef9d10 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index c654bc1c9c4..0f4e1c901e1 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.35.5-SNAPSHOT + 4.35.5 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 a055fe71a5c..c1e2e5ff77e 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.35.5-SNAPSHOT + 4.35.5 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 60e2c8d83c5..a8276f85f75 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.35.5-SNAPSHOT + 4.35.5 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 e8b256c91c2..c11ad96ac58 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.35.5-SNAPSHOT + 4.35.5 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 112f196cd44..4ac06b7ab1e 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.35.5-SNAPSHOT + 4.35.5 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 1ba370c924e..275f131133e 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 5b2327dc131..45accafbfad 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.35.5-SNAPSHOT + 4.35.5 4.0.0 diff --git a/pom.xml b/pom.xml index fe063d337e8..a151c86e1e3 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.35.5-SNAPSHOT + 4.35.5 pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.35.5 From a57438605295ddca47ecec119281f7e95a3a0d14 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:16:24 +0000 Subject: [PATCH 28/54] [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-quality-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-quality/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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/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-deployment/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 ++-- 395 files changed, 398 insertions(+), 398 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 731af2a6c17..ae37329f030 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.35.5 + 4.35.6-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 3f5745265d9..aa82f31f2af 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.35.5 + 4.35.6-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 51b835db57f..214114f1de7 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.35.5 + 4.35.6-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 f00092c3e8a..2fce623cf94 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.35.5 + 4.35.6-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 6314413cff4..42b151537bd 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.35.5 + 4.35.6-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 943dc402180..c57568b5617 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.35.5 + 4.35.6-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 87fcba79ae8..5345f196dcb 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.35.5 + 4.35.6-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 bb5f1fd8893..9b7e1d635a1 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.35.5 + 4.35.6-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 cd73c1e74fb..562b0c75f62 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 8f9763c1008..f6248738595 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5 + 4.35.6-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 13fe47650c6..48663fd0ac4 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.35.5 + 4.35.6-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 167732f2f98..bd8c991ab6e 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.35.5 + 4.35.6-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 2fd75ac02c6..7abd61b09bf 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.35.5 + 4.35.6-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 c7a5614defa..f61e3757055 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.35.5 + 4.35.6-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 6aae01a4f07..fc20e67f6c4 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.35.5 + 4.35.6-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 d29f11c2277..9a224f5771a 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.35.5 + 4.35.6-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 bff29d27ea2..1f06bc0d90d 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.35.5 + 4.35.6-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 56dac45bb16..e9133b94c5a 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.35.5 + 4.35.6-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 8399c67b8d4..7caa6f15ba6 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.35.5 + 4.35.6-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 deb43f96c06..319deac8dee 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.35.5 + 4.35.6-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 75b8a49cf44..b24bb738e10 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.35.5 + 4.35.6-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 c99214395de..5974ac161b4 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.35.5 + 4.35.6-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 b1db9fe3792..e6c0d710ad6 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.35.5 + 4.35.6-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 c2ca3ef567a..c519fde6609 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.35.5 + 4.35.6-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 5d57f6c7fe7..95dfd2abee7 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.35.5 + 4.35.6-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 05974f151de..714201d95dc 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.35.5 + 4.35.6-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 f39f7e05723..3cabfec3b69 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.35.5 + 4.35.6-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 4776731644c..250131fe838 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.35.5 + 4.35.6-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 a010b0a7cf2..0cba7197a2d 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.35.5 + 4.35.6-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 919a3f320fb..bc3e8adaea4 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.35.5 + 4.35.6-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 87969aed842..022f64e7d88 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.35.5 + 4.35.6-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 da343a1109b..9a3b6ff6d39 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.35.5 + 4.35.6-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 25eb4f13b80..a28124b664f 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.35.5 + 4.35.6-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 4e6b1bb715f..5bce6fddff9 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.35.5 + 4.35.6-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 d1d1b345ce8..9507265b465 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.35.5 + 4.35.6-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 4328e109965..bb48393b927 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.35.5 + 4.35.6-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 a18e9ddc12b..1d0248fb2f0 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.35.5 + 4.35.6-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 ccfe976df4a..a00de71b9dd 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.35.5 + 4.35.6-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 11a5b824f87..486e8e2b853 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.35.5 + 4.35.6-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 5c9f59cf2b5..f728b02a4b5 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.35.5 + 4.35.6-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 f2bce5e33a9..6d7c0ee6729 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.35.5 + 4.35.6-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 13a2e2e773c..f5c1cd786eb 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.35.5 + 4.35.6-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 06f41023e07..de36e791dba 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 328fd145de2..fcc1833eea2 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5 + 4.35.6-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 f540c455459..ab0bcc18120 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.35.5 + 4.35.6-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 abb945a8022..ec91d71410b 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.35.5 + 4.35.6-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 ec3212206f2..0321f943e39 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.35.5 + 4.35.6-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 e6972a57c70..d0f9fc15540 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.35.5 + 4.35.6-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 e59604bf93c..8d90ed59388 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.35.5 + 4.35.6-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 ae6c4baee8a..872bfc99cce 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.35.5 + 4.35.6-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 44887ee5bef..63d4389754b 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.35.5 + 4.35.6-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 6c862c7d77d..d6835814dec 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.35.5 + 4.35.6-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 65758b5795c..86805888474 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.35.5 + 4.35.6-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 7e726125f1c..a1fd3b50078 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.35.5 + 4.35.6-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 0efe13bc2ca..584305b2dd9 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.35.5 + 4.35.6-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 6d8d3e06b36..3f8ceba8d9c 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.35.5 + 4.35.6-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 5be9694c956..e4ab2f7bb84 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.35.5 + 4.35.6-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 0f1150ff98e..82a439a456a 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.35.5 + 4.35.6-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 c69073aebb7..3e13d833029 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.35.5 + 4.35.6-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 f181239e17f..74d4ab97a68 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.35.5 + 4.35.6-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 49d2ef0d1ae..1945d7b7677 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.35.5 + 4.35.6-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 5a46e09de27..e186624bf3b 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.35.5 + 4.35.6-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 9abb2c56770..a31401926ac 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.35.5 + 4.35.6-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 4465a8f8a38..94299a693a7 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.35.5 + 4.35.6-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 ab82bf18bc1..2a5d3b3fc37 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.35.5 + 4.35.6-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 5f63bd53486..71cb1a51c2e 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 34e56bb19f2..31b1e9ddacc 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5 + 4.35.6-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 6625f88de85..8f82d49188d 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.35.5 + 4.35.6-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 d3e32f1e2e8..53ced86ed9a 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.35.5 + 4.35.6-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 d2c7b37a1b6..dda9b01b95a 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.35.5 + 4.35.6-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 2b6a6a0bdc9..009dcff34be 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.35.5 + 4.35.6-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 c8528e09ae9..3ed6c5979ae 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.35.5 + 4.35.6-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 82dd1fae898..08731a9a497 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.35.5 + 4.35.6-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 6e5a6e9cdf4..5adebea4f80 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.35.5 + 4.35.6-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 e0e9667b1e2..34da391b100 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.35.5 + 4.35.6-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 db6be1d9826..cd866959c5e 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.35.5 + 4.35.6-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 95e78181364..a95702826ba 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.35.5 + 4.35.6-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 dc4ff5101a2..8604c2fdec8 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.35.5 + 4.35.6-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 f00d14a8413..8bd7a52f14d 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.35.5 + 4.35.6-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 9696b39d28c..41372569d22 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.35.5 + 4.35.6-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 5e0415352e5..344f6050976 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.35.5 + 4.35.6-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 e32a33efd7f..ed62a38b6be 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.35.5 + 4.35.6-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 fb4720d5916..df19c5f1e1d 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml index 0cf9a7e6685..83f08e2d9f2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-quality org.finos.legend.engine - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml index 77f9c1a3c22..024e2026973 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -2,7 +2,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.35.5 + 4.35.6-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 9fb7d4c5275..d21d5b5b57b 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.35.5 + 4.35.6-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 cfa795ec278..a2c2194e1fe 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.35.5 + 4.35.6-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 e7748b1542a..68c00deca22 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.35.5 + 4.35.6-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 9920a4c205b..0eb51136b90 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.35.5 + 4.35.6-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 28c8290b346..33617f20b0a 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.35.5 + 4.35.6-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 3e5ab1487d3..3ea13fca7ea 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 46a19479bd4..e7e3f5e5ec0 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.35.5 + 4.35.6-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 743b2f2f08c..4c0f93190e1 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.35.5 + 4.35.6-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 2caa580b2ad..89a1eb8c245 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 8c089850d42..d54cffe0d44 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.35.5 + 4.35.6-SNAPSHOT legend-engine-xts-arrow 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 343c658e7be..aae387c8329 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.35.5 + 4.35.6-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 165280aefcb..54715d079c3 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.35.5 + 4.35.6-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 b781236b220..99244f90cdb 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.35.5 + 4.35.6-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 fec3e317285..032ba5fe425 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.35.5 + 4.35.6-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 fb367ff1afc..c4b9aac6d4c 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.35.5 + 4.35.6-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 9454ee91c14..2010bcc3b6b 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 27e1cf09b3c..715b1d6ded3 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.35.5 + 4.35.6-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 a99352f1c7b..13a4dc7911c 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.35.5 + 4.35.6-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 4697a44a1ca..634947c1876 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 0d3e3ff0e4e..6d979831354 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 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 86308443f3e..7485cec00f0 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 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 index 8bdb6680587..ca573e10aaf 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 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 index 28e5ca623b7..97e1141bb24 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 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 index bf87e2c32dc..db06435ed8b 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 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 index 4ed122537ca..37edd7ed4fc 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 9ac16320cb8..6443344a603 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5 + 4.35.6-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 52d7d1ccb20..9da6c3e91e5 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.35.5 + 4.35.6-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 209fb45fef5..b5e81d6ff5d 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index c18b10a67f1..ce5ed58815e 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index d62f9a627ad..f948cf58b48 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index fe70c19fb15..13593ca9d3f 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index e8060ad6c80..7dce96087d9 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index 2e1f588ae09..e236b1a74c4 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 11f20bfe436..18d8bffa662 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index a202eed0e5a..d0b0b2d0bd2 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.5 + 4.35.6-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 67072a42d16..a74f594871f 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.35.5 + 4.35.6-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 6f594005a21..13bc0849efd 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.35.5 + 4.35.6-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 21f657f0b8f..accf3c7485c 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index e3bf48e3912..ce99ebcd2a4 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.35.5 + 4.35.6-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 74fe72d91a9..d462c0c20fe 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index ce321ffc6ae..e28c4a6f582 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.35.5 + 4.35.6-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 bc9b7b62eba..a9ce7549939 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.35.5 + 4.35.6-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 4c804e3b2c6..1547183b066 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.35.5 + 4.35.6-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 d542e3bdb70..4f60f3fd732 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.35.5 + 4.35.6-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 95abc25f8f7..e72950c6dcd 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.35.5 + 4.35.6-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 bdb49f32eab..13541ac1b6c 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.35.5 + 4.35.6-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 d93b4f2eb50..2aad18de52d 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.35.5 + 4.35.6-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 d1b3483dd65..c116cb576ff 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 7dc14b81a4c..0f5a6cf4887 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.35.5 + 4.35.6-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 2d617d9780a..5af6aae3018 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.35.5 + 4.35.6-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 03cbfc411c3..e1bd2ba0163 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.35.5 + 4.35.6-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 001cb962875..7074330b77c 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.35.5 + 4.35.6-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 49cedd4db87..61a73cdadf0 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.35.5 + 4.35.6-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 8dc07d5127f..123004989ec 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.35.5 + 4.35.6-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 e2a110c311e..541de1628ce 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 6a2e06e6089..d36225eeab1 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.35.5 + 4.35.6-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 be9ea2bed95..d50dec40da0 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.35.5 + 4.35.6-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 3d958a5aa83..ba439c6abb7 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.35.5 + 4.35.6-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 149aaa20a26..b054f3c5104 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.35.5 + 4.35.6-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 161cf891ae0..665155bbea3 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.35.5 + 4.35.6-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 90f6f9d8a30..06bdc5c4e9e 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.35.5 + 4.35.6-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 6f38c2b07a2..fb3a8c564c3 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.35.5 + 4.35.6-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 58e847d8868..aa58563abb7 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index c121782f947..0faec90b1ba 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.35.5 + 4.35.6-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 007cdb04d73..6a935b029a6 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.35.5 + 4.35.6-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 e417f43c016..36a28082925 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.35.5 + 4.35.6-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 239186d54fd..c4fc9c54e8b 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.35.5 + 4.35.6-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 552ba3be8e8..b495fad883f 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.35.5 + 4.35.6-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 ebda4cf5654..7600e030eec 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.35.5 + 4.35.6-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 d3be76565d8..ce55df6827e 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.35.5 + 4.35.6-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 99017379893..feab89f1e58 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 02566d40c17..9928dcbcf31 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.35.5 + 4.35.6-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 159210bdaac..0db466a4648 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 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 index 50efe7f708f..5de250ec819 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.35.5 + 4.35.6-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 7d97865d05b..2d5ef608b34 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.35.5 + 4.35.6-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 a8947b65f31..cb604bd664d 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index ebf5a5f003a..2838c43462e 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.35.5 + 4.35.6-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 99ff8d63ac7..bfb186e722f 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.35.5 + 4.35.6-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 1923ffe2f08..c1af8beda40 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.35.5 + 4.35.6-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 55987ef8021..75e96e87692 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.35.5 + 4.35.6-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 aabf614cfce..03bb9863048 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 3087f3d2b95..1ebd86a0866 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.35.5 + 4.35.6-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 5f5a68b9783..bbf6d04603a 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.5 + 4.35.6-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 16227d01b9f..4fedfd17dfb 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.35.5 + 4.35.6-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 25764c6fc45..378a3195b90 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.35.5 + 4.35.6-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 cf6eb181103..3baa1e461e3 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.35.5 + 4.35.6-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 10dcb481420..29e69355649 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.35.5 + 4.35.6-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 fe9b902c02d..182937125a4 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.35.5 + 4.35.6-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 0229892dd3f..e08a9fd6c1a 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.35.5 + 4.35.6-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 108a00a2cca..306f201d9a1 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 57072d8ab92..e26246bcecb 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.35.5 + 4.35.6-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 5bc9c011775..c79703ed76c 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.35.5 + 4.35.6-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 f42bdd5cac1..401a7af5640 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.35.5 + 4.35.6-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 a06ed25c30b..b8bbbdb8627 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index f64219c7a94..c218e2f81b5 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.35.5 + 4.35.6-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 298e8397e52..35170577c76 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.35.5 + 4.35.6-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 49f3271bc4b..8c67c237283 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.35.5 + 4.35.6-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 8124aae3baf..cdc6cab16a1 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.35.5 + 4.35.6-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 a941500540e..1b3e5f22f24 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.35.5 + 4.35.6-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 fd0cfe5f45d..408a2ffb96c 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.35.5 + 4.35.6-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 d8537659115..d598ca499e6 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 269c73c9f9b..0b7314c516b 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.35.5 + 4.35.6-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 8afbaabdab4..7b3936527db 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.35.5 + 4.35.6-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 8d255930793..280dee2cfc4 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 33e8a087176..11b25076b7a 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.35.5 + 4.35.6-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 2d0fd21cb01..0e0cb04c799 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.35.5 + 4.35.6-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 cc7d139e78f..b72d02d991d 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.35.5 + 4.35.6-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 adb65d10cc3..17a32518293 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.35.5 + 4.35.6-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 7e22485571f..ac156e323a5 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index c4beaec42af..3b2da6e724e 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.35.5 + 4.35.6-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 bfd605722bd..d269524a228 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.35.5 + 4.35.6-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 a4e545790a0..c835eaf488c 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.35.5 + 4.35.6-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 100bf074e6b..948070d5611 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.35.5 + 4.35.6-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 b0a23de6b5c..d8b16d795cf 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.35.5 + 4.35.6-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 c423990e514..37e7c75e21e 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.35.5 + 4.35.6-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 a5621d7f2ec..579e999c340 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 36956e316da..7f6ec847c7f 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.35.5 + 4.35.6-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 7368fe4adc2..7180207fdaa 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.35.5 + 4.35.6-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 cb40ba8097d..b39ad5a90e0 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.35.5 + 4.35.6-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 6a0d82e2e73..a48c4f8e59c 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 139eb05b721..384c1fdb3f7 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.35.5 + 4.35.6-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 d35060321c4..6f713d35c7f 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.35.5 + 4.35.6-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 ebf0d1c08fc..6f12d5cef0b 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.35.5 + 4.35.6-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 8c1d9b515ce..b6aeab639c9 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.35.5 + 4.35.6-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 ac0fdd91a7a..663e07be1c4 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.35.5 + 4.35.6-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 d19f55c47d5..554727c0221 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.35.5 + 4.35.6-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 803a9957ac9..e0f7177b552 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.35.5 + 4.35.6-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 1359f7a44c9..3f0eb8aa668 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.35.5 + 4.35.6-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 24eab4e4cac..6827d6ee2aa 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.35.5 + 4.35.6-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 a98950cb9e2..5e83cdb437b 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.35.5 + 4.35.6-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 e605cc649db..9e36a8a7308 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index f5b770c9497..7f5d2e46ea5 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.35.5 + 4.35.6-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 c7e9595f867..041541a4789 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.35.5 + 4.35.6-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 f38c2d53b59..189afc39a21 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.35.5 + 4.35.6-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 0e9841bbc20..5b8ab3ed849 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.35.5 + 4.35.6-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 a26ed458d29..f2b82ee40f4 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.35.5 + 4.35.6-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 83a99dec7a0..68a70c1523c 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.35.5 + 4.35.6-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 c44caa0de16..fe2ee048b6f 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.35.5 + 4.35.6-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 ad960ba8cf6..b968f31d9f9 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.35.5 + 4.35.6-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 e49a55cc84b..97d6baaa341 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.35.5 + 4.35.6-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 95e90d63c90..c70cdfbd1e4 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.35.5 + 4.35.6-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 0db7722968f..c99de00788f 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.35.5 + 4.35.6-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 434faf780de..44e75c0626e 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.35.5 + 4.35.6-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 040281c60b8..79fbfb4675d 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.35.5 + 4.35.6-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 3eff016dee7..845fe61d9a0 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.35.5 + 4.35.6-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 b9d89d4f330..39af81e1411 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.35.5 + 4.35.6-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 bdea0a77278..319073963ef 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.35.5 + 4.35.6-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 a83ae901730..2f0539779a1 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.35.5 + 4.35.6-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 7b0c4949cd9..0badc589617 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.35.5 + 4.35.6-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 b7bed6e063b..9a8c75fe035 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.35.5 + 4.35.6-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 f585c40f778..e6a767bc9f8 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.35.5 + 4.35.6-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 5a1a2db2ca5..101ed89ae12 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.35.5 + 4.35.6-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 ee55e8dc012..a1631ae5ce2 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.35.5 + 4.35.6-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 814f6161749..e8bd766aefa 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.35.5 + 4.35.6-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 fda3a73cb71..c7e555189bc 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.35.5 + 4.35.6-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 679ea0dee42..a7ce02d5cf4 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index f6d041b417c..1c2cba9149a 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.35.5 + 4.35.6-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 f0ce277d2f9..ce3c2ff03e1 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.35.5 + 4.35.6-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 8d393e72170..d4b9facd2df 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.35.5 + 4.35.6-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 56eaf27cbb8..731496d4d81 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.35.5 + 4.35.6-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 195feb76b92..76ea58c497f 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.5 + 4.35.6-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 5a022cc3531..4beb66fa005 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.35.5 + 4.35.6-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 e3ab0b5fb92..2c76b4954f8 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.35.5 + 4.35.6-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 567e87914de..3633062101f 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.35.5 + 4.35.6-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 1d4c3402dca..8d53a7ecd2e 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.35.5 + 4.35.6-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 186cfebda1b..ac883fcf2af 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.35.5 + 4.35.6-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 43189489211..315ad52e605 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.35.5 + 4.35.6-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 e39aa3ad873..1ecb8c1e8b6 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.35.5 + 4.35.6-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 aef2d8b9be9..a556f5fe8ba 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.35.5 + 4.35.6-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 3fd9361871b..af49966f72c 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.35.5 + 4.35.6-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 1f883499bab..863eed61d1a 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.35.5 + 4.35.6-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 3412319111d..834150d8c2f 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.35.5 + 4.35.6-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 85f6d0c77df..665cd9b89d0 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.35.5 + 4.35.6-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 6c06d08584a..e6fa41c1366 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.35.5 + 4.35.6-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 da9e1c1a460..a2e474a9852 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.35.5 + 4.35.6-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 e8b11593828..e3d14793d1a 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.35.5 + 4.35.6-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 8a37a9af6a4..bd3b156338f 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.35.5 + 4.35.6-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 920b4c37144..ec0e1f41abc 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.35.5 + 4.35.6-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 e1e0077fd39..64d6cef00fe 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.35.5 + 4.35.6-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 48554778322..a9556e3f95f 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.35.5 + 4.35.6-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 fb9d915e02b..5fb99a24706 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.35.5 + 4.35.6-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 fc22a254216..7d6c780d983 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.35.5 + 4.35.6-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 2735f993f16..4d03115d732 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.35.5 + 4.35.6-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 35ca88e0f41..5907260fe53 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.35.5 + 4.35.6-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 671d64ae9be..58f3640cbc9 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.35.5 + 4.35.6-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 f047c0cc971..f0db5aef0e4 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.35.5 + 4.35.6-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 df82a99e19c..9a388da88ed 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.35.5 + 4.35.6-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 83bd5424870..a23cc2b7e8c 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.35.5 + 4.35.6-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 957764716df..dc6dda429b0 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.35.5 + 4.35.6-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 391b6330939..22441afd831 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.35.5 + 4.35.6-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 3b3b6d0ad35..0d1eeeb0aac 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.35.5 + 4.35.6-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 6409be2f9e5..64165c80c35 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.35.5 + 4.35.6-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 cd4239ded8a..bb8633f854d 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.35.5 + 4.35.6-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 f123083c158..bfe92ff1b5b 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.35.5 + 4.35.6-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 006e09f6c3b..3e2eed474e2 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.35.5 + 4.35.6-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 35fb86f338e..7747938eec0 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.35.5 + 4.35.6-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 eae74a61a9f..3cefbd9a6fb 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.35.5 + 4.35.6-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 8b9aba65a72..05c05a58c85 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.35.5 + 4.35.6-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 ad0999681f1..e8580098093 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.35.5 + 4.35.6-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 7735d0e4328..bd640ad5ba4 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.35.5 + 4.35.6-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 ed46a042a64..2d2b21715bc 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.35.5 + 4.35.6-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 57c5babf0ec..7c002bec7d2 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.35.5 + 4.35.6-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 0f7babf5114..eeaf8451d2d 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.35.5 + 4.35.6-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 3e59013efac..76a14f38ca2 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.35.5 + 4.35.6-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 4048660e1ba..d5b8ab40e25 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.35.5 + 4.35.6-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 d8c944bc6c0..cdb890b365b 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.35.5 + 4.35.6-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 15cdd407d9a..309d9a5a6b2 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.35.5 + 4.35.6-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 800cf114ce6..77630980f17 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.35.5 + 4.35.6-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 e7d61ab4d8e..47fa3cc49f3 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.35.5 + 4.35.6-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 4657af54734..86981f1f819 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.35.5 + 4.35.6-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 836a50b8e64..2a400bdd392 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.35.5 + 4.35.6-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 86faca8f435..2aaa65df2af 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.35.5 + 4.35.6-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 cece0f7c31c..c448338ba0f 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.35.5 + 4.35.6-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 2b26fd0663e..c72c3fb31d9 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.35.5 + 4.35.6-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 a7ea6a9532c..97363741133 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.35.5 + 4.35.6-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 016ef736f03..b3e9ed8a3a9 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.35.5 + 4.35.6-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 b42221cbef4..9d9a70c86a0 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.35.5 + 4.35.6-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 cfb90fc60e4..3b080aa74c6 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.35.5 + 4.35.6-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 4f331e133ed..c2c96a9fb2b 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.35.5 + 4.35.6-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 833b06a3ffa..3001fba7da0 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.35.5 + 4.35.6-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 3dec00276fe..bf6cdac42ab 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.35.5 + 4.35.6-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 86e4e259abd..923bbab34ff 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.35.5 + 4.35.6-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 4a2251e0d8b..409a0485771 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.35.5 + 4.35.6-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 45e0879bb80..eda688a6d94 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.35.5 + 4.35.6-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 d9bba4c0dd1..9555171ca22 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.35.5 + 4.35.6-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 f60f0d92fe7..3c39c04ba89 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.35.5 + 4.35.6-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 fd01b35e79a..bd849b0f8bf 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.35.5 + 4.35.6-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 5b3e5d8d388..29243e9235f 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.35.5 + 4.35.6-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 b91bce5c199..6e6e7207f37 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.35.5 + 4.35.6-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 06d58c305c4..d373d6225c4 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.35.5 + 4.35.6-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 36e23fda770..291551e56dc 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.35.5 + 4.35.6-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 b5edef124f3..3e873182aa4 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.35.5 + 4.35.6-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 9e4124ba02e..f962f2355e6 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.35.5 + 4.35.6-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 fecf3dd9490..8b79d7b4a7f 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.35.5 + 4.35.6-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 85a3d8e1915..3a9e93728b9 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.35.5 + 4.35.6-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 3e1b80e7c07..aa47d1ef897 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.35.5 + 4.35.6-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 a76fa0870d6..57e5cd56382 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.35.5 + 4.35.6-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 d5050d9acbc..15adc630f6f 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.35.5 + 4.35.6-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 55a096132bd..cfd397cfe74 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.35.5 + 4.35.6-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 ee02fa8b5ac..67dba312864 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.35.5 + 4.35.6-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 9fe41bda307..80d22ba7002 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.35.5 + 4.35.6-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 c96815ab526..15fd589d76a 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.35.5 + 4.35.6-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 6c57234ff50..663310f7748 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.35.5 + 4.35.6-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 009c56d3f21..de063803adc 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.35.5 + 4.35.6-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 4f2c57f25e6..33fda44981e 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.35.5 + 4.35.6-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 3f81c17a63f..1d5af82cc71 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.35.5 + 4.35.6-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 a2502fa2d17..a3d4b0bcdaf 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.35.5 + 4.35.6-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 7da2df0a8c2..5efe811cc9c 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.35.5 + 4.35.6-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 a5ca5bec589..c8b66667f98 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.35.5 + 4.35.6-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 1412a603c31..a1acc237517 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.35.5 + 4.35.6-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 7f168ea0887..78b0d4aab96 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.35.5 + 4.35.6-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 a23f0ef1b30..8be36143423 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.35.5 + 4.35.6-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 8cc8ae41ccf..9492649c8a1 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.35.5 + 4.35.6-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 35c3d5d9320..f65105ebbec 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.35.5 + 4.35.6-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 35053382d9f..bcbfd655ce4 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.35.5 + 4.35.6-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 b333d0d5810..b1176c7f7f3 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index ac599328ac1..2f135d30539 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.35.5 + 4.35.6-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 f22c854d48b..c57679e14bd 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index eab1799ba64..8427a8669a2 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.35.5 + 4.35.6-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 dbd05b1feda..aa0c32ec25d 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.35.5 + 4.35.6-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 bedcd696526..653264bf993 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 76d51ecc743..f319919c77a 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.35.5 + 4.35.6-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 df9b6bd56ea..49b030907a4 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.35.5 + 4.35.6-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 fbe4b0385f6..3703193bb98 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.35.5 + 4.35.6-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 df289163253..4dda601f8cc 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.35.5 + 4.35.6-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 aa8fe0f0696..8d2cc175573 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.35.5 + 4.35.6-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 35d1f9626fe..8b5aa507d79 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.35.5 + 4.35.6-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 25b280ff90c..957a85f1439 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.35.5 + 4.35.6-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 cd77019dc28..57cb46414c5 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.35.5 + 4.35.6-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 58393f60471..8b1f43ac0d6 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 54ed9d447a6..4663182b9fe 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.35.5 + 4.35.6-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 834923063ec..823e62cafad 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.35.5 + 4.35.6-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 614f6f5e19a..898a2480e03 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.35.5 + 4.35.6-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 f8a8d099546..cad5bc2693b 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.35.5 + 4.35.6-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 0480a871a79..e4c81faaf06 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.35.5 + 4.35.6-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 5ea3ff27180..d73c450c4ec 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 1ef0636c3e1..eb2abc3eef2 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.35.5 + 4.35.6-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 15fdf29eec2..3a39ebae2b8 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.35.5 + 4.35.6-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 067d091080f..3b2a8a67349 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.35.5 + 4.35.6-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 5f25ed09457..8031e673394 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.35.5 + 4.35.6-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 4159a7423ec..da6c284dfef 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.35.5 + 4.35.6-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 a9d854a212e..2129c3729de 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.35.5 + 4.35.6-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 da06aec6ce9..d5106aada7d 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 4b6ebcdab75..9b9ea21a2f6 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.35.5 + 4.35.6-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 a3575b37fa8..46db84abb0f 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.35.5 + 4.35.6-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 7ccc516d7b6..5870a80fc32 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.35.5 + 4.35.6-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 4c1d43f002b..7c9bbdd799f 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.35.5 + 4.35.6-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 652f0709873..3383f271f9f 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.35.5 + 4.35.6-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 4fd1de678c5..398931ca0d6 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.35.5 + 4.35.6-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 9e23195ad6e..b2a9fb361ac 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.35.5 + 4.35.6-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 c86d7c129e9..3baad520504 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.35.5 + 4.35.6-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 6c3d46ba200..25ee66f1b3c 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.35.5 + 4.35.6-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 83dafc12d47..213f1a545cd 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.35.5 + 4.35.6-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 5be9494e5c1..ed08a3234aa 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.35.5 + 4.35.6-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 86df7ffc670..aaa571683b8 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.35.5 + 4.35.6-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 4ab2bebc8f5..4fb1b13df4d 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.35.5 + 4.35.6-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 61f11d93ef6..75cdc0cd497 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index b124d2ba52f..7ac232c35bc 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.35.5 + 4.35.6-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 ef3607ea438..6bffb90439e 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.35.5 + 4.35.6-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 3ade960dc3e..4c15768eb06 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.35.5 + 4.35.6-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 da4ce12fc51..8a3a0378027 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.35.5 + 4.35.6-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 ef2d9ef9d10..8fbf0b94fdd 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 0f4e1c901e1..fe5b553b397 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.35.5 + 4.35.6-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 c1e2e5ff77e..3c22266a66a 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.35.5 + 4.35.6-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 a8276f85f75..8ed5e174e26 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.35.5 + 4.35.6-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 c11ad96ac58..38a479201cc 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.35.5 + 4.35.6-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 4ac06b7ab1e..f86a642642e 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.35.5 + 4.35.6-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 275f131133e..d5438e50400 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 45accafbfad..1bb60ec8ffa 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.35.5 + 4.35.6-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index a151c86e1e3..910e5cc87dd 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.35.5 + 4.35.6-SNAPSHOT pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.35.5 + HEAD From fd7f670c74a1df4b53e853b84e4082fc139eac86 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Mon, 4 Dec 2023 23:08:27 +0000 Subject: [PATCH 29/54] [maven-release-plugin] prepare release legend-engine-4.36.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-quality-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-quality/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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/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-deployment/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 ++-- 395 files changed, 398 insertions(+), 398 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index ae37329f030..5b83d187565 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.35.6-SNAPSHOT + 4.36.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 aa82f31f2af..ca124d5ed62 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.35.6-SNAPSHOT + 4.36.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 214114f1de7..9b53e9a260a 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.35.6-SNAPSHOT + 4.36.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 2fce623cf94..29f58107efd 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.35.6-SNAPSHOT + 4.36.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 42b151537bd..2734b61e2c9 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.35.6-SNAPSHOT + 4.36.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 c57568b5617..21c6ccd56c9 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.35.6-SNAPSHOT + 4.36.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 5345f196dcb..85981c3334f 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.35.6-SNAPSHOT + 4.36.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 9b7e1d635a1..cf2fba1bd62 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.35.6-SNAPSHOT + 4.36.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 562b0c75f62..5d91fa88b3c 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.35.6-SNAPSHOT + 4.36.0 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index f6248738595..5f1a2221dc5 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.6-SNAPSHOT + 4.36.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 48663fd0ac4..4d0d210207d 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.35.6-SNAPSHOT + 4.36.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 bd8c991ab6e..3536db2ebb5 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.35.6-SNAPSHOT + 4.36.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 7abd61b09bf..70e40f2995c 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.35.6-SNAPSHOT + 4.36.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 f61e3757055..1310add9946 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.35.6-SNAPSHOT + 4.36.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 fc20e67f6c4..fa011efc54c 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.35.6-SNAPSHOT + 4.36.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 9a224f5771a..b7bef5cf90a 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.35.6-SNAPSHOT + 4.36.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 1f06bc0d90d..a50b5ba6a5f 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.35.6-SNAPSHOT + 4.36.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 e9133b94c5a..ca65f51dbcf 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.35.6-SNAPSHOT + 4.36.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 7caa6f15ba6..dea2f624073 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.35.6-SNAPSHOT + 4.36.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 319deac8dee..1e171dcc3c3 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.35.6-SNAPSHOT + 4.36.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 b24bb738e10..4f957cc6da3 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.35.6-SNAPSHOT + 4.36.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 5974ac161b4..b954087d6d8 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.35.6-SNAPSHOT + 4.36.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 e6c0d710ad6..6afec78339f 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.35.6-SNAPSHOT + 4.36.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 c519fde6609..fc9cf136704 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.35.6-SNAPSHOT + 4.36.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 95dfd2abee7..332c39e18a1 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.35.6-SNAPSHOT + 4.36.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 714201d95dc..54c03084e12 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.35.6-SNAPSHOT + 4.36.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 3cabfec3b69..8134f90c72c 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.35.6-SNAPSHOT + 4.36.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 250131fe838..b575865903c 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.35.6-SNAPSHOT + 4.36.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 0cba7197a2d..6f5d5536fa2 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.35.6-SNAPSHOT + 4.36.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 bc3e8adaea4..3cc9b2838a2 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.35.6-SNAPSHOT + 4.36.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 022f64e7d88..93ed659cab9 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.35.6-SNAPSHOT + 4.36.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 9a3b6ff6d39..936e20a8930 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.35.6-SNAPSHOT + 4.36.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 a28124b664f..736fb855512 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.35.6-SNAPSHOT + 4.36.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 5bce6fddff9..a8c4a301c1a 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.35.6-SNAPSHOT + 4.36.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 9507265b465..3dd16f5785f 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.35.6-SNAPSHOT + 4.36.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 bb48393b927..c7895086839 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.35.6-SNAPSHOT + 4.36.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 1d0248fb2f0..ad44af718e9 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.35.6-SNAPSHOT + 4.36.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 a00de71b9dd..38f2bb5ddc7 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.35.6-SNAPSHOT + 4.36.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 486e8e2b853..7768782ca71 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.35.6-SNAPSHOT + 4.36.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 f728b02a4b5..644a0a676b7 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.35.6-SNAPSHOT + 4.36.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 6d7c0ee6729..72101fa50c5 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.35.6-SNAPSHOT + 4.36.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 f5c1cd786eb..80c60bf2c84 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.35.6-SNAPSHOT + 4.36.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 de36e791dba..9cd9f0529ed 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index fcc1833eea2..a9746ce4fa6 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.6-SNAPSHOT + 4.36.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 ab0bcc18120..9f756c35ddf 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.35.6-SNAPSHOT + 4.36.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 ec91d71410b..e25c4570131 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.35.6-SNAPSHOT + 4.36.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 0321f943e39..83f9eb9856c 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.35.6-SNAPSHOT + 4.36.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 d0f9fc15540..7bb5491f991 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.35.6-SNAPSHOT + 4.36.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 8d90ed59388..bee6e316ca7 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.35.6-SNAPSHOT + 4.36.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 872bfc99cce..d1cb7a77aca 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.35.6-SNAPSHOT + 4.36.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 63d4389754b..82eb7ce340a 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.35.6-SNAPSHOT + 4.36.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 d6835814dec..8e20a3c5c48 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.35.6-SNAPSHOT + 4.36.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 86805888474..f34acebb034 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.35.6-SNAPSHOT + 4.36.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 a1fd3b50078..27541a0f153 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.35.6-SNAPSHOT + 4.36.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 584305b2dd9..309873fc040 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.35.6-SNAPSHOT + 4.36.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 3f8ceba8d9c..5d2d3aee529 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.35.6-SNAPSHOT + 4.36.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 e4ab2f7bb84..2f7fc8a11c7 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.35.6-SNAPSHOT + 4.36.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 82a439a456a..0b951f3e281 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.35.6-SNAPSHOT + 4.36.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 3e13d833029..6838225cac3 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.35.6-SNAPSHOT + 4.36.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 74d4ab97a68..880d3ae40d3 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.35.6-SNAPSHOT + 4.36.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 1945d7b7677..ab4447f079b 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.35.6-SNAPSHOT + 4.36.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 e186624bf3b..5e179f579e0 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.35.6-SNAPSHOT + 4.36.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 a31401926ac..a28b6cd4095 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.35.6-SNAPSHOT + 4.36.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 94299a693a7..c7df0628b62 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.35.6-SNAPSHOT + 4.36.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 2a5d3b3fc37..9934bbd2431 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.35.6-SNAPSHOT + 4.36.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 71cb1a51c2e..8965186f513 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 31b1e9ddacc..21129e8bcad 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.6-SNAPSHOT + 4.36.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 8f82d49188d..533dd1a03de 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.35.6-SNAPSHOT + 4.36.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 53ced86ed9a..31973adbb38 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.35.6-SNAPSHOT + 4.36.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 dda9b01b95a..2eac0d4c0ec 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.35.6-SNAPSHOT + 4.36.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 009dcff34be..1c586ef6935 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.35.6-SNAPSHOT + 4.36.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 3ed6c5979ae..2b7b803ed98 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.35.6-SNAPSHOT + 4.36.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 08731a9a497..7cbbadac173 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.35.6-SNAPSHOT + 4.36.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 5adebea4f80..ae6a87474b1 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.35.6-SNAPSHOT + 4.36.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 34da391b100..f4eeddae197 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.35.6-SNAPSHOT + 4.36.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 cd866959c5e..f71cd5c1c79 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.35.6-SNAPSHOT + 4.36.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 a95702826ba..79dbaa78c6d 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.35.6-SNAPSHOT + 4.36.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 8604c2fdec8..9e32a50202d 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.35.6-SNAPSHOT + 4.36.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 8bd7a52f14d..91de2e516ed 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.35.6-SNAPSHOT + 4.36.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 41372569d22..fb37f0675e5 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.35.6-SNAPSHOT + 4.36.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 344f6050976..ec984f1a376 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.35.6-SNAPSHOT + 4.36.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 ed62a38b6be..bcfd74f9134 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.35.6-SNAPSHOT + 4.36.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 df19c5f1e1d..d287c19d7ac 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml index 83f08e2d9f2..e2cc4b99aae 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-quality org.finos.legend.engine - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml index 024e2026973..0432b15325b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -2,7 +2,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.35.6-SNAPSHOT + 4.36.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 d21d5b5b57b..c9cc3169111 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.35.6-SNAPSHOT + 4.36.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 a2c2194e1fe..c168a9da024 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.35.6-SNAPSHOT + 4.36.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 68c00deca22..3ca8bd9ca2d 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.35.6-SNAPSHOT + 4.36.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 0eb51136b90..c77fadade67 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.35.6-SNAPSHOT + 4.36.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 33617f20b0a..9ec1b332db7 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.35.6-SNAPSHOT + 4.36.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 3ea13fca7ea..58459ab38be 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index e7e3f5e5ec0..171d2e19bc1 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.35.6-SNAPSHOT + 4.36.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 4c0f93190e1..616381c2b22 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.35.6-SNAPSHOT + 4.36.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 89a1eb8c245..a5b933153ea 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index d54cffe0d44..a2bc90fb11a 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.35.6-SNAPSHOT + 4.36.0 legend-engine-xts-arrow 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 aae387c8329..67b0d34bc1a 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.35.6-SNAPSHOT + 4.36.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 54715d079c3..93cede7f8b7 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.35.6-SNAPSHOT + 4.36.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 99244f90cdb..7b29c1c7054 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.35.6-SNAPSHOT + 4.36.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 032ba5fe425..ccc3a0dd4f0 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.35.6-SNAPSHOT + 4.36.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 c4b9aac6d4c..34ab984ccbd 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.35.6-SNAPSHOT + 4.36.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 2010bcc3b6b..71dbb7f7976 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 715b1d6ded3..e60878064bb 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.35.6-SNAPSHOT + 4.36.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 13a4dc7911c..4f5b0834c9f 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.35.6-SNAPSHOT + 4.36.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 634947c1876..551194bdfd5 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 6d979831354..185f521b1d0 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.35.6-SNAPSHOT + 4.36.0 4.0.0 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 7485cec00f0..001c59314a7 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 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 index ca573e10aaf..0f9c10dca27 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 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 index 97e1141bb24..c920cda1127 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 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 index db06435ed8b..52db0d23a82 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 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 index 37edd7ed4fc..add5ffa2243 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 6443344a603..fd8a5f4b97a 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.6-SNAPSHOT + 4.36.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 9da6c3e91e5..185e0de4a0a 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.35.6-SNAPSHOT + 4.36.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 b5e81d6ff5d..ba935471cf6 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index ce5ed58815e..ef6304ff88f 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index f948cf58b48..15dbc08c41f 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 13593ca9d3f..10cec534ae3 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index 7dce96087d9..27ad01f8f18 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index e236b1a74c4..794f3a93905 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 18d8bffa662..2cca248f7a6 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index d0b0b2d0bd2..62180453ac5 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.35.6-SNAPSHOT + 4.36.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 a74f594871f..e5f05c3bf39 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.35.6-SNAPSHOT + 4.36.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 13bc0849efd..bcf49c54b27 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.35.6-SNAPSHOT + 4.36.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 accf3c7485c..ce88a19676e 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index ce99ebcd2a4..387cf95d76e 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.35.6-SNAPSHOT + 4.36.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 d462c0c20fe..11405ed9e5e 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index e28c4a6f582..5d7f4d6117a 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.35.6-SNAPSHOT + 4.36.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 a9ce7549939..75cf2d9797d 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.35.6-SNAPSHOT + 4.36.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 1547183b066..267575b21f1 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.35.6-SNAPSHOT + 4.36.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 4f60f3fd732..fdaecf3ac11 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.35.6-SNAPSHOT + 4.36.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 e72950c6dcd..a8bee59fbcd 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.35.6-SNAPSHOT + 4.36.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 13541ac1b6c..76364db15d9 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.35.6-SNAPSHOT + 4.36.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 2aad18de52d..c9fa1efb833 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.35.6-SNAPSHOT + 4.36.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 c116cb576ff..80dccbabf11 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 0f5a6cf4887..aa8245488d7 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.35.6-SNAPSHOT + 4.36.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 5af6aae3018..3c5e2487792 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.35.6-SNAPSHOT + 4.36.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 e1bd2ba0163..f47bda42049 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.35.6-SNAPSHOT + 4.36.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 7074330b77c..dee1feac2de 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.35.6-SNAPSHOT + 4.36.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 61a73cdadf0..a5e9571ade8 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.35.6-SNAPSHOT + 4.36.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 123004989ec..83cdd7e8298 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.35.6-SNAPSHOT + 4.36.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 541de1628ce..3feda31bdd8 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index d36225eeab1..87077706312 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.35.6-SNAPSHOT + 4.36.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 d50dec40da0..ba9ee5f2373 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.35.6-SNAPSHOT + 4.36.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 ba439c6abb7..7024405becb 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.35.6-SNAPSHOT + 4.36.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 b054f3c5104..a0bddce6d6e 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.35.6-SNAPSHOT + 4.36.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 665155bbea3..5a3de4ba9f4 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.35.6-SNAPSHOT + 4.36.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 06bdc5c4e9e..73e47f9af4e 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.35.6-SNAPSHOT + 4.36.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 fb3a8c564c3..cad5a42a264 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.35.6-SNAPSHOT + 4.36.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 aa58563abb7..525e3cc1cee 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 0faec90b1ba..ddac29aae6e 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.35.6-SNAPSHOT + 4.36.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 6a935b029a6..fd8924c1e08 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.35.6-SNAPSHOT + 4.36.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 36a28082925..9200e0517c1 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.35.6-SNAPSHOT + 4.36.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 c4fc9c54e8b..547af41b6da 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.35.6-SNAPSHOT + 4.36.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 b495fad883f..05911d544f1 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.35.6-SNAPSHOT + 4.36.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 7600e030eec..ed37500a14f 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.35.6-SNAPSHOT + 4.36.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 ce55df6827e..4f31323f941 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.35.6-SNAPSHOT + 4.36.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 feab89f1e58..0eada8b8144 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 9928dcbcf31..911566e613c 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.35.6-SNAPSHOT + 4.36.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 0db466a4648..81413a2a4fa 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.35.6-SNAPSHOT + 4.36.0 4.0.0 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 index 5de250ec819..92e6fd0a043 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.35.6-SNAPSHOT + 4.36.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 2d5ef608b34..8d2ae27c39b 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.35.6-SNAPSHOT + 4.36.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 cb604bd664d..bb2230eb520 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 2838c43462e..0e63ea8dd65 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.35.6-SNAPSHOT + 4.36.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 bfb186e722f..7d275d88d33 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.35.6-SNAPSHOT + 4.36.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 c1af8beda40..e2060d89e86 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.35.6-SNAPSHOT + 4.36.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 75e96e87692..8944bff4807 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.35.6-SNAPSHOT + 4.36.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 03bb9863048..1cc5de992f0 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 1ebd86a0866..b26c299aa78 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.35.6-SNAPSHOT + 4.36.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 bbf6d04603a..abf9a87a6f9 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.35.6-SNAPSHOT + 4.36.0 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.6-SNAPSHOT + 4.36.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 4fedfd17dfb..10f310653d6 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.35.6-SNAPSHOT + 4.36.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 378a3195b90..19a60f8f8ab 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.35.6-SNAPSHOT + 4.36.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 3baa1e461e3..d3a3bc70cb2 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.35.6-SNAPSHOT + 4.36.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 29e69355649..1dbad34a34f 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.35.6-SNAPSHOT + 4.36.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 182937125a4..55473e9a1d8 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.35.6-SNAPSHOT + 4.36.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 e08a9fd6c1a..564376fb1a9 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.35.6-SNAPSHOT + 4.36.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 306f201d9a1..7db35a0a64c 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index e26246bcecb..2a4aaee5fed 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.35.6-SNAPSHOT + 4.36.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 c79703ed76c..2ee940fccd4 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.35.6-SNAPSHOT + 4.36.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 401a7af5640..810effad28c 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.35.6-SNAPSHOT + 4.36.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 b8bbbdb8627..34125119207 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index c218e2f81b5..8feb7be839b 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.35.6-SNAPSHOT + 4.36.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 35170577c76..a93433d3ffa 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.35.6-SNAPSHOT + 4.36.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 8c67c237283..67830029b78 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.35.6-SNAPSHOT + 4.36.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 cdc6cab16a1..54fc25e37da 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.35.6-SNAPSHOT + 4.36.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 1b3e5f22f24..379b17198e7 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.35.6-SNAPSHOT + 4.36.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 408a2ffb96c..9513ad33218 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.35.6-SNAPSHOT + 4.36.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 d598ca499e6..9374d6f3e66 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 0b7314c516b..7bd45463a20 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.35.6-SNAPSHOT + 4.36.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 7b3936527db..2138ec6cc60 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.35.6-SNAPSHOT + 4.36.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 280dee2cfc4..4f37dc00a33 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 11b25076b7a..4cc27e77cab 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.35.6-SNAPSHOT + 4.36.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 0e0cb04c799..59358975b72 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.35.6-SNAPSHOT + 4.36.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 b72d02d991d..6d25c919623 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.35.6-SNAPSHOT + 4.36.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 17a32518293..e466cfc8643 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.35.6-SNAPSHOT + 4.36.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 ac156e323a5..1842e15ac9a 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 3b2da6e724e..8b92e9e4905 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.35.6-SNAPSHOT + 4.36.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 d269524a228..1a00f8582ec 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.35.6-SNAPSHOT + 4.36.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 c835eaf488c..8832f86e621 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.35.6-SNAPSHOT + 4.36.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 948070d5611..b262f6a38a2 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.35.6-SNAPSHOT + 4.36.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 d8b16d795cf..35fc4241b66 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.35.6-SNAPSHOT + 4.36.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 37e7c75e21e..35e57a0cd13 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.35.6-SNAPSHOT + 4.36.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 579e999c340..33866daa507 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 7f6ec847c7f..0fca28625eb 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.35.6-SNAPSHOT + 4.36.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 7180207fdaa..609ebeb873d 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.35.6-SNAPSHOT + 4.36.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 b39ad5a90e0..e781048a591 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.35.6-SNAPSHOT + 4.36.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 a48c4f8e59c..da2be1faa8a 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 384c1fdb3f7..bac2d1d1729 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.35.6-SNAPSHOT + 4.36.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 6f713d35c7f..b2e6288cba3 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.35.6-SNAPSHOT + 4.36.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 6f12d5cef0b..67f79b94567 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.35.6-SNAPSHOT + 4.36.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 b6aeab639c9..bffc52432a8 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.35.6-SNAPSHOT + 4.36.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 663e07be1c4..ca9900b4be0 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.35.6-SNAPSHOT + 4.36.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 554727c0221..0040510d055 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.35.6-SNAPSHOT + 4.36.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 e0f7177b552..059f661efbb 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.35.6-SNAPSHOT + 4.36.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 3f0eb8aa668..0a57ab21932 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.35.6-SNAPSHOT + 4.36.0 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 6827d6ee2aa..63091827b67 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.35.6-SNAPSHOT + 4.36.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 5e83cdb437b..c713937a3ec 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.35.6-SNAPSHOT + 4.36.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 9e36a8a7308..66f3940083b 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 7f5d2e46ea5..5f25bfb9135 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.35.6-SNAPSHOT + 4.36.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 041541a4789..a19c59443b8 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.35.6-SNAPSHOT + 4.36.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 189afc39a21..598b1d2b7a1 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.35.6-SNAPSHOT + 4.36.0 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 5b8ab3ed849..4ad8a4d16b7 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.35.6-SNAPSHOT + 4.36.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 f2b82ee40f4..a5816c5a3ce 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.35.6-SNAPSHOT + 4.36.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 68a70c1523c..39ab42ffc65 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.35.6-SNAPSHOT + 4.36.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 fe2ee048b6f..015ec41c507 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.35.6-SNAPSHOT + 4.36.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 b968f31d9f9..1e330cc00fd 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.35.6-SNAPSHOT + 4.36.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 97d6baaa341..64699b42d41 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.35.6-SNAPSHOT + 4.36.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 c70cdfbd1e4..85a3637938a 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.35.6-SNAPSHOT + 4.36.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 c99de00788f..cbc9d78505a 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.35.6-SNAPSHOT + 4.36.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 44e75c0626e..a83fe5469e1 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.35.6-SNAPSHOT + 4.36.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 79fbfb4675d..804a9ab589f 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.35.6-SNAPSHOT + 4.36.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 845fe61d9a0..79ff80d0f68 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.35.6-SNAPSHOT + 4.36.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 39af81e1411..a3e1fc6dd11 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.35.6-SNAPSHOT + 4.36.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 319073963ef..08570bbf580 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.35.6-SNAPSHOT + 4.36.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 2f0539779a1..443691ae5e9 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.35.6-SNAPSHOT + 4.36.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 0badc589617..f16a0235220 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.35.6-SNAPSHOT + 4.36.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 9a8c75fe035..afc663ceb3e 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.35.6-SNAPSHOT + 4.36.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 e6a767bc9f8..0f24c5970eb 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.35.6-SNAPSHOT + 4.36.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 101ed89ae12..a9c8001a1ec 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.35.6-SNAPSHOT + 4.36.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 a1631ae5ce2..9c52c3e9cda 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.35.6-SNAPSHOT + 4.36.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 e8bd766aefa..8461754e535 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.35.6-SNAPSHOT + 4.36.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 c7e555189bc..fa13337f767 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.35.6-SNAPSHOT + 4.36.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 a7ce02d5cf4..3fa906cf403 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 1c2cba9149a..5d4a6777280 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.35.6-SNAPSHOT + 4.36.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 ce3c2ff03e1..e61f00770d4 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.35.6-SNAPSHOT + 4.36.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 d4b9facd2df..8a9a568e4e9 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.35.6-SNAPSHOT + 4.36.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 731496d4d81..60039abde18 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.35.6-SNAPSHOT + 4.36.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 76ea58c497f..e22ad4e1c65 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.35.6-SNAPSHOT + 4.36.0 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.35.6-SNAPSHOT + 4.36.0 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 4beb66fa005..4fc67d6f931 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.35.6-SNAPSHOT + 4.36.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 2c76b4954f8..a9480c97880 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.35.6-SNAPSHOT + 4.36.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 3633062101f..8d789a5018f 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.35.6-SNAPSHOT + 4.36.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 8d53a7ecd2e..adc1f1615cf 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.35.6-SNAPSHOT + 4.36.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 ac883fcf2af..42a7594ef9e 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.35.6-SNAPSHOT + 4.36.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 315ad52e605..35f5c584a78 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.35.6-SNAPSHOT + 4.36.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 1ecb8c1e8b6..97d4cf2d4cc 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.35.6-SNAPSHOT + 4.36.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 a556f5fe8ba..78d7ebe8964 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.35.6-SNAPSHOT + 4.36.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 af49966f72c..ef427bca567 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.35.6-SNAPSHOT + 4.36.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 863eed61d1a..0865b9c3aea 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.35.6-SNAPSHOT + 4.36.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 834150d8c2f..acbc7505f0a 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.35.6-SNAPSHOT + 4.36.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 665cd9b89d0..fcd474ad4e1 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.35.6-SNAPSHOT + 4.36.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 e6fa41c1366..a7bb5beded7 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.35.6-SNAPSHOT + 4.36.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 a2e474a9852..69d6b2bc7a9 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.35.6-SNAPSHOT + 4.36.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 e3d14793d1a..73971f03f27 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.35.6-SNAPSHOT + 4.36.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 bd3b156338f..6a114e9bc20 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.35.6-SNAPSHOT + 4.36.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 ec0e1f41abc..d61cea51572 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.35.6-SNAPSHOT + 4.36.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 64d6cef00fe..7bd52f29490 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.35.6-SNAPSHOT + 4.36.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 a9556e3f95f..84327bcfb2a 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.35.6-SNAPSHOT + 4.36.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 5fb99a24706..66cf83ff2b5 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.35.6-SNAPSHOT + 4.36.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 7d6c780d983..51a9ccfba62 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.35.6-SNAPSHOT + 4.36.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 4d03115d732..74ae083ef20 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.35.6-SNAPSHOT + 4.36.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 5907260fe53..a68294c3f84 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.35.6-SNAPSHOT + 4.36.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 58f3640cbc9..c7c4829966a 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.35.6-SNAPSHOT + 4.36.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 f0db5aef0e4..6b7296cddaf 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.35.6-SNAPSHOT + 4.36.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 9a388da88ed..2d6358f888b 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.35.6-SNAPSHOT + 4.36.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 a23cc2b7e8c..d1d7d5fd48d 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.35.6-SNAPSHOT + 4.36.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 dc6dda429b0..5233e57f52f 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.35.6-SNAPSHOT + 4.36.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 22441afd831..af165fe1ae7 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.35.6-SNAPSHOT + 4.36.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 0d1eeeb0aac..405135a7fbe 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.35.6-SNAPSHOT + 4.36.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 64165c80c35..081c65301ad 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.35.6-SNAPSHOT + 4.36.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 bb8633f854d..b1ffbdb34ed 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.35.6-SNAPSHOT + 4.36.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 bfe92ff1b5b..5fbac8edac1 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.35.6-SNAPSHOT + 4.36.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 3e2eed474e2..43265e825a9 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.35.6-SNAPSHOT + 4.36.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 7747938eec0..384f49fe4ab 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.35.6-SNAPSHOT + 4.36.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 3cefbd9a6fb..5ee3e6c2569 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.35.6-SNAPSHOT + 4.36.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 05c05a58c85..9603065ec99 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.35.6-SNAPSHOT + 4.36.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 e8580098093..d7b3532fdd8 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.35.6-SNAPSHOT + 4.36.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 bd640ad5ba4..6cc0f59ac00 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.35.6-SNAPSHOT + 4.36.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 2d2b21715bc..2af5bd7cef9 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.35.6-SNAPSHOT + 4.36.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 7c002bec7d2..9af32d7754d 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.35.6-SNAPSHOT + 4.36.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 eeaf8451d2d..2cb32847c5c 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.35.6-SNAPSHOT + 4.36.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 76a14f38ca2..ed033f3aa5d 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.35.6-SNAPSHOT + 4.36.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 d5b8ab40e25..4859e3454e9 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.35.6-SNAPSHOT + 4.36.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 cdb890b365b..95c35219b19 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.35.6-SNAPSHOT + 4.36.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 309d9a5a6b2..df51c8ae8d2 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.35.6-SNAPSHOT + 4.36.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 77630980f17..1f22bab97b2 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.35.6-SNAPSHOT + 4.36.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 47fa3cc49f3..aea57e3feaf 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.35.6-SNAPSHOT + 4.36.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 86981f1f819..799bb0cbb51 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.35.6-SNAPSHOT + 4.36.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 2a400bdd392..fe1c4ac8465 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.35.6-SNAPSHOT + 4.36.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 2aaa65df2af..b93da2a6a78 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.35.6-SNAPSHOT + 4.36.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 c448338ba0f..dbc32c23862 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.35.6-SNAPSHOT + 4.36.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 c72c3fb31d9..1ee7d31489e 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.35.6-SNAPSHOT + 4.36.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 97363741133..1943cac0618 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.35.6-SNAPSHOT + 4.36.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 b3e9ed8a3a9..f83a72b7a7d 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.35.6-SNAPSHOT + 4.36.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 9d9a70c86a0..bdb60a3245d 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.35.6-SNAPSHOT + 4.36.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 3b080aa74c6..fc2a34a38f9 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.35.6-SNAPSHOT + 4.36.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 c2c96a9fb2b..49f3a4f92c2 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.35.6-SNAPSHOT + 4.36.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 3001fba7da0..117aa07ca60 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.35.6-SNAPSHOT + 4.36.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 bf6cdac42ab..c0332b73097 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.35.6-SNAPSHOT + 4.36.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 923bbab34ff..1d5770f414d 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.35.6-SNAPSHOT + 4.36.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 409a0485771..af2bdba0028 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.35.6-SNAPSHOT + 4.36.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 eda688a6d94..2f758516a60 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.35.6-SNAPSHOT + 4.36.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 9555171ca22..17047bf75a8 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.35.6-SNAPSHOT + 4.36.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 3c39c04ba89..35b1e51931d 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.35.6-SNAPSHOT + 4.36.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 bd849b0f8bf..cdabaec9547 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.35.6-SNAPSHOT + 4.36.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 29243e9235f..04875a5ef62 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.35.6-SNAPSHOT + 4.36.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 6e6e7207f37..1e03a889525 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.35.6-SNAPSHOT + 4.36.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 d373d6225c4..0ead5236aad 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.35.6-SNAPSHOT + 4.36.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 291551e56dc..4332a5be516 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.35.6-SNAPSHOT + 4.36.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 3e873182aa4..aa60e56e98e 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.35.6-SNAPSHOT + 4.36.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 f962f2355e6..df404b43cba 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.35.6-SNAPSHOT + 4.36.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 8b79d7b4a7f..254a185f83b 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.35.6-SNAPSHOT + 4.36.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 3a9e93728b9..9e849baa53a 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.35.6-SNAPSHOT + 4.36.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 aa47d1ef897..74f8629edda 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.35.6-SNAPSHOT + 4.36.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 57e5cd56382..fe7c2d5fc69 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.35.6-SNAPSHOT + 4.36.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 15adc630f6f..293ca24ca9f 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.35.6-SNAPSHOT + 4.36.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 cfd397cfe74..d8a14ae7d69 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.35.6-SNAPSHOT + 4.36.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 67dba312864..08f55d39ecd 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.35.6-SNAPSHOT + 4.36.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 80d22ba7002..fa9a482d554 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.35.6-SNAPSHOT + 4.36.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 15fd589d76a..0c3cf38d5f3 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.35.6-SNAPSHOT + 4.36.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 663310f7748..d743a941c5e 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.35.6-SNAPSHOT + 4.36.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 de063803adc..d490617443d 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.35.6-SNAPSHOT + 4.36.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 33fda44981e..d49db8c3baa 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.35.6-SNAPSHOT + 4.36.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 1d5af82cc71..f263725f68e 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.35.6-SNAPSHOT + 4.36.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 a3d4b0bcdaf..e613fcb5479 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.35.6-SNAPSHOT + 4.36.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 5efe811cc9c..2c59ae3477c 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.35.6-SNAPSHOT + 4.36.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 c8b66667f98..8dcb9041636 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.35.6-SNAPSHOT + 4.36.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 a1acc237517..d8c17cade72 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.35.6-SNAPSHOT + 4.36.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 78b0d4aab96..8c797561ae8 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.35.6-SNAPSHOT + 4.36.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 8be36143423..ba49dacb43e 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.35.6-SNAPSHOT + 4.36.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 9492649c8a1..0240f93f104 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.35.6-SNAPSHOT + 4.36.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 f65105ebbec..7f17c865771 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.35.6-SNAPSHOT + 4.36.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 bcbfd655ce4..9ce0e101f89 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.35.6-SNAPSHOT + 4.36.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 b1176c7f7f3..cf2344e7568 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 2f135d30539..a1032cf8f83 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.35.6-SNAPSHOT + 4.36.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 c57679e14bd..e9a16c9d048 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 8427a8669a2..2469fb55909 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.35.6-SNAPSHOT + 4.36.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 aa0c32ec25d..cbce5a20fd4 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.35.6-SNAPSHOT + 4.36.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 653264bf993..751465dc475 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index f319919c77a..d22de9eaf69 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.35.6-SNAPSHOT + 4.36.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 49b030907a4..13317395978 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.35.6-SNAPSHOT + 4.36.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 3703193bb98..d0638081a61 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.35.6-SNAPSHOT + 4.36.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 4dda601f8cc..82b3492ffed 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.35.6-SNAPSHOT + 4.36.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 8d2cc175573..e650378faf6 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.35.6-SNAPSHOT + 4.36.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 8b5aa507d79..803a909e7dc 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.35.6-SNAPSHOT + 4.36.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 957a85f1439..b4790520876 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.35.6-SNAPSHOT + 4.36.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 57cb46414c5..e0e7176d172 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.35.6-SNAPSHOT + 4.36.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 8b1f43ac0d6..3cf18a88c78 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 4663182b9fe..75f049540e1 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.35.6-SNAPSHOT + 4.36.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 823e62cafad..7dc367c7198 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.35.6-SNAPSHOT + 4.36.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 898a2480e03..42a30f3083a 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.35.6-SNAPSHOT + 4.36.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 cad5bc2693b..45384a32dff 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.35.6-SNAPSHOT + 4.36.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 e4c81faaf06..9ae1cce56f7 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.35.6-SNAPSHOT + 4.36.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 d73c450c4ec..c0b0fe74d10 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index eb2abc3eef2..35036b6e631 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.35.6-SNAPSHOT + 4.36.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 3a39ebae2b8..95499e9058c 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.35.6-SNAPSHOT + 4.36.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 3b2a8a67349..db77a353c9c 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.35.6-SNAPSHOT + 4.36.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 8031e673394..e5eafed5d17 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.35.6-SNAPSHOT + 4.36.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 da6c284dfef..6efdb468b0b 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.35.6-SNAPSHOT + 4.36.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 2129c3729de..ff06e9f90a2 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.35.6-SNAPSHOT + 4.36.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 d5106aada7d..9be4072d5b8 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 9b9ea21a2f6..54ff7325237 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.35.6-SNAPSHOT + 4.36.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 46db84abb0f..db72fdb0fd5 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.35.6-SNAPSHOT + 4.36.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 5870a80fc32..f945ad6ec97 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.35.6-SNAPSHOT + 4.36.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 7c9bbdd799f..26cfcb815c3 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.35.6-SNAPSHOT + 4.36.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 3383f271f9f..3b808eff463 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.35.6-SNAPSHOT + 4.36.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 398931ca0d6..fa9b1f268cd 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.35.6-SNAPSHOT + 4.36.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 b2a9fb361ac..e91e6f8dac1 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.35.6-SNAPSHOT + 4.36.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 3baad520504..60861bffd05 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.35.6-SNAPSHOT + 4.36.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 25ee66f1b3c..37384d1cea9 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.35.6-SNAPSHOT + 4.36.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 213f1a545cd..a214e68e6e1 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.35.6-SNAPSHOT + 4.36.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 ed08a3234aa..f0d1438ca47 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.35.6-SNAPSHOT + 4.36.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 aaa571683b8..23e8b0e2ad9 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.35.6-SNAPSHOT + 4.36.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 4fb1b13df4d..1b3bbe1d0e5 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.35.6-SNAPSHOT + 4.36.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 75cdc0cd497..2491630b6b0 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 7ac232c35bc..e8d21a2a147 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.35.6-SNAPSHOT + 4.36.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 6bffb90439e..2501b65981b 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.35.6-SNAPSHOT + 4.36.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 4c15768eb06..b0b8b8061ee 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.35.6-SNAPSHOT + 4.36.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 8a3a0378027..0d0d47b0063 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.35.6-SNAPSHOT + 4.36.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 8fbf0b94fdd..a65cf96de79 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index fe5b553b397..ad97a9fde84 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.35.6-SNAPSHOT + 4.36.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 3c22266a66a..0ecc9885387 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.35.6-SNAPSHOT + 4.36.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 8ed5e174e26..f845ebc1598 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.35.6-SNAPSHOT + 4.36.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 38a479201cc..b07fe85d99b 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.35.6-SNAPSHOT + 4.36.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 f86a642642e..0dfde276047 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.35.6-SNAPSHOT + 4.36.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 d5438e50400..d85e6cdd046 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 1bb60ec8ffa..c51f4c5bf16 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.35.6-SNAPSHOT + 4.36.0 4.0.0 diff --git a/pom.xml b/pom.xml index 910e5cc87dd..b9c6d9b8836 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.35.6-SNAPSHOT + 4.36.0 pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.36.0 From 810e7c82ee33acf4d16d36d63345149bbaf45502 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Mon, 4 Dec 2023 23:08:32 +0000 Subject: [PATCH 30/54] [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-quality-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-quality/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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/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-deployment/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 ++-- 395 files changed, 398 insertions(+), 398 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 5b83d187565..6be03f03352 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.36.0 + 4.36.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 ca124d5ed62..6c4ffa616af 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.36.0 + 4.36.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 9b53e9a260a..538b7f26c5c 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.36.0 + 4.36.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 29f58107efd..4e05d690684 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.36.0 + 4.36.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 2734b61e2c9..3f62ffa54a3 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.36.0 + 4.36.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 21c6ccd56c9..21be8593a77 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.36.0 + 4.36.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 85981c3334f..9a4b8f45c36 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.36.0 + 4.36.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 cf2fba1bd62..469ca72f4ed 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.36.0 + 4.36.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 5d91fa88b3c..39f78ba9a37 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 5f1a2221dc5..4183eb0a421 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.0 + 4.36.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 4d0d210207d..13753269581 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.36.0 + 4.36.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 3536db2ebb5..1f6064b3306 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.36.0 + 4.36.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 70e40f2995c..66429b40f8f 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.36.0 + 4.36.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 1310add9946..7ea9036129d 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.36.0 + 4.36.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 fa011efc54c..c41f16668d3 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.36.0 + 4.36.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 b7bef5cf90a..29a02df5704 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.36.0 + 4.36.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 a50b5ba6a5f..7e9d85cb711 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.36.0 + 4.36.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 ca65f51dbcf..db2edc0de29 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.36.0 + 4.36.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 dea2f624073..9199b9d3c4e 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.36.0 + 4.36.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 1e171dcc3c3..d701b0087f1 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.36.0 + 4.36.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 4f957cc6da3..3d8948da689 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.36.0 + 4.36.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 b954087d6d8..5a8822e0f69 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.36.0 + 4.36.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 6afec78339f..d46518956da 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.36.0 + 4.36.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 fc9cf136704..b4313acdd1d 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.36.0 + 4.36.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 332c39e18a1..2b3acefeb8f 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.36.0 + 4.36.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 54c03084e12..2d0a8c7a62a 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.36.0 + 4.36.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 8134f90c72c..3971a0560dc 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.36.0 + 4.36.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 b575865903c..077a166015c 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.36.0 + 4.36.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 6f5d5536fa2..0558e39110a 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.36.0 + 4.36.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 3cc9b2838a2..d05cd6cd7cb 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.36.0 + 4.36.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 93ed659cab9..f9b45a459ec 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.36.0 + 4.36.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 936e20a8930..612bd7e4d11 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.36.0 + 4.36.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 736fb855512..3fa8bbdec57 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.36.0 + 4.36.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 a8c4a301c1a..ddda7246c70 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.36.0 + 4.36.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 3dd16f5785f..fc9acf5d3c6 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.36.0 + 4.36.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 c7895086839..a9461602e64 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.36.0 + 4.36.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 ad44af718e9..6e089c02aa8 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.36.0 + 4.36.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 38f2bb5ddc7..4d60d72635c 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.36.0 + 4.36.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 7768782ca71..712ed11da4f 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.36.0 + 4.36.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 644a0a676b7..abf9d780280 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.36.0 + 4.36.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 72101fa50c5..46523787365 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.36.0 + 4.36.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 80c60bf2c84..eec0548e038 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.36.0 + 4.36.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 9cd9f0529ed..08521304baf 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index a9746ce4fa6..8bdeb564ea1 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.0 + 4.36.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 9f756c35ddf..1b5377a2f22 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.36.0 + 4.36.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 e25c4570131..9b26c605f7c 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.36.0 + 4.36.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 83f9eb9856c..661fb7933fc 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.36.0 + 4.36.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 7bb5491f991..5cfd9b4b282 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.36.0 + 4.36.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 bee6e316ca7..b4aef78c402 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.36.0 + 4.36.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 d1cb7a77aca..571591499ae 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.36.0 + 4.36.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 82eb7ce340a..6d408a3e438 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.36.0 + 4.36.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 8e20a3c5c48..5b58fd84f16 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.36.0 + 4.36.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 f34acebb034..ab720c92ee5 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.36.0 + 4.36.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 27541a0f153..93d279a3082 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.36.0 + 4.36.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 309873fc040..7bc911eaacd 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.36.0 + 4.36.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 5d2d3aee529..bb1146d5f3b 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.36.0 + 4.36.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 2f7fc8a11c7..807939a187c 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.36.0 + 4.36.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 0b951f3e281..f975c1e6ef8 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.36.0 + 4.36.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 6838225cac3..e6ae4cf21d8 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.36.0 + 4.36.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 880d3ae40d3..af6f851bd76 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.36.0 + 4.36.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 ab4447f079b..e1f15ec6fcb 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.36.0 + 4.36.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 5e179f579e0..9ba2140d065 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.36.0 + 4.36.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 a28b6cd4095..b0f94730199 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.36.0 + 4.36.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 c7df0628b62..5fa73a7a53b 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.36.0 + 4.36.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 9934bbd2431..25688ecae3a 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.36.0 + 4.36.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 8965186f513..06e9ab6661d 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 21129e8bcad..280532e5ec4 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.0 + 4.36.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 533dd1a03de..74add035f34 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.36.0 + 4.36.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 31973adbb38..cce2eeb6c61 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.36.0 + 4.36.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 2eac0d4c0ec..6e3d80f2f8b 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.36.0 + 4.36.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 1c586ef6935..25f1bb7bc8a 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.36.0 + 4.36.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 2b7b803ed98..ad513cf3e0f 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.36.0 + 4.36.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 7cbbadac173..7f707b178ec 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.36.0 + 4.36.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 ae6a87474b1..930eac71423 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.36.0 + 4.36.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 f4eeddae197..4e02707eb62 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.36.0 + 4.36.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 f71cd5c1c79..20277d0d9b7 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.36.0 + 4.36.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 79dbaa78c6d..5430641e8f5 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.36.0 + 4.36.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 9e32a50202d..027a172a8d4 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.36.0 + 4.36.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 91de2e516ed..a7036d20f45 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.36.0 + 4.36.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 fb37f0675e5..3d481cf7716 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.36.0 + 4.36.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 ec984f1a376..2e9dcd08f1b 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.36.0 + 4.36.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 bcfd74f9134..89866d559a7 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.36.0 + 4.36.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 d287c19d7ac..cdc099711bf 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml index e2cc4b99aae..13dabfc8060 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-quality org.finos.legend.engine - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml index 0432b15325b..54fe006dfdb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -2,7 +2,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.36.0 + 4.36.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 c9cc3169111..93fb54fe229 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.36.0 + 4.36.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 c168a9da024..94d00a42721 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.36.0 + 4.36.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 3ca8bd9ca2d..10ff4120730 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.36.0 + 4.36.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 c77fadade67..47bb4fc7420 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.36.0 + 4.36.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 9ec1b332db7..285086132d9 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.36.0 + 4.36.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 58459ab38be..ddd646f6d2c 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 171d2e19bc1..a4180352b8e 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.36.0 + 4.36.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 616381c2b22..fbc3b734985 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.36.0 + 4.36.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 a5b933153ea..a9f7f539130 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index a2bc90fb11a..229d910181a 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.36.0 + 4.36.1-SNAPSHOT legend-engine-xts-arrow 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 67b0d34bc1a..645345baf6d 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.36.0 + 4.36.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 93cede7f8b7..67adb109c73 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.36.0 + 4.36.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 7b29c1c7054..2d90ef4ce4b 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.36.0 + 4.36.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 ccc3a0dd4f0..d56883ca617 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.36.0 + 4.36.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 34ab984ccbd..44a4a172279 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.36.0 + 4.36.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 71dbb7f7976..99fa6d5871c 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index e60878064bb..e25fe1b800f 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.36.0 + 4.36.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 4f5b0834c9f..0f017674fe7 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.36.0 + 4.36.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 551194bdfd5..7750682c367 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 185f521b1d0..7e5d4f08153 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 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 001c59314a7..440011cc1c0 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 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 index 0f9c10dca27..131610fc2d4 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 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 index c920cda1127..99312cc3591 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 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 index 52db0d23a82..8daa8d8fc1b 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 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 index add5ffa2243..48d6eeb9ace 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index fd8a5f4b97a..11c84297e1d 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.0 + 4.36.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 185e0de4a0a..a003d4d62c6 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.36.0 + 4.36.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 ba935471cf6..bbb3b13a3ba 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index ef6304ff88f..18452feb657 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index 15dbc08c41f..ab01d5977f2 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 10cec534ae3..974029d04b5 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index 27ad01f8f18..b0be48ed5f9 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index 794f3a93905..bd06a567078 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 2cca248f7a6..28ab16e360e 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index 62180453ac5..a01b8ad9b15 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.0 + 4.36.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 e5f05c3bf39..43b373c2a85 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.36.0 + 4.36.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 bcf49c54b27..a152c506dd7 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.36.0 + 4.36.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 ce88a19676e..e6c9da3688f 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 387cf95d76e..69a9be38dff 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.36.0 + 4.36.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 11405ed9e5e..8922cd29be0 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 5d7f4d6117a..48fe3494cfa 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.36.0 + 4.36.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 75cf2d9797d..8cf6bb14bd9 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.36.0 + 4.36.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 267575b21f1..01b73d0b568 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.36.0 + 4.36.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 fdaecf3ac11..f1b587611cc 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.36.0 + 4.36.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 a8bee59fbcd..989c1846f33 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.36.0 + 4.36.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 76364db15d9..188684b9d37 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.36.0 + 4.36.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 c9fa1efb833..676d2765697 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.36.0 + 4.36.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 80dccbabf11..747fcf4a66b 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index aa8245488d7..cf145800580 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.36.0 + 4.36.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 3c5e2487792..f89a1528be5 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.36.0 + 4.36.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 f47bda42049..2064b9732fd 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.36.0 + 4.36.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 dee1feac2de..848ca31f81c 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.36.0 + 4.36.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 a5e9571ade8..054d7dfaa0c 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.36.0 + 4.36.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 83cdd7e8298..93c5623d4ab 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.36.0 + 4.36.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 3feda31bdd8..025baf8ccba 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 87077706312..9b4cb7a1b98 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.36.0 + 4.36.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 ba9ee5f2373..a597551fe4a 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.36.0 + 4.36.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 7024405becb..66f6ec91fe7 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.36.0 + 4.36.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 a0bddce6d6e..28daa62c845 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.36.0 + 4.36.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 5a3de4ba9f4..91422be6bee 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.36.0 + 4.36.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 73e47f9af4e..f4c04eaa817 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.36.0 + 4.36.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 cad5a42a264..8638af852c4 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.36.0 + 4.36.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 525e3cc1cee..cf9eb87f8ff 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index ddac29aae6e..1fc490950c7 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.36.0 + 4.36.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 fd8924c1e08..f38c8352e12 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.36.0 + 4.36.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 9200e0517c1..a19a2be672a 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.36.0 + 4.36.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 547af41b6da..6c085fced95 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.36.0 + 4.36.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 05911d544f1..536cadc0fea 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.36.0 + 4.36.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 ed37500a14f..5af45949901 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.36.0 + 4.36.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 4f31323f941..c378229ba71 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.36.0 + 4.36.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 0eada8b8144..6970af1e461 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 911566e613c..7c358e57d65 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.36.0 + 4.36.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 81413a2a4fa..6ed8dae0cdf 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 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 index 92e6fd0a043..c27f849ec4d 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.36.0 + 4.36.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 8d2ae27c39b..fee864ca587 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.36.0 + 4.36.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 bb2230eb520..f929ec206d4 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 0e63ea8dd65..ab684d7dc79 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.36.0 + 4.36.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 7d275d88d33..0ccdaad62b7 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.36.0 + 4.36.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 e2060d89e86..1184cada142 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.36.0 + 4.36.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 8944bff4807..98f9983ec72 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.36.0 + 4.36.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 1cc5de992f0..0c2c058a48f 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index b26c299aa78..947b35d941c 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.36.0 + 4.36.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 abf9a87a6f9..30261b9c13e 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.36.0 + 4.36.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 10f310653d6..1b4d5ed905d 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.36.0 + 4.36.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 19a60f8f8ab..789f179c996 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.36.0 + 4.36.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 d3a3bc70cb2..bcb6c8c7afc 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.36.0 + 4.36.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 1dbad34a34f..76df6154c12 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.36.0 + 4.36.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 55473e9a1d8..ce92fcda0c9 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.36.0 + 4.36.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 564376fb1a9..dc60e2632e7 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.36.0 + 4.36.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 7db35a0a64c..be6779a33e7 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 2a4aaee5fed..2ffc839746b 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.36.0 + 4.36.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 2ee940fccd4..c4383cfed09 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.36.0 + 4.36.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 810effad28c..fc57fec843b 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.36.0 + 4.36.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 34125119207..6ff2f51a45d 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 8feb7be839b..34bf851b1bc 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.36.0 + 4.36.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 a93433d3ffa..b7549138005 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.36.0 + 4.36.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 67830029b78..5c7156cb281 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.36.0 + 4.36.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 54fc25e37da..697b2aec647 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.36.0 + 4.36.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 379b17198e7..93510400e0f 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.36.0 + 4.36.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 9513ad33218..50bed2fd2f4 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.36.0 + 4.36.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 9374d6f3e66..2c00d5af9b3 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 7bd45463a20..b48d7524311 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.36.0 + 4.36.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 2138ec6cc60..c3651ef42c2 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.36.0 + 4.36.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 4f37dc00a33..88da492ea4c 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 4cc27e77cab..5b32da9c6e8 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.36.0 + 4.36.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 59358975b72..3719021f22a 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.36.0 + 4.36.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 6d25c919623..d45119b7eec 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.36.0 + 4.36.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 e466cfc8643..895de697649 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.36.0 + 4.36.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 1842e15ac9a..aa8fd951303 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 8b92e9e4905..f6add66ec5e 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.36.0 + 4.36.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 1a00f8582ec..718b377e04c 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.36.0 + 4.36.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 8832f86e621..f8944236508 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.36.0 + 4.36.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 b262f6a38a2..847e25a1ed3 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.36.0 + 4.36.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 35fc4241b66..6ee35ad2808 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.36.0 + 4.36.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 35e57a0cd13..9924ae4006e 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.36.0 + 4.36.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 33866daa507..571b7bf9466 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 0fca28625eb..dee7bd2d3a2 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.36.0 + 4.36.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 609ebeb873d..a2592e7ad41 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.36.0 + 4.36.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 e781048a591..a7fc808a308 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.36.0 + 4.36.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 da2be1faa8a..c29c206cae6 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index bac2d1d1729..47b96793031 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.36.0 + 4.36.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 b2e6288cba3..192ae85d19c 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.36.0 + 4.36.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 67f79b94567..bf8f15cbbc9 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.36.0 + 4.36.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 bffc52432a8..394ab55366c 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.36.0 + 4.36.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 ca9900b4be0..7a209735452 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.36.0 + 4.36.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 0040510d055..a4fd021a652 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.36.0 + 4.36.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 059f661efbb..5976dfb749d 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.36.0 + 4.36.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 0a57ab21932..893080545c9 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.36.0 + 4.36.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 63091827b67..728b366dde9 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.36.0 + 4.36.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 c713937a3ec..9152aaddaf1 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.36.0 + 4.36.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 66f3940083b..da71fc770db 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 5f25bfb9135..02cf812a232 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.36.0 + 4.36.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 a19c59443b8..acd4f98180e 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.36.0 + 4.36.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 598b1d2b7a1..25afe7c31a8 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.36.0 + 4.36.1-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 4ad8a4d16b7..589f62796f3 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.36.0 + 4.36.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 a5816c5a3ce..210ae6c886e 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.36.0 + 4.36.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 39ab42ffc65..e47fe984c5c 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.36.0 + 4.36.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 015ec41c507..32cf1cb319a 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.36.0 + 4.36.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 1e330cc00fd..e9a6e707ba9 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.36.0 + 4.36.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 64699b42d41..bde9b420c60 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.36.0 + 4.36.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 85a3637938a..6cb62f1b320 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.36.0 + 4.36.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 cbc9d78505a..e5a47ba73c9 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.36.0 + 4.36.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 a83fe5469e1..c2b5601da59 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.36.0 + 4.36.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 804a9ab589f..4d932250384 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.36.0 + 4.36.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 79ff80d0f68..18f55eff360 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.36.0 + 4.36.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 a3e1fc6dd11..396dc94601b 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.36.0 + 4.36.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 08570bbf580..45093f8c462 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.36.0 + 4.36.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 443691ae5e9..5e858406090 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.36.0 + 4.36.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 f16a0235220..b29a8ddb3d1 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.36.0 + 4.36.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 afc663ceb3e..181a51dd868 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.36.0 + 4.36.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 0f24c5970eb..4824cdfe411 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.36.0 + 4.36.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 a9c8001a1ec..6f4e0f2633a 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.36.0 + 4.36.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 9c52c3e9cda..93957aa1b1b 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.36.0 + 4.36.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 8461754e535..37179ba4c26 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.36.0 + 4.36.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 fa13337f767..754531970ff 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.36.0 + 4.36.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 3fa906cf403..91b9d656f3f 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 5d4a6777280..b5ae1ec8604 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.36.0 + 4.36.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 e61f00770d4..11b3c51fe86 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.36.0 + 4.36.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 8a9a568e4e9..8f1cd648bfd 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.36.0 + 4.36.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 60039abde18..2de913ede19 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.36.0 + 4.36.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 e22ad4e1c65..65b40477b6b 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.36.0 + 4.36.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 4fc67d6f931..95039d36bf3 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.36.0 + 4.36.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 a9480c97880..6cf0e9a24f2 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.36.0 + 4.36.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 8d789a5018f..14265262f5f 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.36.0 + 4.36.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 adc1f1615cf..8baab7371b4 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.36.0 + 4.36.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 42a7594ef9e..0b113ac4bc7 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.36.0 + 4.36.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 35f5c584a78..23afcece354 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.36.0 + 4.36.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 97d4cf2d4cc..04be3efa44a 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.36.0 + 4.36.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 78d7ebe8964..8f7526eef77 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.36.0 + 4.36.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 ef427bca567..9d9dde5a1dc 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.36.0 + 4.36.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 0865b9c3aea..4d0c1dfb538 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.36.0 + 4.36.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 acbc7505f0a..102a4404384 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.36.0 + 4.36.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 fcd474ad4e1..658857d9e58 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.36.0 + 4.36.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 a7bb5beded7..db2a72be503 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.36.0 + 4.36.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 69d6b2bc7a9..c4f8e39a52e 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.36.0 + 4.36.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 73971f03f27..44b060cbb95 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.36.0 + 4.36.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 6a114e9bc20..70929f85d27 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.36.0 + 4.36.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 d61cea51572..0b4b62a0610 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.36.0 + 4.36.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 7bd52f29490..0c5d4afd652 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.36.0 + 4.36.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 84327bcfb2a..07d35890a24 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.36.0 + 4.36.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 66cf83ff2b5..3dff6f659ef 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.36.0 + 4.36.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 51a9ccfba62..11acde88567 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.36.0 + 4.36.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 74ae083ef20..a5c97e2b36b 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.36.0 + 4.36.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 a68294c3f84..0fdf66ce53f 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.36.0 + 4.36.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 c7c4829966a..09ac5f7f29c 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.36.0 + 4.36.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 6b7296cddaf..ca8606d78cd 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.36.0 + 4.36.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 2d6358f888b..9134896c3a2 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.36.0 + 4.36.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 d1d7d5fd48d..64c6e19a045 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.36.0 + 4.36.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 5233e57f52f..4658eb3282d 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.36.0 + 4.36.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 af165fe1ae7..c199be851b5 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.36.0 + 4.36.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 405135a7fbe..c614d98c52b 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.36.0 + 4.36.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 081c65301ad..358982159cb 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.36.0 + 4.36.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 b1ffbdb34ed..376b502d660 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.36.0 + 4.36.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 5fbac8edac1..5c1399f8144 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.36.0 + 4.36.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 43265e825a9..c61e464e575 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.36.0 + 4.36.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 384f49fe4ab..ea8e8de144f 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.36.0 + 4.36.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 5ee3e6c2569..7be890d0128 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.36.0 + 4.36.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 9603065ec99..1bca2134250 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.36.0 + 4.36.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 d7b3532fdd8..6717c5e698a 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.36.0 + 4.36.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 6cc0f59ac00..9deae754300 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.36.0 + 4.36.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 2af5bd7cef9..776ed70ecc9 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.36.0 + 4.36.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 9af32d7754d..17f889bd794 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.36.0 + 4.36.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 2cb32847c5c..f73500ec728 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.36.0 + 4.36.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 ed033f3aa5d..3d0a1fb5f1a 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.36.0 + 4.36.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 4859e3454e9..23f4392d73b 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.36.0 + 4.36.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 95c35219b19..2c2b8e089b1 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.36.0 + 4.36.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 df51c8ae8d2..da12e92909a 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.36.0 + 4.36.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 1f22bab97b2..8b9698ba9ed 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.36.0 + 4.36.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 aea57e3feaf..afcad665ce5 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.36.0 + 4.36.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 799bb0cbb51..3d263fe304d 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.36.0 + 4.36.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 fe1c4ac8465..8eb0c072a4d 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.36.0 + 4.36.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 b93da2a6a78..070153b6e9e 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.36.0 + 4.36.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 dbc32c23862..cb37faf139a 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.36.0 + 4.36.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 1ee7d31489e..6d67a603352 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.36.0 + 4.36.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 1943cac0618..2f5be67fe5c 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.36.0 + 4.36.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 f83a72b7a7d..3c94e9f83f4 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.36.0 + 4.36.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 bdb60a3245d..ccdda2dc424 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.36.0 + 4.36.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 fc2a34a38f9..d02fc7b0d9e 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.36.0 + 4.36.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 49f3a4f92c2..ac77b29c2d1 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.36.0 + 4.36.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 117aa07ca60..dce3ee9758c 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.36.0 + 4.36.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 c0332b73097..74a972d387f 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.36.0 + 4.36.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 1d5770f414d..52be1c4f760 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.36.0 + 4.36.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 af2bdba0028..598354ba647 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.36.0 + 4.36.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 2f758516a60..e4310dbb852 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.36.0 + 4.36.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 17047bf75a8..9081c0ecba9 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.36.0 + 4.36.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 35b1e51931d..e7931969e42 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.36.0 + 4.36.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 cdabaec9547..e0e32dbdd40 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.36.0 + 4.36.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 04875a5ef62..357229806f6 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.36.0 + 4.36.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 1e03a889525..2e8ff65f60a 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.36.0 + 4.36.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 0ead5236aad..e7dd5d729f5 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.36.0 + 4.36.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 4332a5be516..604b04ff8fd 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.36.0 + 4.36.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 aa60e56e98e..051de941ed1 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.36.0 + 4.36.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 df404b43cba..8de778778da 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.36.0 + 4.36.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 254a185f83b..c07a1032436 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.36.0 + 4.36.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 9e849baa53a..3965c022808 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.36.0 + 4.36.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 74f8629edda..03535226b64 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.36.0 + 4.36.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 fe7c2d5fc69..9636d03ad36 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.36.0 + 4.36.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 293ca24ca9f..dff41682dbc 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.36.0 + 4.36.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 d8a14ae7d69..aababb93ff8 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.36.0 + 4.36.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 08f55d39ecd..c8cc9f5f873 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.36.0 + 4.36.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 fa9a482d554..9118bdade2d 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.36.0 + 4.36.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 0c3cf38d5f3..d0990d367c9 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.36.0 + 4.36.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 d743a941c5e..2cace3512fa 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.36.0 + 4.36.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 d490617443d..ba0fce7ab6f 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.36.0 + 4.36.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 d49db8c3baa..70b1b9541e7 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.36.0 + 4.36.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 f263725f68e..60c174b4bc5 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.36.0 + 4.36.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 e613fcb5479..89d0bbc7b6a 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.36.0 + 4.36.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 2c59ae3477c..b72718e69f9 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.36.0 + 4.36.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 8dcb9041636..8a7d2c51586 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.36.0 + 4.36.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 d8c17cade72..5013c7616b0 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.36.0 + 4.36.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 8c797561ae8..b7122d1ea0f 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.36.0 + 4.36.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 ba49dacb43e..b8d20853566 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.36.0 + 4.36.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 0240f93f104..f584c0edd04 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.36.0 + 4.36.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 7f17c865771..9bcec73ab58 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.36.0 + 4.36.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 9ce0e101f89..a9010c62160 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.36.0 + 4.36.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 cf2344e7568..b5f9084fa13 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index a1032cf8f83..c4e8bd32279 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.36.0 + 4.36.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 e9a16c9d048..03e6032fb8b 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 2469fb55909..48ee1a8c5af 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.36.0 + 4.36.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 cbce5a20fd4..663afef42b4 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.36.0 + 4.36.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 751465dc475..a33ea6900a4 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index d22de9eaf69..ea0a9613115 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.36.0 + 4.36.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 13317395978..4a32debdc91 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.36.0 + 4.36.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 d0638081a61..44ec9f230d2 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.36.0 + 4.36.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 82b3492ffed..d1209c0e03d 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.36.0 + 4.36.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 e650378faf6..83103ceede1 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.36.0 + 4.36.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 803a909e7dc..01bfe002d1b 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.36.0 + 4.36.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 b4790520876..a4c771e4ae5 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.36.0 + 4.36.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 e0e7176d172..08fec1c79c5 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.36.0 + 4.36.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 3cf18a88c78..a029e78827a 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 75f049540e1..4cccc75501f 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.36.0 + 4.36.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 7dc367c7198..9854bc8df6b 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.36.0 + 4.36.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 42a30f3083a..6a5b1fc7c51 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.36.0 + 4.36.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 45384a32dff..5d53d788b04 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.36.0 + 4.36.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 9ae1cce56f7..291b2c9e0da 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.36.0 + 4.36.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 c0b0fe74d10..e32d5507782 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 35036b6e631..4d36c05b10b 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.36.0 + 4.36.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 95499e9058c..2d13095f336 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.36.0 + 4.36.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 db77a353c9c..2c0b9666afa 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.36.0 + 4.36.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 e5eafed5d17..64b34540b11 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.36.0 + 4.36.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 6efdb468b0b..33666980e0e 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.36.0 + 4.36.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 ff06e9f90a2..6e792d44b61 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.36.0 + 4.36.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 9be4072d5b8..dc1002f3615 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 54ff7325237..e6580f3cc7c 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.36.0 + 4.36.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 db72fdb0fd5..657fed2d796 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.36.0 + 4.36.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 f945ad6ec97..23d801dba21 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.36.0 + 4.36.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 26cfcb815c3..74b7b2c850a 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.36.0 + 4.36.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 3b808eff463..717b39c9d1c 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.36.0 + 4.36.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 fa9b1f268cd..3a2b0c85981 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.36.0 + 4.36.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 e91e6f8dac1..f665df07276 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.36.0 + 4.36.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 60861bffd05..fde692e1cf8 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.36.0 + 4.36.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 37384d1cea9..f9c50a31d81 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.36.0 + 4.36.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 a214e68e6e1..85fb4f23ac6 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.36.0 + 4.36.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 f0d1438ca47..384aa5d7b19 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.36.0 + 4.36.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 23e8b0e2ad9..7deb1bf32dc 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.36.0 + 4.36.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 1b3bbe1d0e5..e08a31f2ca7 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.36.0 + 4.36.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 2491630b6b0..75608c8eb22 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index e8d21a2a147..b6ef9f4e8e2 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.36.0 + 4.36.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 2501b65981b..e04f7238006 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.36.0 + 4.36.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 b0b8b8061ee..7cbe7162ceb 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.36.0 + 4.36.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 0d0d47b0063..9764c676eca 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.36.0 + 4.36.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 a65cf96de79..15245c30bba 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index ad97a9fde84..ad47efc988b 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.36.0 + 4.36.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 0ecc9885387..f5d1cca5281 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.36.0 + 4.36.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 f845ebc1598..543e92b33e1 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.36.0 + 4.36.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 b07fe85d99b..6c2be4a53ab 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.36.0 + 4.36.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 0dfde276047..3f19d58d59c 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.36.0 + 4.36.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 d85e6cdd046..e54cfa730b9 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index c51f4c5bf16..6535228a8a8 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.36.0 + 4.36.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index b9c6d9b8836..b6e40ef94f7 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.36.0 + 4.36.1-SNAPSHOT pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.36.0 + HEAD From 53a8956befff741f09d08e1ec8196057ca519301 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Wed, 6 Dec 2023 14:41:03 +0000 Subject: [PATCH 31/54] Legend SQL - Handle null valuespecifications correctly in cast (#2499) --- .../binding/fromPure/fromPure.pure | 9 +++++---- .../binding/fromPure/tests/testTranspile.pure | 7 +++++-- 2 files changed, 10 insertions(+), 6 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 6baecee1be0..189a6656376 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 @@ -1585,9 +1585,10 @@ function <> meta::external::query::sql::transformation::queryToP let expression = processExpression($c.expression, $expContext, $context); - $c.expression->match([ - n:NullLiteral[1] | processCastAsCast($c, $expression, $expContext, $context), - e:meta::external::query::sql::metamodel::Expression[1] | + if ($expression->evaluateAndDeactivate().multiplicity == PureZero, + | + processCastAsCast($c, $expression, $expContext, $context), + | let type = $expression.genericType.rawType->toOne(); let castName = $c.type.name->toUpper(); @@ -1598,7 +1599,7 @@ function <> meta::external::query::sql::transformation::queryToP pair($type == String || $castName == 'TEXT', | processCastAsParse($c, $expression, $expContext, $context)), pair(true, | processCastAsCast($c, $expression, $expContext, $context)) ]->getValues(true)->first()->toOne()->eval()->evaluateAndDeactivate(); - ]); + ); } function <> meta::external::query::sql::transformation::queryToPure::processDoublePrecisionCast(c:Cast[1], v:ValueSpecification[1], expContext:SqlTransformExpressionContext[1], context:SqlTransformContext[1]):ValueSpecification[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 3b18da5beb8..24131ddf746 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 @@ -1051,7 +1051,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testNullCasts():Boolean[1] { test('SELECT CAST(NULL AS VARCHAR) AS "string", CAST(NULL AS TEXT) AS "text", CAST(NULL AS DATE) AS "date", ' + - 'CAST(NULL AS INTEGER) AS "integer", CAST(NULL AS BOOLEAN) AS "boolean", CAST(NULL AS DOUBLE PRECISION) AS "double", CAST(NULL AS NUMERIC) AS "numeric", CAST(NULL AS TIMESTAMP) AS "timestamp" FROM service."/service/service1"', + 'CAST(NULL AS INTEGER) AS "integer", CAST(NULL AS BOOLEAN) AS "boolean", CAST(NULL AS DOUBLE PRECISION) AS "double", ' + + 'CAST(NULL AS NUMERIC) AS "numeric", CAST(NULL AS TIMESTAMP) AS "timestamp", CAST(floor(NULL) AS TEXT) AS "exp" ' + + '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 ], @@ -1064,7 +1066,8 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | cast([], @Boolean), 'boolean'), col(row:TDSRow[1] | cast([], @Float), 'double'), col(row:TDSRow[1] | cast([], @Decimal), 'numeric'), - col(row:TDSRow[1] | cast([], @DateTime), 'timestamp') + col(row:TDSRow[1] | cast([], @DateTime), 'timestamp'), + col(row:TDSRow[1] | cast([], @String), 'exp') ]) }) } From 29b7a379c525388aec5d881743aa7c45790859bc Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Mon, 11 Dec 2023 12:08:05 -0500 Subject: [PATCH 32/54] Function activator to use pointer to capture source information (#2496) * Function activator to use pointer to capture source information * Capture parsing error for better error handler on VS code plugin. --- .../pom.xml | 5 +++++ .../test/TestCompilationFromGrammar.java | 17 ++++++++-------- .../api/test/TestGrammarToJsonApi.java | 2 +- .../pom.xml | 5 +++++ .../grammar/from/ParserErrorListener.java | 10 ++++------ .../pure/grammar/test/TestGrammarParser.java | 5 ++++- .../context/PackageableElementPointer.java | 11 ++++++++++ .../model/context/PackageableElementType.java | 1 + .../test/TestCompatibilityAndMigration.java | 17 ++++++++++++++-- .../BigQueryFunctionCompilerExtension.java | 2 +- .../from/BigQueryFunctionTreeWalker.java | 10 ++++++++-- .../to/BigQueryFunctionGrammarComposer.java | 2 +- .../metamodel/FunctionActivator.java | 3 ++- .../HostedServiceCompilerExtension.java | 2 +- .../grammar/from/HostedServiceTreeWalker.java | 20 ++++++++++--------- .../to/HostedServiceGrammarComposer.java | 2 +- .../TestRelationalOperationElementApi.java | 4 ++-- .../pom.xml | 5 +++++ ...ionalOperationElementGrammarRoundtrip.java | 5 ++++- .../SnowflakeAppCompilerExtension.java | 2 +- .../grammar/from/SnowflakeAppTreeWalker.java | 9 +++++++-- .../to/SnowflakeAppGrammarComposer.java | 2 +- 22 files changed, 100 insertions(+), 41 deletions(-) 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 5a8822e0f69..cec746cfad8 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 @@ -218,6 +218,11 @@ legend-pure-runtime-java-extension-functions-json test + + org.hamcrest + hamcrest-core + 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/TestCompilationFromGrammar.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/TestCompilationFromGrammar.java index af1d0b18a53..a416cda9074 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/TestCompilationFromGrammar.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/TestCompilationFromGrammar.java @@ -15,6 +15,9 @@ package org.finos.legend.engine.language.pure.compiler.test; import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; import org.eclipse.collections.api.tuple.Pair; import org.eclipse.collections.impl.tuple.Tuples; import org.finos.legend.engine.language.pure.compiler.Compiler; @@ -25,13 +28,11 @@ 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.hamcrest.CoreMatchers; +import org.hamcrest.MatcherAssert; import org.junit.Assert; import org.junit.Test; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - public class TestCompilationFromGrammar { public abstract static class TestCompilationFromGrammarTestSuite @@ -78,8 +79,7 @@ public static Pair test(String str, String expe if (expectedWarnings != null) { - List warnings = pureModel.getWarnings().stream().map(Warning::buildPrettyWarningMessage).collect(Collectors.toList()); - Collections.sort(warnings); + List warnings = pureModel.getWarnings().stream().map(Warning::buildPrettyWarningMessage).sorted().collect(Collectors.toList()); Collections.sort(expectedWarnings); Assert.assertEquals(expectedWarnings, warnings); } @@ -93,7 +93,8 @@ public static Pair test(String str, String expe throw e; } Assert.assertNotNull("No source information provided in error", e.getSourceInformation()); - Assert.assertEquals(expectedErrorMsg, EngineException.buildPrettyErrorMessage(e.getMessage(), e.getSourceInformation(), e.getErrorType())); + MatcherAssert.assertThat(EngineException.buildPrettyErrorMessage(e.getMessage(), e.getSourceInformation(), + e.getErrorType()), CoreMatchers.startsWith(expectedErrorMsg)); return null; } catch (Exception e) @@ -312,7 +313,7 @@ public void testCompilationCme() "['includedDate', 'calendarAgg'])" + "}"); } - + @Test public void testCompilationCw() { diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java index b378d567897..a059a7ad820 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java @@ -83,7 +83,7 @@ public void testLambdaParsingError() @Test public void testMixedParsingErrors() { - test("{\"code\": \"Class A {,\", \"isolatedLambdas\": {\"good\": \"|'good'\", \"bad\": \"|,\"}}", "{\"codeError\":{\"message\":\"Unexpected token ','\",\"sourceInformation\":{\"endColumn\":10,\"endLine\":1,\"sourceId\":\"\",\"startColumn\":10,\"startLine\":1}},\"isolatedLambdas\":{\"lambdaErrors\":{\"bad\":{\"message\":\"Unexpected token ','\",\"sourceInformation\":{\"endColumn\":2,\"endLine\":1,\"sourceId\":\"bad\",\"startColumn\":2,\"startLine\":1}}},\"lambdas\":{\"good\":{\"_type\":\"lambda\",\"body\":[{\"_type\":\"string\",\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":2,\"startLine\":1},\"value\":\"good\"}],\"parameters\":[],\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":1,\"startLine\":1}}}},\"renderStyle\":\"STANDARD\"}"); + test("{\"code\": \"Class A {,\", \"isolatedLambdas\": {\"good\": \"|'good'\", \"bad\": \"|,\"}}", "{\"codeError\":{\"message\":\"Unexpected token ','. Valid alternatives: ['import', 'Class', 'Association', 'Profile', 'Enum', 'Measure', 'function', 'extends', 'stereotypes', 'tags', 'Error', 'Warn', 'native', 'projects', 'as', 'composite', 'shared', 'none', 'all', 'let', 'allVersions', 'allVersionsInRange', 'toBytes', '(', '<']\",\"sourceInformation\":{\"endColumn\":10,\"endLine\":1,\"sourceId\":\"\",\"startColumn\":10,\"startLine\":1}},\"isolatedLambdas\":{\"lambdaErrors\":{\"bad\":{\"message\":\"Unexpected token ','. Valid alternatives: ['import', 'Class', 'Association', 'Profile', 'Enum', 'Measure', 'function', 'extends', 'stereotypes', 'tags', 'Error', 'Warn', 'native', 'projects', 'as', 'composite', 'shared', 'none', 'all', 'let', 'allVersions', 'allVersionsInRange', 'toBytes', '!', '[', '(', '$', '^', '|', '@', '+', '-']\",\"sourceInformation\":{\"endColumn\":2,\"endLine\":1,\"sourceId\":\"bad\",\"startColumn\":2,\"startLine\":1}}},\"lambdas\":{\"good\":{\"_type\":\"lambda\",\"body\":[{\"_type\":\"string\",\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":2,\"startLine\":1},\"value\":\"good\"}],\"parameters\":[],\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":1,\"startLine\":1}}}},\"renderStyle\":\"STANDARD\"}"); } @Test 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 b4313acdd1d..4e50e627e2c 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 @@ -172,6 +172,11 @@ junit test + + org.hamcrest + hamcrest-core + test + \ No newline at end of file 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/ParserErrorListener.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/ParserErrorListener.java index 83393076711..21793863c51 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/ParserErrorListener.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/ParserErrorListener.java @@ -57,7 +57,7 @@ public void syntaxError( { if (e != null && e.getOffendingToken() != null && e instanceof InputMismatchException) { - List expectedSymbols = dereferenceTokens(e.getExpectedTokens().toList()); + List expectedSymbols = dereferenceTokens(e.getExpectedTokens().toList(), recognizer.getVocabulary()); if (expectedSymbols.isEmpty()) { msg = "Unexpected token '" + e.getOffendingToken().getText() + "'"; @@ -103,13 +103,11 @@ else if (e == null || e.getOffendingToken() == null) charPositionInLine + 1 + (line == 1 ? this.walkerSourceInformation.getColumnOffset() : 0), offendingToken.getLine() + this.walkerSourceInformation.getLineOffset(), charPositionInLine + offendingToken.getText().length() + (line == 1 ? this.walkerSourceInformation.getColumnOffset() : 0)); - throw new EngineException(msg, sourceInformation, EngineErrorType.PARSER); + throw new EngineException(msg, sourceInformation, EngineErrorType.PARSER, e); } - protected List dereferenceTokens(List expectedTokens) + protected List dereferenceTokens(List expectedTokens, Vocabulary vocabulary) { - return vocabulary - .>map(v -> ListIterate.collect(expectedTokens, v::getLiteralName).select(Objects::nonNull)) - .orElse(Collections.emptyList()); + return ListIterate.collect(expectedTokens, vocabulary::getLiteralName).select(Objects::nonNull); } } \ No newline at end of file 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/TestGrammarParser.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/TestGrammarParser.java index 84b3e68b55a..d3534abe020 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/TestGrammarParser.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/TestGrammarParser.java @@ -28,6 +28,8 @@ 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.hamcrest.CoreMatchers; +import org.hamcrest.MatcherAssert; import org.junit.Assert; import org.junit.Test; @@ -101,7 +103,8 @@ protected static void test(String val, String expectedErrorMsg) { LogInfo errorResponse = new LogInfo(null, LoggingEventType.PARSE_ERROR, e); Assert.assertNotNull("No source information provided in error", errorResponse.sourceInformation); - Assert.assertEquals(expectedErrorMsg, EngineException.buildPrettyErrorMessage(errorResponse.message, errorResponse.sourceInformation, EngineErrorType.PARSER)); + MatcherAssert.assertThat(EngineException.buildPrettyErrorMessage(errorResponse.message, errorResponse.sourceInformation, + EngineErrorType.PARSER), CoreMatchers.startsWith(expectedErrorMsg)); } } } 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/PackageableElementPointer.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/PackageableElementPointer.java index 83cc92e27c9..dc356ad1bcb 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/PackageableElementPointer.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/PackageableElementPointer.java @@ -14,7 +14,9 @@ package org.finos.legend.engine.protocol.pure.v1.model.context; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; import java.util.Objects; @@ -36,11 +38,20 @@ public PackageableElementPointer(PackageableElementType type, String path) this.path = path; } + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) public PackageableElementPointer(String path) { this.path = path; } + @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) + public PackageableElementPointer(@JsonProperty("type") PackageableElementType type, @JsonProperty("path") String path, @JsonProperty("sourceInformation") SourceInformation sourceInformation) + { + this.type = type; + this.path = path; + this.sourceInformation = sourceInformation; + } + @Override public String toString() { 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/PackageableElementType.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/PackageableElementType.java index 978cf34e88a..2e5ddb9f15f 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/PackageableElementType.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/PackageableElementType.java @@ -21,6 +21,7 @@ public enum PackageableElementType CLASS, ASSOCIATION, ENUMERATION, + FUNCTION, STORE, RUNTIME, MAPPING, diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestCompatibilityAndMigration.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestCompatibilityAndMigration.java index 2b74f87ad19..189a3bab8ff 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestCompatibilityAndMigration.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestCompatibilityAndMigration.java @@ -18,13 +18,15 @@ import com.fasterxml.jackson.databind.ObjectMapper; import net.javacrumbs.jsonunit.JsonAssert; import org.finos.legend.engine.protocol.pure.v1.PureProtocolObjectMapperFactory; +import org.finos.legend.engine.protocol.pure.v1.model.context.PackageableElementPointer; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.junit.Assert; import org.junit.Test; public class TestCompatibilityAndMigration { - private static final ObjectMapper objectMapper = PureProtocolObjectMapperFactory.getNewObjectMapper(); + private static final ObjectMapper objectMapper = PureProtocolObjectMapperFactory.getNewObjectMapper() + .setSerializationInclusion(JsonInclude.Include.NON_EMPTY); @Test public void testStringValueSpecification() throws Exception @@ -1201,10 +1203,21 @@ public void testModelStoreData() throws Exception "}\n"); } + @Test + public void testPackageableElementPointerCompatibility() throws Exception + { + String asString = "\"abc::myPath::MyName\""; + String expected = "{\"path\":\"abc::myPath::MyName\"}"; + PackageableElementPointer pointerFromStringConstructor = objectMapper.readValue(asString, PackageableElementPointer.class); + String json = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(pointerFromStringConstructor); + JsonAssert.assertJsonEquals(expected, json); + PackageableElementPointer expectedPointerFromObjectConstructor = objectMapper.readValue(expected, PackageableElementPointer.class); + Assert.assertEquals(expectedPointerFromObjectConstructor, pointerFromStringConstructor); + } + private void check(String input, String output) throws Exception { PureModelContextData context = objectMapper.readValue(input, PureModelContextData.class); - objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); String json = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(context); JsonAssert.assertJsonEquals(output, json); } 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 index 50d127e75b1..af3d68c6d7f 100644 --- 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 @@ -58,7 +58,7 @@ public Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction b { try { - PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(bigQueryFunction.function), bigQueryFunction.sourceInformation); + PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(bigQueryFunction.function.path), bigQueryFunction.sourceInformation); return new Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction_Impl( bigQueryFunction.name, null, 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 index 306d4a91388..c8449c6ca78 100644 --- 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 @@ -21,7 +21,8 @@ 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.context.PackageableElementPointer; +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.domain.StereotypePtr; @@ -84,7 +85,12 @@ private BigQueryFunction visitBigQueryFunction(BigQueryFunctionParserGrammar.Big 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(); + bigQueryFunction.function = new PackageableElementPointer( + PackageableElementType.FUNCTION, + functionContext.functionIdentifier().getText(), + walkerSourceInformation.getSourceInformation(functionContext.functionIdentifier()) + ); + BigQueryFunctionParserGrammar.OwnerContext ownerContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.owner(), "owner", bigQueryFunction.sourceInformation); if (ownerContext != null) { 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 index 7c2f5ef1d8a..cdfffb9616e 100644 --- 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 @@ -49,7 +49,7 @@ private static String renderBigQueryFunction(BigQueryFunction app) return "BigQueryFunction " + renderAnnotations(app.stereotypes, app.taggedValues) + packageName + "\n" + "{\n" + " functionName : '" + app.functionName + "';\n" + - " function : " + app.function + ";\n" + + " function : " + app.function.path + ";\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") + diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/FunctionActivator.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/FunctionActivator.java index 8d90c71b066..1e1c45f8943 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/FunctionActivator.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/FunctionActivator.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.protocol.functionActivator.metamodel; +import org.finos.legend.engine.protocol.pure.v1.model.context.PackageableElementPointer; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.StereotypePtr; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.TaggedValue; @@ -28,6 +29,6 @@ public abstract class FunctionActivator extends PackageableElement { public List stereotypes = Collections.emptyList(); public List taggedValues = Collections.emptyList(); - public String function; + public PackageableElementPointer function; public DeploymentConfiguration activationConfiguration; } 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 c25ca1a6ec2..495f2d4f83e 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 @@ -88,7 +88,7 @@ public Root_meta_external_function_activator_hostedService_HostedService buildHo { try { - PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(app.function), app.sourceInformation); + PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(app.function.path), app.sourceInformation); return new Root_meta_external_function_activator_hostedService_HostedService_Impl( app.name, null, 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 6465d2a8c3d..28eb8a08aad 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 @@ -14,6 +14,9 @@ package org.finos.legend.engine.language.hostedService.grammar.from; +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; import org.antlr.v4.runtime.CharStream; import org.eclipse.collections.impl.factory.Lists; import org.eclipse.collections.impl.utility.ListIterate; @@ -21,31 +24,26 @@ import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParserContext; import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParserUtility; import org.finos.legend.engine.language.pure.grammar.from.antlr4.HostedServiceParserGrammar; -import org.finos.legend.engine.language.pure.grammar.from.antlr4.ServiceParserGrammar; import org.finos.legend.engine.language.pure.grammar.from.runtime.RuntimeParser; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; +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.control.Deployment; import org.finos.legend.engine.protocol.hostedService.metamodel.control.UserList; 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.context.PackageableElementType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; 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.runtime.Runtime; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.RuntimePointer; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.DefaultCodeSection; -import org.finos.legend.engine.protocol.hostedService.metamodel.HostedService; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.ImportAwareCodeSection; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.ExecutionEnvironmentInstance; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.MultiExecutionParameters; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.SingleExecutionParameters; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; -import java.util.Collections; -import java.util.List; -import java.util.function.Consumer; - public class HostedServiceTreeWalker { private final CharStream input; @@ -92,7 +90,11 @@ private HostedService visitHostedService(HostedServiceParserGrammar.ServiceConte HostedServiceParserGrammar.ServicePatternContext patternContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.servicePattern(), "pattern", hostedService.sourceInformation); hostedService.pattern = PureGrammarParserUtility.fromGrammarString(patternContext.STRING().getText(), true); HostedServiceParserGrammar.ServiceFuncContext functionContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.serviceFunc(), "function", hostedService.sourceInformation); - hostedService.function = functionContext.functionIdentifier().getText(); + hostedService.function = new PackageableElementPointer( + PackageableElementType.FUNCTION, + functionContext.functionIdentifier().getText(), + walkerSourceInformation.getSourceInformation(functionContext.functionIdentifier()) + ); HostedServiceParserGrammar.ServiceOwnershipContext ownerContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.serviceOwnership(), "owners", hostedService.sourceInformation); if (ownerContext != null) { diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/to/HostedServiceGrammarComposer.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/to/HostedServiceGrammarComposer.java index 2b2285a0a63..6006c0db268 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/to/HostedServiceGrammarComposer.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/to/HostedServiceGrammarComposer.java @@ -57,7 +57,7 @@ private static String renderHostedService(HostedService app) "{\n" + " pattern : " + PureGrammarComposerUtility.convertString(app.pattern,true) + ";\n" + " ownership : " + renderServiceOwner(app.ownership) + - " function : " + app.function + ";\n" + + " function : " + app.function.path + ";\n" + (app.documentation == null ? "" : " documentation : '" + app.documentation + "';\n") + " autoActivateUpdates : " + app.autoActivateUpdates + ";\n" + "}"; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/src/test/java/org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.test/TestRelationalOperationElementApi.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/src/test/java/org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.test/TestRelationalOperationElementApi.java index a0a2efcf70c..1c82eb4e140 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/src/test/java/org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.test/TestRelationalOperationElementApi.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/src/test/java/org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.test/TestRelationalOperationElementApi.java @@ -42,7 +42,7 @@ public void testSimple() @Test public void testSimpleError() { - testError("add(1,", "Unexpected token ''", new SourceInformation("", 1, 7, 1, 11)); + testError("add(1,", "Unexpected token ''. Valid alternatives: ['Database', 'include', 'Table', 'Schema', 'View', 'Filter', 'MultiGrainFilter', 'Join', '{target}', 'and', 'or', 'milestoning', 'business', 'BUS_FROM', 'BUS_THRU', 'THRU_IS_INCLUSIVE', 'BUS_SNAPSHOT_DATE', 'processing', 'PROCESSING_IN', 'PROCESSING_OUT', 'OUT_IS_INCLUSIVE', 'INFINITY_DATE', 'AssociationMapping', 'EnumerationMapping', 'Otherwise', 'Inline', 'Binding', 'scope', '[', '(', '@']", new SourceInformation("", 1, 7, 1, 11)); } @Test @@ -58,7 +58,7 @@ public void testBatchError() testBatchError(createBatchInput(Tuples.pair("1", "add(1"), Tuples.pair("2", "'4'")), createExpectedBatchResult(Tuples.pair("1", - "{\"message\":\"Unexpected token ''\",\"sourceInformation\":{\"endColumn\":10,\"endLine\":1,\"sourceId\":\"\",\"startColumn\":6,\"startLine\":1}}"), + "{\"message\":\"Unexpected token ''. Valid alternatives: [',', ')']\",\"sourceInformation\":{\"endColumn\":10,\"endLine\":1,\"sourceId\":\"\",\"startColumn\":6,\"startLine\":1}}"), Tuples.pair("2", "'4'")) ); } 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 b8d20853566..3c62dcf1488 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 @@ -244,6 +244,11 @@ legend-engine-testable test + + org.hamcrest + hamcrest-core + test + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalOperationElementGrammarRoundtrip.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalOperationElementGrammarRoundtrip.java index 94adb39e60e..dd388d00e7b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalOperationElementGrammarRoundtrip.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalOperationElementGrammarRoundtrip.java @@ -23,6 +23,8 @@ 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.hamcrest.CoreMatchers; +import org.hamcrest.MatcherAssert; import org.junit.Assert; import org.junit.Test; @@ -47,7 +49,8 @@ protected static void test(String val, String expectedErrorMsg) { LogInfo errorResponse = new LogInfo(null, LoggingEventType.PARSE_ERROR, e); Assert.assertNotNull("No source information provided in error", errorResponse.sourceInformation); - Assert.assertEquals(expectedErrorMsg, EngineException.buildPrettyErrorMessage(errorResponse.message, errorResponse.sourceInformation, EngineErrorType.PARSER)); + MatcherAssert.assertThat(EngineException.buildPrettyErrorMessage(errorResponse.message, errorResponse.sourceInformation, EngineErrorType.PARSER), + CoreMatchers.startsWith(expectedErrorMsg)); } String renderedOperation = RelationalGrammarComposerExtension.renderRelationalOperationElement(operation); 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 9b29beeedd9..da0d044e18c 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 @@ -53,7 +53,7 @@ public Root_meta_external_function_activator_snowflakeApp_SnowflakeApp buildSnow { try { - PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(app.function), app.sourceInformation); + PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(app.function.path), app.sourceInformation); return new Root_meta_external_function_activator_snowflakeApp_SnowflakeApp_Impl( app.name, null, 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 61b72fae5fb..a733f04b428 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 @@ -20,8 +20,9 @@ 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.SnowflakeAppParserGrammar; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; +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.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; @@ -72,7 +73,11 @@ private SnowflakeApp visitSnowflakeApp(SnowflakeAppParserGrammar.SnowflakeAppCon SnowflakeAppParserGrammar.ApplicationNameContext applicationNameContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.applicationName(), "applicationName", snowflakeApp.sourceInformation); snowflakeApp.applicationName = PureGrammarParserUtility.fromGrammarString(applicationNameContext.STRING().getText(), true); SnowflakeAppParserGrammar.FunctionContext functionContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.function(), "function", snowflakeApp.sourceInformation); - snowflakeApp.function = functionContext.functionIdentifier().getText(); + snowflakeApp.function = new PackageableElementPointer( + PackageableElementType.FUNCTION, + functionContext.functionIdentifier().getText(), + walkerSourceInformation.getSourceInformation(functionContext.functionIdentifier()) + ); SnowflakeAppParserGrammar.OwnerContext ownerContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.owner(), "owner", snowflakeApp.sourceInformation); if (ownerContext != null) { 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 d8c4ede601d..4d7ece0c413 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 @@ -51,7 +51,7 @@ private static String renderSnowflakeApp(SnowflakeApp app) return "SnowflakeApp " + renderAnnotations(app.stereotypes, app.taggedValues) + packageName + "\n" + "{\n" + " applicationName : '" + app.applicationName + "';\n" + - " function : " + app.function + ";\n" + + " function : " + app.function.path + ";\n" + (app.owner == null ? "" : " owner : '" + app.owner + "';\n") + (app.description == null ? "" : " description : '" + app.description + "';\n") + (app.type == null ? "" : " type : " + app.type.name() + ";\n") + From 5729af8dd17de1fa5535a623b9c190df3b8aed78 Mon Sep 17 00:00:00 2001 From: horbe Date: Tue, 12 Dec 2023 10:00:46 -0500 Subject: [PATCH 33/54] Support custom scalars for Pure Integer type during GraphQL SDL generation (#2500) --- .../binding/bindingCommon.pure | 49 ++++++++++++----- .../binding/fromPure/sdl/fromPure_sdl.pure | 48 +++++++++-------- .../fromPure/sdl/tests/simpleTest.pure | 38 ++++++++++++- .../introspection/toPure_introspection.pure | 2 +- .../binding/toPure/sdl/tests/simpleTest.pure | 53 ++++++++++++++++++- .../binding/toPure/sdl/toPure_sdl.pure | 9 +++- .../deprecated/generation.pure | 6 +-- 7 files changed, 160 insertions(+), 45 deletions(-) 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 43dc5f1a014..49021540161 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 @@ -37,19 +37,18 @@ function meta::external::query::graphQL::binding::fromInterfaceTypeName(interfac if($interfaceTypeName->endsWith('Interface'), | $interfaceTypeName->substring(0, $interfaceTypeName->length() - 9), | '') } -function meta::external::query::graphQL::binding::purePrimitivesToGraphQLScalarTypes(): Pair[*] +Class meta::external::query::graphQL::binding::PureTypeToGraphQLScalarOverride { - [ - pair(String, 'String'), - pair(Integer, 'Int'), - pair(Float, 'Float'), - pair(Boolean, 'Boolean') - ] + integerScalarType: String[0..1]; } -function meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLScalarTypes(): Pair[*] +function meta::external::query::graphQL::binding::purePrimitivesToAllGraphQLScalarTypes(pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): Pair[*] { [ + pair(Integer, if($pureTypeToGraphQLScalarOverride->isEmpty() || $pureTypeToGraphQLScalarOverride->toOne().integerScalarType->isEmpty(), | 'Int', | $pureTypeToGraphQLScalarOverride->toOne().integerScalarType->toOne())), + pair(String, 'String'), + pair(Float, 'Float'), + pair(Boolean, 'Boolean'), pair(Date, 'Date'), pair(StrictDate, 'StrictDate'), pair(DateTime, 'DateTime'), @@ -57,12 +56,36 @@ function meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLS ] } -// Concat and invert the pure primitives to graphQL -function meta::external::query::graphQL::binding::graphQLScalarTypesToPurePrimitives(): Pair[*] +function meta::external::query::graphQL::binding::builtInGraphQLScalars(): String[*] +{ + ['Int', 'Float', 'String', 'Boolean', 'ID']; +} + +function meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLScalarTypes(pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): Pair[*] +{ + purePrimitivesToAllGraphQLScalarTypes($pureTypeToGraphQLScalarOverride) + // remove built in GraphQL Scalars + ->filter(p | !$p.second->in(builtInGraphQLScalars())) +} + +// Inversion of the pure primitives to graphQL with some extras +function meta::external::query::graphQL::binding::graphQLScalarTypesToPurePrimitives(pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): Pair[*] { - purePrimitivesToGraphQLScalarTypes()->concatenate(purePrimitivesToCustomGraphQLScalarTypes()) - ->map(p | pair($p.second, $p.first)) - ->concatenate(pair('ID', String)) + if($pureTypeToGraphQLScalarOverride->isEmpty() || $pureTypeToGraphQLScalarOverride->toOne().integerScalarType->isEmpty(), | [], | [pair($pureTypeToGraphQLScalarOverride->toOne().integerScalarType->toOne(), Integer)]) + ->concatenate( + [ + // Keep all default mappings as well + pair('String', String), + pair('Int', Integer), + pair('Float', Float), + pair('Boolean', Boolean), + pair('Date', Date), + pair('StrictDate', StrictDate), + pair('DateTime', DateTime), + pair('BigDecimal', Decimal), + pair('ID', String) + ] + ) } function meta::external::query::graphQL::binding::temporalityToDirectives(): Map[1] 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 fe18b826712..2fe166a6a52 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 @@ -13,6 +13,7 @@ Class meta::external::query::graphQL::metamodel::sdl::GraphQLSDLContainer Class meta::external::query::graphQL::binding::fromPure::sdl::ModelToGraphQLConfig extends meta::external::format::shared::transformation::fromPure::ModelToSchemaConfiguration { + pureTypeToGraphQLScalarOverride: meta::external::query::graphQL::binding::PureTypeToGraphQLScalarOverride[0..1]; } function meta::external::query::graphQL::binding::fromPure::sdl::pureToGraphQLSDL(modelUnit: ModelUnit[1], config: ModelToGraphQLConfig[1]): meta::external::format::shared::metamodel::SchemaSet[1] @@ -21,7 +22,7 @@ function meta::external::query::graphQL::binding::fromPure::sdl::pureToGraphQLSD let document = ^meta::external::query::graphQL::metamodel::sdl::Document ( - definitions = meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL($packageableElements) + definitions = meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL($packageableElements, $config) ); let sdlcContainer = ^meta::external::query::graphQL::metamodel::sdl::GraphQLSDLContainer @@ -54,9 +55,10 @@ function meta::external::query::graphQL::binding::fromPure::sdl::schemaDetailToS ->joinStrings('\n'); } -function meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL(types: meta::pure::metamodel::PackageableElement[*]): meta::external::query::graphQL::metamodel::sdl::typeSystem::TypeSystemDefinition[*] +function meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL(types: meta::pure::metamodel::PackageableElement[*], config: ModelToGraphQLConfig[1]): meta::external::query::graphQL::metamodel::sdl::typeSystem::TypeSystemDefinition[*] { let allTypes = $types->findTypes(); + let pureTypeToGraphQLScalarOverride = $config.pureTypeToGraphQLScalarOverride; let queryClasses = $allTypes->cast(@AnnotatedElement)->filter(t|$t.stereotypes.value->contains('Query'))->cast(@Class); let mutationClasses = $allTypes->cast(@AnnotatedElement)->filter(t|$t.stereotypes.value->contains('Mutation'))->cast(@Class); @@ -102,16 +104,16 @@ function meta::external::query::graphQL::binding::fromPure::sdl::transformPureTo c:Class[1] | if ($classInputTypes->contains($c), | - buildInputObjectTypeDefinition($c)->concatenate( + buildInputObjectTypeDefinition($c, $pureTypeToGraphQLScalarOverride)->concatenate( if ($classReturnTypes->contains($c), // Used as both -> needs both input and output types - | buildObjectTypeDefinition($c, $extendedClasses->contains($c)), + | buildObjectTypeDefinition($c, $extendedClasses->contains($c), $pureTypeToGraphQLScalarOverride), // Used as input -> needs input | [] ) ), // Not used as input --> needs output (unused types will result in output types) - | buildObjectTypeDefinition($c, $extendedClasses->contains($c)) + | buildObjectTypeDefinition($c, $extendedClasses->contains($c), $pureTypeToGraphQLScalarOverride) ), e:Enumeration[1] | ^EnumTypeDefinition( @@ -133,7 +135,7 @@ function meta::external::query::graphQL::binding::fromPure::sdl::transformPureTo ->distinct() ->map(s | temporalityToDirectives()->get($s)->toOne()); - let interfaces = $extendedClasses->map(c | $c->buildInterfaceTypeDefinition()); + let interfaces = $extendedClasses->map(c | $c->buildInterfaceTypeDefinition($pureTypeToGraphQLScalarOverride)); $partitioned.second.values // Remove duplicated scalar definitions @@ -178,23 +180,23 @@ function <> meta::external::query::graphQL::binding::fromPure::s !$p.name->in(['processingDate', 'businessDate', 'milestoning']); } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildNonBuiltInGraphQLScalars(props: AbstractProperty[*]): ScalarTypeDefinition[*] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildNonBuiltInGraphQLScalars(props: AbstractProperty[*], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): ScalarTypeDefinition[*] { $props ->map(p | $p.genericType.rawType->toOne()) ->map(p | $p->match( [ - p : PrimitiveType[1] | purePrimitivesToCustomGraphQLScalarTypes()->newMap()->get($p), + p : PrimitiveType[1] | purePrimitivesToCustomGraphQLScalarTypes($pureTypeToGraphQLScalarOverride)->newMap()->get($p), a : Any[1] | [] ] )) ->map(customScalar | ^ScalarTypeDefinition(name = $customScalar)) } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInputObjectTypeDefinition(c: Class[1]): TypeSystemDefinition[*] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInputObjectTypeDefinition(c: Class[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): TypeSystemDefinition[*] { let props = $c->hierarchicalAllProperties()->filter(p | $p->isValidPropertyForGraphQL()); - let nonBuiltInScalars = $props->buildNonBuiltInGraphQLScalars(); + let nonBuiltInScalars = $props->buildNonBuiltInGraphQLScalars($pureTypeToGraphQLScalarOverride); let temporalStereotypes = $c->getTemporalStereotypes(); $nonBuiltInScalars @@ -207,15 +209,15 @@ function <> meta::external::query::graphQL::binding::fromPure::s ^InputValueDefinition ( name = $p.name->toOne(), - type = buildInputTypeCompatibleTypeReference($p.genericType, $p.multiplicity) + type = buildInputTypeCompatibleTypeReference($p.genericType, $p.multiplicity, $pureTypeToGraphQLScalarOverride) )) )); } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeDefinition(c: Class[1], isExtended: Boolean[1]): TypeSystemDefinition[*] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeDefinition(c: Class[1], isExtended: Boolean[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): TypeSystemDefinition[*] { let props = $c->hierarchicalAllProperties()->filter(p | $p->isValidPropertyForGraphQL()); - let nonBuiltInScalars = $props->buildNonBuiltInGraphQLScalars(); + let nonBuiltInScalars = $props->buildNonBuiltInGraphQLScalars($pureTypeToGraphQLScalarOverride); let temporalStereotypes = $c->getTemporalStereotypes(); $nonBuiltInScalars @@ -229,7 +231,7 @@ function <> meta::external::query::graphQL::binding::fromPure::s ^FieldDefinition ( name = $p.name->toOne(), - type = buildObjectTypeCompatibleTypeReference($p->functionReturnType(), $p->functionReturnMultiplicity()), + type = buildObjectTypeCompatibleTypeReference($p->functionReturnType(), $p->functionReturnMultiplicity(), $pureTypeToGraphQLScalarOverride), argumentDefinitions = if ($p->instanceOf(QualifiedProperty), | @@ -237,7 +239,7 @@ function <> meta::external::query::graphQL::binding::fromPure::s ^InputValueDefinition ( name = $pa.name, - type = buildInputTypeCompatibleTypeReference($pa.genericType, $pa.multiplicity) + type = buildInputTypeCompatibleTypeReference($pa.genericType, $pa.multiplicity, $pureTypeToGraphQLScalarOverride) ) ), | @@ -248,7 +250,7 @@ function <> meta::external::query::graphQL::binding::fromPure::s )); } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInterfaceTypeDefinition(c: Class[1]): TypeSystemDefinition[*] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInterfaceTypeDefinition(c: Class[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): TypeSystemDefinition[*] { let props = $c->hierarchicalAllProperties()->filter(p | $p->isValidPropertyForGraphQL()); @@ -262,24 +264,24 @@ function <> meta::external::query::graphQL::binding::fromPure::s ^FieldDefinition ( name = $p.name->toOne(), - type = buildObjectTypeCompatibleTypeReference($p->functionReturnType(), $p->functionReturnMultiplicity()), + type = buildObjectTypeCompatibleTypeReference($p->functionReturnType(), $p->functionReturnMultiplicity(), $pureTypeToGraphQLScalarOverride), argumentDefinitions = [] ) ) ); } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeCompatibleTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1]): TypeReference[1] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeCompatibleTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): TypeReference[1] { - buildTypeReference($type, $mul, false) + buildTypeReference($type, $mul, false, $pureTypeToGraphQLScalarOverride) } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInputTypeCompatibleTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1]): TypeReference[1] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInputTypeCompatibleTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): TypeReference[1] { - buildTypeReference($type, $mul, true) + buildTypeReference($type, $mul, true, $pureTypeToGraphQLScalarOverride) } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1], forInput: Boolean[1]): TypeReference[1] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1], forInput: Boolean[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): TypeReference[1] { let typeName = if ($type.rawType->toOne()->instanceOf(Class) && $forInput, @@ -287,7 +289,7 @@ function <> meta::external::query::graphQL::binding::fromPure::s // Must create reference to input type toInputTypeName($type.rawType.name->toOne()), | - let primitives = purePrimitivesToGraphQLScalarTypes()->concatenate(purePrimitivesToCustomGraphQLScalarTypes())->newMap(); + let primitives = purePrimitivesToAllGraphQLScalarTypes($pureTypeToGraphQLScalarOverride)->newMap(); let foundPrimitiveName = $primitives->get($type.rawType->toOne()); let fName = if($foundPrimitiveName->isEmpty(), | $type.rawType.name,| $foundPrimitiveName->toOne()); )->toOne(); 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 d4cbbf220c9..cf8bfd71e32 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 @@ -189,6 +189,33 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t 'scalar StrictDate', $res); } +function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testNonBuiltInPrimitiveTypesWithLongForInteger():Boolean[1] +{ + let res = typesToGraphQLString([ClassWithPrimitiveTypes], ^PureTypeToGraphQLScalarOverride(integerScalarType = 'Long')); + + assertEquals( + 'scalar BigDecimal\n' + + '\n' + + 'type ClassWithPrimitiveTypes {\n' + + ' string: String!\n' + + ' integer: Long!\n' + + ' float: Float!\n' + + ' boolean: Boolean!\n' + + ' date: Date!\n' + + ' datetime: DateTime!\n' + + ' decimal: BigDecimal!\n' + + ' strictDate: StrictDate!\n' + + '}\n' + + '\n' + + 'scalar Date\n' + + '\n' + + 'scalar DateTime\n' + + '\n' + + 'scalar Long\n' + + '\n' + + 'scalar StrictDate', $res); +} + function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testNonBuiltInPrimitiveTypesAreNotDuplicated():Boolean[1] { let res = typesToGraphQLString([ClassWithPrimitiveTypes, MutationPrimitive]); @@ -433,7 +460,14 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::typesToGraphQLString(types: PackageableElement[*]): String[1] { - meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL($types) + typesToGraphQLString($types, []); +} + +function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::typesToGraphQLString(types: PackageableElement[*], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): String[1] +{ + let defaultConfig = meta::external::query::graphQL::binding::fromPure::sdl::defaultConfig(); + let updatedConfig = ^$defaultConfig(pureTypeToGraphQLScalarOverride = $pureTypeToGraphQLScalarOverride); + meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL($types, $updatedConfig) ->map(x|$x->meta::external::query::graphQL::serialization::graphQLtoString()) ->joinStrings('\n\n'); -} +} \ 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/introspection/toPure_introspection.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/introspection/toPure_introspection.pure index 328b7e00de1..7820ce02666 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/introspection/toPure_introspection.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/introspection/toPure_introspection.pure @@ -24,7 +24,7 @@ function meta::external::query::graphQL::binding::toPure::introspection::buildPu { let pack = meta::external::query::graphQL::binding::toPure::buildTransientPackageFromString($package); - let simpleTypes = meta::external::query::graphQL::binding::graphQLScalarTypesToPurePrimitives()->newMap(); + let simpleTypes = meta::external::query::graphQL::binding::graphQLScalarTypesToPurePrimitives([])->newMap(); let dispatch = [ pair(__TypeKind.OBJECT, t:__Type[1]| let no = newClass($t.name->toOne()); 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 f434f7e3a40..ec1033874a3 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 @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::external::query::graphQL::binding::*; import meta::external::query::graphQL::binding::toPure::sdl::*; import meta::external::query::graphQL::binding::toPure::sdl::tests::*; @@ -201,6 +202,51 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes $pureTypes); } +function <> meta::external::query::graphQL::binding::toPure::sdl::tests::testNonBuiltInPrimitiveTypesWithLongForInteger():Boolean[1] +{ + let pureTypes = + graphQLToPure( + '#GQL{' + + 'type ClassWithPrimitiveTypes {\n' + + ' string: String!\n' + + ' integer: Long!\n' + + ' float: Float!\n' + + ' boolean: Boolean!\n' + + ' date: Date!\n' + + ' datetime: DateTime!\n' + + ' decimal: BigDecimal!\n' + + ' strictDate: StrictDate!\n' + + '}\n' + + '\n' + + 'scalar Date\n' + + '\n' + + 'scalar DateTime\n' + + '\n' + + 'scalar BigDecimal\n' + + '\n' + + 'scalar Long\n' + + '\n' + + 'scalar StrictDate\n' + + '}#', + 'meta::external::query::graphQL::metamodel::sql', + ^PureTypeToGraphQLScalarOverride(integerScalarType = 'Long') + ); + + assertEquals( + 'Class meta::external::query::graphQL::metamodel::sql::ClassWithPrimitiveTypes\n' + + '{\n' + + ' string : String[1];\n' + + ' integer : Integer[1];\n' + + ' float : Float[1];\n' + + ' boolean : Boolean[1];\n' + + ' date : Date[1];\n' + + ' datetime : DateTime[1];\n' + + ' decimal : Decimal[1];\n' + + ' strictDate : StrictDate[1];\n' + + '}', + $pureTypes); +} + function <> meta::external::query::graphQL::binding::toPure::sdl::tests::testTemporalClass(): Boolean[1] { let pureTypes = @@ -508,10 +554,15 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes } function <> meta::external::query::graphQL::binding::toPure::sdl::tests::graphQLToPure(graphQLDocument: String[1], purePackage: String[1]): String[1] +{ + graphQLToPure($graphQLDocument, $purePackage, []) +} + +function <> meta::external::query::graphQL::binding::toPure::sdl::tests::graphQLToPure(graphQLDocument: String[1], purePackage: String[1], pureTypeToGraphQLScalarOverride: PureTypeToGraphQLScalarOverride[0..1]): String[1] { let sql = meta::legend::compileVS($graphQLDocument)->cast(@meta::external::query::graphQL::metamodel::sdl::Document); - graphQLTypeSystemtoPure($sql->toOne(), $purePackage) + graphQLTypeSystemtoPure($sql->toOne(), $purePackage, $pureTypeToGraphQLScalarOverride) ->sortBy(t | $t->elementToPath()) ->map(t | $t->meta::pure::metamodel::serialization::grammar::printType()) ->joinStrings('\n\n'); 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 fd8eb1cc201..5d0a1115295 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 @@ -7,6 +7,11 @@ import meta::external::query::graphQL::binding::toPure::*; import meta::external::query::graphQL::binding::toPure::sdl::*; function meta::external::query::graphQL::binding::toPure::sdl::graphQLTypeSystemtoPure(doc:Document[1], package:String[1]) : meta::pure::metamodel::type::Type[*] +{ + graphQLTypeSystemtoPure($doc, $package, []); +} + +function meta::external::query::graphQL::binding::toPure::sdl::graphQLTypeSystemtoPure(doc:Document[1], package:String[1], pureTypeToGraphQLScalarOverride:PureTypeToGraphQLScalarOverride[0..1]) : meta::pure::metamodel::type::Type[*] { let pack = buildTransientPackageFromString($package); @@ -33,7 +38,7 @@ function meta::external::query::graphQL::binding::toPure::sdl::graphQLTypeSystem i : InterfaceTypeDefinition[1] | [] ] ) - )->concatenate(graphQLScalarTypesToPurePrimitives())->newMap(); + )->concatenate(graphQLScalarTypesToPurePrimitives($pureTypeToGraphQLScalarOverride))->newMap(); // Pass 1b -- add hierarchy $doc.definitions->map(def| @@ -86,7 +91,7 @@ function meta::external::query::graphQL::binding::toPure::sdl::graphQLTypeSystem )->map(t | pair($t.name->toOne(), $t))->newMap(); // Pass 3 -- deduplicate redundant type definitions and replace corresponding properties - let existingTypesByName = $builtObjectTypesByName->putAll(purePrimitivesToGraphQLScalarTypes()->map(p | pair($p.second, $p.first))->newMap()); + let existingTypesByName = $builtObjectTypesByName->putAll(graphQLScalarTypesToPurePrimitives($pureTypeToGraphQLScalarOverride)->newMap()); let allTypesByName = $existingTypesByName->putAll($builtInputAndOperationTypesByName); let inputAndOperationTypesToAdd = $builtInputAndOperationTypesByName->values() ->cast(@Class) diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/deprecated/generation.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/deprecated/generation.pure index 024e86728ff..536585deed1 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/deprecated/generation.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/deprecated/generation.pure @@ -40,13 +40,13 @@ Class <> meta::external::query::graphQL::generation::GraphQLOutp function <> meta::external::query::graphQL::generation::generateGraphQLScalars(scopeElements: PackageableElement[*]): GraphQLOutput[0..1] { let scalarElements = $scopeElements->meta::external::query::graphQL::binding::fromPure::sdl::findTypes()->map(t|$t->match([ c:Class[1] | $c->meta::pure::functions::meta::allProperties()->map(p|$p->functionReturnType().rawType)->filter( - t| $t->in(meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLScalarTypes().first) + t| $t->in(meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLScalarTypes([]).first) ), e:Enumeration[1] | [] ]))->fold({t,v | $v->concatenate($t)},[])->removeDuplicates(); if($scalarElements->isEmpty(), | [], - | let scalarStringMap = meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLScalarTypes()->newMap(); + | let scalarStringMap = meta::external::query::graphQL::binding::purePrimitivesToCustomGraphQLScalarTypes([])->newMap(); ^GraphQLOutput( content=$scalarElements->map(x|'scalar '+ $scalarStringMap->meta::pure::functions::collection::get($x->toOne())->toOne())->sort()->joinStrings('\n'), fileName='scalars.graphql', @@ -66,7 +66,7 @@ function <> meta::external::query::graphQL::generation::generate function <> meta::external::query::graphQL::generation::generateGraphQLFromPure(config: GraphQLConfig[1], pe: PackageableElement[1]): GraphQLOutput[*] { - let content = meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL([$pe]) + let content = meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL([$pe], meta::external::query::graphQL::binding::fromPure::sdl::defaultConfig()) // filter out scalars as this is handled all together above ->filter(x | ! ($x->instanceOf(meta::external::query::graphQL::metamodel::sdl::typeSystem::ScalarTypeDefinition))) ->map(x|$x->meta::external::query::graphQL::serialization::graphQLtoString()) From b12e0e2fd620b28816e84f39b0e4210f6109c131 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Tue, 12 Dec 2023 14:56:25 -0500 Subject: [PATCH 34/54] Remove Type From native App metamodel (#2504) * 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 * Add exclusions * Move protocols * update dependencies * update dependencies * Uplift Activation * fix test * Add deploymentLocation * fix checkstyle errors * fix checkstyle errors * Cange location url * Remove Application type * Remove Application type * fix dependency * further cleanups * clean up dependencies * fix test * fix test --- .../deployment/DeploymentResult.java | 1 + .../deployment/FunctionActivatorArtifact.java | 3 +++ .../SnowflakeAppDeploymentManager.java | 24 ++++++++----------- .../deployment/SnowflakeDeploymentResult.java | 3 ++- .../SnowflakeAppCompilerExtension.java | 1 - .../generator/SnowflakeAppGenerator.java | 6 +++-- .../pom.xml | 4 ---- .../from/antlr4/SnowflakeAppLexerGrammar.g4 | 1 - .../from/antlr4/SnowflakeAppParserGrammar.g4 | 4 ---- .../grammar/from/SnowflakeAppTreeWalker.java | 14 ----------- .../to/SnowflakeAppGrammarComposer.java | 1 - .../test/TestSnowflakeAppRoundtrip.java | 1 - .../grammar/test/TestSnowflakeParsing.java | 2 +- .../pom.xml | 5 ++++ .../deployment/SnowflakeAppArtifact.java | 3 ++- .../deployment/SnowflakeAppContent.java | 8 +++---- .../snowflakeApp/metamodel/SnowflakeApp.java | 8 ++----- .../metamodel/SnowflakeAppType.java | 20 ---------------- .../metamodel/metamodel.pure | 5 ---- 19 files changed, 33 insertions(+), 81 deletions(-) delete mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppType.java diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/DeploymentResult.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/DeploymentResult.java index f63aa8f8b95..c6b6fa25b2c 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/DeploymentResult.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/DeploymentResult.java @@ -18,4 +18,5 @@ public class DeploymentResult { public String activatorIdentifier; public boolean successful; + public String deploymentLocation; } diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/FunctionActivatorArtifact.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/FunctionActivatorArtifact.java index c16fee7c2c2..e811e5ee046 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/FunctionActivatorArtifact.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/deployment/FunctionActivatorArtifact.java @@ -14,11 +14,14 @@ package org.finos.legend.engine.protocol.functionActivator.deployment; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonTypeInfo; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "_type") +@JsonIgnoreProperties(ignoreUnknown = true) public class FunctionActivatorArtifact { public FunctionActivatorDeploymentContent content; public FunctionActivatorDeploymentConfiguration deploymentConfiguration; + public String deployedLocation; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java index b003814bd66..715ed4692b9 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java @@ -54,6 +54,13 @@ public class SnowflakeAppDeploymentManager implements DeploymentManager generateStatements(String catalogName, SnowflakeAppContent content) { MutableList statements = Lists.mutable.empty(); - if (content.type.equals("STAGE")) - { - String deploymentTableName = String.format("%s.%s." + deploymentTable, catalogName, deploymentSchema); - statements.add(String.format("insert into %s(CREATE_DATETIME, APP_NAME, SQL_FRAGMENT, VERSION_NUMBER, OWNER, DESCRIPTION) values('%s', '%s', '%s', '%s', '%s', '%s');", - deploymentTableName, content.creationTime, content.applicationName, content.sqlExpressions.getFirst(), content.getVersionInfo(), Lists.mutable.withAll(content.owners).makeString(","), content.description)); - - } - else - { - statements.add(String.format("CREATE OR REPLACE FUNCTION %S.%S.%s() RETURNS TABLE (%s) as $$ %s $$;", catalogName, deploymentSchema, content.applicationName, content.functionArguments, content.sqlExpressions.getFirst(), content.description)); - statements.add(String.format("CREATE OR REPLACE SECURE FUNCTION %S.%S.%s() RETURNS TABLE (%s) as $$ %s $$;", catalogName, deploymentSchema, content.applicationName, content.functionArguments, content.sqlExpressions.getFirst(), content.description)); - } + statements.add(String.format("CREATE OR REPLACE SECURE FUNCTION %S.%S.%s() RETURNS TABLE (%s) as $$ %s $$;", catalogName, deploymentSchema, content.applicationName, content.functionArguments, content.sqlExpressions.getFirst(), content.description)); return statements; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java index 8bfc1a49de6..e8fe931d241 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java @@ -22,10 +22,11 @@ public class SnowflakeDeploymentResult extends DeploymentResult public MutableList errors; - public SnowflakeDeploymentResult(String activatorIdentifier, boolean result) + public SnowflakeDeploymentResult(String activatorIdentifier, boolean result, String deploymentLocation) { this.successful = result; this.activatorIdentifier = activatorIdentifier; + this.deploymentLocation = deploymentLocation; } public SnowflakeDeploymentResult(MutableList errors) 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 da0d044e18c..ee7e8082f4b 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 @@ -63,7 +63,6 @@ public Root_meta_external_function_activator_snowflakeApp_SnowflakeApp buildSnow ._function(func) ._description(app.description) ._owner(app.owner) - ._type(app.type != null ? context.pureModel.getEnumValue("meta::external::function::activator::snowflakeApp::SnowflakeDeploymentType", app.type.toString()) : context.pureModel.getEnumValue("meta::external::function::activator::snowflakeApp::SnowflakeDeploymentType", "FULL")) ._activationConfiguration(app.activationConfiguration != null ? buildDeploymentConfig((SnowflakeAppDeploymentConfiguration) app.activationConfiguration, context) : null); } catch (Exception e) diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java index aa7e4335e97..ec1687597bb 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java @@ -58,7 +58,7 @@ public static SnowflakeAppArtifact generateArtifact(PureModel pureModel, Root_me sdlc = (AlloySDLC) sdlcInfo; } } - SnowflakeAppContent content = new SnowflakeAppContent(activator._applicationName(), Lists.mutable.withAll(sqlExpressions), activator._description(), functionColumns, activator._type()._name(), Lists.mutable.with(activator._owner()), sdlc); + SnowflakeAppContent content = new SnowflakeAppContent(activator._applicationName(), Lists.mutable.withAll(sqlExpressions), activator._description(), functionColumns, Lists.mutable.with(activator._owner()), sdlc); if (activator._activationConfiguration() != null) { //identify connection @@ -67,7 +67,9 @@ public static SnowflakeAppArtifact generateArtifact(PureModel pureModel, Root_me .getFirst(); connection = (RelationalDatabaseConnection) Lists.mutable.withAll(((PureModelContextData) inputModel).getElementsOfType(PackageableConnection.class)) .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)); + SnowflakeDatasourceSpecification ds = (SnowflakeDatasourceSpecification)connection.datasourceSpecification; + String deployedLocation = String.format("https://app.%s.privatelink.snowflakecomputing.com/%s/%s/data/databases/%S", ds.region, ds.region, ds.accountName, ds.databaseName); + return new SnowflakeAppArtifact(content, new SnowflakeAppDeploymentConfiguration(connection), deployedLocation); } return new SnowflakeAppArtifact(content); 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 33666980e0e..d7a4e6c3ce9 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 @@ -120,10 +120,6 @@ org.finos.legend.engine legend-engine-protocol-pure - - org.finos.legend.engine - legend-engine-shared-core - diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppLexerGrammar.g4 b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppLexerGrammar.g4 index 180679616ee..8a1eb1451c6 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppLexerGrammar.g4 +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppLexerGrammar.g4 @@ -7,7 +7,6 @@ SNOWFLAKE_APP__APPLICATION_NAME: 'applicationName'; SNOWFLAKE_APP__DESCRIPTION: 'description'; SNOWFLAKE_APP__FUNCTION: 'function'; SNOWFLAKE_APP__OWNER: 'owner'; -SNOWFLAKE_APP__TYPE: 'type'; SNOWFLAKE_APP__ACTIVATION: 'activationConfiguration'; // ------------------------------------- CONFIGURATION ------------------------------- 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 666e316e235..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 @@ -13,7 +13,6 @@ identifier: VALID_STRING | STRING | SNOWFLAKE_APP__DESCRIPTION | SNOWFLAKE_APP__FUNCTION | SNOWFLAKE_APP__OWNER | - SNOWFLAKE_APP__TYPE | SNOWFLAKE_APP__ACTIVATION| CONFIGURATION| DEPLOYMENT_STAGE | ACTIVATION_CONNECTION | @@ -35,7 +34,6 @@ snowflakeApp: SNOWFLAKE_APP stereotypes? taggedValues? qualifi | description | function | owner - | type | activation )* BRACE_CLOSE; @@ -53,8 +51,6 @@ function: SNOWFLAKE_APP__FUNCTION COLON functionIdentifier owner : SNOWFLAKE_APP__OWNER COLON STRING SEMI_COLON; -type : SNOWFLAKE_APP__TYPE COLON identifier SEMI_COLON; - activation: SNOWFLAKE_APP__ACTIVATION COLON qualifiedName SEMI_COLON ; // ----------------------------------- Deployment ------------------------------------------------------ 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 a733f04b428..354971d2fe4 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 @@ -31,7 +31,6 @@ 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.SnowflakeAppDeploymentConfiguration; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppType; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import java.util.Collections; @@ -83,19 +82,6 @@ private SnowflakeApp visitSnowflakeApp(SnowflakeAppParserGrammar.SnowflakeAppCon { snowflakeApp.owner = PureGrammarParserUtility.fromGrammarString(ownerContext.STRING().getText(), true); } - SnowflakeAppParserGrammar.TypeContext typeContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.type(), "type", snowflakeApp.sourceInformation); - if (typeContext != null) - { - try - { - snowflakeApp.type = SnowflakeAppType.valueOf(PureGrammarParserUtility.fromIdentifier(typeContext.identifier())); - } - catch (Exception e) - { - throw new EngineException("Unknown type '" + PureGrammarParserUtility.fromIdentifier(typeContext.identifier()) + "'", this.walkerSourceInformation.getSourceInformation(typeContext), EngineErrorType.PARSER); - } - } - SnowflakeAppParserGrammar.DescriptionContext descriptionContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.description(), "description", snowflakeApp.sourceInformation); if (descriptionContext != null) { 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 4d7ece0c413..8ca5f4d8c93 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 @@ -54,7 +54,6 @@ private static String renderSnowflakeApp(SnowflakeApp app) " function : " + app.function.path + ";\n" + (app.owner == null ? "" : " owner : '" + app.owner + "';\n") + (app.description == null ? "" : " description : '" + app.description + "';\n") + - (app.type == null ? "" : " type : " + app.type.name() + ";\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 a733a083c52..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,7 +29,6 @@ public void testSnowflakeApp() " function : zxx(Integer[1]):String[1];\n" + " owner : 'pierre';\n" + " description : 'A super nice app!';\n" + - " type : STAGE;\n" + " activationConfiguration : a::b::connection;\n" + "}\n"); } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeParsing.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeParsing.java index 2beafe81dc7..1edd7bbe4f7 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeParsing.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeParsing.java @@ -48,7 +48,7 @@ public void testGetParserErrorWrongProperty() "SnowflakeApp x::A\n" + "{\n" + " applicatioName : 'sass';\n" + - "}\n", "PARSER error at [4:4-17]: Unexpected token 'applicatioName'. Valid alternatives: ['applicationName', 'description', 'function', 'owner', 'type', 'activationConfiguration']"); + "}\n", "PARSER error at [4:4-17]: Unexpected token 'applicatioName'. Valid alternatives: ['applicationName', 'description', 'function', 'owner', 'activationConfiguration']"); } @Test 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 6e792d44b61..2ad4998914d 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 @@ -44,6 +44,11 @@ eclipse-collections-api + + com.fasterxml.jackson.core + jackson-annotations + + junit diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppArtifact.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppArtifact.java index 3115f9b154c..21281c83514 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppArtifact.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppArtifact.java @@ -29,10 +29,11 @@ public SnowflakeAppArtifact(SnowflakeAppContent content) this.content = content; } - public SnowflakeAppArtifact(SnowflakeAppContent content, SnowflakeAppDeploymentConfiguration config) + public SnowflakeAppArtifact(SnowflakeAppContent content, SnowflakeAppDeploymentConfiguration config, String deployedLocation) { this(content); this.deploymentConfiguration = config; + this.deployedLocation = deployedLocation; } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppContent.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppContent.java index 6bbe1c1b9db..35ef6ff4ad7 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppContent.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/deployment/SnowflakeAppContent.java @@ -27,7 +27,6 @@ public class SnowflakeAppContent extends FunctionActivatorDeploymentContent { public MutableList sqlExpressions = Lists.mutable.empty(); public String functionArguments; - public String type; public String applicationName; public String description; public List owners; @@ -41,13 +40,12 @@ public SnowflakeAppContent() //Empty constructor for Jackson } - public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, String functionArguments, String type, AlloySDLC sdlc) + public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, String functionArguments, AlloySDLC sdlc) { this.applicationName = applicationName; this.sqlExpressions = sqlExpressions; this.creationTime = convertToValidDate(new Date()); this.functionArguments = functionArguments; - this.type = type; if (sdlc != null) { this.groupId = sdlc.groupId; @@ -56,9 +54,9 @@ public SnowflakeAppContent(String applicationName, MutableList sqlExpres } } - public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, String description, String functionArguments, String type,List owners, AlloySDLC sdlc) + public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, String description, String functionArguments, List owners, AlloySDLC sdlc) { - this(applicationName, sqlExpressions, functionArguments, type, sdlc); + this(applicationName, sqlExpressions, functionArguments, sdlc); this.description = description; this.owners = owners; diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeApp.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeApp.java index 7c0aedc93a4..b0547a4b2d2 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeApp.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeApp.java @@ -14,21 +14,17 @@ package org.finos.legend.engine.protocol.snowflakeApp.metamodel; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.StereotypePtr; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.TaggedValue; -import java.util.Collections; -import java.util.List; //------------------------------------------------------------ // Should be generated out of the Pure protocol specification //------------------------------------------------------------ +@JsonIgnoreProperties(ignoreUnknown = true) public class SnowflakeApp extends FunctionActivator { public String applicationName; public String description; public String owner; - public SnowflakeAppType type; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppType.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppType.java deleted file mode 100644 index f362f5f1674..00000000000 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppType.java +++ /dev/null @@ -1,20 +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.engine.protocol.snowflakeApp.metamodel; - -public enum SnowflakeAppType -{ - STAGE, FULL -} 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 eec22e2b59d..da4b584f68a 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 @@ -6,7 +6,6 @@ Class meta::external::function::activator::snowflakeApp::SnowflakeApp extends Fu applicationName : String[1]; description : String[0..1]; owner : String[0..1]; - type: SnowflakeDeploymentType[0..1] ;//default to full } Class meta::external::function::activator::snowflakeApp::SnowflakeDeploymentConfiguration extends DeploymentConfiguration @@ -19,10 +18,6 @@ Class meta::external::function::activator::snowflakeApp::SnowflakeApp extends Fu } -Enum meta::external::function::activator::snowflakeApp::SnowflakeDeploymentType -{ - STAGE, FULL -} // 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 From 08d6a94f57a9b1b36f36339213f0a1522281f154 Mon Sep 17 00:00:00 2001 From: Sai Sriharsha Annepu <72639930+gs-ssh16@users.noreply.github.com> Date: Wed, 13 Dec 2023 23:47:16 +0530 Subject: [PATCH 35/54] Fix issues with relational graph fetch on inner join filter class mappings (#2505) --- ...etchParallel_UsingPureClientTestSuite.java | 1 + ...t_Relational_UsingPureClientTestSuite.java | 1 + .../graphFetch/relationalGraphFetch.pure | 41 ++++-- ...hFetchClassMappingFilterWithInnerJoin.pure | 137 ++++++++++++++++++ .../pureToSQLQuery/pureToSQLQuery.pure | 6 +- .../relationalMappingExecution.pure | 2 +- 6 files changed, 170 insertions(+), 18 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchClassMappingFilterWithInnerJoin.pure diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java index 9fb094570ed..9d793b53f7e 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java @@ -39,6 +39,7 @@ public static Test suite() throws Exception suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::qualifier", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::chain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::crossDatabase", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java index b2b851a4ced..ef01b6c5515 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java @@ -73,6 +73,7 @@ public static Test suite() throws Exception suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::qualifier", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::chain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::crossDatabase", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); 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 6ef8500a1a5..f06904913d3 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 @@ -749,7 +749,7 @@ function <> meta::relational::graphFetch::executionPlan::generat }); } -function <> meta::relational::graphFetch::executionPlan::generatePrimitivePropertyQuery(setImpls: RelationalInstanceSetImplementation[*], propTree: RoutedPropertyGraphFetchTree[1], parentTree: GraphFetchTree[1], mapping:Mapping[1], inScopeVars: Map>[1], mc: TemporalMilestoningContext[0..1], debug: DebugContext[1], exeCtx:ExecutionContext[1], extensions:Extension[*]):SelectSQLQuery[1] +function <> meta::relational::graphFetch::executionPlan::buildBaseQueryForChild(setImpls: RelationalInstanceSetImplementation[*], pureToSqlState: State[1], mc: TemporalMilestoningContext[0..1], extensions: Extension[*], debug: DebugContext[1]):SelectWithCursor[1] { let isQualified = $propTree.property->instanceOf(QualifiedProperty); let pureToSqlState = defaultState($mapping, $inScopeVars, $exeCtx, $extensions); @@ -758,10 +758,31 @@ function <> meta::relational::graphFetch::executionPlan::generat s:EmbeddedRelationalInstanceSetImplementation[1] | $s.setMappingOwner; ])->cast(@RootRelationalInstanceSetImplementation); - let mainTable = $srcSetImpl->mainRelation()->processRelation([], '', false, 0, false, [], $pureToSqlState, $debug, $extensions); - 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 mainTable = $srcSetImpl->mainRelation()->processRelation([], '', false, 0, false, [], $pureToSqlState, $debug, $extensions); + let innerFilterExists = $srcSetImpl->getFilter().joinTreeNode.joinType == JoinType.INNER; + let rootRelElement = if ($innerFilterExists, + | // Create subquery with inner join filter + getRelationalElementWithInnerJoin($srcSetImpl, $mainTable, '_gftm', $pureToSqlState, $debug, $extensions), + | $mainTable + ); + let currentNode = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $rootRelElement)); + let base = ^SelectWithCursor(select = ^SelectSQLQuery(data = $currentNode), currentTreeNode = $currentNode, milestoningContext = $mc); + let baseWithFilter = if ($innerFilterExists, + | // Subquery with filter would have been generated before + $base, + | $base->applyTypeFilter($srcSetImpl, '_gftm', $pureToSqlState, $debug, $extensions) + ); + + ^$baseWithFilter( + select = $baseWithFilter.select->pushFilters($extensions) + ); +} + +function <> meta::relational::graphFetch::executionPlan::generatePrimitivePropertyQuery(setImpls: RelationalInstanceSetImplementation[*], propTree: RoutedPropertyGraphFetchTree[1], parentTree: GraphFetchTree[1], mapping:Mapping[1], inScopeVars: Map>[1], mc: TemporalMilestoningContext[0..1], debug: DebugContext[1], extensions:Extension[*]):SelectSQLQuery[1] +{ + let isQualified = $propTree.property->instanceOf(QualifiedProperty); + let pureToSqlState = defaultState($mapping, $inScopeVars); + let base = $setImpls->buildBaseQueryForChild($pureToSqlState, $mc, $extensions, $debug); let res = if ($isQualified, {| @@ -781,15 +802,7 @@ function meta::relational::graphFetch::executionPlan::generateNonPrimitiveProper { let isQualified = $propTree.property->instanceOf(QualifiedProperty); let pureToSqlState = ^State(inScopeVars = $inScopeVars, mapping=$mapping, supportedFunctions=getSupportedFunctions(), inProject=false, inFilter=false, filterChainDepth=0, inProjectFunctions=false, processingProjectionThread=false, shouldIsolate=false, contextBasedSupportedFunctions=getContextBasedSupportedFunctions()); - let srcSetImpl = $setImpls->match([ - s:RootRelationalInstanceSetImplementation[1] | $s, - s:EmbeddedRelationalInstanceSetImplementation[1] | $s.setMappingOwner; - ])->cast(@RootRelationalInstanceSetImplementation); - - let mainTable = $srcSetImpl->mainRelation()->processRelation([], '', false, 0, false, [], $pureToSqlState, $debug, $extensions); - 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 base = $setImpls->buildBaseQueryForChild($pureToSqlState, $mc, $extensions, $debug); let res = if ($isQualified, {| 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/testGraphFetchClassMappingFilterWithInnerJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchClassMappingFilterWithInnerJoin.pure new file mode 100644 index 00000000000..5d5005d500e --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchClassMappingFilterWithInnerJoin.pure @@ -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. + +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::classMappingFilterWithInnerJoin::setup(): Boolean[1] +{ + meta::relational::tests::mapping::classMappingFilterWithInnerJoin::setUp(); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin::testFlatGraphFetch(): Boolean[1] +{ + let tree = #{ + Person { + firstName + } + }#; + let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::baseMappingWithInnerJoinInFilter; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"firstName":"Peter"},{"firstName":"John"},{"firstName":"John"},{"firstName":"Anthony"}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin::testFlatGraphFetchWithJoin(): Boolean[1] +{ + let tree = #{ + Person { + firstName, + lastName, + age + } + }#; + let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::mappingWithInnerJoinInFilter; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"firstName":"Peter","lastName":"Firm X","age":23},{"firstName":"John","lastName":"Firm X","age":22},' + + '{"firstName":"John","lastName":"Firm X","age":12},{"firstName":"Anthony","lastName":"Firm X","age":22}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin::testNestedGraphFetch(): Boolean[1] +{ + let tree = #{ + Person { + firstName, + lastName, + firm { + legalName + } + } + }#; + let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::classOwnedMappingWithInnerJoinInFilter; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"firstName":"Peter","lastName":"Firm X","firm":{"legalName": "Firm X"}},{"firstName":"John","lastName":"Firm X","firm":{"legalName": "Firm X"}},' + + '{"firstName":"John","lastName":"Firm X","firm":{"legalName": "Firm X"}},{"firstName":"Anthony","lastName":"Firm X","firm":{"legalName": "Firm X"}}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin::testGraphFetchWithPrimitiveQualifier(): Boolean[1] +{ + let tree = #{ + Person { + firstName, + lastName, + 'nameWithTitle': nameWithTitle('Mr') + } + }#; + let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::classOwnedMappingWithInnerJoinInFilter; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"firstName":"Peter","lastName":"Firm X","nameWithTitle":"Mr Peter Firm X"},' + + '{"firstName":"John","lastName":"Firm X","nameWithTitle":"Mr John Firm X"},' + + '{"firstName":"John","lastName":"Firm X","nameWithTitle":"Mr John Firm X"},' + + '{"firstName":"Anthony","lastName":"Firm X","nameWithTitle":"Mr Anthony Firm X"}]', + $result + ); +} + +function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin::testInnerJoinFilterClassMappingAsTarget(): Boolean[1] +{ + let tree = #{ + Firm { + legalName, + employees { + firstName, + lastName + } + } + }#; + let query = {|Firm.all()->graphFetch($tree)->serialize($tree)}; + let mapping = meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::classOwnedMappingWithInnerJoinInFilter; + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; + + assertJsonStringsEqual( + '[{"legalName":"Firm X","employees":[{"firstName":"Peter","lastName":"Firm X"},{"firstName":"John","lastName":"Firm X"},{"firstName":"John","lastName":"Firm X"},{"firstName":"Anthony","lastName":"Firm X"}]},' + + '{"legalName":"Firm A","employees":[]},{"legalName":"Firm B","employees":[]},{"legalName":"Firm C","employees":[]}]', + $result + ); +} 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 c9f277d97df..04555ea8276 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 @@ -1425,7 +1425,7 @@ function meta::relational::functions::pureToSqlQuery::replaceTreeNodeRelationalE function meta::relational::functions::pureToSqlQuery::processClassMappingInnerJoinFilter(queryWithJoin:SelectWithCursor[1], setImplementation:RootRelationalInstanceSetImplementation[1], c:Class[1], base:SelectWithCursor[1], nodeId:String[1], state:State[1], context:DebugContext[1], extensions:Extension[*]):SelectWithCursor[1] { let ctn = $queryWithJoin.currentTreeNode->toOne()->cast(@JoinTreeNode); - let filteredClassQuery = getRelationalElementWithInnerJoin($setImplementation, $ctn.alias.relationalElement, $c, $nodeId, $state, $context, $extensions); + let filteredClassQuery = getRelationalElementWithInnerJoin($setImplementation, $ctn.alias.relationalElement, $nodeId, $state, $context, $extensions); let newCtn = $ctn->replaceTreeNodeRelationalElement($filteredClassQuery, true, $extensions); let updatedQuery = $queryWithJoin->replaceTreeNodeAndUpdatePointersInSwc($ctn, $newCtn); @@ -3468,7 +3468,7 @@ function meta::relational::functions::pureToSqlQuery::removeQuotes(s:String[1]): if ($s->startsWith('"'),|$s->substring(1,$s->length()-1),|$s); } -function meta::relational::functions::pureToSqlQuery::getRelationalElementWithInnerJoin(viewSpecification:RelationalMappingSpecification[1], mainTable: RelationalOperationElement[1], c:Class[0..1], nodeId:String[1], state:State[1], context:DebugContext[1], extensions:Extension[*]):SelectSQLQuery[1] +function meta::relational::functions::pureToSqlQuery::getRelationalElementWithInnerJoin(viewSpecification:RelationalMappingSpecification[1], mainTable: RelationalOperationElement[1], nodeId:String[1], state:State[1], context:DebugContext[1], extensions:Extension[*]):SelectSQLQuery[1] { let innerQueryRoot = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $mainTable)); let innerQueryBase = ^SelectWithCursor(select = ^SelectSQLQuery(data = $innerQueryRoot), currentTreeNode = $innerQueryRoot); @@ -3494,7 +3494,7 @@ function meta::relational::functions::pureToSqlQuery::processRelationalMappingSp let mainTable = $viewSpecification->mainRelation()->processRelation($c, $nodeId, $addPk, $pkOffset, $addAllColumns, $milestoningContext, $state, $context, $extensions); let innerJoinFilterExists = $viewSpecification->getFilter().joinTreeNode.joinType == JoinType.INNER; let currentRelationalElement = if ($innerJoinFilterExists, - | getRelationalElementWithInnerJoin($viewSpecification, $mainTable, $c, $nodeId, $state, $context, $extensions), + | getRelationalElementWithInnerJoin($viewSpecification, $mainTable, $nodeId, $state, $context, $extensions), | $mainTable ); let currentNode = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $currentRelationalElement)); 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 ac5a3d620df..7a5946aed86 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 @@ -626,7 +626,7 @@ function meta::relational::mapping::generatePropertySql(setImplementation: Relat let innerJoinFilterExists = $srcSetImplementation->getFilter().joinTreeNode.joinType == JoinType.INNER; let updatedMainTable = if ($innerJoinFilterExists, - | getRelationalElementWithInnerJoin($srcSetImplementation, $mainTable, [], '', $state, $context, $extensions), + | getRelationalElementWithInnerJoin($srcSetImplementation, $mainTable, '', $state, $context, $extensions), | $mainTable ); From e0c5c03bc9572d055072f8da0d3b482e0628c404 Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:41:27 -0500 Subject: [PATCH 36/54] Fix typo on property DatabasePattern.escapeTablePattern (#2507) --- .../connection/api/schema/model/DatabasePattern.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/api/schema/model/DatabasePattern.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/api/schema/model/DatabasePattern.java index 4afacd3ec4a..028d8f35b65 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/api/schema/model/DatabasePattern.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/api/schema/model/DatabasePattern.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.plan.execution.stores.relational.connection.api.schema.model; +import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -28,8 +29,7 @@ public class DatabasePattern private final boolean escapeSchemaPattern; - private final boolean escapteTablePattern; - + private final boolean escapeTablePattern; @JsonCreator public DatabasePattern( @@ -37,14 +37,14 @@ public DatabasePattern( @JsonProperty("schemaPattern") String schemaPattern, @JsonProperty("tablePattern") String tablePattern, @JsonProperty("escapeSchemaPattern") boolean escapeSchemaPattern, - @JsonProperty("escapteTablePattern") boolean escapeTablePattern + @JsonProperty("escapeTablePattern") @JsonAlias("escapteTablePattern") boolean escapeTablePattern ) { this.catalog = catalog; this.schemaPattern = schemaPattern; this.tablePattern = tablePattern; this.escapeSchemaPattern = escapeSchemaPattern; - this.escapteTablePattern = escapeTablePattern; + this.escapeTablePattern = escapeTablePattern; } public DatabasePattern(String schemaPattern, String tablePattern, boolean escapeSchemaPattern, boolean escapeTablePattern) @@ -85,12 +85,12 @@ public boolean isEscapeSchemaPattern() public boolean isEscapeTablePattern() { - return escapteTablePattern; + return escapeTablePattern; } public DatabasePattern withNewCatalog(String catalog) { - return new DatabasePattern(catalog, this.schemaPattern, this.tablePattern, this.escapeSchemaPattern, this.escapteTablePattern); + return new DatabasePattern(catalog, this.schemaPattern, this.tablePattern, this.escapeSchemaPattern, this.escapeTablePattern); } } From 876b9725e96243b60531b361f08174e0bcfc4911 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Fri, 15 Dec 2023 16:26:34 +0000 Subject: [PATCH 37/54] memsql - Assortment of function translations (#2510) * memsql assortment of function translations --- .../sqlQueryToString/memSQLExtension.pure | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 4b60f726428..7fea40450ee 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 @@ -79,7 +79,8 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('adjust', $allStates, ^ToSql(format='adddate(%s)', transform={p:String[3] | $p->at(0) + ', INTERVAL ' + $p->at(1) + ' ' + $p->at(2)->mapToDBUnitType()})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), - dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), + dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), 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)')), @@ -97,10 +98,16 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='subdate(curdate(), INTERVAL dayofmonth(current_date()) - 1 DAY) ')), dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='adddate(subdate(curdate(), INTERVAL dayofyear(current_date()) - 1 DAY), INTERVAL (quarter(curdate()) -1) QUARTER)')), dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='subdate(curdate(), INTERVAL dayofyear(current_date()) - 1 DAY)')), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date_trunc(\'week\', %s)')), dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='subdate(%s, INTERVAL dayofyear(%s) - 1 DAY)', transform={p:String[1] | $p->repeat(2)})), + 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('joinStrings', $allStates, ^ToSql(format='group_concat(%s separator %s)')), + dynaFnToSql('left', $allStates, ^ToSql(format='left(%s, %s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), @@ -116,9 +123,13 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='adddate(%s, INTERVAL case when %s - dayofweek(%s) >= 0 then %s - dayofweek(%s) - 7 else %s - dayofweek(%s) end DAY)', transform={p:String[1..2] | $p->formatMostRecentMemSQL('curdate()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), + dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s, %s)')), + dynaFnToSql('repeatString', $allStates, ^ToSql(format='%s', transform={p:String[2] | 'lpad(\'\', length(' + $p->at(0) + ') * ' + $p->at(1) + ', ' + $p->at(0) + ')'})), + dynaFnToSql('right', $allStates, ^ToSql(format='right(%s, %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('rtrim', $allStates, ^ToSql(format='rtrim(%s)')), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), + dynaFnToSql('sha256', $allStates, ^ToSql(format='sha2(%s, 256)')), 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)')), From 0136aada092d654b68b90da5294734024561261e Mon Sep 17 00:00:00 2001 From: Mauricio Uyaguari Date: Fri, 15 Dec 2023 15:27:00 -0500 Subject: [PATCH 38/54] basic function test support (#2501) --- .../legend-engine-server/pom.xml | 5 + .../toPureGraph/HelperFunctionBuilder.java | 150 ++++++++ .../toPureGraph/HelperMappingBuilder.java | 57 +-- .../PackageableElementFourthPassBuilder.java | 9 +- .../PackageableElementSecondPassBuilder.java | 4 +- .../pure/compiler/toPureGraph/PureModel.java | 2 + .../toPureGraph/test/TestBuilderHelper.java | 70 ++++ .../validator/FunctionValidator.java | 103 ++++++ .../TestFunctionCompilationFromGrammar.java | 342 ++++++++++++++++++ .../TestMappingCompilationFromGrammar.java | 2 +- .../api/test/TestGrammarToJsonApi.java | 2 +- .../from/antlr4/domain/DomainLexerGrammar.g4 | 6 + .../from/antlr4/domain/DomainParserGrammar.g4 | 44 ++- .../from/domain/DomainParseTreeWalker.java | 82 +++++ .../DEPRECATED_PureGrammarComposerCore.java | 4 +- .../to/HelperDomainGrammarComposer.java | 111 +++++- .../roundtrip/TestDomainGrammarRoundtrip.java | 130 +++++++ .../pure/v1/CorePureProtocolExtension.java | 7 +- .../packageableElement/domain/Function.java | 2 + .../function/ConnectionTestData.java | 25 ++ .../function/FunctionTest.java | 26 ++ .../function/FunctionTestSuite.java | 29 ++ .../function/StoreTestData.java | 34 ++ .../pom.xml | 175 +++++++++ .../extension/FunctionTestRunner.java | 289 +++++++++++++++ .../extension/FunctionTestRunnerContext.java | 115 ++++++ .../FunctionTestableRunnerExtension.java | 45 +++ ...testable.extension.TestableRunnerExtension | 1 + .../function/TestFunctionTestSuite.java | 189 ++++++++++ ...gend-testable-function-test-model-m2m.pure | 99 +++++ ...stable-function-test-model-relational.pure | 263 ++++++++++++++ .../legend-testable-function-test-model.pure | 43 +++ .../legend-engine-core-test/pom.xml | 1 + .../core/pure/function/metamodel.pure | 127 +++++++ .../resources/core/pure/test/diagram.pure | 42 +-- .../ServiceCompilerExtensionImpl.java | 4 +- .../TestServiceCompilationFromGrammar.java | 4 +- pom.xml | 5 + 38 files changed, 2562 insertions(+), 86 deletions(-) create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperFunctionBuilder.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/test/TestBuilderHelper.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/validator/FunctionValidator.java create mode 100644 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/TestFunctionCompilationFromGrammar.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/function/ConnectionTestData.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/function/FunctionTest.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/function/FunctionTestSuite.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/function/StoreTestData.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunner.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunnerContext.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestableRunnerExtension.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/resources/META-INF/services/org.finos.legend.engine.testable.extension.TestableRunnerExtension create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/java/org/finos/legend/engine/testable/function/TestFunctionTestSuite.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-m2m.pure create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-relational.pure create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/function/metamodel.pure diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 39f78ba9a37..92cde0224ef 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -994,6 +994,11 @@ legend-engine-test-runner-mapping runtime + + org.finos.legend.engine + legend-engine-test-runner-function + 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/HelperFunctionBuilder.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/HelperFunctionBuilder.java new file mode 100644 index 00000000000..1546c73110a --- /dev/null +++ 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/HelperFunctionBuilder.java @@ -0,0 +1,150 @@ +// 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.compiler.toPureGraph; + +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.language.pure.compiler.toPureGraph.data.EmbeddedDataFirstPassBuilder; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.test.TestBuilderHelper; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.test.assertion.TestAssertionFirstPassBuilder; +import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Function; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.ParameterValue; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTest; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.StoreTestData; +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_external_store_model_ModelStore_Impl; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTest; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTestSuite; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTestSuite_Impl; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTest_Impl; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_ParameterValue; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_ParameterValue_Impl; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_StoreTestData; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_StoreTestData_Impl; +import org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; + +public class HelperFunctionBuilder +{ + public static void processFunctionSuites(Function func, ConcreteFunctionDefinition metamodelFunction, CompileContext compileContext, ProcessingContext ctx) + { + if (func.tests != null && !func.tests.isEmpty()) + { + TestBuilderHelper.validateTestSuiteIdsList(func.tests, func.sourceInformation); + metamodelFunction._tests(ListIterate.collect(func.tests, suite -> buildFunctionTestSuites(metamodelFunction, suite, compileContext, ctx))); + } + } + + static org.finos.legend.pure.m3.coreinstance.meta.pure.test.Test buildFunctionTestSuites(ConcreteFunctionDefinition metamodelFunction, org.finos.legend.engine.protocol.pure.v1.model.test.Test test, CompileContext compileContext, ProcessingContext processingContext + ) + { + if (test instanceof FunctionTestSuite) + { + // validate tests and test suite ids + FunctionTestSuite testSuite = (FunctionTestSuite) test; + TestBuilderHelper.validateNonEmptySuite(testSuite); + TestBuilderHelper.validateTestIds(testSuite.tests, testSuite.sourceInformation); + Root_meta_legend_function_metamodel_FunctionTestSuite metamodelSuite = new Root_meta_legend_function_metamodel_FunctionTestSuite_Impl("",null, compileContext.pureModel.getClass("meta::legend::function::metamodel::FunctionTestSuite")); + if (testSuite.testData != null && !testSuite.testData.isEmpty()) + { + TestBuilderHelper.validateIds(ListIterate.collect(testSuite.testData, testData -> testData.store), testSuite.sourceInformation, "Multiple test data found for stores"); + RichIterable runtimes; + // TODO: we can remove some of these checks once we support these use cases + try + { + runtimes = org.finos.legend.pure.generated.core_pure_corefunctions_metaExtension.Root_meta_pure_functions_meta_extractRuntimesFromFunctionDefinition_FunctionDefinition_1__Runtime_MANY_(metamodelFunction, compileContext.pureModel.getExecutionSupport()); + } + catch (Exception error) + { + throw new EngineException("Unable to extract runtime from function which test data is provided for. Test Data is only supported to be provided for runtimes", testSuite.sourceInformation, EngineErrorType.COMPILATION, error); + } + if (runtimes.isEmpty()) + { + throw new EngineException("Function test data requires a function to have one runtime: No runtimes found in function." + metamodelFunction.getName(), testSuite.sourceInformation, EngineErrorType.COMPILATION); + } + if (runtimes.size() > 1) + { + throw new EngineException("Function test data requires a function to have one runtime. Found " + runtimes.size() + " runtimes in function " + metamodelFunction.getName(), testSuite.sourceInformation, EngineErrorType.COMPILATION); + } + org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime runtime = runtimes.getOnly(); + metamodelSuite._testData(ListIterate.collect(testSuite.testData, storeData -> buildFunctionTestData(runtime, storeData, compileContext, processingContext))); + } + metamodelSuite + ._id(testSuite.id) + ._tests(ListIterate.collect(testSuite.tests, unitTest -> (Root_meta_pure_test_AtomicTest) buildFunctionTestSuites(metamodelFunction, unitTest, compileContext, processingContext))) + ._testable(metamodelFunction); + return metamodelSuite; + } + else if (test instanceof FunctionTest) + { + FunctionTest functionTest = (FunctionTest) test; + Root_meta_legend_function_metamodel_FunctionTest metamodelTest = new Root_meta_legend_function_metamodel_FunctionTest_Impl("",null, compileContext.pureModel.getClass("meta::legend::function::metamodel::FunctionTest")) + ._id(functionTest.id); + if (functionTest.parameters != null && !functionTest.parameters.isEmpty()) + { + metamodelTest._parameters(ListIterate.collect(functionTest.parameters, param -> processFunctionTestParameterValue(param, compileContext))); + } + TestBuilderHelper.validateNonEmptyTest(functionTest); + if (functionTest.assertions.size() > 1) + { + throw new EngineException("Function test only support one assertion", test.sourceInformation, EngineErrorType.COMPILATION); + } + metamodelTest._assertions(ListIterate.collect(functionTest.assertions, assertion -> assertion.accept(new TestAssertionFirstPassBuilder(compileContext, processingContext)))); + return metamodelTest; + } + return null; + } + + private static Root_meta_legend_function_metamodel_StoreTestData buildFunctionTestData(org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime runtime, StoreTestData storeTestData, CompileContext compileContext, ProcessingContext ctx) + { + Root_meta_legend_function_metamodel_StoreTestData_Impl metamodelStoreTestData = new Root_meta_legend_function_metamodel_StoreTestData_Impl("", null, compileContext.pureModel.getClass("meta::legend::function::metamodel::StoreTestData")); + org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store resolvedStore = null; + if (storeTestData.store.equals("ModelStore")) + { + resolvedStore = new Root_meta_external_store_model_ModelStore_Impl(""); + } + else + { + resolvedStore = compileContext.resolveStore(storeTestData.store, storeTestData.sourceInformation); + } + try + { + org.finos.legend.pure.generated.Root_meta_core_runtime_Connection connection = runtime.connectionByElement(resolvedStore, compileContext.pureModel.getExecutionSupport()); + Assert.assertTrue(connection != null, () -> "connection not found"); + } + catch (Exception exception) + { + // throw new EngineException("Store '" + storeTestData.store + "' not specified in the runtime in the function", storeTestData.sourceInformation, EngineErrorType.COMPILATION, exception); + } + metamodelStoreTestData._data(storeTestData.data.accept(new EmbeddedDataFirstPassBuilder(compileContext, ctx))); + metamodelStoreTestData._store(resolvedStore); + metamodelStoreTestData._doc(storeTestData.doc); + return metamodelStoreTestData; + } + + private static Root_meta_legend_function_metamodel_ParameterValue processFunctionTestParameterValue(ParameterValue parameterValue, CompileContext context) + { + Root_meta_legend_function_metamodel_ParameterValue pureParameterValue = new Root_meta_legend_function_metamodel_ParameterValue_Impl("", null, context.pureModel.getClass("meta::legend::function::metamodel::ParameterValue")); + pureParameterValue._name(parameterValue.name); + pureParameterValue._value(Lists.immutable.with(parameterValue.value.accept(new ValueSpecificationBuilder(context, Lists.mutable.empty(), new ProcessingContext(""))))); + return pureParameterValue; + } + + +} 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 0b7db947fb2..9f81ca7100d 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 @@ -25,6 +25,7 @@ import org.eclipse.collections.impl.list.mutable.FastList; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.language.pure.compiler.toPureGraph.handlers.Handlers; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.test.TestBuilderHelper; import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Multiplicity; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.AssociationMapping; @@ -51,6 +52,9 @@ import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.Variable; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.finos.legend.pure.generated.Root_meta_external_store_model_ModelStore_Impl; +import org.finos.legend.pure.generated.Root_meta_pure_data_StoreTestData; +import org.finos.legend.pure.generated.Root_meta_pure_data_StoreTestData_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_EnumValueMapping_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_EnumerationMapping_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_MappingClass_Impl; @@ -60,7 +64,6 @@ 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_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; @@ -68,8 +71,6 @@ 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_VariableExpression_Impl; import org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest; -import org.finos.legend.pure.generated.Root_meta_pure_data_StoreTestData; -import org.finos.legend.pure.generated.Root_meta_pure_data_StoreTestData_Impl; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.AssociationImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; @@ -94,7 +95,6 @@ import org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement; import org.finos.legend.pure.m4.coreinstance.SourceInformation; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -510,50 +510,21 @@ public static Test processMappingTestAndTestSuite(org.finos.legend.engine.protoc if (test instanceof MappingTestSuite) { // validate tests and test suite ids - MappingTestSuite testSuite = (MappingTestSuite) test; - if (testSuite.tests == null || testSuite.tests.isEmpty()) - { - throw new EngineException("Mapping TestSuites should have at least 1 test", testSuite.sourceInformation, EngineErrorType.COMPILATION); - } - List testIds = ListIterate.collect(testSuite.tests, t -> t.id); - List duplicateTestIds = testIds.stream().filter(e -> Collections.frequency(testIds, e) > 1).distinct().collect(Collectors.toList()); - if (!duplicateTestIds.isEmpty()) - { - throw new EngineException("Multiple tests found with ids : '" + String.join(",", duplicateTestIds) + "'", testSuite.sourceInformation, EngineErrorType.COMPILATION); - } - if (test instanceof MappingTestSuite) - { - - MappingTestSuite queryTestSuite = (MappingTestSuite) test; - Root_meta_pure_mapping_metamodel_MappingTestSuite compiledMappingSuite = new Root_meta_pure_mapping_metamodel_MappingTestSuite_Impl("", null, context.pureModel.getClass("meta::pure::mapping::metamodel::MappingTestSuite")); - - return compiledMappingSuite._id(queryTestSuite.id) - ._query(HelperValueSpecificationBuilder.buildLambda(queryTestSuite.func, context)) - ._tests(ListIterate.collect(queryTestSuite.tests, unitTest -> (Root_meta_pure_test_AtomicTest) HelperMappingBuilder.processMappingTestAndTestSuite(unitTest, pureMapping, context))) - ._testable(pureMapping); - } - else - { - throw new EngineException("Unsupported Mapping Test Suite", testSuite.sourceInformation, EngineErrorType.COMPILATION); - } + MappingTestSuite queryTestSuite = (MappingTestSuite) test; + TestBuilderHelper.validateNonEmptySuite(queryTestSuite); + TestBuilderHelper.validateTestIds(queryTestSuite.tests, queryTestSuite.sourceInformation); + Root_meta_pure_mapping_metamodel_MappingTestSuite compiledMappingSuite = new Root_meta_pure_mapping_metamodel_MappingTestSuite_Impl("", null, context.pureModel.getClass("meta::pure::mapping::metamodel::MappingTestSuite")); + return compiledMappingSuite._id(queryTestSuite.id) + ._query(HelperValueSpecificationBuilder.buildLambda(queryTestSuite.func, context)) + ._tests(ListIterate.collect(queryTestSuite.tests, unitTest -> (Root_meta_pure_test_AtomicTest) HelperMappingBuilder.processMappingTestAndTestSuite(unitTest, pureMapping, context))) + ._testable(pureMapping); } else if (test instanceof MappingTest) { MappingTest mappingTest = (MappingTest) test; Root_meta_pure_test_AtomicTest pureMappingTest = (Root_meta_pure_test_AtomicTest) TestCompilerHelper.compilePureMappingTests(mappingTest, context, new ProcessingContext("Mapping Test '" + mappingTest.id + "' Second Pass")); - if (mappingTest.assertions == null || mappingTest.assertions.isEmpty()) - { - throw new EngineException("Mapping Tests should have at least 1 assert", mappingTest.sourceInformation, EngineErrorType.COMPILATION); - } - - List assertionIds = ListIterate.collect(mappingTest.assertions, a -> a.id); - List duplicateAssertionIds = assertionIds.stream().filter(e -> Collections.frequency(assertionIds, e) > 1).distinct().collect(Collectors.toList()); - - if (!duplicateAssertionIds.isEmpty()) - { - throw new EngineException("Multiple assertions found with ids : '" + String.join(",", duplicateAssertionIds) + "'", mappingTest.sourceInformation, EngineErrorType.COMPILATION); - } - + TestBuilderHelper.validateNonEmptyTest(mappingTest); + TestBuilderHelper.validateAssertionIds(mappingTest.assertions, mappingTest.sourceInformation); pureMappingTest._assertions(ListIterate.collect(mappingTest.assertions, assertion -> context.getCompilerExtensions().getExtraTestAssertionProcessors().stream() .map(processor -> processor.value(assertion, context, new ProcessingContext("Test Assertion '" + assertion.id + "'"))) .filter(Objects::nonNull) 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/PackageableElementFourthPassBuilder.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/PackageableElementFourthPassBuilder.java index 40eafa5e92b..1fbd53c8dc0 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/PackageableElementFourthPassBuilder.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/PackageableElementFourthPassBuilder.java @@ -18,6 +18,7 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.factory.Lists; import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.test.TestBuilderHelper; import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElementVisitor; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.PackageableConnection; @@ -169,13 +170,7 @@ public PackageableElement visit(Mapping mapping) } if (mapping.testSuites != null) { - List testSuiteIds = ListIterate.collect(mapping.testSuites, suite -> suite.id); - List duplicateTestSuiteIds = testSuiteIds.stream().filter(e -> Collections.frequency(testSuiteIds, e) > 1).distinct().collect(Collectors.toList()); - - if (!duplicateTestSuiteIds.isEmpty()) - { - throw new EngineException("Multiple testSuites found with ids : '" + String.join(",", duplicateTestSuiteIds) + "'", mapping.sourceInformation, EngineErrorType.COMPILATION); - } + TestBuilderHelper.validateTestSuiteIdsList(mapping.testSuites, mapping.sourceInformation); pureMapping._tests(ListIterate.collect(mapping.testSuites, suite -> HelperMappingBuilder.processMappingTestAndTestSuite(suite, pureMapping, this.context))); } return pureMapping; 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 9c71c619561..358dd672e3b 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 @@ -180,7 +180,9 @@ public PackageableElement visit(Function function) FunctionType fType = ((FunctionType) targetFunc._classifierGenericType()._typeArguments().getFirst()._rawType()); HelperModelBuilder.checkCompatibility(this.context, body.getLast()._genericType()._rawType(), body.getLast()._multiplicity(), fType._returnType()._rawType(), fType._returnMultiplicity(), "Error in function '" + packageString + "'", function.body.get(function.body.size() - 1).sourceInformation); ctx.pop(); - return targetFunc._expressionSequence(body); + targetFunc._expressionSequence(body); + HelperFunctionBuilder.processFunctionSuites(function, targetFunc, this.context, ctx); + return targetFunc; } @Override 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 3cd223becc8..ca2511ac833 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 @@ -42,6 +42,7 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.validator.ClassValidator; import org.finos.legend.engine.language.pure.compiler.toPureGraph.validator.EnumerationValidator; import org.finos.legend.engine.language.pure.compiler.toPureGraph.validator.ProfileValidator; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.validator.FunctionValidator; import org.finos.legend.engine.language.pure.compiler.toPureGraph.validator.PureModelContextDataValidator; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; @@ -287,6 +288,7 @@ public PureModel(PureModelContextData pureModelContextData, CompilerExtensions e new EnumerationValidator().validate(this, pureModelContextData); new ClassValidator().validate(this, pureModelContextData); new AssociationValidator().validate(this, pureModelContextData); + new FunctionValidator().validate(getContext(), pureModelContextData); new org.finos.legend.engine.language.pure.compiler.toPureGraph.validator.MappingValidator().validate(this, pureModelContextData, extensions); extraPostValidators.forEach(validator -> validator.value(this, pureModelContextData)); long postValidationFinished = System.currentTimeMillis(); 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/test/TestBuilderHelper.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/test/TestBuilderHelper.java new file mode 100644 index 00000000000..80a2c785545 --- /dev/null +++ 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/test/TestBuilderHelper.java @@ -0,0 +1,70 @@ +// 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.language.pure.compiler.toPureGraph.test; + +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.test.AtomicTest; +import org.finos.legend.engine.protocol.pure.v1.model.test.TestSuite; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.TestAssertion; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class TestBuilderHelper +{ + public static void validateNonEmptySuite(T suite) + { + if (suite.tests == null || suite.tests.isEmpty()) + { + throw new EngineException("TestSuites should have at least 1 test", suite.sourceInformation, EngineErrorType.COMPILATION); + } + } + + public static void validateNonEmptyTest(T test) + { + if (test.assertions == null || test.assertions.isEmpty()) + { + throw new EngineException("Tests should have at least 1 assert", test.sourceInformation, EngineErrorType.COMPILATION); + } + } + + public static void validateTestSuiteIdsList(List suites, SourceInformation sourceInformation) + { + validateIds(ListIterate.collect(suites, suite -> suite.id), sourceInformation, "Multiple testSuites found with ids"); + } + + public static void validateTestIds(List tests, SourceInformation sourceInformation) + { + validateIds(ListIterate.collect(tests, test -> test.id), sourceInformation, "Multiple tests found with ids"); + } + + public static void validateAssertionIds(List assertions, SourceInformation sourceInformation) + { + validateIds(ListIterate.collect(assertions, a -> a.id), sourceInformation, "Multiple assertions found with ids"); + } + + public static void validateIds(List ids, SourceInformation sourceInformation, String message) + { + List duplicateIds = ids.stream().filter(e -> Collections.frequency(ids, e) > 1).distinct().collect(Collectors.toList()); + if (!duplicateIds.isEmpty()) + { + throw new EngineException(message + " : '" + String.join(",", duplicateIds) + "'", sourceInformation, EngineErrorType.COMPILATION); + } + } +} 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/validator/FunctionValidator.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/validator/FunctionValidator.java new file mode 100644 index 00000000000..4f08d82d5bc --- /dev/null +++ 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/validator/FunctionValidator.java @@ -0,0 +1,103 @@ +// 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.compiler.toPureGraph.validator; + +import org.eclipse.collections.api.RichIterable; +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.HelperModelBuilder; +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.EngineErrorType; +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.function.FunctionTest; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTest; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTestSuite; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_ParameterValue; +import org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.FunctionType; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.InstanceValue; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.VariableExpression; + +import java.util.*; +import java.util.stream.Collectors; + +public class FunctionValidator +{ + + public void validate(CompileContext compileContext, PureModelContextData pureModelContextData) + { + ListIterate.selectInstancesOf(pureModelContextData.getElements(), Function.class) + .forEach(_func -> validateFunction(_func, compileContext)); + } + + public void validateFunction(Function func, CompileContext compileContext) + { + if (func.tests != null && !func.tests.isEmpty()) + { + PureModel pureModel = compileContext.pureModel; + String packageString = pureModel.buildPackageString(func._package, HelperModelBuilder.getSignature(func)); + org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition targetFunc = pureModel.getConcreteFunctionDefinition(packageString, func.sourceInformation); + for (org.finos.legend.pure.m3.coreinstance.meta.pure.test.Test test: targetFunc._tests()) + { + Root_meta_legend_function_metamodel_FunctionTestSuite metamodelSuite = (Root_meta_legend_function_metamodel_FunctionTestSuite) test; + FunctionTestSuite protocolSuite = ListIterate.detect(func.tests, t -> t.id.equals(metamodelSuite._id())); + for (Root_meta_pure_test_AtomicTest atomicTest: metamodelSuite._tests()) + { + Root_meta_legend_function_metamodel_FunctionTest functionTest = (Root_meta_legend_function_metamodel_FunctionTest) atomicTest; + RichIterable parameters = ((FunctionType)targetFunc._classifierGenericType()._typeArguments().getOnly()._rawType())._parameters(); + FunctionTest protocolTest = (FunctionTest) ListIterate.detect(protocolSuite.tests, t -> t.id.equals(functionTest._id())); + validateFunctionTestParameterValues(compileContext,(List) functionTest._parameters().toList(), parameters, protocolTest.sourceInformation); + } + } + } + } + + public static void validateFunctionTestParameterValues(CompileContext context, List parameterValues, RichIterable parameters, SourceInformation sourceInformation) + { + Set processedParams = parameterValues.stream().map(e -> e._name()).collect(Collectors.toSet()); + for (VariableExpression param : parameters) + { + Optional parameterValue = ListIterate.detectOptional(parameterValues, p -> p._name().equals(param._name())); + + if (parameterValue.isPresent()) + { + InstanceValue paramValue = (InstanceValue) parameterValue.get()._value().getOnly(); + org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.multiplicity.Multiplicity paramMultiplicity = param._multiplicity(); + org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.multiplicity.Multiplicity paramValueMultiplicity = paramValue._multiplicity(); + if (!"Nil".equals(paramValue._genericType()._rawType())) + { + HelperModelBuilder.checkCompatibility(context, paramValue._genericType()._rawType(), paramValueMultiplicity, param._genericType()._rawType(), paramMultiplicity, "Parameter value type does not match with parameter type for parameter: '" + param._name() + "'", sourceInformation); + } + } + else + { + if (param._multiplicity()._lowerBound() != null && param._multiplicity()._lowerBound()._value() != null && param._multiplicity()._lowerBound()._value() != 0) + { + throw new EngineException("Parameter value required for parameter: '" + param._name() + "'", sourceInformation, EngineErrorType.COMPILATION); + } + } + processedParams.remove(param._name()); + } + if (!processedParams.isEmpty()) + { + throw new EngineException("Parameter values not found in function parameter: " + String.join(",", processedParams), sourceInformation, EngineErrorType.COMPILATION); + } + } + +} 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/TestFunctionCompilationFromGrammar.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/TestFunctionCompilationFromGrammar.java new file mode 100644 index 00000000000..8e62dbcbfa6 --- /dev/null +++ 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/TestFunctionCompilationFromGrammar.java @@ -0,0 +1,342 @@ +// 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.language.pure.compiler.test.fromGrammar; + +import org.junit.Test; + +import static org.finos.legend.engine.language.pure.compiler.test.TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test; + +public class TestFunctionCompilationFromGrammar +{ + + @Test + public void testFunctionTest() + { + + test("function model::MyFunc(): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testFail:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " },\n" + + " testPass:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n"); + + test("function model::MyFunc(): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " },\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n", "COMPILATION error at [6:3-43:3]: Multiple tests found with ids : 'testDuplicate'"); + + test("function model::MyFunc(): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " },\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n", "COMPILATION error at [1:1-50:1]: Multiple testSuites found with ids : 'duplicateSuite'"); + + + test("function model::MyFunc(firstName: String[1]): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " parameters:\n" + + " [\n" + + " firstName = 'Nicole'\n" + + " ]\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n"); + + test("function model::MyFunc(firstName: String[1]): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n", "COMPILATION error at [10:7-25:7]: Parameter value required for parameter: 'firstName'"); + + test("function model::MyFunc(firstName: String[1]): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n", "COMPILATION error at [10:7-25:7]: Parameter value required for parameter: 'firstName'"); + + test("function model::MyFunc(): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " parameters: [" + + " notFound = 'xx' " + + " ]" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n", "COMPILATION error at [10:7-25:7]: Parameter values not found in function parameter: notFound"); + + test("function model::MyFunc(): String[1]\n" + + "{\n" + + " ''\n" + + "}\n" + + "[\n" + + " duplicateSuite:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testDuplicate:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n", "COMPILATION error at [10:7-15:7]: Tests should have at least 1 assert"); + + + test("function model::Hello(name: String[1]): String[1]\n" + + "{\n" + + " 'Hello!. My name is ' + $name + '.';\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testFail:\n" + + " {\n" + + " parameters: \n" + + " [\n" + + " name = 'John'\n" + + " ]\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualTo\n" + + " #{\n" + + " expected: 'Hello!. My name is John.';\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n"); + } + +} 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 020145baa8c..be839c06558 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 @@ -2250,7 +2250,7 @@ public void testMappingTestSuite() " ]\n" + ")\n" + "\n", - "COMPILATION error at [30:5-35:5]: Mapping TestSuites should have at least 1 test"); + "COMPILATION error at [30:5-35:5]: TestSuites should have at least 1 test"); test("###Pure\n" + "Class test::model\n" + "{\n" + diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java index a059a7ad820..70399d6423d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/src/test/java/org/finos/legend/engine/language/pure/grammar/api/test/TestGrammarToJsonApi.java @@ -83,7 +83,7 @@ public void testLambdaParsingError() @Test public void testMixedParsingErrors() { - test("{\"code\": \"Class A {,\", \"isolatedLambdas\": {\"good\": \"|'good'\", \"bad\": \"|,\"}}", "{\"codeError\":{\"message\":\"Unexpected token ','. Valid alternatives: ['import', 'Class', 'Association', 'Profile', 'Enum', 'Measure', 'function', 'extends', 'stereotypes', 'tags', 'Error', 'Warn', 'native', 'projects', 'as', 'composite', 'shared', 'none', 'all', 'let', 'allVersions', 'allVersionsInRange', 'toBytes', '(', '<']\",\"sourceInformation\":{\"endColumn\":10,\"endLine\":1,\"sourceId\":\"\",\"startColumn\":10,\"startLine\":1}},\"isolatedLambdas\":{\"lambdaErrors\":{\"bad\":{\"message\":\"Unexpected token ','. Valid alternatives: ['import', 'Class', 'Association', 'Profile', 'Enum', 'Measure', 'function', 'extends', 'stereotypes', 'tags', 'Error', 'Warn', 'native', 'projects', 'as', 'composite', 'shared', 'none', 'all', 'let', 'allVersions', 'allVersionsInRange', 'toBytes', '!', '[', '(', '$', '^', '|', '@', '+', '-']\",\"sourceInformation\":{\"endColumn\":2,\"endLine\":1,\"sourceId\":\"bad\",\"startColumn\":2,\"startLine\":1}}},\"lambdas\":{\"good\":{\"_type\":\"lambda\",\"body\":[{\"_type\":\"string\",\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":2,\"startLine\":1},\"value\":\"good\"}],\"parameters\":[],\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":1,\"startLine\":1}}}},\"renderStyle\":\"STANDARD\"}"); + test("{\"code\": \"Class A {},\", \"isolatedLambdas\": {\"good\": \"|'good'\", \"bad\": \"|,\"}}", "{\"codeError\":{\"message\":\"Unexpected token\",\"sourceInformation\":{\"endColumn\":11,\"endLine\":1,\"sourceId\":\"\",\"startColumn\":11,\"startLine\":1}},\"isolatedLambdas\":{\"lambdaErrors\":{\"bad\":{\"message\":\"Unexpected token ','. Valid alternatives: ['import', 'Class', 'Association', 'Profile', 'Enum', 'Measure', 'function', 'extends', 'stereotypes', 'tags', 'Error', 'Warn', 'native', 'projects', 'as', 'composite', 'shared', 'none', 'data', 'tests', 'parameters', 'asserts', 'store', 'all', 'let', 'allVersions', 'allVersionsInRange', 'toBytes', '!', '[', '(', '$', '^', '|', '@', '+', '-']\",\"sourceInformation\":{\"endColumn\":2,\"endLine\":1,\"sourceId\":\"bad\",\"startColumn\":2,\"startLine\":1}}},\"lambdas\":{\"good\":{\"_type\":\"lambda\",\"body\":[{\"_type\":\"string\",\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":2,\"startLine\":1},\"value\":\"good\"}],\"parameters\":[],\"sourceInformation\":{\"endColumn\":7,\"endLine\":1,\"sourceId\":\"good\",\"startColumn\":1,\"startLine\":1}}}},\"renderStyle\":\"STANDARD\"}"); } @Test 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/domain/DomainLexerGrammar.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/domain/DomainLexerGrammar.g4 index 890e9ffd021..bf66e24ad28 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/domain/DomainLexerGrammar.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/domain/DomainLexerGrammar.g4 @@ -35,3 +35,9 @@ AS: 'as'; AGGREGATION_TYPE_COMPOSITE: 'composite'; AGGREGATION_TYPE_SHARED: 'shared'; AGGREGATION_TYPE_NONE: 'none'; + +FUNCTION_TEST_DATA: 'data'; +FUNCTION_SUITE_TESTS: 'tests'; +FUNCTION_TEST_PARAMETERS: 'parameters'; +FUNCTION_TEST_ASSERTS: 'asserts'; +FUNCTION_TEST_DATA_STORE: 'store'; 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/domain/DomainParserGrammar.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/domain/DomainParserGrammar.g4 index 9532405f5ec..28d696903dd 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/domain/DomainParserGrammar.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/domain/DomainParserGrammar.g4 @@ -20,6 +20,8 @@ identifier: VALID_STRING | STRING | NATIVE | PROJECTS | AS | CONSTRAINT_ENFORCEMENT_LEVEL_ERROR | CONSTRAINT_ENFORCEMENT_LEVEL_WARN | AGGREGATION_TYPE_COMPOSITE | AGGREGATION_TYPE_SHARED | AGGREGATION_TYPE_NONE + | FUNCTION_TEST_DATA | FUNCTION_SUITE_TESTS | FUNCTION_TEST_PARAMETERS + | FUNCTION_TEST_ASSERTS | FUNCTION_TEST_DATA_STORE ; @@ -170,9 +172,47 @@ functionDefinition: FUNCTION stereotypes? taggedValu BRACE_OPEN codeBlock BRACE_CLOSE + functionTestSuites? +; +functionTestSuites: BRACKET_OPEN + functionTestSuite (COMMA functionTestSuite)* + BRACKET_CLOSE +; +functionTestSuite: identifier COLON BRACE_OPEN (testData | functionTestSuiteTests )* BRACE_CLOSE +; +testData: FUNCTION_TEST_DATA COLON BRACKET_OPEN (storeTestData ( COMMA storeTestData )*)? BRACKET_CLOSE SEMI_COLON +; +storeTestData: BRACE_OPEN + ( + storePointer | + storeData + )* + BRACE_CLOSE +; +storePointer: FUNCTION_TEST_DATA_STORE COLON qualifiedName SEMI_COLON +; +storeData: FUNCTION_TEST_DATA COLON embeddedData SEMI_COLON +; +embeddedData: identifier ISLAND_OPEN (embeddedDataContent)* +; +embeddedDataContent: ISLAND_START | ISLAND_BRACE_OPEN | ISLAND_CONTENT | ISLAND_HASH | ISLAND_BRACE_CLOSE | ISLAND_END +; +functionTestSuiteTests: FUNCTION_SUITE_TESTS COLON BRACKET_OPEN (functionTestBlock ( COMMA functionTestBlock )*)? BRACKET_CLOSE +; +functionTestBlock: identifier COLON BRACE_OPEN (functionTestParameters | functionTestAsserts )* BRACE_CLOSE +; +functionTestParameters: FUNCTION_TEST_PARAMETERS COLON BRACKET_OPEN ( functionTestParameter ( COMMA functionTestParameter )* )? BRACKET_CLOSE +; +functionTestParameter: identifier EQUAL primitiveValue +; +functionTestAsserts: FUNCTION_TEST_ASSERTS COLON BRACKET_OPEN ( functionTestAssert ( COMMA functionTestAssert )* )? BRACKET_CLOSE +; +functionTestAssert: identifier COLON testAssertion +; +testAssertion: identifier ISLAND_OPEN (testAssertionContent)* +; +testAssertionContent: ISLAND_START | ISLAND_BRACE_OPEN | ISLAND_CONTENT | ISLAND_HASH | ISLAND_BRACE_CLOSE | ISLAND_END ; - - // -------------------------------------- CONSTRAINT -------------------------------------- constraints: BRACKET_OPEN 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/domain/DomainParseTreeWalker.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/domain/DomainParseTreeWalker.java index 576e88891c1..ec401d0d4bb 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/domain/DomainParseTreeWalker.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/domain/DomainParseTreeWalker.java @@ -19,7 +19,9 @@ import org.antlr.v4.runtime.RuleContext; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.atn.PredictionMode; +import org.antlr.v4.runtime.misc.Interval; import org.antlr.v4.runtime.tree.TerminalNode; +import org.checkerframework.dataflow.qual.Pure; import org.eclipse.collections.api.list.ListIterable; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.factory.Lists; @@ -35,7 +37,9 @@ import org.finos.legend.engine.language.pure.grammar.from.antlr4.graphFetchTree.GraphFetchTreeParserGrammar; import org.finos.legend.engine.language.pure.grammar.from.antlr4.navigation.NavigationLexerGrammar; import org.finos.legend.engine.language.pure.grammar.from.antlr4.navigation.NavigationParserGrammar; +import org.finos.legend.engine.language.pure.grammar.from.data.embedded.HelperEmbeddedDataGrammarParser; import org.finos.legend.engine.language.pure.grammar.from.extension.EmbeddedPureParser; +import org.finos.legend.engine.language.pure.grammar.from.test.assertion.HelperTestAssertionGrammarParser; import org.finos.legend.engine.language.pure.grammar.to.HelperValueSpecificationGrammarComposer; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; @@ -45,10 +49,12 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Class; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Constraint; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.DefaultValue; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Domain; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.EnumValue; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Enumeration; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Measure; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Multiplicity; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.ParameterValue; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Profile; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Property; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.QualifiedProperty; @@ -56,7 +62,9 @@ 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.domain.Unit; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.StoreTestData; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.ImportAwareCodeSection; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.TestAssertion; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.ValueSpecification; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.Variable; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.application.AppliedFunction; @@ -416,6 +424,10 @@ private org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain variable.sourceInformation = this.walkerSourceInformation.getSourceInformation(functionVariableExpressionContext); return variable; }); + if (ctx.functionTestSuites() != null) + { + func.tests = ListIterate.collect(ctx.functionTestSuites().functionTestSuite(), this::visitFunctionSuite); + } func.returnType = ctx.functionTypeSignature().type().getText(); func.returnMultiplicity = this.buildMultiplicity(ctx.functionTypeSignature().multiplicity().multiplicityArgument()); func.sourceInformation = this.walkerSourceInformation.getSourceInformation(ctx); @@ -423,6 +435,76 @@ private org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain return func; } + private org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite visitFunctionSuite(DomainParserGrammar.FunctionTestSuiteContext functionTestSuiteContext) + { + org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite suite = new org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite(); + suite.sourceInformation = this.walkerSourceInformation.getSourceInformation(functionTestSuiteContext); + suite.id = PureGrammarParserUtility.fromIdentifier(functionTestSuiteContext.identifier()); + // data + DomainParserGrammar.TestDataContext testDataContext = PureGrammarParserUtility.validateAndExtractOptionalField(functionTestSuiteContext.testData(), "data", suite.sourceInformation); + if (testDataContext != null) + { + suite.testData = ListIterate.collect(testDataContext.storeTestData(), this::visitStoreTestData); + } + // Tests + DomainParserGrammar.FunctionTestSuiteTestsContext testSuiteTestsContext = PureGrammarParserUtility.validateAndExtractRequiredField(functionTestSuiteContext.functionTestSuiteTests(), "tests", suite.sourceInformation); + suite.tests = ListIterate.collect(testSuiteTestsContext.functionTestBlock(), this::visitFunctionTest); + return suite; + } + + private org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.StoreTestData visitStoreTestData(DomainParserGrammar.StoreTestDataContext storeDataContext) + { + StoreTestData storeTestData = new StoreTestData(); + DomainParserGrammar.StorePointerContext storePointerContext = PureGrammarParserUtility.validateAndExtractRequiredField(storeDataContext.storePointer(), "store", storeTestData.sourceInformation); + storeTestData.store = PureGrammarParserUtility.fromQualifiedName(storePointerContext.qualifiedName().packagePath() == null ? Collections.emptyList() : storePointerContext.qualifiedName().packagePath().identifier(), storePointerContext.qualifiedName().identifier()); + DomainParserGrammar.StoreDataContext dataContext = PureGrammarParserUtility.validateAndExtractRequiredField(storeDataContext.storeData(), "data", storeTestData.sourceInformation); + storeTestData.data = HelperEmbeddedDataGrammarParser.parseEmbeddedData(dataContext.embeddedData(), this.walkerSourceInformation, this.parserContext.getPureGrammarParserExtensions()); + return storeTestData; + } + + private org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTest visitFunctionTest(DomainParserGrammar.FunctionTestBlockContext ctx) + { + org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTest functionTest = new org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTest(); + functionTest.sourceInformation = this.walkerSourceInformation.getSourceInformation(ctx); + functionTest.id = PureGrammarParserUtility.fromIdentifier(ctx.identifier()); + + // parameters value + DomainParserGrammar.FunctionTestParametersContext testParameterContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.functionTestParameters(), "parameters", functionTest.sourceInformation); + if (testParameterContext != null) + { + functionTest.parameters = ListIterate.collect(testParameterContext.functionTestParameter(), this::visitFunctionTestParameter); + } + DomainParserGrammar.FunctionTestAssertsContext testAssertsContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.functionTestAsserts(), "asserts", functionTest.sourceInformation); + functionTest.assertions = ListIterate.collect(testAssertsContext.functionTestAssert(), this::visitFunctionTestAsserts); + return functionTest; + } + + private TestAssertion visitFunctionTestAsserts(DomainParserGrammar.FunctionTestAssertContext ctx) + { + TestAssertion testAssertion = HelperTestAssertionGrammarParser.parseTestAssertion(ctx.testAssertion(), this.walkerSourceInformation, this.parserContext.getPureGrammarParserExtensions()); + testAssertion.id = PureGrammarParserUtility.fromIdentifier(ctx.identifier()); + return testAssertion; + } + + private ParameterValue visitFunctionTestParameter(DomainParserGrammar.FunctionTestParameterContext ctx) + { + ParameterValue parameterValue = new ParameterValue(); + parameterValue.name = PureGrammarParserUtility.fromIdentifier(ctx.identifier()); + parameterValue.value = this.visitTestParameter(ctx.primitiveValue()); + return parameterValue; + } + + private ValueSpecification visitTestParameter(DomainParserGrammar.PrimitiveValueContext primitiveValueContext) + { + DomainParser parser = new DomainParser(); + int startLine = primitiveValueContext.getStart().getLine(); + int lineOffset = walkerSourceInformation.getLineOffset() + startLine - 1; + int columnOffset = (startLine == 1 ? walkerSourceInformation.getColumnOffset() : 0) + primitiveValueContext.getStart().getCharPositionInLine(); + ParseTreeWalkerSourceInformation serviceParamSourceInformation = new ParseTreeWalkerSourceInformation.Builder(walkerSourceInformation.getSourceId(), lineOffset, columnOffset).build(); + String expectedValue = primitiveValueContext.start.getInputStream().getText(Interval.of(primitiveValueContext.start.getStartIndex(), primitiveValueContext.stop.getStopIndex())); + ValueSpecification valueSpecification = parser.parsePrimitiveValue(expectedValue, serviceParamSourceInformation, null); + return valueSpecification; + } // ----------------------------------------------- MEASURE ----------------------------------------------- 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/DEPRECATED_PureGrammarComposerCore.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/DEPRECATED_PureGrammarComposerCore.java index 29619dc633c..66e4faf98ef 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/DEPRECATED_PureGrammarComposerCore.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/DEPRECATED_PureGrammarComposerCore.java @@ -106,6 +106,7 @@ import java.util.Optional; import java.util.stream.Collectors; +import static org.finos.legend.engine.language.pure.grammar.to.HelperDomainGrammarComposer.renderFunctionTestSuites; import static org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerUtility.convertString; import static org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerUtility.getTabSize; import static org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerUtility.getTabString; @@ -395,7 +396,8 @@ public String visit(Function function) + ": " + function.returnType + "[" + HelperDomainGrammarComposer.renderMultiplicity(function.returnMultiplicity) + "]\n" + "{\n" + LazyIterate.collect(function.body, b -> " " + b.accept(Builder.newInstance(this).withIndentation(getTabSize(1)).build())).makeString(";\n") + (function.body.size() > 1 ? ";" : "") + - "\n}"; + "\n}" + + renderFunctionTestSuites(function, toContext()); } 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/HelperDomainGrammarComposer.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/HelperDomainGrammarComposer.java index cfbe4a9757c..d8b2310a789 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/HelperDomainGrammarComposer.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/HelperDomainGrammarComposer.java @@ -15,15 +15,23 @@ package org.finos.legend.engine.language.pure.grammar.to; import org.eclipse.collections.impl.utility.LazyIterate; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.language.pure.grammar.to.data.HelperEmbeddedDataGrammarComposer; +import org.finos.legend.engine.language.pure.grammar.to.test.assertion.HelperTestAssertionGrammarComposer; import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.AggregationKind; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Constraint; +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.domain.ParameterValue; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Property; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.QualifiedProperty; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.StereotypePtr; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.TaggedValue; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Unit; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTest; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.StoreTestData; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.Variable; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; @@ -116,10 +124,10 @@ public static String renderDerivedProperty(QualifiedProperty qualifiedProperty, + LazyIterate.collect(functionParameters, p -> p.accept(DEPRECATED_PureGrammarComposerCore.Builder.newInstance(transformer).withVariableInFunctionSignature().build())).makeString(",") + ") {" + (qualifiedProperty.body.size() <= 1 - ? LazyIterate.collect(qualifiedProperty.body, b -> b.accept(transformer)).makeString("\n") - : LazyIterate - .collect(qualifiedProperty.body, b -> b.accept(transformer)) - .makeString("\n" + getTabString(2),";\n" + getTabString(2),";\n" + getTabString())) + ? LazyIterate.collect(qualifiedProperty.body, b -> b.accept(transformer)).makeString("\n") + : LazyIterate + .collect(qualifiedProperty.body, b -> b.accept(transformer)) + .makeString("\n" + getTabString(2), ";\n" + getTabString(2), ";\n" + getTabString())) + "}: " + qualifiedProperty.returnType + "[" + renderMultiplicity(qualifiedProperty.returnMultiplicity) + "]"; } @@ -162,4 +170,99 @@ public static String renderConstraint(Constraint constraint, List al return builder.toString(); } } + + + public static String renderFunctionTestSuites(Function function, PureGrammarComposerContext context) + { + StringBuilder stringBuilder = new StringBuilder(); + if (function.tests == null) + { + return stringBuilder.toString(); + } + stringBuilder.append("\n[\n"); + stringBuilder.append(String.join(",\n", ListIterate.collect(function.tests, suite -> renderFunctionTestSuite(suite, context)))).append("\n"); + stringBuilder.append("]"); + return stringBuilder.toString(); + } + + public static String renderFunctionTestSuite(FunctionTestSuite functionTestSuite, PureGrammarComposerContext context) + { + int baseIndentation = 1; + StringBuilder str = new StringBuilder(); + str.append(getTabString(baseIndentation)).append(functionTestSuite.id).append(":\n"); + str.append(getTabString(baseIndentation)).append("{\n"); + if (functionTestSuite.testData != null) + { + str.append(getTabString(baseIndentation + 1)).append("data").append(":\n"); + str.append(getTabString(baseIndentation + 1)).append("[\n"); + str.append(String.join(",\n", ListIterate.collect(functionTestSuite.testData, storeData -> renderFunctionTestData(storeData, baseIndentation + 2, context)))).append("\n"); + str.append(getTabString(baseIndentation + 1)).append("];\n"); + } + // tests + if (functionTestSuite.tests != null) + { + str.append(getTabString(baseIndentation + 1)).append("tests").append(":\n"); + str.append(getTabString(baseIndentation + 1)).append("[\n"); + str.append(String.join(",\n", ListIterate.collect(functionTestSuite.tests, test -> renderFunctionTest((FunctionTest) test, baseIndentation + 2, context)))).append("\n"); + str.append(getTabString(baseIndentation + 1)).append("]\n"); + } + str.append(getTabString(baseIndentation)).append("}"); + return str.toString(); + } + + public static String renderFunctionTestData(StoreTestData storeTestData, int currentInt, PureGrammarComposerContext context) + { + StringBuilder dataStrBuilder = new StringBuilder(); + dataStrBuilder.append(getTabString(currentInt)).append("{\n"); + dataStrBuilder.append(getTabString(currentInt + 1)).append("store").append(": ").append(storeTestData.store).append(";\n"); + dataStrBuilder.append(getTabString(currentInt + 1)).append("data").append(":\n"); + dataStrBuilder.append(HelperEmbeddedDataGrammarComposer.composeEmbeddedData(storeTestData.data, PureGrammarComposerContext.Builder.newInstance(context).withIndentationString(getTabString(currentInt + 2)).build())); + dataStrBuilder.append(";\n"); + dataStrBuilder.append(getTabString(currentInt)).append("}"); + return dataStrBuilder.toString(); + } + + + public static String renderFunctionTest(FunctionTest functionTest, int baseInd, PureGrammarComposerContext context) + { + StringBuilder str = new StringBuilder(); + str.append(getTabString(baseInd)).append(functionTest.id).append(":\n"); + str.append(getTabString(baseInd)).append("{\n"); + + if (functionTest.doc != null) + { + str.append(getTabString(baseInd + 1)).append("doc: ").append(convertString(functionTest.doc, true) + ";\n"); + } + // Parameters + if (functionTest.parameters != null && !functionTest.parameters.isEmpty()) + { + str.append(getTabString(baseInd + 1)).append("parameters:\n"); + str.append(getTabString(baseInd + 1)).append("[\n"); + str.append(String.join(",\n", ListIterate.collect(functionTest.parameters, param -> renderFunctionTestParam(param, baseInd + 2, context)))).append("\n"); + str.append(getTabString(baseInd + 1)).append("]\n"); + } + // Assertions + if (functionTest.assertions != null && !functionTest.assertions.isEmpty()) + { + str.append(getTabString(baseInd + 1)).append("asserts:\n"); + str.append(getTabString(baseInd + 1)).append("[\n"); + str.append(String.join(",\n", ListIterate.collect(functionTest.assertions, testAssertion -> HelperTestAssertionGrammarComposer.composeTestAssertion(testAssertion, PureGrammarComposerContext.Builder.newInstance(context).withIndentationString(getTabString(baseInd + 2)).build())))).append("\n"); + str.append(getTabString(baseInd + 1)).append("]\n"); + } + str.append(getTabString(baseInd)).append("}"); + return str.toString(); + } + + + private static String renderFunctionTestParam(ParameterValue parameterValue, int baseIndentation, PureGrammarComposerContext context) + { + StringBuilder str = new StringBuilder(); + + str.append(getTabString(baseIndentation)).append(parameterValue.name); + str.append(" = "); + str.append(parameterValue.value.accept(DEPRECATED_PureGrammarComposerCore.Builder.newInstance(context).build())); + + return str.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/roundtrip/TestDomainGrammarRoundtrip.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/TestDomainGrammarRoundtrip.java index 77a39ee2778..0b779006f67 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/TestDomainGrammarRoundtrip.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/TestDomainGrammarRoundtrip.java @@ -487,6 +487,136 @@ public void testFunction() "}\n"); } + @Test + public void testFunctionTest() + { + test("function model::Simple(): String[1]\n" + + "{\n" + + " 'Hello ' + ' World!'\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " test_1:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '{}';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n\n" + + "function model::Simple2(): String[1]\n" + + "{\n" + + " 'Hello ' + ' World!'\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " test_1:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '{}';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n"); + test("function model::P(): String[1]\n" + + "{\n" + + " 'x'\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " data:\n" + + " [\n" + + " {\n" + + " store: store::TestDB;\n" + + " data:\n" + + " Reference\n" + + " #{\n" + + " testServiceStoreTestSuites::TestData\n" + + " }#;\n" + + " }\n" + + " ];\n" + + " tests:\n" + + " [\n" + + " test_1:\n" + + " {\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualToJson\n" + + " #{\n" + + " expected:\n" + + " ExternalFormat\n" + + " #{\n" + + " contentType: 'application/json';\n" + + " data: '[]';\n" + + " }#;\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n" + ); + + test("function model::Hello(name: String[1]): String[1]\n" + + "{\n" + + " 'Hello! My name is ' + $name + '.'\n" + + "}\n" + + "[\n" + + " testSuite_1:\n" + + " {\n" + + " tests:\n" + + " [\n" + + " testFail:\n" + + " {\n" + + " parameters:\n" + + " [\n" + + " name = 'John'\n" + + " ]\n" + + " asserts:\n" + + " [\n" + + " assertion_1:\n" + + " EqualTo\n" + + " #{\n" + + " expected:\n" + + " 'Hello! My name is John.';\n" + + " }#\n" + + " ]\n" + + " }\n" + + " ]\n" + + " }\n" + + "]\n"); + } + @Test public void testDecimalWithScale() { 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/CorePureProtocolExtension.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/CorePureProtocolExtension.java index c2c8f984e6f..1a7015ca98d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/CorePureProtocolExtension.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/CorePureProtocolExtension.java @@ -45,6 +45,8 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Unit; 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.pure.v1.model.packageableElement.function.FunctionTest; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.Mapping; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.mappingTest.MappingTest; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.mappingTest.MappingTestSuite; @@ -73,6 +75,7 @@ public class CorePureProtocolExtension implements PureProtocolExtension { public static final String MAPPING_CLASSIFIER_PATH = "meta::pure::mapping::Mapping"; + public static final String FUNCTION_CLASSIFIER_PATH = "meta::pure::metamodel::function::ConcreteFunctionDefinition"; @Override public List>>> getExtraProtocolSubTypeInfoCollectors() @@ -136,9 +139,11 @@ public List>>> getExtraProtocolSubTypeInfo .build(), ProtocolSubTypeInfo.newBuilder(TestSuite.class) .withSubtype(MappingTestSuite.class, "mappingTestSuite") + .withSubtype(FunctionTestSuite.class, "functionTestSuite") .build(), ProtocolSubTypeInfo.newBuilder(Test.class) .withSubtype(MappingTest.class, "mappingTest") + .withSubtype(FunctionTest.class, "functionTest") .build() )); } @@ -151,7 +156,7 @@ public Map, String> getExtraProtoc .withKeyValue(Class.class, "meta::pure::metamodel::type::Class") .withKeyValue(Enumeration.class, "meta::pure::metamodel::type::Enumeration") .withKeyValue(Mapping.class, MAPPING_CLASSIFIER_PATH) - .withKeyValue(Function.class, "meta::pure::metamodel::function::ConcreteFunctionDefinition") + .withKeyValue(Function.class, FUNCTION_CLASSIFIER_PATH) .withKeyValue(Measure.class, "meta::pure::metamodel::type::Measure") .withKeyValue(PackageableConnection.class, "meta::pure::runtime::PackageableConnection") .withKeyValue(PackageableRuntime.class, "meta::pure::runtime::PackageableRuntime") 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/domain/Function.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/domain/Function.java index c1999d7f512..c209080b29b 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/domain/Function.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/domain/Function.java @@ -16,6 +16,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElementVisitor; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.ValueSpecification; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.Variable; @@ -32,6 +33,7 @@ public class Function extends PackageableElement public List stereotypes = Collections.emptyList(); public List taggedValues = Collections.emptyList(); public List body = Collections.emptyList(); + public List tests; @Override public T accept(PackageableElementVisitor visitor) 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/function/ConnectionTestData.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/function/ConnectionTestData.java new file mode 100644 index 00000000000..a0f5d4bc4e6 --- /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/function/ConnectionTestData.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.packageableElement.function; + +import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; +import org.finos.legend.engine.protocol.pure.v1.model.data.EmbeddedData; + +public class ConnectionTestData +{ + public String id; + public EmbeddedData data; + 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/function/FunctionTest.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/function/FunctionTest.java new file mode 100644 index 00000000000..f5e61d8ba54 --- /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/function/FunctionTest.java @@ -0,0 +1,26 @@ + +// 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.packageableElement.function; + +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.ParameterValue; +import org.finos.legend.engine.protocol.pure.v1.model.test.AtomicTest; + +import java.util.List; + +public class FunctionTest extends AtomicTest +{ + public List parameters; +} 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/function/FunctionTestSuite.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/function/FunctionTestSuite.java new file mode 100644 index 00000000000..a86eb0b0e80 --- /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/function/FunctionTestSuite.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.protocol.pure.v1.model.packageableElement.function; + +import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; +import org.finos.legend.engine.protocol.pure.v1.model.test.TestSuite; + +import java.util.List; + +public class FunctionTestSuite extends TestSuite +{ + public List connectionsTestData; + + public List testData; + + 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/function/StoreTestData.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/function/StoreTestData.java new file mode 100644 index 00000000000..73f7119c59b --- /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/function/StoreTestData.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.protocol.pure.v1.model.packageableElement.function; + +import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; +import org.finos.legend.engine.protocol.pure.v1.model.data.EmbeddedData; + +/** Use to mock data in function using a runtime for execution + * store represents the store you want to mock data for + * This assume the function uses 1 (or none) runtime + * We will resolve the connection used for the store + * In the future, this could be extended to add runtime pointer if more than one runtime + * and/or one connection but for now the expectation is one store can be mocked + */ + +public class StoreTestData +{ + public String doc; + public String store; + public EmbeddedData data; + public SourceInformation sourceInformation; +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml new file mode 100644 index 00000000000..d3c0ea726fb --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml @@ -0,0 +1,175 @@ + + + + + + org.finos.legend.engine + legend-engine-core-test + 4.36.1-SNAPSHOT + + 4.0.0 + + legend-engine-test-runner-function + Legend Engine - Test Runner - Function + + + + + org.finos.legend.pure + legend-pure-m3-core + + + org.finos.legend.pure + legend-pure-m2-dsl-mapping-pure + + + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + + + org.finos.legend.engine + legend-engine-testable + + + org.finos.legend.engine + legend-engine-pure-platform-dsl-mapping-java + + + org.finos.legend.engine + legend-engine-pure-code-core-extension + + + org.finos.legend.engine + legend-engine-shared-core + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-language-pure-grammar + + + org.finos.legend.engine + legend-engine-executionPlan-generation + + + org.bouncycastle + * + + + + + org.finos.legend.engine + legend-engine-executionPlan-generation + + + org.finos.legend.engine + legend-engine-executionPlan-generation + + + org.finos.legend.engine + legend-engine-executionPlan-execution + + + + + org.finos.legend.engine + legend-engine-xt-relationalStore-protocol + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-grammar + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-executionPlan + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-javaPlatformBinding-pure + test + + + org.finos.legend.engine + legend-engine-xt-json-pure + test + + + org.finos.legend.engine + legend-engine-xt-json-javaPlatformBinding-pure + test + + + org.finos.legend.engine + legend-engine-xt-serviceStore-pure + test + + + org.finos.legend.engine + legend-engine-xt-serviceStore-javaPlatformBinding-pure + test + + + org.finos.legend.engine + legend-engine-configuration + test + + + net.javacrumbs.json-unit + json-unit + test + + + junit + junit + test + + + + + + org.slf4j + slf4j-api + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + \ No newline at end of file diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunner.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunner.java new file mode 100644 index 00000000000..a7b66ae85af --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunner.java @@ -0,0 +1,289 @@ +// 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.testable.function.extension; + +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.factory.Maps; +import org.eclipse.collections.api.list.MutableList; +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.ConnectionFirstPassBuilder; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.plan.execution.PlanExecutor; +import org.finos.legend.engine.plan.execution.planHelper.PrimitiveValueSpecificationToObjectVisitor; +import org.finos.legend.engine.plan.execution.result.Result; +import org.finos.legend.engine.plan.execution.result.serialization.SerializationFormat; +import org.finos.legend.engine.plan.generation.PlanGenerator; +import org.finos.legend.engine.plan.generation.extension.PlanGeneratorExtension; +import org.finos.legend.engine.plan.generation.transformers.PlanTransformer; +import org.finos.legend.engine.plan.platform.PlanPlatform; +import org.finos.legend.engine.protocol.pure.v1.extension.ConnectionFactoryExtension; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.data.EmbeddedData; +import org.finos.legend.engine.protocol.pure.v1.model.data.EmbeddedDataHelper; +import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.SingleExecutionPlan; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Function; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.ParameterValue; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTest; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.StoreTestData; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.Store; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.modelToModel.ModelStore; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.TestAssertion; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.status.AssertionStatus; +import org.finos.legend.engine.protocol.pure.v1.model.test.result.TestError; +import org.finos.legend.engine.protocol.pure.v1.model.test.result.TestExecuted; +import org.finos.legend.engine.protocol.pure.v1.model.test.result.TestResult; +import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; +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_core_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_ConnectionStore; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTestSuite; +import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; +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.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.Closeable; +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.ServiceLoader; +import java.util.stream.Collectors; + +import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperModelBuilder.getElementFullPath; + +public class FunctionTestRunner implements TestRunner +{ + private static final Logger LOGGER = LoggerFactory.getLogger(FunctionTestRunner.class); + private final ConcreteFunctionDefinition functionDefinition; + private final MutableList extensions; + private final PlanExecutor executor; + private final String pureVersion; + private final MutableList factories = org.eclipse.collections.api.factory.Lists.mutable.withAll(ServiceLoader.load(ConnectionFactoryExtension.class)); + private List closeables = Lists.mutable.empty(); + private List> storeConnectionsPairs = Lists.mutable.empty(); + + public FunctionTestRunner(ConcreteFunctionDefinition functionDefinition, String pureVersion) + { + this.pureVersion = pureVersion; + this.functionDefinition = functionDefinition; + this.executor = PlanExecutor.newPlanExecutorBuilder().withAvailableStoreExecutors().build(); + this.extensions = Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class)); + } + + @Override + public TestResult executeAtomicTest(Root_meta_pure_test_AtomicTest atomicTest, PureModel pureModel, PureModelContextData data) + { + throw new UnsupportedOperationException("Function Test should be executed in context of Mapping Test Suite only"); + } + + @Override + public List executeTestSuite(Root_meta_pure_test_TestSuite testSuite, List atomicTestIds, PureModel pureModel, PureModelContextData pureModelContextData) + { + List results = Lists.mutable.empty(); + RichIterable routerExtensions = PureCoreExtensionLoader.extensions().flatCollect(e -> e.extraPureCoreExtensions(pureModel.getExecutionSupport())); + MutableList planTransformers = extensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers); + Assert.assertTrue(testSuite instanceof Root_meta_legend_function_metamodel_FunctionTestSuite, () -> "Function test suite expected in functions"); + Root_meta_legend_function_metamodel_FunctionTestSuite functionTestSuite = (Root_meta_legend_function_metamodel_FunctionTestSuite) testSuite; + String testablePath = getElementFullPath(this.functionDefinition, pureModel.getExecutionSupport()); + try + { + // handle data + Function protocolFunc = ListIterate.detect(pureModelContextData.getElementsOfType(Function.class), el -> el.getPath().equals(testablePath)); + FunctionTestSuite protocolSuite = ListIterate.detect(protocolFunc.tests, t -> t.id.equals(testSuite._id())); + FunctionTestRunnerContext runnerContext = new FunctionTestRunnerContext(Tuples.pair(pureModelContextData, pureModel), Tuples.pair(protocolSuite, functionTestSuite), extensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers), + new ConnectionFirstPassBuilder(pureModel.getContext()), + PureCoreExtensionLoader.extensions().flatCollect(e -> e.extraPureCoreExtensions(pureModel.getExecutionSupport()))); + List functionTests = protocolSuite.tests.stream().filter(t -> t instanceof FunctionTest) + .map(t -> (FunctionTest) t).filter(t -> atomicTestIds.contains(t.id)).collect(Collectors.toList()); + // setup + this.setup(runnerContext); + // run tests + for (FunctionTest functionTest: functionTests) + { + TestResult functionTestResult = executeFunctionTest(functionTest, runnerContext); + functionTestResult.testable = testablePath; + functionTestResult.testSuiteId = functionTestSuite._id(); + results.add(functionTestResult); + } + // + this.tearDown(); + } + catch (Exception e) + { + // this is to catch any error for the setup of the test suite. we return test error for each test run + for (Root_meta_pure_test_AtomicTest testedError: functionTestSuite._tests()) + { + if (atomicTestIds.contains(testedError._id()) && results.stream().noneMatch(t -> t.atomicTestId.equals(testedError._id()))) + { + TestError testError = new TestError(); + testError.atomicTestId = testedError._id(); + testError.error = e.toString(); + results.add(testError); + } + } + } + return results; + } + + private TestResult executeFunctionTest(FunctionTest functionTest, FunctionTestRunnerContext context) + { + try + { + // build plan + SingleExecutionPlan executionPlan = PlanGenerator.generateExecutionPlan(this.functionDefinition, null, null, null, context.getPureModel(), this.pureVersion, PlanPlatform.JAVA, null, context.getRouterExtensions(), context.getExecutionPlanTransformers()); + // execute assertion + TestAssertion assertion = functionTest.assertions.get(0); + // add execute + PlanExecutor.ExecuteArgsBuilder executeArgs = context.getExecuteBuilder().withPlan(executionPlan); + Map parameters = Maps.mutable.empty(); + if (functionTest.parameters != null) + { + for (ParameterValue parameterValue : functionTest.parameters) + { + parameters.put(parameterValue.name, parameterValue.value.accept(new PrimitiveValueSpecificationToObjectVisitor())); + } + } + executeArgs.withParams(parameters); + Result result = this.executor.executeWithArgs(executeArgs.build()); + AssertionStatus assertionResult = assertion.accept(new TestAssertionEvaluator(result, SerializationFormat.RAW)); + TestExecuted testResult = new TestExecuted(Collections.singletonList(assertionResult)); + testResult.atomicTestId = functionTest.id; + return testResult; + } + catch (Exception error) + { + TestError testError = new TestError(); + testError.atomicTestId = functionTest.id; + testError.error = error.toString(); + return testError; + } + } + + private void setup(FunctionTestRunnerContext context) + { + Root_meta_legend_function_metamodel_FunctionTestSuite functionTestSuite = context.getTestSuite(); + FunctionTestSuite protocolFunctionSuite = context.getProtocolSuite(); + if (functionTestSuite._testData() == null || functionTestSuite._testData().isEmpty()) + { + return; + } + if (protocolFunctionSuite.testData == null || protocolFunctionSuite.testData.isEmpty()) + { + return; + } + org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime runtime = getRuntimesInFunction(context.getPureModel()); + if (runtime == null) + { + return; + } + runtime._connectionStores().forEach(connectionStore -> + { + // find connections that have been mocked and replace + Object element = connectionStore._element(); + if (element instanceof org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store) + { + org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store store = (org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store) element; + String storePath = getElementFullPath(store, context.getPureModel().getExecutionSupport()); + Optional optionalStoreTestData = protocolFunctionSuite.testData.stream().filter(pTestData -> pTestData.store.equals(storePath)).findFirst(); + if (optionalStoreTestData.isPresent()) + { + StoreTestData storeTestData = optionalStoreTestData.get(); + EmbeddedData testData = EmbeddedDataHelper.resolveEmbeddedDataInPMCD(context.getPureModelContextData(), storeTestData.data); + Pair> closeableMockedConnections = this.factories.collect(f -> f.tryBuildTestConnectionsForStore(context.getDataElementIndex(), resolveStore(context.getPureModelContextData(), storePath), testData)).select(Objects::nonNull).select(Optional::isPresent) + .collect(Optional::get).getFirstOptional().orElseThrow(() -> new UnsupportedOperationException("Unsupported store type for: '" + storePath + "' mentioned while running the function tests")); + Connection mockedConnection = closeableMockedConnections.getOne(); + Root_meta_core_runtime_Connection mockedCompileConnection = mockedConnection.accept(context.getConnectionVisitor()); + // we replace with mocked connection. We set back to original at cleanup + Root_meta_core_runtime_Connection realConnection = connectionStore._connection(); + this.storeConnectionsPairs.add(Tuples.pair(connectionStore, realConnection)); + connectionStore._connection(mockedCompileConnection); + this.closeables.addAll(closeableMockedConnections.getTwo()); + } + else + { + LOGGER.warn("No test data found store + " + storePath + ". When building test data for runtime"); + } + } + }); + } + + private void tearDown() + { + if (this.closeables != null) + { + this.closeables.forEach(closeable -> + { + try + { + closeable.close(); + } + catch (IOException e) + { + LOGGER.warn("Exception occurred closing closeable resource" + e); + } + }); + } + // restore original connection value + if (this.storeConnectionsPairs != null) + { + this.storeConnectionsPairs.forEach(storeConnectionsPairs -> + { + storeConnectionsPairs.getOne()._connection(storeConnectionsPairs.getTwo()); + }); + } + } + + private Store resolveStore(PureModelContextData pureModelContextData, String store) + { + if (store.equals("ModelStore")) + { + return new ModelStore(); + } + else + { + return ListIterate.detect(pureModelContextData.getElementsOfType(Store.class), x -> x.getPath().equals(store)); + } + } + + public org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime getRuntimesInFunction(PureModel pureModel) + { + RichIterable runtimes = org.finos.legend.pure.generated.core_pure_corefunctions_metaExtension.Root_meta_pure_functions_meta_extractRuntimesFromFunctionDefinition_FunctionDefinition_1__Runtime_MANY_(this.functionDefinition, pureModel.getExecutionSupport()); + if (runtimes.isEmpty()) + { + return null; + } + else if (runtimes.size() == 1) + { + return runtimes.getOnly(); + } + else + { + throw new UnsupportedOperationException("Currently cannot test functions with more than one runtime present"); + } + } +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunnerContext.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunnerContext.java new file mode 100644 index 00000000000..2cf3f875c1d --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestRunnerContext.java @@ -0,0 +1,115 @@ +// 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.testable.function.extension; + +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.factory.Maps; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.api.tuple.Pair; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.plan.execution.PlanExecutor; +import org.finos.legend.engine.plan.generation.transformers.PlanTransformer; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionVisitor; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.data.DataElement; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.function.FunctionTestSuite; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_legend_function_metamodel_FunctionTestSuite; +import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; + +import java.util.Map; + +public class FunctionTestRunnerContext +{ + private final Pair models; + private final Pair suites; + private final Map dataElementIndex; + + // execution + private final MutableList executionPlanTransformers; + private final ConnectionVisitor connectionVisitor; + private final RichIterable routerExtensions; + private final PlanExecutor.ExecuteArgsBuilder executeBuilder; + + public FunctionTestRunnerContext(Pair models, Pair suites, + MutableList executionPlanTransformers, + ConnectionVisitor connectionVisitor, RichIterable routerExtensions + ) + { + this.models = models; + this.suites = suites; + this.executionPlanTransformers = executionPlanTransformers; + this.connectionVisitor = connectionVisitor; + this.routerExtensions = routerExtensions; + this.executeBuilder = PlanExecutor.withArgs(); + this.dataElementIndex = this.buildDataElementIndex(models.getOne()); + + } + + private Map buildDataElementIndex(PureModelContextData pureModelContextData) + { + Map result = Maps.mutable.empty(); + pureModelContextData.getElementsOfType(DataElement.class).forEach(d -> result.put(d.getPath(), d)); + return result; + } + + public PureModel getPureModel() + { + return models.getTwo(); + } + + public PureModelContextData getPureModelContextData() + { + return models.getOne(); + } + + public Root_meta_legend_function_metamodel_FunctionTestSuite getTestSuite() + { + return this.suites.getTwo(); + } + + public FunctionTestSuite getProtocolSuite() + { + return this.suites.getOne(); + } + + public Map getDataElementIndex() + { + return dataElementIndex; + } + + + public PlanExecutor.ExecuteArgsBuilder getExecuteBuilder() + { + return executeBuilder; + } + + + public ConnectionVisitor getConnectionVisitor() + { + return connectionVisitor; + } + + public RichIterable getRouterExtensions() + { + return routerExtensions; + } + + public MutableList getExecutionPlanTransformers() + { + return executionPlanTransformers; + } + +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestableRunnerExtension.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestableRunnerExtension.java new file mode 100644 index 00000000000..d1c86b0250d --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/java/org/finos/legend/engine/testable/function/extension/FunctionTestableRunnerExtension.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.testable.function.extension; + +import org.finos.legend.engine.protocol.pure.PureClientVersions; +import org.finos.legend.engine.protocol.pure.v1.CorePureProtocolExtension; +import org.finos.legend.engine.testable.extension.TestRunner; +import org.finos.legend.engine.testable.extension.TestableRunnerExtension; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; +import org.finos.legend.pure.m3.coreinstance.meta.pure.test.Testable; + +public class FunctionTestableRunnerExtension implements TestableRunnerExtension +{ + + private String pureVersion = PureClientVersions.production; + + @Override + public String getSupportedClassifierPath() + { + return CorePureProtocolExtension.FUNCTION_CLASSIFIER_PATH; + } + + @Override + public TestRunner getTestRunner(Testable testable) + { + if (testable instanceof org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition) + { + return new FunctionTestRunner((ConcreteFunctionDefinition) testable, pureVersion); + } + return null; + } + +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/resources/META-INF/services/org.finos.legend.engine.testable.extension.TestableRunnerExtension b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/resources/META-INF/services/org.finos.legend.engine.testable.extension.TestableRunnerExtension new file mode 100644 index 00000000000..5f077d2799c --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/main/resources/META-INF/services/org.finos.legend.engine.testable.extension.TestableRunnerExtension @@ -0,0 +1 @@ +org.finos.legend.engine.testable.function.extension.FunctionTestableRunnerExtension \ No newline at end of file diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/java/org/finos/legend/engine/testable/function/TestFunctionTestSuite.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/java/org/finos/legend/engine/testable/function/TestFunctionTestSuite.java new file mode 100644 index 00000000000..ab8835cfd7a --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/java/org/finos/legend/engine/testable/function/TestFunctionTestSuite.java @@ -0,0 +1,189 @@ +// 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.testable.function; + +import net.javacrumbs.jsonunit.JsonAssert; +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.grammar.from.PureGrammarParser; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.status.AssertFail; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.status.AssertionStatus; +import org.finos.legend.engine.protocol.pure.v1.model.test.assertion.status.EqualToJsonAssertFail; +import org.finos.legend.engine.protocol.pure.v1.model.test.result.TestExecuted; +import org.finos.legend.engine.protocol.pure.v1.model.test.result.TestExecutionStatus; +import org.finos.legend.engine.protocol.pure.v1.model.test.result.TestResult; +import org.finos.legend.engine.shared.core.deployment.DeploymentMode; +import org.finos.legend.engine.testable.extension.TestRunner; +import org.finos.legend.engine.testable.function.extension.FunctionTestableRunnerExtension; +import org.finos.legend.pure.generated.Root_meta_pure_test_TestSuite; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; +import org.finos.legend.pure.m3.coreinstance.meta.pure.test.TestAccessor; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import java.net.URL; +import java.util.List; + +public class TestFunctionTestSuite +{ + + @Test + public void testFunctionTest() + { + List inlineServiceStoreTestResults = executeFunctionTest("legend-testable-function-test-model-relational.pure", "model::PersonQuery__TabularDataSet_1_"); + Assert.assertEquals(1, inlineServiceStoreTestResults.size()); + Assert.assertTrue(inlineServiceStoreTestResults.get(0) instanceof TestExecuted); + TestExecuted testExecuted = (TestExecuted) inlineServiceStoreTestResults.get(0); + Assert.assertEquals(TestExecutionStatus.PASS, testExecuted.testExecutionStatus); + } + + @Test + public void testFunctionPrimitiveValue() + { + List testResults = executeFunctionTest("legend-testable-function-test-model.pure", "model::Hello_String_1__String_1_"); + Assert.assertEquals(2, testResults.size()); + Assert.assertTrue(hasTestPassed(findTestById(testResults, "testPass"))); + // TODO: assert failure for equalTo should return expected value as separate value in class + String message = "expected:Hello World! My name is Johnx., Found : Hello World! My name is John."; + TestResult failedResult = findTestById(testResults, "testFail"); + Assert.assertTrue(failedResult instanceof TestExecuted); + TestExecuted executed = (TestExecuted) failedResult; + Assert.assertEquals(TestExecutionStatus.FAIL, executed.testExecutionStatus); + Assert.assertEquals(1, executed.assertStatuses.size()); + AssertionStatus assertionStatus = executed.assertStatuses.get(0); + Assert.assertTrue(assertionStatus instanceof AssertFail); + AssertFail fail = (AssertFail) assertionStatus; + Assert.assertEquals(message, fail.message); + + } + + @Test + @Ignore + // TODO: fix test + public void testFunctionTestM2M() + { + List inlineServiceStoreTestResults = executeFunctionTest("legend-testable-function-test-model-m2m.pure", "model::PersonQuery__String_1_"); + Assert.assertEquals(1, inlineServiceStoreTestResults.size()); + Assert.assertTrue(inlineServiceStoreTestResults.get(0) instanceof TestExecuted); + TestExecuted testExecuted = (TestExecuted) inlineServiceStoreTestResults.get(0); + Assert.assertEquals(TestExecutionStatus.PASS, testExecuted.testExecutionStatus); + } + + @Test + public void testFunctionTestWithParameters() + { + List testResults = executeFunctionTest("legend-testable-function-test-model-relational.pure", "model::PersonWithParams_String_1__TabularDataSet_1_"); + Assert.assertEquals(2, testResults.size()); + Assert.assertTrue(hasTestPassed(findTestById(testResults, "testPass"))); + String expected = "[]"; + String actual = "[ {\n" + + " \"First Name\" : \"Nicole\",\n" + + " \"Last Name\" : \"Smith\"\n" + + "} ]"; + testFailingTest(findTestById(testResults, "testFail"), expected, actual); + } + + @Test + public void testFunctionTestWithM2M() + { + List inlineServiceStoreTestResults = executeFunctionTest("legend-testable-function-test-model-relational.pure", "model::PersonQuery__TabularDataSet_1_"); + Assert.assertEquals(1, inlineServiceStoreTestResults.size()); + Assert.assertTrue(inlineServiceStoreTestResults.get(0) instanceof TestExecuted); + TestExecuted testExecuted = (TestExecuted) inlineServiceStoreTestResults.get(0); + Assert.assertEquals(TestExecutionStatus.PASS, testExecuted.testExecutionStatus); + } + + private List executeFunctionTest(String grammar, String fullPath) + { + FunctionTestableRunnerExtension functionTestableRunnerExtension = new FunctionTestableRunnerExtension(); + String pureModelString = getResourceAsString("testable/" + grammar); + PureModelContextData pureModelContextData = PureGrammarParser.newInstance().parseModel(pureModelString); + PureModel pureModel = Compiler.compile(pureModelContextData, DeploymentMode.TEST, null); + org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement element = pureModel.getPackageableElement(fullPath); + Assert.assertTrue(element instanceof org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition); + ConcreteFunctionDefinition functionMetamodel = (ConcreteFunctionDefinition) element; + TestRunner testRunner = functionTestableRunnerExtension.getTestRunner(functionMetamodel); + Assert.assertNotNull("Unable to get function test runner from testable extension", testRunner); + return functionMetamodel._tests().flatCollect(testSuite -> + { + List atomicTestIds = ((Root_meta_pure_test_TestSuite) testSuite)._tests().collect(TestAccessor::_id).toList(); + return testRunner.executeTestSuite((Root_meta_pure_test_TestSuite) testSuite, atomicTestIds, pureModel, pureModelContextData); + }).toList(); + } + + private void testFailingTest(TestResult testResult, String expected, String actual) + { + TestExecuted testExecuted = guaranteedTestExecuted(testResult); + Assert.assertEquals(TestExecutionStatus.FAIL, testExecuted.testExecutionStatus); + AssertionStatus status = testExecuted.assertStatuses.get(0); + if (status instanceof EqualToJsonAssertFail) + { + EqualToJsonAssertFail equalToJsonAssertFail = (EqualToJsonAssertFail)status; + JsonAssert.assertJsonEquals(expected, equalToJsonAssertFail.expected); + JsonAssert.assertJsonEquals(actual, equalToJsonAssertFail.actual); + } + else + { + throw new RuntimeException("Test Assertion" + status.id + " expected to fail"); + } + } + + private TestExecuted guaranteedTestExecuted(TestResult result) + { + if (result instanceof TestExecuted) + { + return (TestExecuted) result; + } + throw new RuntimeException("test expected to have been executed"); + } + + + private boolean hasTestPassed(TestResult result) + { + if (result instanceof TestExecuted) + { + return ((TestExecuted) result).testExecutionStatus.equals(TestExecutionStatus.PASS); + } + return false; + } + + private TestResult findTestById(List results, String id) + { + return results.stream().filter(test -> test.atomicTestId.equals(id)).findFirst().orElseThrow(() -> new RuntimeException("Test Id " + id + " not found")); + } + + private String getResourceAsString(String path) + { + try + { + URL infoURL = TestFunctionTestSuite.class.getClassLoader().getResource(path); + if (infoURL != null) + { + java.util.Scanner scanner = new java.util.Scanner(infoURL.openStream()).useDelimiter("\\A"); + return scanner.hasNext() ? scanner.next() : null; + } + return null; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + + +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-m2m.pure b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-m2m.pure new file mode 100644 index 00000000000..13fa6d37371 --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-m2m.pure @@ -0,0 +1,99 @@ +Class model::Person +{ + firstName: String[1]; + lastName: String[1]; +} + +Class model::DifferentPerson +{ + fullName: String[1]; +} + +function model::PersonQuery(): String[1] +{ + model::DifferentPerson.all()->graphFetch( + #{ + model::DifferentPerson{ + fullName + } + }# + )->serialize( + #{ + model::DifferentPerson{ + fullName + } + }# + )->from( + model::M2MMapping, + model::MyRuntime + ) +} +[ + testSuite_1: + { + data: + [ + { + store: ModelStore; + data: ExternalFormat + #{ + contentType: 'application/json'; + data: '{\n "firstName": "John",\n "lastName": "Doe"\n}'; + }#; + } + ]; + tests: + [ + test_1: + { + asserts: + [ + assertion_1: + EqualToJson + #{ + expected: + ExternalFormat + #{ + contentType: 'application/json'; + data: '{\n "fullName" : "John Doe"\n}'; + }#; + }# + ] + } + ] + } + ] + +###Mapping +Mapping model::M2MMapping +( + *model::DifferentPerson: Pure + { + ~src model::Person + fullName: $src.firstName + ' ' + $src.lastName + } +) + + +###Runtime +Runtime model::MyRuntime +{ + mappings: + [ + model::M2MMapping + ]; + connections: + [ + ModelStore: + [ + connection_1: + #{ + JsonModelConnection + { + class: model::Person; + url: 'executor:default'; + } + }# + ] + ]; +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-relational.pure b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-relational.pure new file mode 100644 index 00000000000..ccef9eb6e85 --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model-relational.pure @@ -0,0 +1,263 @@ +###Data +Data data::RelationalData +{ + Relational + #{ + default.PersonTable: + 'id,firm_id,firstName,lastName,employeeType\n' + + '1,1,John,Doe,FTO\n' + + '2,1,Nicole,Smith,FTC\n' + + '3,2,Time,Smith,FTE\n'; + + default.FirmTable: + 'id,legal_name\n' + + '1,Finos\n' + + '2,Apple'; + + }# +} + +###Relational +Database store::TestDB +( + Table FirmTable + ( + id INTEGER PRIMARY KEY, + legal_name VARCHAR(200) + ) + Table PersonTable + ( + id INTEGER PRIMARY KEY, + firm_id INTEGER, + firstName VARCHAR(200), + lastName VARCHAR(200), + employeeType VARCHAR(200) + ) + + Join FirmPerson(PersonTable.firm_id = FirmTable.id) +) + + +###Pure +Class model::Person +{ + firstName: String[1]; + lastName: String[1]; + employeeType: model::EmployeeType[1]; +} + +Enum model::EmployeeType +{ + CONTRACT, + FULL_TIME +} + +Class model::Firm +{ + legalName: String[1]; + employees: model::Person[*]; +} + + +###Mapping +Mapping execution::RelationalMapping +( + *model::Person: Relational + { + ~primaryKey + ( + [store::TestDB]PersonTable.id + ) + ~mainTable [store::TestDB]PersonTable + firstName: [store::TestDB]PersonTable.firstName, + lastName: [store::TestDB]PersonTable.lastName, + employeeType: EnumerationMapping EmployeeTypeMapping: [store::TestDB]PersonTable.employeeType + } + + model::EmployeeType: EnumerationMapping EmployeeTypeMapping + { + CONTRACT: ['FTC', 'FTO'], + FULL_TIME: 'FTE' + } + + *model::Firm: Relational + { + ~primaryKey + ( + [store::TestDB]FirmTable.id + ) + ~mainTable [store::TestDB]FirmTable + legalName: [store::TestDB]FirmTable.legal_name, + employees[model_Person]: [store::TestDB]@FirmPerson + } +) + + +###Connection +RelationalDatabaseConnection model::MyConnection +{ + store: store::TestDB; + type: H2; + specification: LocalH2 + { + testDataSetupSqls: [ + 'Drop table if exists FirmTable;\nDrop table if exists PersonTable;\nCreate Table FirmTable(id INT, Legal_Name VARCHAR(200));\nCreate Table PersonTable(id INT, firm_id INT, lastName VARCHAR(200), firstName VARCHAR(200), employeeType VARCHAR(200));\nInsert into FirmTable (id, Legal_Name) values (1, \'FirmA\');\nInsert into FirmTable (id, Legal_Name) values (2, \'Apple\');\nInsert into PersonTable (id, firm_id, lastName, firstName, employeeType) values (1, 1, \'John\', \'Doe\', \'FTC\');\nInsert into PersonTable (id, firm_id, lastName, firstName, employeeType) values (2, 2, \'Tim\', \'Smith\', \'FTE\');\nInsert into PersonTable (id, firm_id, lastName, firstName, employeeType) values (3, 3, \'Nicole\', \'Doe\', \'FTO\');\n\n' + ]; + }; + auth: DefaultH2; +} + +###Runtime +Runtime execution::Runtime +{ + mappings: + [ + execution::RelationalMapping + ]; + connections: + [ + store::TestDB: + [ + connection_1: model::MyConnection + ] + ]; +} + +###Pure +function model::PersonQuery(): meta::pure::tds::TabularDataSet[1] +{ + model::Person.all()->project( + [ + x|$x.firstName, + x|$x.lastName + ], + [ + 'First Name', + 'Last Name' + ] + )->from( + execution::RelationalMapping, + execution::Runtime + ) +} +[ + testSuite_1: + { + data: + [ + { + store: store::TestDB; + data: + Relational + #{ + default.PersonTable: + 'id,firm_id,firstName,lastName,employeeType\n'+ + '1,1,I\'m John,"Doe, Jr",FTO\n'+ + '2,1,Nicole,Smith,FTC\n'+ + '3,2,Time,Smith,FTE\n'; + }#; + } + ]; + tests: + [ + test_1: + { + asserts: + [ + assertion_1: + EqualToJson + #{ + expected: + ExternalFormat + #{ + contentType: 'application/json'; + data: '[ {\n "First Name" : "I\'m John",\n "Last Name" : "Doe, Jr"\n}, {\n "First Name" : "Nicole",\n "Last Name" : "Smith"\n}, {\n "First Name" : "Time",\n "Last Name" : "Smith"\n} ]'; + }#; + }# + ] + } + ] + } +] +function model::PersonWithParams(firstName: String[1]): meta::pure::tds::TabularDataSet[1] +{ + model::Person.all()->filter( + x|$x.firstName == + $firstName + )->project( + [ + x|$x.firstName, + x|$x.lastName + ], + [ + 'First Name', + 'Last Name' + ] + )->from( + execution::RelationalMapping, + execution::Runtime + ) +} +[ + testSuite_1: + { + data: + [ + { + store: store::TestDB; + data: + Relational + #{ + default.PersonTable: + 'id,firm_id,firstName,lastName,employeeType\n'+ + '1,1,I\'m John,"Doe, Jr",FTO\n'+ + '2,1,Nicole,Smith,FTC\n'+ + '3,2,Time,Smith,FTE\n'; + }#; + } + ]; + tests: + [ + testFail: + { + parameters: + [ + firstName = 'Nicole' + ] + asserts: + [ + assertion_1: + EqualToJson + #{ + expected: + ExternalFormat + #{ + contentType: 'application/json'; + data: '[]'; + }#; + }# + ] + }, + testPass: + { + parameters: + [ + firstName = 'Nicole' + ] + asserts: + [ + assertion_1: + EqualToJson + #{ + expected: + ExternalFormat + #{ + contentType: 'application/json'; + data: '[ {\n "First Name" : "Nicole",\n "Last Name" : "Smith"\n} ]'; + }#; + }# + ] + } + ] + } +] \ No newline at end of file diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model.pure b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model.pure new file mode 100644 index 00000000000..0a4c0c639ac --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/src/test/resources/testable/legend-testable-function-test-model.pure @@ -0,0 +1,43 @@ +function model::Hello(name: String[1]): String[1] +{ + 'Hello World! My name is ' + $name + '.'; +} +[ + testSuite_1: + { + tests: + [ + testPass: + { + parameters: + [ + name = 'John' + ] + asserts: + [ + assertion_1: + EqualTo + #{ + expected: 'Hello World! My name is John.'; + }# + ] + }, + testFail: + { + parameters: + [ + name = 'John' + ] + asserts: + [ + assertion_1: + EqualTo + #{ + expected: 'Hello World! My name is Johnx.'; + }# + ] + } + + ] + } +] diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 08521304baf..8a9811feadd 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -28,6 +28,7 @@ legend-engine-test-runner-mapping + legend-engine-test-runner-function legend-engine-test-runner-shared legend-engine-test-server-shared legend-engine-test-data-generation diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/function/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/function/metamodel.pure new file mode 100644 index 00000000000..87cc1afff74 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/function/metamodel.pure @@ -0,0 +1,127 @@ +// 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::legend::function::metamodel::*; +import meta::pure::data::*; + +Class meta::legend::function::metamodel::FunctionTestSuite extends meta::pure::test::TestSuite +{ + connectionsTestData : ConnectionTestData[*]; + testData: meta::legend::function::metamodel::StoreTestData[*]; +} + +Class meta::legend::function::metamodel::StoreTestData +{ + doc: String[0..1]; + store: meta::pure::store::Store[1]; + data: EmbeddedData[1]; +} + +Class meta::legend::function::metamodel::FunctionTest extends meta::pure::test::AtomicTest +{ + parameters : ParameterValue[*]; +} + +Class meta::legend::function::metamodel::ParameterValue +{ + name : String[1]; + value : Any[*]; +} + +Class {doc.doc = 'Do not use for now'} meta::legend::function::metamodel::ConnectionTestData +{ + doc: String[0..1]; + connectionId: String[1]; + testData: EmbeddedData[1]; +} + +###Diagram +Diagram meta::legend::function::metamodel::FunctionTestDiagram(width=0.0, height=0.0) +{ + TypeView cview_2( + type=meta::legend::function::metamodel::FunctionTestSuite, + position=(440.00000, 157.00000), + width=256.73633, + height=58.00000, + stereotypesVisible=true, + attributesVisible=true, + attributeStereotypesVisible=true, + attributeTypesVisible=true, + color=#FFFFCC, + lineWidth=1.0) + + TypeView cview_5( + type=meta::legend::function::metamodel::ParameterValue, + position=(1071.05127, 282.00000), + width=110.05859, + height=58.00000, + stereotypesVisible=true, + attributesVisible=true, + attributeStereotypesVisible=true, + attributeTypesVisible=true, + color=#FFFFCC, + lineWidth=1.0) + + TypeView cview_1( + type=meta::legend::function::metamodel::FunctionTest, + position=(1035.00000, 190.00000), + width=182.03516, + height=58.00000, + stereotypesVisible=true, + attributesVisible=true, + attributeStereotypesVisible=true, + attributeTypesVisible=true, + color=#FFFFCC, + lineWidth=1.0) + + TypeView cview_6( + type=meta::legend::function::metamodel::StoreTestData, + position=(792.01758, 174.00000), + width=168.42969, + height=86.00000, + stereotypesVisible=true, + attributesVisible=true, + attributeStereotypesVisible=true, + attributeTypesVisible=true, + color=#FFFFCC, + lineWidth=1.0) + + PropertyView pview_0( + property=meta::legend::function::metamodel::FunctionTest.parameters, + source=cview_1, + target=cview_5, + points=[(1126.01758,219.00000),(1126.08057,311.00000)], + label='', + propertyPosition=(0.0,0.0), + multiplicityPosition=(0.0,0.0), + color=#000000, + lineWidth=-1.0, + stereotypesVisible=true, + nameVisible=true, + lineStyle=SIMPLE) + + PropertyView pview_1( + property=meta::legend::function::metamodel::FunctionTestSuite.testData, + source=cview_2, + target=cview_6, + points=[(568.36816,186.00000),(876.23242,217.00000)], + label='', + propertyPosition=(0.0,0.0), + multiplicityPosition=(0.0,0.0), + color=#000000, + lineWidth=-1.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/test/diagram.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/test/diagram.pure index cb8a45c34a1..f0f48f0b1c0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/test/diagram.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/test/diagram.pure @@ -1,18 +1,6 @@ ###Diagram Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) { - TypeView cview_5( - type=meta::pure::test::assertion::TestAssertion, - position=(1506.48096, 346.00000), - width=99.13086, - height=58.00000, - stereotypesVisible=true, - attributesVisible=true, - attributeStereotypesVisible=true, - attributeTypesVisible=true, - color=#FFFFCC, - lineWidth=1.0) - TypeView cview_7( type=meta::pure::test::assertion::EqualToJson, position=(1577.48096, 486.00000), @@ -52,8 +40,8 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) TypeView cview_21( type=meta::pure::test::AtomicTest, position=(1243.17143, 353.09795), - width=97.38477, - height=44.00000, + width=105.56689, + height=58.00000, stereotypesVisible=true, attributesVisible=true, attributeStereotypesVisible=true, @@ -64,8 +52,8 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) TypeView cview_20( type=meta::pure::test::TestSuite, position=(1012.17143, 356.20356), - width=97.38477, - height=44.00000, + width=105.56689, + height=58.00000, stereotypesVisible=true, attributesVisible=true, attributeStereotypesVisible=true, @@ -181,10 +169,22 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) color=#FFFFCC, lineWidth=1.0) + TypeView cview_5( + type=meta::pure::test::assertion::TestAssertion, + position=(1505.23958, 355.93103), + width=99.13086, + height=58.00000, + stereotypesVisible=true, + attributesVisible=true, + attributeStereotypesVisible=true, + attributeTypesVisible=true, + color=#FFFFCC, + lineWidth=1.0) + GeneralizationView gview_0( source=cview_6, target=cview_5, - points=[(1460.71899,509.00000),(1556.04639,375.00000)], + points=[(1460.71899,509.00000),(1554.80501,384.93103)], label='', color=#000000, lineWidth=-1.0, @@ -193,7 +193,7 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) GeneralizationView gview_1( source=cview_7, target=cview_5, - points=[(1662.36475,508.00000),(1556.04639,375.00000)], + points=[(1662.36475,508.00000),(1554.80501,384.93103)], label='', color=#000000, lineWidth=-1.0, @@ -229,7 +229,7 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) GeneralizationView gview_5( source=cview_20, target=cview_2, - points=[(1060.86381,378.20356),(1187.69483,238.00000)], + points=[(1064.95487,385.20356),(1187.69483,238.00000)], label='', color=#000000, lineWidth=-1.0, @@ -238,7 +238,7 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) GeneralizationView gview_6( source=cview_21, target=cview_2, - points=[(1291.86381,375.09795),(1187.69483,238.00000)], + points=[(1295.95487,382.09795),(1187.69483,238.00000)], label='', color=#000000, lineWidth=-1.0, @@ -294,7 +294,7 @@ Diagram meta::pure::test::MetaModelDiagram(width=0.0, height=0.0) property=meta::pure::test::AtomicTest.assertions, source=cview_21, target=cview_5, - points=[(1291.86381,375.09795),(1556.04639,375.00000)], + points=[(1295.95487,382.09795),(1554.80501,384.93103)], label='', propertyPosition=(0.0,0.0), multiplicityPosition=(0.0,0.0), 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/ServiceCompilerExtensionImpl.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/ServiceCompilerExtensionImpl.java index b8489548c9b..8050a6fb75f 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/ServiceCompilerExtensionImpl.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/ServiceCompilerExtensionImpl.java @@ -231,7 +231,7 @@ public List testIds = ListIterate.collect(serviceTestSuite.tests, t -> t.id); @@ -270,7 +270,7 @@ else if (test instanceof ServiceTest) pureServiceTest._keysAddAll(Lists.mutable.withAll(serviceTest.keys)); if (serviceTest.assertions == null || serviceTest.assertions.isEmpty()) { - throw new EngineException("Service Tests should have atleast 1 assert", serviceTest.sourceInformation, EngineErrorType.COMPILATION); + throw new EngineException("Service Tests should have at least 1 assert", serviceTest.sourceInformation, EngineErrorType.COMPILATION); } List assertionIds = ListIterate.collect(serviceTest.assertions, a -> a.id); diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/test/java/org/finos/legend/engine/language/pure/compiler/test/TestServiceCompilationFromGrammar.java b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/test/java/org/finos/legend/engine/language/pure/compiler/test/TestServiceCompilationFromGrammar.java index 8888eacbd7d..a363310e76e 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/test/java/org/finos/legend/engine/language/pure/compiler/test/TestServiceCompilationFromGrammar.java +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/test/java/org/finos/legend/engine/language/pure/compiler/test/TestServiceCompilationFromGrammar.java @@ -2226,7 +2226,7 @@ public void testServiceTestSuiteCompilationErrorMessages() " }\n" + " ]\n" + "}\n", - "COMPILATION error at [106:5-123:5]: Service TestSuites should have atleast 1 test" + "COMPILATION error at [106:5-123:5]: Service TestSuites should have at least 1 test" ); //Test Single TestSuite without asserts @@ -2275,7 +2275,7 @@ public void testServiceTestSuiteCompilationErrorMessages() " }\n" + " ]\n" + "}\n", - "COMPILATION error at [122:9-127:9]: Service Tests should have atleast 1 assert" + "COMPILATION error at [122:9-127:9]: Service Tests should have at least 1 assert" ); //Multiple TestSuites with same ids diff --git a/pom.xml b/pom.xml index b6e40ef94f7..5a8514bda04 100644 --- a/pom.xml +++ b/pom.xml @@ -1810,6 +1810,11 @@ legend-engine-test-runner-mapping ${project.version} + + org.finos.legend.engine + legend-engine-test-runner-function + ${project.version} + org.finos.legend.engine legend-engine-service-post-validation-runner From 9c5b064e242d47fe4efca5f16f5bb9f89913ed3c Mon Sep 17 00:00:00 2001 From: Pierre De Belen Date: Tue, 19 Dec 2023 20:55:19 -0500 Subject: [PATCH 39/54] Upgrade Legend Pure to 5.0.0 (#2514) * Stable point * Enable Relation Relational tests * Rebase code and use legend pure last release --- .gitignore | 2 +- h2Console.sh | 1 + h2Server.sh | 2 +- .../legend-engine-server/pom.xml | 13 +- ...atform_CodeGeneration_UsingPureClient.java | 11 +- ...tionPlan_JavaPlatform_UsingPureClient.java | 9 +- .../other/Test_Engine_UsingPureClient.java | 12 +- ...ternalFormat_UsingPureClientTestSuite.java | 23 +- .../Test_LoadMappings_UsingPureClient.java | 6 +- .../Test_M2M_UsingPureClientTestSuite.java | 13 +- ...etchParallel_UsingPureClientTestSuite.java | 43 +- ...t_Relational_UsingPureClientTestSuite.java | 108 +-- .../shared/MetadataTestServerResource.java | 43 ++ .../server/test/shared/PureTestHelper.java | 500 +------------ .../test/shared/ServerTestServerResource.java | 41 ++ .../server/test/shared/ServersState.java | 49 -- .../legend-engine-test-framework/pom.xml | 89 +++ .../framework/PureTestHelperFramework.java | 482 +++++++++++++ .../test/shared/framework/ServersState.java | 59 ++ .../shared/framework/TestServerResource.java | 22 + .../test/shared/PureWithEngineHelper.java | 3 +- .../legend-engine-core-test/pom.xml | 1 + .../pom.xml | 10 + .../core/pure/extensions/extension.pure | 2 +- .../core/pure/mapping/mappingExtension.pure | 5 + .../pure/router/metamodel/clustering.pure | 38 +- .../core/pure/router/metamodel/diagram.pure | 16 +- .../core/pure/router/metamodel/routing.pure | 8 + .../core/pure/router/preeval/preeval.pure | 45 +- .../core/pure/router/printer/printer.pure | 3 + .../core/pure/router/router_main.pure | 4 +- .../pure/router/routing/router_routing.pure | 77 +- .../core/pure/router/store/cluster.pure | 55 +- .../core/pure/router/store/metamodel.pure | 1 + .../core/pure/router/store/routing.pure | 170 +++-- .../pure/serialization/toPureGrammar.pure | 26 +- .../legend-engine-pure-ide-light-pure/pom.xml | 21 + .../src/main/resources/pure_ide/concepts.pure | 3 +- .../finos/legend/engine/ide/PureIDELight.java | 11 +- .../pom.xml | 101 +++ .../pom.xml | 121 ++++ .../pom.xml | 2 + .../LegendCompileMixedProcessorSupport.java | 8 +- .../java/generation/GenerateJavaProject.java | 2 +- .../platform/tests/javaGenerationTest.pure | 12 +- .../driver/vendors/h2/H2Manager.java | 1 + .../pom.xml | 10 + .../RelationalStoreExecutorBuilder.java | 2 +- .../relational/test/H2TestServerResource.java | 57 ++ .../pom.xml | 1 - .../pom.xml | 49 ++ .../resources/core_relational.definition.json | 2 + .../relational/contract/storeContract.pure | 45 +- .../projection/testGroupWithWindowSubset.pure | 8 +- .../pureToSQLQuery/pureToSQLQuery.pure | 371 ++++++---- .../pureToSQLQuery/pureToSQLQuery_union.pure | 10 +- .../relational/relation/testFramework.pure | 679 ++++++++++++++++++ .../relational/relation/tests.pure | 23 + .../relationalMappingExecution.pure | 106 +-- .../advanced/testContractMoneyScenario.pure | 6 +- .../pom.xml | 6 +- ...onExecutionTestCodeRepositoryProvider.java | 0 ...lesystem.repository.CodeRepositoryProvider | 0 ...al_mutation_execution_test.definition.json | 0 .../mutation/testRelationalMutation.pure | 0 .../TestRelationalMutationExecutionPlan.java | 2 +- .../pom.xml | 109 +++ .../TestRelationalRelationExecutionPlan.java | 49 ++ .../pom.xml | 33 + legend-engine-xts-relationalStore/pom.xml | 1 + pom.xml | 42 +- 71 files changed, 2874 insertions(+), 1011 deletions(-) create mode 100755 h2Console.sh create mode 100644 legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/MetadataTestServerResource.java create mode 100644 legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServerTestServerResource.java delete mode 100644 legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServersState.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/PureTestHelperFramework.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/ServersState.java create mode 100644 legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/TestServerResource.java create mode 100644 legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml create mode 100644 legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml 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/test/H2TestServerResource.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/testFramework.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/tests.pure rename legend-engine-xts-relationalStore/{legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test => legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation}/pom.xml (98%) rename legend-engine-xts-relationalStore/{legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test => legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation}/src/main/java/org/finos/legend/pure/code/core/CoreRelationalMutationExecutionTestCodeRepositoryProvider.java (100%) rename legend-engine-xts-relationalStore/{legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test => legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation}/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider (100%) rename legend-engine-xts-relationalStore/{legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test => legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation}/src/main/resources/core_relational_mutation_execution_test.definition.json (100%) rename legend-engine-xts-relationalStore/{legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test => legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation}/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure (100%) rename legend-engine-xts-relationalStore/{legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/mutation/test => legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/mutation}/TestRelationalMutationExecutionPlan.java (99%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/relation/TestRelationalRelationExecutionPlan.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml diff --git a/.gitignore b/.gitignore index ef6ab288758..446aa40abb7 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,5 @@ /legend-engine-xt-graphQL-grammar/gen/ /welcome.pure /legend-engine-xt-nonrelationalStore-mongodb-grammar/gen/ +/legend-engine-core-shared/legend-engine-shared-core/src/main/resources/legendExecutionVersion.json /legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/src/main/resources/legendExecutionVersion.json -temp diff --git a/h2Console.sh b/h2Console.sh new file mode 100755 index 00000000000..3e38267a725 --- /dev/null +++ b/h2Console.sh @@ -0,0 +1 @@ +java -jar ~/.m2/repository/com/h2database/h2/2.1.214/h2-2.1.214.jar \ No newline at end of file diff --git a/h2Server.sh b/h2Server.sh index 40cec646011..f355d9d0533 100755 --- a/h2Server.sh +++ b/h2Server.sh @@ -1 +1 @@ -java -cp ~/.m2/repository/com/h2database/h2/1.4.200/h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9092 -ifNotExists \ No newline at end of file +java -cp ~/.m2/repository/com/h2database/h2/2.1.214/h2-2.1.214.jar org.h2.tools.Server -tcp -tcpPort 1975 -ifNotExists \ No newline at end of file diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 92cde0224ef..738c7d3200d 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -86,6 +86,10 @@ org.finos.legend.engine legend-engine-pure-code-compiled-core + + org.finos.legend.engine + legend-engine-test-framework + org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver-pure @@ -396,10 +400,6 @@ org.finos.legend.engine legend-engine-executionPlan-execution-store-inMemory - - org.finos.legend.engine - legend-engine-xt-relationalStore-executionPlan-connection - org.finos.legend.engine legend-engine-xt-relationalStore-executionPlan @@ -953,11 +953,6 @@ - - com.h2database - h2 - - com.fasterxml.jackson.dataformat diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_CodeGeneration_UsingPureClient.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_CodeGeneration_UsingPureClient.java index 4209a43a899..f1ca0a5bf02 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_CodeGeneration_UsingPureClient.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_CodeGeneration_UsingPureClient.java @@ -16,7 +16,6 @@ import junit.framework.Test; import junit.framework.TestSuite; -import org.finos.legend.engine.server.test.shared.PureTestHelper; import org.finos.legend.engine.server.test.shared.PureWithEngineHelper; import org.finos.legend.pure.m3.execution.test.TestCollection; import org.finos.legend.pure.m4.coreinstance.CoreInstance; @@ -25,6 +24,8 @@ import org.junit.Ignore; import static org.finos.legend.engine.server.test.shared.PureTestHelper.wrapSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.buildJavaPureTestSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.getClassLoaderExecutionSupport; @Ignore public class Test_ExecutionPlan_JavaPlatform_CodeGeneration_UsingPureClient extends TestSuite @@ -35,14 +36,16 @@ public static Test suite() () -> PureWithEngineHelper.initClientVersionIfNotAlreadySet("vX_X_X"), () -> { - CompiledExecutionSupport executionSupport = PureTestHelper.getClassLoaderExecutionSupport(); + CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); String func = "meta::pure::executionPlan::platformBinding::legendJava::tests::utils::javaPureTestWrapper_FunctionDefinition_1__Boolean_1_"; CoreInstance runner = executionSupport.getProcessorSupport().package_getByUserPath(func); TestSuite suite = new TestSuite(); TestCollection testCollection = TestCollection.collectTests("meta::pure::executionPlan::platformBinding::legendJava::library::tests", executionSupport.getProcessorSupport(), fn -> PureTestBuilderCompiled.generatePureTestCollection(fn, executionSupport), null); - suite.addTest(PureTestHelper.buildJavaPureTestSuite(testCollection, executionSupport, runner)); + suite.addTest(buildJavaPureTestSuite(testCollection, executionSupport, runner)); return suite; - }); + }, + PureWithEngineHelper::cleanUp + ); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_UsingPureClient.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_UsingPureClient.java index d414fbdaeea..b0ebf5d44e4 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_UsingPureClient.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/executionPlan/Test_ExecutionPlan_JavaPlatform_UsingPureClient.java @@ -22,6 +22,7 @@ import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; import static org.finos.legend.engine.server.test.shared.PureTestHelper.wrapSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; public class Test_ExecutionPlan_JavaPlatform_UsingPureClient extends TestSuite { @@ -31,10 +32,12 @@ public static Test suite() () -> PureWithEngineHelper.initClientVersionIfNotAlreadySet("vX_X_X"), () -> { - CompiledExecutionSupport executionSupport = PureTestHelper.getClassLoaderExecutionSupport(); + CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::executionPlan::platformBinding::legendJava::library", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::executionPlan::platformBinding::legendJava::library", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; - }); + }, + PureWithEngineHelper::cleanUp + ); } } \ No newline at end of file diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_Engine_UsingPureClient.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_Engine_UsingPureClient.java index 4741cb69334..8fbe1f63c24 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_Engine_UsingPureClient.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_Engine_UsingPureClient.java @@ -16,12 +16,12 @@ import junit.framework.Test; import junit.framework.TestSuite; -import org.finos.legend.engine.server.test.shared.PureTestHelper; import org.finos.legend.engine.server.test.shared.PureWithEngineHelper; import org.finos.legend.pure.m3.execution.test.TestCollection; import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; import static org.finos.legend.engine.server.test.shared.PureTestHelper.wrapSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; public class Test_Engine_UsingPureClient extends TestSuite { @@ -31,11 +31,13 @@ public static Test suite() () -> PureWithEngineHelper.initClientVersionIfNotAlreadySet("vX_X_X"), () -> { - CompiledExecutionSupport executionSupport = PureTestHelper.getClassLoaderExecutionSupport(); + CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::legend::test::handlers", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::legend::test::model", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::legend::test::handlers", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::legend::test::model", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; - }); + }, + PureWithEngineHelper::cleanUp + ); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_ExternalFormat_UsingPureClientTestSuite.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_ExternalFormat_UsingPureClientTestSuite.java index aedaa583383..b084dd64d51 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_ExternalFormat_UsingPureClientTestSuite.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_ExternalFormat_UsingPureClientTestSuite.java @@ -21,6 +21,8 @@ import org.finos.legend.pure.m3.execution.test.TestCollection; import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; + public class Test_ExternalFormat_UsingPureClientTestSuite { public static Test suite() @@ -29,20 +31,21 @@ public static Test suite() () -> PureWithEngineHelper.initClientVersionIfNotAlreadySet("vX_X_X"), () -> { - CompiledExecutionSupport executionSupport = PureTestHelper.getClassLoaderExecutionSupport(); + CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); // NOTE: temporarily ignore these tests until we bring extensions back into Legend - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::format::avro", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::format::protobuf", executionSupport.getProcessorSupport(), ci -> !ci.getName().equals("transform_testClassWithMapToProtoBuf__Boolean_1_") && PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::format::rosetta", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::format::xml", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::format::yaml", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::format::avro", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::format::protobuf", executionSupport.getProcessorSupport(), ci -> !ci.getName().equals("transform_testClassWithMapToProtoBuf__Boolean_1_") && satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::format::rosetta", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::format::xml", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::format::yaml", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::language", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::format::shared", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::external::store", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::language", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::format::shared", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::external::store", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; - } + }, + PureWithEngineHelper::cleanUp ); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_LoadMappings_UsingPureClient.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_LoadMappings_UsingPureClient.java index 9dbce2e5991..f17f938eb36 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_LoadMappings_UsingPureClient.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/other/Test_LoadMappings_UsingPureClient.java @@ -18,6 +18,7 @@ import junit.framework.TestSuite; import org.finos.legend.engine.server.test.shared.PureTestHelper; import org.finos.legend.engine.server.test.shared.PureWithEngineHelper; +import org.finos.legend.engine.test.shared.framework.PureTestHelperFramework; import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; public class Test_LoadMappings_UsingPureClient extends TestSuite @@ -28,12 +29,13 @@ public static Test suite() () -> PureWithEngineHelper.initClientVersionIfNotAlreadySet("vX_X_X"), () -> { - CompiledExecutionSupport executionSupport = PureTestHelper.getClassLoaderExecutionSupport(); + CompiledExecutionSupport executionSupport = PureTestHelperFramework.getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); // NOTE: temporarily ignore these tests until we bring extensions back into Legend // suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::alloy::test::mapping", executionSupport.getProcessorSupport(), ci -> PureTestHelper.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; - } + }, + PureWithEngineHelper::cleanUp ); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_M2M_UsingPureClientTestSuite.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_M2M_UsingPureClientTestSuite.java index 45ec2a1982e..b8fe9e95045 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_M2M_UsingPureClientTestSuite.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_M2M_UsingPureClientTestSuite.java @@ -16,14 +16,12 @@ import junit.framework.Test; import junit.framework.TestSuite; -import org.finos.legend.engine.server.test.shared.PureTestHelper; import org.finos.legend.engine.server.test.shared.PureWithEngineHelper; import org.finos.legend.pure.m3.execution.test.TestCollection; import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.getClassLoaderExecutionSupport; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.satisfiesConditions; import static org.finos.legend.engine.server.test.shared.PureTestHelper.wrapSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; public class Test_M2M_UsingPureClientTestSuite extends TestSuite { @@ -35,10 +33,11 @@ public static Test suite() throws Exception { CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::mapping::modelToModel::test::alloy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::mapping::modelToModel::test::xmlStore", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::inMemory", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::mapping::modelToModel::test::alloy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::mapping::modelToModel::test::xmlStore", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::inMemory", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; - }); + }, + PureWithEngineHelper::cleanUp); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java index 9d793b53f7e..8ff868d4158 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_RelationalGraphFetchParallel_UsingPureClientTestSuite.java @@ -16,14 +16,16 @@ import junit.framework.Test; import junit.framework.TestSuite; +import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.engine.plan.execution.stores.relational.test.H2TestServerResource; +import org.finos.legend.engine.server.test.shared.MetadataTestServerResource; import org.finos.legend.engine.server.test.shared.PureTestHelper; import org.finos.legend.engine.server.test.shared.PureWithEngineHelper; +import org.finos.legend.engine.server.test.shared.ServerTestServerResource; import org.finos.legend.pure.m3.execution.test.TestCollection; import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.getClassLoaderExecutionSupport; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.satisfiesConditions; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.wrapSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; public class Test_RelationalGraphFetchParallel_UsingPureClientTestSuite extends TestSuite { @@ -35,24 +37,25 @@ public static Test suite() throws Exception { CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::simple", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::qualifier", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::chain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::crossDatabase", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::subType", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::union::propertyLevel", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::aggregationAware", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::advanced::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::ordered", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::simple", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::qualifier", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::chain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::crossDatabase", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::subType", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::union::propertyLevel", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::aggregationAware", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::advanced::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::ordered", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; }, - true, - "org/finos/legend/engine/server/test/userTestConfigParallelizationEnabled.json"); + PureWithEngineHelper::cleanUp, + Lists.mutable.with(new H2TestServerResource(), new MetadataTestServerResource(), new ServerTestServerResource("org/finos/legend/engine/server/test/userTestConfigParallelizationEnabled.json")) + ); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java index ef01b6c5515..8937363f18e 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/pureClient/stores/Test_Relational_UsingPureClientTestSuite.java @@ -16,14 +16,12 @@ import junit.framework.Test; import junit.framework.TestSuite; -import org.finos.legend.engine.server.test.shared.PureTestHelper; import org.finos.legend.engine.server.test.shared.PureWithEngineHelper; import org.finos.legend.pure.m3.execution.test.TestCollection; import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.getClassLoaderExecutionSupport; -import static org.finos.legend.engine.server.test.shared.PureTestHelper.satisfiesConditions; import static org.finos.legend.engine.server.test.shared.PureTestHelper.wrapSuite; +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; public class Test_Relational_UsingPureClientTestSuite extends TestSuite { @@ -35,58 +33,60 @@ public static Test suite() throws Exception { CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(); TestSuite suite = new TestSuite(); - // suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::constraints", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - // suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::testDataGeneration::tests::alloy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::advanced", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::groupBy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::injection", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::map", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::association", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::boolean", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::dates", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::distinct", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::dynajoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::enumeration", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::extend", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::filter", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::groupBy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::include", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::inheritance", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::innerjoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::join", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::merge", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::multigrain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::propertyfunc", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::selfJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::sqlFunction", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::subType", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::tree", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::union", executionSupport.getProcessorSupport(), ci -> !ci.getName().contains("testPksWithImportDataFlow") && satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::mergerules", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::projection", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::query", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::tds", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::functions::objectReferenceIn", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::simple", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::qualifier", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::chain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::crossDatabase", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::subType", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::union::propertyLevel", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::aggregationAware", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::advanced::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::ordered", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); - suite.addTest(PureTestHelper.buildSuite(TestCollection.collectTests("meta::relational::tests::functions::pureToSqlQuery::calendarAggregations", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + // suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::constraints", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + // suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::testDataGeneration::tests::alloy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::advanced", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::groupBy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::injection", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::map", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::association", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::boolean", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::dates", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::distinct", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::dynajoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::enumeration", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::extend", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::filter", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::groupBy", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::include", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::inheritance", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::innerjoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::join", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::merge", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::multigrain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::propertyfunc", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::selfJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::sqlFunction", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::subType", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::tree", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mapping::union", executionSupport.getProcessorSupport(), ci -> !ci.getName().contains("testPksWithImportDataFlow") && satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::mergerules", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::projection", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::query", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::tds", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::functions::objectReferenceIn", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::simple", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::embedded", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::qualifier", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::milestoning", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::classMappingFilterWithInnerJoin", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::chain", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::crossDatabase", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::subType", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::graphFetch::tests::union::propertyLevel", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::aggregationAware", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::advanced::resultSourcing", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::pure::graphFetch::tests::XStore::ordered", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::tests::functions::pureToSqlQuery::calendarAggregations", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); return suite; - }); + }, + PureWithEngineHelper::cleanUp + ); } } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/MetadataTestServerResource.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/MetadataTestServerResource.java new file mode 100644 index 00000000000..f9d96f7b698 --- /dev/null +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/MetadataTestServerResource.java @@ -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. + +package org.finos.legend.engine.server.test.shared; + +import org.finos.legend.engine.test.shared.framework.TestServerResource; +import org.finos.legend.engine.shared.core.port.DynamicPortGenerator; + +public class MetadataTestServerResource implements TestServerResource +{ + private TestMetaDataServer metadataServer; + + @Override + public void start() throws Exception + { + int metadataServerPort = DynamicPortGenerator.generatePort(); + this.metadataServer = new TestMetaDataServer(metadataServerPort, true); + System.out.println("Metadata server started on port:" + metadataServerPort); + + // Set drop wizard vars + System.setProperty("dw.metadataserver.pure.port", String.valueOf(metadataServerPort)); + + // Pure client configuration + System.setProperty("test.metadataserver.pure.port", String.valueOf(metadataServerPort)); + } + + @Override + public void shutDown() throws Exception + { + this.metadataServer.shutDown(); + } +} diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/PureTestHelper.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/PureTestHelper.java index 5d401cbca8e..953e0e62f86 100644 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/PureTestHelper.java +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/PureTestHelper.java @@ -14,508 +14,24 @@ package org.finos.legend.engine.server.test.shared; -import io.opentracing.noop.NoopTracerFactory; -import io.opentracing.util.GlobalTracer; import junit.extensions.TestSetup; -import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestSuite; -import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.block.function.Function0; import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ListIterable; -import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.impl.factory.Sets; -import org.eclipse.collections.impl.list.mutable.FastList; -import org.eclipse.collections.impl.utility.ArrayIterate; -import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; -import org.finos.legend.engine.plan.execution.stores.relational.AlloyH2Server; -import org.finos.legend.engine.protocol.pure.PureClientVersions; -import org.finos.legend.engine.server.Server; -import org.finos.legend.engine.shared.core.port.DynamicPortGenerator; -import org.finos.legend.pure.m3.execution.ExecutionSupport; -import org.finos.legend.pure.m3.execution.test.TestCollection; -import org.finos.legend.pure.m3.navigation.Instance; -import org.finos.legend.pure.m3.navigation.M3Properties; -import org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement; -import org.finos.legend.pure.m3.navigation.ProcessorSupport; -import org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepository; -import org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProviderHelper; -import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.CodeStorageNode; -import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.RepositoryCodeStorage; -import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.classpath.VersionControlledClassLoaderCodeStorage; -import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.composite.CompositeCodeStorage; -import org.finos.legend.pure.m3.serialization.runtime.Message; -import org.finos.legend.pure.m4.coreinstance.CoreInstance; -import org.finos.legend.pure.runtime.java.compiled.compiler.JavaCompilerState; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport; -import org.finos.legend.pure.runtime.java.compiled.execution.ConsoleCompiled; -import org.finos.legend.pure.runtime.java.compiled.extension.CompiledExtensionLoader; -import org.finos.legend.pure.runtime.java.compiled.generation.processors.FunctionProcessor; -import org.finos.legend.pure.runtime.java.compiled.generation.processors.IdBuilder; -import org.finos.legend.pure.runtime.java.compiled.metadata.ClassCache; -import org.finos.legend.pure.runtime.java.compiled.metadata.FunctionCache; +import org.finos.legend.engine.plan.execution.stores.relational.test.H2TestServerResource; +import org.finos.legend.engine.test.shared.framework.PureTestHelperFramework; import org.junit.Ignore; -import java.io.InputStream; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Comparator; - public class PureTestHelper { - private static final ThreadLocal state = new ThreadLocal<>(); - - @Ignore - public static TestSetup wrapSuite(Function0 init, Function0 suiteBuilder) - { - return wrapSuite(init, suiteBuilder, true, "org/finos/legend/engine/server/test/userTestConfig.json"); - } - - @Ignore - public static TestSetup wrapSuite(Function0 init, Function0 suiteBuilder, boolean withH2, String serverConfigFilePath) - { - boolean shouldCleanUp = init.value(); - TestSuite suite = suiteBuilder.value(); - if (shouldCleanUp) - { - PureWithEngineHelper.cleanUp(); - } - return new TestSetup(suite) - { - boolean shouldCleanUp; - - @Override - protected void setUp() throws Exception - { - super.setUp(); - shouldCleanUp = init.value(); - state.set(initEnvironment(withH2, serverConfigFilePath)); - } - - @Override - protected void tearDown() throws Exception - { - super.tearDown(); - state.get().shutDown(); - state.remove(); - if (this.shouldCleanUp) - { - PureWithEngineHelper.cleanUp(); - } - System.out.println("STOP"); - } - }; - } - - private static ServersState initEnvironment(boolean withH2, String serverConfigFilePath) throws Exception - { - int metadataServerPort = DynamicPortGenerator.generatePort(); - int relationalDBPort; - if (System.getProperty("legend.test.h2.port") == null) - { - relationalDBPort = DynamicPortGenerator.generatePort(); - } - else - { - relationalDBPort = Integer.parseInt(System.getProperty("legend.test.h2.port")); - } - - org.h2.tools.Server h2Server = null; - - if (withH2) - { - // Start h2 server - h2Server = AlloyH2Server.startServer(relationalDBPort); - System.out.println("H2 database started on port:" + relationalDBPort); - } - - // Start metadata server - TestMetaDataServer metadataServer = new TestMetaDataServer(metadataServerPort, true); - System.out.println("Metadata server started on port:" + metadataServerPort); - - // Set drop wizard vars for metadata server and h2 - System.setProperty("dw.metadataserver.pure.port", String.valueOf(metadataServerPort)); - if (withH2) - { - System.setProperty("dw.temporarytestdb.port", String.valueOf(relationalDBPort)); - System.setProperty("dw.relationalexecution.temporarytestdb.port", String.valueOf(relationalDBPort)); - } - - // Pure client configuration (to call the metadata and h2 server) - System.setProperty("test.metadataserver.pure.port", String.valueOf(metadataServerPort)); - if (withH2) - { - System.setProperty("alloy.test.h2.port", String.valueOf(relationalDBPort)); - System.setProperty("legend.test.h2.port", String.valueOf(relationalDBPort)); - } - - Server server = PureWithEngineHelper.initEngineServer(serverConfigFilePath, () -> new Server<>()); - return new ServersState(server, metadataServer, h2Server); - } - - private static boolean hasTestStereotypeWithValue(CoreInstance node, String value, ProcessorSupport processorSupport) - { - ListIterable stereotypes = Instance.getValueForMetaPropertyToManyResolved(node, M3Properties.stereotypes, processorSupport); - if (stereotypes.notEmpty()) - { - CoreInstance testProfile = processorSupport.package_getByUserPath("meta::pure::profiles::test"); - for (CoreInstance stereotype : stereotypes) - { - if ((testProfile == Instance.getValueForMetaPropertyToOneResolved(stereotype, M3Properties.profile, processorSupport)) && - value.equals(Instance.getValueForMetaPropertyToOneResolved(stereotype, M3Properties.value, processorSupport).getName())) - { - return true; - } - } - } - return false; - } - - private static boolean shouldExcludeOnClientVersion(CoreInstance node, String serverVersion, ProcessorSupport processorSupport) - { - ListIterable taggedValues = Instance.getValueForMetaPropertyToManyResolved(node, M3Properties.taggedValues, processorSupport); - if (taggedValues.notEmpty()) - { - CoreInstance serverVersionProfile = processorSupport.package_getByUserPath("meta::pure::executionPlan::profiles::serverVersion"); - for (CoreInstance taggedValue : taggedValues) - { - if ((taggedValue.getValueForMetaPropertyToOne("tag").getValueForMetaPropertyToOne("profile") == serverVersionProfile) - && (taggedValue.getValueForMetaPropertyToOne("tag").getName().equals("exclude")) && - serverVersion.toLowerCase().equals(Instance.getValueForMetaPropertyToOneResolved(taggedValue, M3Properties.value, processorSupport).getName().toLowerCase())) - { - return true; - } - } - } - return false; - } - - private static boolean shouldExecuteOnClientVersionOnwards(CoreInstance node, String serverVersion, ProcessorSupport processorSupport) - { - ListIterable taggedValues = Instance.getValueForMetaPropertyToManyResolved(node, M3Properties.taggedValues, processorSupport); - if (taggedValues.notEmpty()) - { - CoreInstance serverVersionProfile = processorSupport.package_getByUserPath("meta::pure::executionPlan::profiles::serverVersion"); - for (CoreInstance taggedValue : taggedValues) - { - if ((taggedValue.getValueForMetaPropertyToOne("tag").getValueForMetaPropertyToOne("profile") == serverVersionProfile) - && (taggedValue.getValueForMetaPropertyToOne("tag").getName().equals("start"))) - { - return PureClientVersions.versionAGreaterThanOrEqualsVersionB(serverVersion.toLowerCase(), Instance.getValueForMetaPropertyToOneResolved(taggedValue, M3Properties.value, processorSupport).getName().toLowerCase()); - } - - } - } - return true; - } - - public static boolean satisfiesConditions(CoreInstance node, ProcessorSupport processorSupport) - { - String ver = System.getProperty("alloy.test.clientVersion") == null ? System.getProperty("legend.test.clientVersion") : System.getProperty("alloy.test.clientVersion"); - return !hasTestStereotypeWithValue(node, "ExcludeAlloy", processorSupport) && - !shouldExcludeOnClientVersion(node, ver, processorSupport) && - shouldExecuteOnClientVersionOnwards(node, ver, processorSupport); - } - - public static CompiledExecutionSupport getExecutionSupport() - { - return new CompiledExecutionSupport( - new JavaCompilerState(null, PureTestHelper.class.getClassLoader()), - new CompiledProcessorSupport(PureTestHelper.class.getClassLoader(), PureModel.METADATA_LAZY, Sets.mutable.empty()), - null, - new RepositoryCodeStorage() - { - @Override - public void initialize(Message message) - { - - } - - @Override - public CodeRepository getRepositoryForPath(String s) - { - return null; - } - - @Override - public RichIterable getAllRepositories() - { - return null; - } - - @Override - public CodeRepository getRepository(String s) - { - return null; - } - - @Override - public CodeStorageNode getNode(String s) - { - return null; - } - - @Override - public RichIterable getFiles(String s) - { - return null; - } - - @Override - public RichIterable getUserFiles() - { - return null; - } - - @Override - public RichIterable getFileOrFiles(String s) - { - return null; - } - - @Override - public InputStream getContent(String s) - { - return null; - } - - @Override - public byte[] getContentAsBytes(String s) - { - return new byte[0]; - } - - @Override - public String getContentAsText(String s) - { - return null; - } - - @Override - public boolean exists(String s) - { - return false; - } - - @Override - public boolean isFile(String s) - { - return false; - } - - @Override - public boolean isFolder(String s) - { - return false; - } - - @Override - public boolean isEmptyFolder(String s) - { - return false; - } - }, - null, - null, - new ConsoleCompiled(), - new FunctionCache(), - new ClassCache(), - null, - Sets.mutable.empty(), - CompiledExtensionLoader.extensions() - ); - } - - public static CompiledExecutionSupport getClassLoaderExecutionSupport() - { - return getClassLoaderExecutionSupport(false); - } - - public static CompiledExecutionSupport getClassLoaderExecutionSupport(boolean enableConsole) - { - ConsoleCompiled console = new ConsoleCompiled(); - if (enableConsole == true) - { - console.enable(); - } - else - { - console.disable(); - } - - return new CompiledExecutionSupport( - new JavaCompilerState(null, PureTestHelper.class.getClassLoader()), - new CompiledProcessorSupport(PureTestHelper.class.getClassLoader(), PureModel.METADATA_LAZY, Sets.mutable.empty()), - null, - new CompositeCodeStorage(new VersionControlledClassLoaderCodeStorage(PureTestHelper.class.getClassLoader(), CodeRepositoryProviderHelper.findCodeRepositories(true), null)), - null, - null, - console, - new FunctionCache(), - new ClassCache(), - null, - Sets.mutable.empty(), - CompiledExtensionLoader.extensions() - ); - } - - @Ignore - public static class PureTestCase extends TestCase - { - CoreInstance coreInstance; - ExecutionSupport executionSupport; - - public PureTestCase() - { - } - - PureTestCase(CoreInstance coreInstance, ExecutionSupport executionSupport) - { - super(coreInstance.getValueForMetaPropertyToOne("functionName").getName()); - this.coreInstance = coreInstance; - this.executionSupport = executionSupport; - } - - @Override - protected void runTest() throws Throwable - { - Class _class = Class.forName("org.finos.legend.pure.generated." + IdBuilder.sourceToId(coreInstance.getSourceInformation())); - Method method = _class.getMethod(FunctionProcessor.functionNameToJava(coreInstance), ExecutionSupport.class); - // NOTE: mock out the global tracer for test - // See https://github.com/opentracing/opentracing-java/issues/170 - // See https://github.com/opentracing/opentracing-java/issues/364 - GlobalTracer.registerIfAbsent(NoopTracerFactory.create()); - String testName = PackageableElement.getUserPathForPackageableElement(this.coreInstance); - System.out.print("EXECUTING " + testName + " ... "); - long start = System.nanoTime(); - try - { - method.invoke(null, this.executionSupport); - System.out.format("DONE (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); - } - catch (InvocationTargetException e) - { - System.out.format("ERROR (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); - throw e.getTargetException(); - } - } - } - @Ignore - public static class JavaPureTestCase extends PureTestCase + public static TestSetup wrapSuite(Function0 init, Function0 suiteBuilder, Function0 shutdown) { - CoreInstance runnerInstance; - - public JavaPureTestCase() - { - } - - JavaPureTestCase(CoreInstance runnerInstance, CoreInstance coreInstance, ExecutionSupport executionSupport) - { - super(coreInstance, executionSupport); - this.runnerInstance = runnerInstance; - } - - @Override - protected void runTest() throws Throwable - { - Class _class = Class.forName("org.finos.legend.pure.generated." + IdBuilder.sourceToId(runnerInstance.getSourceInformation())); - Object[] params = Lists.mutable.empty().with(coreInstance).with(executionSupport).toArray(); - - String methodName = FunctionProcessor.functionNameToJava(runnerInstance); - Method method = params.length == 1 ? _class.getMethod(methodName, ExecutionSupport.class) - : ArrayIterate.detect(_class.getMethods(), m -> methodName.equals(m.getName())); - - // NOTE: mock out the global tracer for test - // See https://github.com/opentracing/opentracing-java/issues/170 - // See https://github.com/opentracing/opentracing-java/issues/364 - GlobalTracer.registerIfAbsent(NoopTracerFactory.create()); - String testName = PackageableElement.getUserPathForPackageableElement(this.coreInstance); - System.out.print("EXECUTING " + testName + " ... "); - long start = System.nanoTime(); - try - { - method.invoke(null, params); - System.out.format("DONE (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); - } - catch (InvocationTargetException e) - { - System.out.format("ERROR (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); - throw e.getTargetException(); - } - } - } - - public static TestSuite buildSuite(TestCollection testCollection, ExecutionSupport executionSupport) - { - MutableList subSuites = new FastList<>(); - for (TestCollection collection : testCollection.getSubCollections().toSortedList(Comparator.comparing(a -> a.getPackage().getName()))) - { - subSuites.add(buildSuite(collection, executionSupport)); - } - return buildSuite(org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement.GET_USER_PATH.valueOf(testCollection.getPackage()), - testCollection.getBeforeFunctions(), - testCollection.getAfterFunctions(), - testCollection.getPureAndAlloyOnlyFunctions(), - subSuites, - executionSupport - ); - } - - private static TestSuite buildSuite(String packageName, RichIterable beforeFunctions, RichIterable afterFunctions, - RichIterable testFunctions, org.eclipse.collections.api.list.ListIterable subSuites, ExecutionSupport executionSupport) - { - TestSuite suite = new TestSuite(); - suite.setName(packageName); - beforeFunctions.collect(fn -> new PureTestCase(fn, executionSupport)).each(suite::addTest); - for (Test subSuite : subSuites.toSortedList(Comparator.comparing(TestSuite::getName))) - { - suite.addTest(subSuite); - } - for (CoreInstance testFunc : testFunctions.toSortedList(Comparator.comparing(CoreInstance::getName))) - { - Test theTest = new PureTestCase(testFunc, executionSupport); - suite.addTest(theTest); - } - afterFunctions.collect(fn -> new PureTestCase(fn, executionSupport)).each(suite::addTest); - return suite; - } - - public static TestSuite buildJavaPureTestSuite(TestCollection testCollection, ExecutionSupport executionSupport, CoreInstance runner) - { - MutableList subSuites = new FastList<>(); - for (TestCollection collection : testCollection.getSubCollections().toSortedList(Comparator.comparing(a -> a.getPackage().getName()))) - { - subSuites.add(buildJavaPureTestSuite(collection, executionSupport, runner)); - } - return buildJavaPureTestSuite(org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement.GET_USER_PATH.valueOf(testCollection.getPackage()), - testCollection.getBeforeFunctions(), - testCollection.getAfterFunctions(), - testCollection.getPureAndAlloyOnlyFunctions(), - subSuites, - executionSupport, - runner + return PureTestHelperFramework.wrapSuite( + init, + suiteBuilder, + shutdown, + Lists.mutable.with(new H2TestServerResource(), new MetadataTestServerResource(), new ServerTestServerResource("org/finos/legend/engine/server/test/userTestConfig.json")) ); } - - private static TestSuite buildJavaPureTestSuite(String packageName, RichIterable beforeFunctions, RichIterable afterFunctions, - RichIterable testFunctions, org.eclipse.collections.api.list.ListIterable subSuites, ExecutionSupport executionSupport, CoreInstance runner) -{ - TestSuite suite = new TestSuite(); - suite.setName(packageName); - beforeFunctions.collect(fn -> new JavaPureTestCase(runner, fn, executionSupport)).each(suite::addTest); - for (Test subSuite : subSuites.toSortedList(Comparator.comparing(TestSuite::getName))) - { - suite.addTest(subSuite); - } - for (CoreInstance testFunc : testFunctions.toSortedList(Comparator.comparing(CoreInstance::getName))) - { - Test theTest = new JavaPureTestCase(runner, testFunc, executionSupport); - suite.addTest(theTest); - } - afterFunctions.collect(fn -> new JavaPureTestCase(runner, fn, executionSupport)).each(suite::addTest); - return suite; -} } diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServerTestServerResource.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServerTestServerResource.java new file mode 100644 index 00000000000..ff96a2ef68f --- /dev/null +++ b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServerTestServerResource.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.server.test.shared; + +import org.finos.legend.engine.server.Server; +import org.finos.legend.engine.test.shared.framework.TestServerResource; + +public class ServerTestServerResource implements TestServerResource +{ + private Server server; + private String serverConfigFilePath; + + public ServerTestServerResource(String serverConfigFilePath) + { + this.serverConfigFilePath = serverConfigFilePath; + } + + @Override + public void start() throws Exception + { + this.server = PureWithEngineHelper.initEngineServer(serverConfigFilePath, () -> new Server<>()); + } + + @Override + public void shutDown() throws Exception + { + this.server.shutDown(); + } +} diff --git a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServersState.java b/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServersState.java deleted file mode 100644 index f8868455fea..00000000000 --- a/legend-engine-config/legend-engine-server/src/test/java/org/finos/legend/engine/server/test/shared/ServersState.java +++ /dev/null @@ -1,49 +0,0 @@ -// 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.server.test.shared; - -import org.finos.legend.engine.server.Server; - -public class ServersState -{ - private final Server server; - private final TestMetaDataServer metadataServer; - private final org.h2.tools.Server H2Server; - - public ServersState(Server server, TestMetaDataServer metadataServer, org.h2.tools.Server h2Server) - { - this.server = server; - this.metadataServer = metadataServer; - this.H2Server = h2Server; - } - - public void shutDown() - { - try - { - this.server.shutDown(); - this.metadataServer.shutDown(); - if (this.H2Server != null) - { - this.H2Server.shutdown(); - this.H2Server.stop(); - } - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } -} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml new file mode 100644 index 00000000000..17ac62c1cba --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml @@ -0,0 +1,89 @@ + + + + + + org.finos.legend.engine + legend-engine-core-test + 4.36.1-SNAPSHOT + + 4.0.0 + legend-engine-test-framework + Legend Engine - Test - Framework + + + + + 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-protocol-pure + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + io.opentracing + opentracing-util + + + io.opentracing + opentracing-noop + + + + + + junit + junit + + + org.finos.legend.engine + legend-engine-language-pure-grammar + test + + + + \ No newline at end of file diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/PureTestHelperFramework.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/PureTestHelperFramework.java new file mode 100644 index 00000000000..d5b6b7412f5 --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/PureTestHelperFramework.java @@ -0,0 +1,482 @@ +// 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.test.shared.framework; + +import io.opentracing.noop.NoopTracerFactory; +import io.opentracing.util.GlobalTracer; +import junit.extensions.TestSetup; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.block.function.Function0; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ListIterable; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.factory.Sets; +import org.eclipse.collections.impl.list.mutable.FastList; +import org.eclipse.collections.impl.utility.ArrayIterate; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.protocol.pure.PureClientVersions; +import org.finos.legend.pure.m3.execution.ExecutionSupport; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.m3.navigation.Instance; +import org.finos.legend.pure.m3.navigation.M3Properties; +import org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement; +import org.finos.legend.pure.m3.navigation.ProcessorSupport; +import org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepository; +import org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProviderHelper; +import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.CodeStorageNode; +import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.RepositoryCodeStorage; +import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.classpath.VersionControlledClassLoaderCodeStorage; +import org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.composite.CompositeCodeStorage; +import org.finos.legend.pure.m3.serialization.grammar.Parser; +import org.finos.legend.pure.m3.serialization.grammar.m3parser.inlinedsl.InlineDSL; +import org.finos.legend.pure.m3.serialization.runtime.IncrementalCompiler; +import org.finos.legend.pure.m3.serialization.runtime.IncrementalCompiler_New; +import org.finos.legend.pure.m3.serialization.runtime.Message; +import org.finos.legend.pure.m3.serialization.runtime.ParserService; +import org.finos.legend.pure.m3.serialization.runtime.pattern.URLPatternLibrary; +import org.finos.legend.pure.m4.coreinstance.CoreInstance; +import org.finos.legend.pure.runtime.java.compiled.compiler.JavaCompilerState; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport; +import org.finos.legend.pure.runtime.java.compiled.execution.ConsoleCompiled; +import org.finos.legend.pure.runtime.java.compiled.extension.CompiledExtensionLoader; +import org.finos.legend.pure.runtime.java.compiled.generation.processors.FunctionProcessor; +import org.finos.legend.pure.runtime.java.compiled.generation.processors.IdBuilder; +import org.finos.legend.pure.runtime.java.compiled.metadata.ClassCache; +import org.finos.legend.pure.runtime.java.compiled.metadata.FunctionCache; +import org.junit.Ignore; + +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Comparator; + +public class PureTestHelperFramework +{ + private static final ThreadLocal state = new ThreadLocal<>(); + + @Ignore + public static TestSetup wrapSuite(Function0 init, + Function0 suiteBuilder, + Function0 shutdown, + MutableList testServerResources) + { + boolean shouldCleanUp = init.value(); + TestSuite suite = suiteBuilder.value(); + if (shouldCleanUp) + { + shutdown.value(); + } + return new TestSetup(suite) + { + boolean shouldCleanUp; + + @Override + protected void setUp() throws Exception + { + super.setUp(); + shouldCleanUp = init.value(); + ServersState serversState = new ServersState(testServerResources); + serversState.start(); + state.set(serversState); + } + + @Override + protected void tearDown() throws Exception + { + super.tearDown(); + state.get().shutDown(); + state.remove(); + if (this.shouldCleanUp) + { + shutdown.value(); + } + System.out.println("STOP"); + } + }; + } + + private static boolean hasTestStereotypeWithValue(CoreInstance node, String value, ProcessorSupport processorSupport) + { + ListIterable stereotypes = Instance.getValueForMetaPropertyToManyResolved(node, M3Properties.stereotypes, processorSupport); + if (stereotypes.notEmpty()) + { + CoreInstance testProfile = processorSupport.package_getByUserPath("meta::pure::profiles::test"); + for (CoreInstance stereotype : stereotypes) + { + if ((testProfile == Instance.getValueForMetaPropertyToOneResolved(stereotype, M3Properties.profile, processorSupport)) && + value.equals(Instance.getValueForMetaPropertyToOneResolved(stereotype, M3Properties.value, processorSupport).getName())) + { + return true; + } + } + } + return false; + } + + private static boolean shouldExcludeOnClientVersion(CoreInstance node, String serverVersion, ProcessorSupport processorSupport) + { + ListIterable taggedValues = Instance.getValueForMetaPropertyToManyResolved(node, M3Properties.taggedValues, processorSupport); + if (taggedValues.notEmpty()) + { + CoreInstance serverVersionProfile = processorSupport.package_getByUserPath("meta::pure::executionPlan::profiles::serverVersion"); + for (CoreInstance taggedValue : taggedValues) + { + if ((taggedValue.getValueForMetaPropertyToOne("tag").getValueForMetaPropertyToOne("profile") == serverVersionProfile) + && (taggedValue.getValueForMetaPropertyToOne("tag").getName().equals("exclude")) && + serverVersion.toLowerCase().equals(Instance.getValueForMetaPropertyToOneResolved(taggedValue, M3Properties.value, processorSupport).getName().toLowerCase())) + { + return true; + } + } + } + return false; + } + + private static boolean shouldExecuteOnClientVersionOnwards(CoreInstance node, String serverVersion, ProcessorSupport processorSupport) + { + ListIterable taggedValues = Instance.getValueForMetaPropertyToManyResolved(node, M3Properties.taggedValues, processorSupport); + if (taggedValues.notEmpty()) + { + CoreInstance serverVersionProfile = processorSupport.package_getByUserPath("meta::pure::executionPlan::profiles::serverVersion"); + for (CoreInstance taggedValue : taggedValues) + { + if ((taggedValue.getValueForMetaPropertyToOne("tag").getValueForMetaPropertyToOne("profile") == serverVersionProfile) + && (taggedValue.getValueForMetaPropertyToOne("tag").getName().equals("start"))) + { + return PureClientVersions.versionAGreaterThanOrEqualsVersionB(serverVersion.toLowerCase(), Instance.getValueForMetaPropertyToOneResolved(taggedValue, M3Properties.value, processorSupport).getName().toLowerCase()); + } + + } + } + return true; + } + + public static boolean satisfiesConditions(CoreInstance node, ProcessorSupport processorSupport) + { + String ver = System.getProperty("alloy.test.clientVersion") == null ? System.getProperty("legend.test.clientVersion") : System.getProperty("alloy.test.clientVersion"); + return !hasTestStereotypeWithValue(node, "ExcludeAlloy", processorSupport) && + !shouldExcludeOnClientVersion(node, ver, processorSupport) && + shouldExecuteOnClientVersionOnwards(node, ver, processorSupport); + } + + public static CompiledExecutionSupport getExecutionSupport() + { + return new CompiledExecutionSupport( + new JavaCompilerState(null, PureTestHelperFramework.class.getClassLoader()), + new CompiledProcessorSupport(PureTestHelperFramework.class.getClassLoader(), PureModel.METADATA_LAZY, Sets.mutable.empty()), + null, + new RepositoryCodeStorage() + { + @Override + public void initialize(Message message) + { + + } + + @Override + public CodeRepository getRepositoryForPath(String s) + { + return null; + } + + @Override + public RichIterable getAllRepositories() + { + return null; + } + + @Override + public CodeRepository getRepository(String s) + { + return null; + } + + @Override + public CodeStorageNode getNode(String s) + { + return null; + } + + @Override + public RichIterable getFiles(String s) + { + return null; + } + + @Override + public RichIterable getUserFiles() + { + return null; + } + + @Override + public RichIterable getFileOrFiles(String s) + { + return null; + } + + @Override + public InputStream getContent(String s) + { + return null; + } + + @Override + public byte[] getContentAsBytes(String s) + { + return new byte[0]; + } + + @Override + public String getContentAsText(String s) + { + return null; + } + + @Override + public boolean exists(String s) + { + return false; + } + + @Override + public boolean isFile(String s) + { + return false; + } + + @Override + public boolean isFolder(String s) + { + return false; + } + + @Override + public boolean isEmptyFolder(String s) + { + return false; + } + }, + null, + null, + new ConsoleCompiled(), + new FunctionCache(), + new ClassCache(), + null, + Sets.mutable.empty(), + CompiledExtensionLoader.extensions() + ); + } + + public static CompiledExecutionSupport getClassLoaderExecutionSupport() + { + return getClassLoaderExecutionSupport(false); + } + + public static CompiledExecutionSupport getClassLoaderExecutionSupport(boolean enableConsole) + { + ParserService loader = new ParserService(); + ListIterable parsers = loader.parsers(); + ListIterable inlineDSLs = loader.inlineDSLs(); + + ConsoleCompiled console = new ConsoleCompiled(); + if (enableConsole == true) + { + console.enable(); + } + else + { + console.disable(); + } + + return new CompiledExecutionSupport( + new JavaCompilerState(null, PureTestHelperFramework.class.getClassLoader()), + new CompiledProcessorSupport(PureTestHelperFramework.class.getClassLoader(), PureModel.METADATA_LAZY, Sets.mutable.empty()), + null, + new CompositeCodeStorage(new VersionControlledClassLoaderCodeStorage(PureTestHelperFramework.class.getClassLoader(), CodeRepositoryProviderHelper.findCodeRepositories(true), null)), + null, + null, + console, + new FunctionCache(), + new ClassCache(), + null, + Sets.mutable.empty(), + CompiledExtensionLoader.extensions() + ); + } + + @Ignore + public static class PureTestCase extends TestCase + { + CoreInstance coreInstance; + ExecutionSupport executionSupport; + + public PureTestCase() + { + } + + PureTestCase(CoreInstance coreInstance, ExecutionSupport executionSupport) + { + super(coreInstance.getValueForMetaPropertyToOne("functionName").getName()); + this.coreInstance = coreInstance; + this.executionSupport = executionSupport; + } + + @Override + protected void runTest() throws Throwable + { + Class _class = Class.forName("org.finos.legend.pure.generated." + IdBuilder.sourceToId(coreInstance.getSourceInformation())); + Method method = _class.getMethod(FunctionProcessor.functionNameToJava(coreInstance), ExecutionSupport.class); + // NOTE: mock out the global tracer for test + // See https://github.com/opentracing/opentracing-java/issues/170 + // See https://github.com/opentracing/opentracing-java/issues/364 + GlobalTracer.registerIfAbsent(NoopTracerFactory.create()); + String testName = PackageableElement.getUserPathForPackageableElement(this.coreInstance); + System.out.print("EXECUTING " + testName + " ... "); + long start = System.nanoTime(); + try + { + method.invoke(null, this.executionSupport); + System.out.format("DONE (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); + } + catch (InvocationTargetException e) + { + System.out.format("ERROR (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); + throw e.getTargetException(); + } + } + } + + @Ignore + public static class JavaPureTestCase extends PureTestCase + { + CoreInstance runnerInstance; + + public JavaPureTestCase() + { + } + + JavaPureTestCase(CoreInstance runnerInstance, CoreInstance coreInstance, ExecutionSupport executionSupport) + { + super(coreInstance, executionSupport); + this.runnerInstance = runnerInstance; + } + + @Override + protected void runTest() throws Throwable + { + Class _class = Class.forName("org.finos.legend.pure.generated." + IdBuilder.sourceToId(runnerInstance.getSourceInformation())); + Object[] params = Lists.mutable.empty().with(coreInstance).with(executionSupport).toArray(); + + String methodName = FunctionProcessor.functionNameToJava(runnerInstance); + Method method = params.length == 1 ? _class.getMethod(methodName, ExecutionSupport.class) + : ArrayIterate.detect(_class.getMethods(), m -> methodName.equals(m.getName())); + + // NOTE: mock out the global tracer for test + // See https://github.com/opentracing/opentracing-java/issues/170 + // See https://github.com/opentracing/opentracing-java/issues/364 + GlobalTracer.registerIfAbsent(NoopTracerFactory.create()); + String testName = PackageableElement.getUserPathForPackageableElement(this.coreInstance); + System.out.print("EXECUTING " + testName + " ... "); + long start = System.nanoTime(); + try + { + method.invoke(null, params); + System.out.format("DONE (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); + } + catch (InvocationTargetException e) + { + System.out.format("ERROR (%.6fs)\n", (System.nanoTime() - start) / 1_000_000_000.0); + throw e.getTargetException(); + } + } + } + + public static TestSuite buildSuite(TestCollection testCollection, ExecutionSupport executionSupport) + { + MutableList subSuites = new FastList<>(); + for (TestCollection collection : testCollection.getSubCollections().toSortedList(Comparator.comparing(a -> a.getPackage().getName()))) + { + subSuites.add(buildSuite(collection, executionSupport)); + } + return buildSuite(org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement.GET_USER_PATH.valueOf(testCollection.getPackage()), + testCollection.getBeforeFunctions(), + testCollection.getAfterFunctions(), + testCollection.getPureAndAlloyOnlyFunctions(), + subSuites, + executionSupport + ); + } + + private static TestSuite buildSuite(String packageName, RichIterable beforeFunctions, RichIterable afterFunctions, + RichIterable testFunctions, org.eclipse.collections.api.list.ListIterable subSuites, ExecutionSupport executionSupport) + { + TestSuite suite = new TestSuite(); + suite.setName(packageName); + beforeFunctions.collect(fn -> new PureTestCase(fn, executionSupport)).each(suite::addTest); + for (Test subSuite : subSuites.toSortedList(Comparator.comparing(TestSuite::getName))) + { + suite.addTest(subSuite); + } + for (CoreInstance testFunc : testFunctions.toSortedList(Comparator.comparing(CoreInstance::getName))) + { + Test theTest = new PureTestCase(testFunc, executionSupport); + suite.addTest(theTest); + } + afterFunctions.collect(fn -> new PureTestCase(fn, executionSupport)).each(suite::addTest); + return suite; + } + + public static TestSuite buildJavaPureTestSuite(TestCollection testCollection, ExecutionSupport executionSupport, CoreInstance runner) + { + MutableList subSuites = new FastList<>(); + for (TestCollection collection : testCollection.getSubCollections().toSortedList(Comparator.comparing(a -> a.getPackage().getName()))) + { + subSuites.add(buildJavaPureTestSuite(collection, executionSupport, runner)); + } + return buildJavaPureTestSuite(org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement.GET_USER_PATH.valueOf(testCollection.getPackage()), + testCollection.getBeforeFunctions(), + testCollection.getAfterFunctions(), + testCollection.getPureAndAlloyOnlyFunctions(), + subSuites, + executionSupport, + runner + ); + } + + private static TestSuite buildJavaPureTestSuite(String packageName, RichIterable beforeFunctions, RichIterable afterFunctions, + RichIterable testFunctions, org.eclipse.collections.api.list.ListIterable subSuites, ExecutionSupport executionSupport, CoreInstance runner) + { + TestSuite suite = new TestSuite(); + suite.setName(packageName); + beforeFunctions.collect(fn -> new JavaPureTestCase(runner, fn, executionSupport)).each(suite::addTest); + for (Test subSuite : subSuites.toSortedList(Comparator.comparing(TestSuite::getName))) + { + suite.addTest(subSuite); + } + for (CoreInstance testFunc : testFunctions.toSortedList(Comparator.comparing(CoreInstance::getName))) + { + Test theTest = new JavaPureTestCase(runner, testFunc, executionSupport); + suite.addTest(theTest); + } + afterFunctions.collect(fn -> new JavaPureTestCase(runner, fn, executionSupport)).each(suite::addTest); + return suite; + } + +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/ServersState.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/ServersState.java new file mode 100644 index 00000000000..bfbcbebf2d4 --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/ServersState.java @@ -0,0 +1,59 @@ +// 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.test.shared.framework; + +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.block.procedure.checked.CheckedProcedure; + +public class ServersState +{ + private MutableList servers; + + public ServersState(MutableList servers) + { + this.servers = servers; + } + + public void start() + { + servers.forEach(new CheckedProcedure() + { + @Override + public void safeValue(TestServerResource testServerResource) throws Exception + { + testServerResource.start(); + } + }); + } + + public void shutDown() + { + try + { + servers.forEach(new CheckedProcedure() + { + @Override + public void safeValue(TestServerResource testServerResource) throws Exception + { + testServerResource.shutDown(); + } + }); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/TestServerResource.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/TestServerResource.java new file mode 100644 index 00000000000..1f8696e077e --- /dev/null +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/src/main/java/org/finos/legend/engine/test/shared/framework/TestServerResource.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.test.shared.framework; + +public interface TestServerResource +{ + void shutDown() throws Exception; + + void start() throws Exception; +} diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/src/main/java/org/finos/legend/engine/server/test/shared/PureWithEngineHelper.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/src/main/java/org/finos/legend/engine/server/test/shared/PureWithEngineHelper.java index e291fad7495..7492e136b02 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/src/main/java/org/finos/legend/engine/server/test/shared/PureWithEngineHelper.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/src/main/java/org/finos/legend/engine/server/test/shared/PureWithEngineHelper.java @@ -35,10 +35,11 @@ public static boolean initClientVersionIfNotAlreadySet(String defaultClientVersi return isNotSet; } - public static void cleanUp() + public static boolean cleanUp() { System.clearProperty("alloy.test.clientVersion"); System.clearProperty("legend.test.clientVersion"); + return true; } public static T initEngineServer(String serverConfigFilePath, Function0 engineServerCreator) throws Exception diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 8a9811feadd..93b1d94a344 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -32,6 +32,7 @@ legend-engine-test-runner-shared legend-engine-test-server-shared legend-engine-test-data-generation + legend-engine-test-framework legend-engine-testable \ No newline at end of file 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 1b5377a2f22..5fb90c64a51 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 @@ -255,6 +255,11 @@ org.finos.legend.engine legend-engine-pure-platform-dsl-path-java + + org.finos.legend.engine + legend-engine-pure-platform-dsl-tds-java + runtime + org.finos.legend.engine legend-engine-pure-platform-functions-java @@ -293,6 +298,11 @@ legend-pure-runtime-java-extension-dsl-path runtime + + org.finos.legend.pure + legend-pure-runtime-java-extension-dsl-tds + runtime + org.finos.legend.pure 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 9a1600ccd0e..97eee275633 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 @@ -161,7 +161,7 @@ function meta::pure::extension::print::printExtensions(extensions: Extension[*]) $extensions->sortBy(x | $x.type->toLower())->map(ext | $ext->printExtension(1))->joinStrings('[\n', ',\n\n', '\n]') } -function <> meta::pure::extension::print::printExtension(extension: Extension[1], depth: Integer[1]): String[1] +function meta::pure::extension::print::printExtension(extension: Extension[1], depth: Integer[1]): String[1] { let indent = indent($depth); 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 9c99e3835c7..178f41edb7b 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 @@ -258,6 +258,11 @@ function <> meta::pure::router::operations::getMappedLeafClasses if($specs->isEmpty(), | $mappedClass, | $specs->map(s | $s->getMappedLeafClasses_recursive($mappedClass, $mapping, $state))); } +function <> meta::pure::mapping::from(t:T[m], runtime:Runtime[1]):T[m] +{ + $t +} + function <> meta::pure::mapping::from(t:T[m], m:meta::pure::mapping::Mapping[1], runtime:Runtime[1]):T[m] { $t 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 f39ae0e0eed..de3f096c2e3 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 @@ -50,17 +50,11 @@ function meta::pure::router::clustering::generateExecutionNodeFromCluster(cluste sc:StoreMappingClusteredValueSpecification[1] | //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(connectionStores = $r.connectionStores->map(c | if ($sc.s.reprocessConnection->isEmpty(),|$c,|^$c(connection=$sc.s.reprocessConnection->toOne()->eval($c))))), - r:Runtime[0..1] | $r - ]); - - - - - let query = ^meta::pure::mapping::StoreQuery(store=$sc.store, fe=$fe, inScopeVars=$inScopeVars); - let res = $sc.s.planExecution->toOne()->eval($query, $sc.val->match([r:RoutedValueSpecification[1]|$r, a:Any[*]|[]])->cast(@RoutedValueSpecification), $sc.mapping, $rt, if ($sc.exeCtx->isEmpty(), | $context, | $sc.exeCtx->toOne()), $extensions, $debugContext); - ^$res(fromCluster=$cluster);, + $sc->buildExecutionNodeForStoreClusteredVS($fe, $sc.mapping, $inScopeVars, $context, $extensions, $debugContext), + sc:StoreClusteredValueSpecification[1] | + //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. + $sc->buildExecutionNodeForStoreClusteredVS($fe, [], $inScopeVars, $context, $extensions, $debugContext), ef:ExternalFormatClusteredValueSpecification[1] | let state = ^meta::external::format::shared::executionPlan::ExternalFormatPlanGenerationState(inScopeVars = $inScopeVars, exeCtx = $ef.exeCtx->toOne(), binding = $ef.binding); $fe->meta::external::format::shared::executionPlan::processValueSpecification($state, $extensions, $debugContext)->toOne();, @@ -70,6 +64,19 @@ function meta::pure::router::clustering::generateExecutionNodeFromCluster(cluste ]); } +function meta::pure::router::clustering::buildExecutionNodeForStoreClusteredVS(sc:StoreClusteredValueSpecification[1], fe:FunctionExpression[1], mapping:meta::pure::mapping::Mapping[0..1], inScopeVars:Map>[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionNode[1] +{ + //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(connectionStores = $r.connectionStores->map(c | if ($sc.s.reprocessConnection->isEmpty(),|$c,|^$c(connection=$sc.s.reprocessConnection->toOne()->eval($c))))), + r:Runtime[0..1] | $r + ]); + let query = ^meta::pure::mapping::StoreQuery(store=$sc.store, fe=$fe, inScopeVars=$inScopeVars); + let res = $sc.s.planExecution->toOne()->eval($query, $sc.val->match([r:RoutedValueSpecification[1]|$r, a:Any[*]|[]])->cast(@RoutedValueSpecification), $mapping, $rt, if ($sc.exeCtx->isEmpty(), | $context, | $sc.exeCtx->toOne()), $extensions, $debugContext); + ^$res(fromCluster=$sc); +} + function meta::pure::router::clustering::areClustersCompatible(cluster1:ClusteredValueSpecification[1], cluster2:ClusteredValueSpecification[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] { $cluster1->match([ @@ -99,6 +106,8 @@ function meta::pure::router::clustering::streamSupportedFunctionEvaluator(cluste $cluster->match([ sc:StoreMappingClusteredValueSpecification[1] | $sc.s.supportsStream, + sc:StoreClusteredValueSpecification[1] | + $sc.s.supportsStream, ef:ExternalFormatClusteredValueSpecification[1] | {fxn:FunctionExpression[1] | false}, pl:PlatformClusteredValueSpecification[1] | @@ -111,6 +120,8 @@ function meta::pure::router::clustering::elementPathForCluster(cluster:Clustered $cluster->match([ sc:StoreMappingClusteredValueSpecification[1] | $sc.store->elementToPath(), + sc:StoreClusteredValueSpecification[1] | + $sc.store->elementToPath(), ef:ExternalFormatClusteredValueSpecification[1] | $ef.binding->elementToPath(), pl:PlatformClusteredValueSpecification[1] | @@ -126,6 +137,11 @@ function meta::pure::router::clustering::toString(cluster:ClusteredValueSpecific | let start = '{'+$sc.store->toOne()->elementToPath()+'> '; $start + $sc.val->asString($pref)->replace('\n','\n'+space($start->length()))+'}'; );, + sc:StoreClusteredValueSpecification[1] | if($pref.useClusterIndex, + | '[Node Index:'+$pref.clusterIndex->indexOf($sc)->toString()+']', + | let start = '{'+$sc.store->toOne()->elementToPath()+'> '; + $start + $sc.val->asString($pref)->replace('\n','\n'+space($start->length()))+'}'; + );, p:PlatformClusteredValueSpecification[1] | if($pref.useClusterIndex, |'[Node Index:'+$pref.clusterIndex->indexOf($p)->toString()+']', |'{Platform> '+$p.val->asString($pref)->replace('\n','\n'+space('{Platform>'->length()))+'}'; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/diagram.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/diagram.pure index 38b64776793..62a0a0b5a9f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/diagram.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/diagram.pure @@ -78,8 +78,8 @@ Diagram meta::pure::router::metamodel::RouterMetaModelDiagram(width=0.0, height= TypeView cview_4( type=meta::pure::router::metamodel::RoutingStrategy, position=(-623.81836, -111.50000), - width=203.98145, - height=142.00000, + width=313.31667, + height=184.00000, stereotypesVisible=true, attributesVisible=true, attributeStereotypesVisible=true, @@ -228,7 +228,7 @@ Diagram meta::pure::router::metamodel::RouterMetaModelDiagram(width=0.0, height= GeneralizationView gview_2( source=cview_6, target=cview_4, - points=[(-720.13867,168.50000),(-521.82764,-40.50000)], + points=[(-720.13867,168.50000),(-467.16003,-19.50000)], label='', color=#000000, lineWidth=-1.0, @@ -255,7 +255,7 @@ Diagram meta::pure::router::metamodel::RouterMetaModelDiagram(width=0.0, height= GeneralizationView gview_5( source=cview_9, target=cview_4, - points=[(-519.81445,247.50000),(-521.82764,-40.50000)], + points=[(-519.81445,247.50000),(-467.16003,-19.50000)], label='', color=#000000, lineWidth=-1.0, @@ -291,7 +291,7 @@ Diagram meta::pure::router::metamodel::RouterMetaModelDiagram(width=0.0, height= GeneralizationView gview_9( source=cview_13, target=cview_4, - points=[(-331.81445,174.50000),(-521.82764,-40.50000)], + points=[(-331.81445,174.50000),(-467.16003,-19.50000)], label='', color=#000000, lineWidth=-1.0, @@ -324,11 +324,11 @@ Diagram meta::pure::router::metamodel::RouterMetaModelDiagram(width=0.0, height= lineWidth=-1.0, lineStyle=SIMPLE) - PropertyView pview_1( + PropertyView pview_0( property=meta::pure::router::metamodel::ExtendedRoutedValueSpecification.routingStrategy, source=cview_2, - target=cview_4 -, points=[(160.08545,-41.50000),(-521.82764,-40.50000)], + target=cview_4, + points=[(160.08545,-41.50000),(-467.16003,-19.50000)], label='', propertyPosition=(0.0,0.0), multiplicityPosition=(0.0,0.0), 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 13f69edab3e..adad135181f 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 @@ -29,6 +29,7 @@ Class <> meta::pure::router::metamodel::ExtendedRoutedVa // ========================================================================================= ###Pure +import meta::pure::metamodel::relation::*; import meta::pure::extension::*; import meta::pure::router::metamodel::*; import meta::pure::router::routing::*; @@ -44,6 +45,12 @@ Class <> meta::pure::router::metamodel::RoutingStrategy $this.processClass->eval($c, $i, $state, $executionContext, $debug) }: RoutingState[1]; + processRelationStoreAccessor : Function<{RelationStoreAccessor[1], InstanceValue[1], RoutingState[1], ExecutionContext[1], DebugContext[1] -> RoutingState[1]}>[0..1]; + processRelationStoreAccessor(c:RelationStoreAccessor[1], i:InstanceValue[1], state:RoutingState[1], executionContext:ExecutionContext[1], debug:DebugContext[1]) + { + $this.processRelationStoreAccessor->toOne()->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]) @@ -81,6 +88,7 @@ function meta::pure::router::routing::toString(evs:ExtendedRoutedValueSpecificat { $evs->match([ sc:StoreMappingRoutedValueSpecification[1] | '['+$sc.id+' '+if($sc.propertyMapping->isEmpty(),|'',|'@'+$sc.propertyMapping->map(p|$p.property.name->toOne()+'('+$p.sourceSetImplementationId+'->'+$p.targetSetImplementationId+')')->joinStrings(',')+'@ ')+$sc.sets.id->joinStrings(', ')+'/'+$sc.value->asString($pref)+']', + s:StoreRoutedValueSpecification[1] | '['+$s.id+' '+$s.value->asString($pref)+']', p:PlatformRoutedValueSpecification[1] | '['+$p.id+' /'+$p.value->asString($pref)+']', e:ExternalFormatRoutedValueSpecification[1] | '['+$e.id+' /'+$e.value->asString($pref)+']' ]); 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 65fa9e1bbfb..6f6571d56db 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 @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::metamodel::relation::*; import meta::pure::router::preeval::*; import meta::pure::extension::*; import meta::pure::metamodel::path::*; @@ -82,18 +83,11 @@ function <> meta::pure::router::preeval::preval(f : FunctionDefin if(!$r->anyModified(), | $state->printDebug(|'No changes made for: '); - $state->printDebug(|$f->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($extensions)->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::toPureGrammar::toPure($extensions));, + $state->printDebug(|$f->meta::pure::metamodel::serialization::grammar::printFunctionDefinition(''));, | let res = $r.value->toOne(); - - // $state->printDebug('Transformed From:'); - // $state->printDebug(|$f->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($extensions)->meta::json::toJSON(50000)); - // $state->printDebug(|$f->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($extensions)->meta::protocols::pure::vX_X_X::transformation::toPureGrammar::toPure($extensions)); - $state->printDebug('Transformed To:'); - $state->printDebug(|$res->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($extensions)->meta::json::toJSON(50000)); - $state->printDebug(|$res->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($extensions)->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::toPureGrammar::toPure($extensions)); - + $state->printDebug(|$res->meta::pure::metamodel::serialization::grammar::printFunctionDefinition('')); $state->printDebug($res); ); @@ -270,6 +264,7 @@ function <> meta::pure::router::preeval::prevalInternal(item : A {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);}, + {s: meta::pure::metamodel::relation::RelationStoreAccessor[1] | ^PrevalWrapper(value = $s, canPreval = false, modified = false);}, {a : Any[1]| assert($state.stopPreeval->eval($a), | 'Unsupported type: ' + $a->type()->match([pe:PackageableElement[1]|$pe->elementToPath(), t:Type[1]|$t->makeString()])); ^PrevalWrapper(value = $a, canPreval = true, modified = false); @@ -312,7 +307,6 @@ function <> meta::pure::router::preeval::prevalFunctionDefinitio | pair($state, list(if($p.second.values->isEmpty(), | $r, | $p.second.values->concatenate($r)))), | let fe = $r.value->cast(@FunctionExpression); - let varName = $fe.parametersValues->at(0)->reactivate($state.inScopeVars)->cast(@String)->toOne(); let varValue = $fe.parametersValues->at(1) ->match([ @@ -414,7 +408,11 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc { let newParamWrappers = if($sfe.parametersValues->isEmpty(), | [], - | $sfe.func->match([p:Property[1]|'this', f:Function[1]|$f->functionType().parameters.name]) + | $sfe.func->match([ + p:Property[1]|'this', + c:Column[1]|'this', + f:Function[1]|$f->functionType().parameters.name + ]) ->zip($sfe.parametersValues) ->evaluateAndDeactivate() ->map(p| $state->printDebugWithDepth(|'Processing parameter: ' + $p.first); @@ -885,12 +883,16 @@ function <> meta::pure::router::preeval::resolveGenericType(in : { if($in.typeParameter->isEmpty(), | - let newTypeArgsWrappers = $in.typeArguments->map(ta|$ta->resolveGenericType($state)); - if(!$newTypeArgsWrappers->anyModified(), - | ^PrevalWrapper(value = $in, canPreval=true, modified = false), - | let value = ^$in(typeArguments = $newTypeArgsWrappers.value); - ^PrevalWrapper(value = $value, canPreval=$newTypeArgsWrappers->canPreval(), modified = $newTypeArgsWrappers->anyModified()); - );, + if($in.rawType->isNotEmpty() && $in.rawType->toOne()->instanceOf(FunctionType), + |^PrevalWrapper(value = ^$in(rawType=$in.rawType->cast(@FunctionType)->toOne()->resolveFunctionType($state)), canPreval=false, modified = true);, + |let newTypeArgsWrappers = $in.typeArguments->map(ta|$ta->resolveGenericType($state)); + if(!$newTypeArgsWrappers->anyModified(), + | ^PrevalWrapper(value = $in, canPreval=true, modified = false), + | let value = ^$in(typeArguments = $newTypeArgsWrappers.value); + ^PrevalWrapper(value = $value, canPreval=$newTypeArgsWrappers->canPreval(), modified = $newTypeArgsWrappers->anyModified()); + ); + ); + , | let value = $state.inScopeTypeParams->get($in.typeParameter->toOne().name); if($value->isEmpty(), @@ -900,6 +902,15 @@ function <> meta::pure::router::preeval::resolveGenericType(in : ); } +function <> meta::pure::router::preeval::resolveFunctionType(in : FunctionType[1], state : meta::pure::router::preeval::State[1]):FunctionType[1] +{ + ^$in + ( + parameters = $in.parameters->map(x|^$x(genericType = $x.genericType->resolveGenericType($state).value)), + returnType = $in.returnType->resolveGenericType($state).value + ); +} + function <> meta::pure::router::preeval::shouldInline(f:Function[1], state : meta::pure::router::preeval::State[1]):Boolean[1] { ($f->instanceOf(FunctionDefinition) && ($f->cast(@FunctionDefinition).expressionSequence->size() == 1 )) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/printer/printer.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/printer/printer.pure index f869e650c02..a2f6ce2da58 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/printer/printer.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/printer/printer.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::metamodel::relation::*; import meta::pure::metamodel::serialization::grammar::*; import meta::pure::metamodel::path::*; import meta::pure::router::clustering::*; @@ -47,6 +48,7 @@ function meta::pure::router::printer::asString(f:Function[1]):String[1] function meta::pure::router::printer::asString(f:Function[1], pref:Pref[1]):String[1] { $f->match([ + c:Column[1]|$c.name->toOne(), q:AbstractProperty[1] | $q.name->toOne(), f:LambdaFunction[1]| let start = $f->functionType().parameters->evaluateAndDeactivate()->map(v|$v.name+':'+$v.genericType->printGenericType()+'['+$v.multiplicity->printMultiplicity()+']')->makeString(',')+' | '; $start + $f.expressionSequence->evaluateAndDeactivate()->map(e|$e->asString($pref)->replace('\n','\n'+space($start->length())))->makeString(';\n'+space($start->length()))+';';, @@ -98,6 +100,7 @@ function meta::pure::router::printer::asString(f:FunctionExpression[1], pref:Pre $f.func->match( [ p:Property[1] | $f.parametersValues->at(0)->asString($pref)+'.'+$p->id(), + c:Column[1]| $f.parametersValues->at(0)->asString($pref)+'.'+$c.name->toOne(), fd:Function[1] | let dispatch = [ pair('getAll', f:FunctionExpression[1]|$f.parametersValues->at(0)->asString($pref)+'.all('+$f.parametersValues->tail()->map(v|$v->asString($pref))->joinStrings(', ')+')'), pair('equal', f:FunctionExpression[1]|$f.parametersValues->at(0)->asString($pref)+' == '+$f.parametersValues->at(1)->asString($pref)), 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 42f81ecb0e5..1e1b6da77de 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 @@ -135,7 +135,7 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], routing 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',|'')); + print(if($debug.debug,|'\n'+$debug.space+'Clustering Function Expressions:',|'')); let clusters = $enrichedExpressionsAfterStrategyBasedEnrichment->map(exp| $exp->clusterFunctionExpressions($openVariables, $exeCtx, $extensions, ^$debug(space = $debug.space + ' '))); // Wrapping Clustered Function Expressions into original function structure @@ -149,6 +149,7 @@ function meta::pure::router::enrichExpressionWithStrategyBasedEnrichment(vs: Ext { $vs->match([ sm: StoreMappingRoutedValueSpecification[1] | $sm->enrichStoreMappingRoutedValueSpecification($exeCtx, $extensions, $debug), + s: StoreRoutedValueSpecification[1] | $s, 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; @@ -161,6 +162,7 @@ function meta::pure::router::clusterFunctionExpressions(vs:ExtendedRoutedValueSp $vs->match([ sm: StoreMappingRoutedValueSpecification[1] | $sm->doCluster($sm.mapping, $sm.runtime, $openVariables, $exeCtx, $extensions, $debug), + s : StoreRoutedValueSpecification[1] | $s->doCluster([], $s.runtime, $openVariables, $exeCtx, $extensions, $debug), ef: ExternalFormatRoutedValueSpecification[1] | let clusteredVal = $ef.value->meta::pure::router::externalFormat::clustering::cluster($ef.binding, $openVariables, $exeCtx, $extensions, $debug)->toOne(); if($clusteredVal->instanceOf(ClusteredValueSpecification), |let cluster = $clusteredVal->cast(@ClusteredValueSpecification); 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 8fdb78f3409..fb324d44454 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 @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::metamodel::relation::*; import meta::pure::graphFetch::routing::*; import meta::pure::graphFetch::*; import meta::pure::mapping::*; @@ -132,9 +133,26 @@ function <> meta::pure::router::routing::routeValueSpecification f:FunctionRoutedValueSpecification[1] | ^$state(value=$f.value)->routeValueSpecification($executionContext, $vars, $inScopeVars, $extensions, $debug), r:NoSetRoutedValueSpecification[1] | ^$state(value=$r.value)->routeValueSpecification($executionContext, $vars, $inScopeVars, $extensions, $debug), fe:FunctionExpression[1] | $fe->routeFunctionExpression($state, $executionContext, $vars, $inScopeVars, $extensions, $debug), - i:InstanceValue[1] | if($i->isOneClass() || ($i.values->isEmpty() && $i.multiplicity == PureOne && $i.genericType.rawType->isNotEmpty() && $i.genericType.rawType->toOne()->instanceOf(Class)), - | let c = if($i.values->isEmpty(), | $i.genericType.rawType->toOne()->cast(@Class), | $i.values->at(0)->cast(@Class)); - $state.routingStrategy.processClass($c, $i, $state, $executionContext, $debug);, + i:InstanceValue[1] | if( + [ + pair( + | $i.values->size() == 1 && $i.values->at(0)->instanceOf(RelationStoreAccessor) || ($i.values->isEmpty() && $i.multiplicity == PureOne && $i.genericType.rawType->isNotEmpty() && $i.genericType.rawType->toOne()->subTypeOf(Relation)), + | // We match cast to Relation & RelationStoreAccessor.. However we're only processing the Accessor + if($i.values->size() == 1 && $i.values->at(0)->instanceOf(RelationStoreAccessor), + | $state.routingStrategy.processRelationStoreAccessor($i.values->at(0)->cast(@RelationStoreAccessor), $i, $state, $executionContext, $debug);, + | $state + ); + ), + pair( + |$i->isOneClass() || ($i.values->isEmpty() && $i.multiplicity == PureOne && $i.genericType.rawType->isNotEmpty() && $i.genericType.rawType->toOne()->instanceOf(Class)), + | // Process for cast or Class.all() + let c = if($i.values->isEmpty(), + | $i.genericType.rawType->toOne()->cast(@Class), + | $i.values->at(0)->cast(@Class) + ); + $state.routingStrategy.processClass($c, $i, $state, $executionContext, $debug); + ) + ], | if($i.values->isEmpty(), |$state, |let processedValues = processCollection($state, $i.values->evaluateAndDeactivate(), $executionContext, $vars, $inScopeVars, v:Any[1]|true, $extensions, $debug); @@ -145,11 +163,10 @@ function <> meta::pure::router::routing::routeValueSpecification | ^$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 let currentStrategy = $state.routingStrategy->cast(@meta::pure::router::store::metamodel::StoreMappingRoutingStrategy); let updatedStrategy = ^$currentStrategy(toChooseSet = $cs.set); - let resolvedState = $updatedStrategy.processClass($param, $cs.value->cast(@InstanceValue), ^$state(routingStrategy = $updatedStrategy), $executionContext, $debug); let resStrategy = $resolvedState.routingStrategy->cast(@meta::pure::router::store::metamodel::StoreMappingRoutingStrategy); ^$resolvedState(routingStrategy = ^$resStrategy(toChooseSet = []));, @@ -170,31 +187,40 @@ function <> meta::pure::router::routing::routeValueSpecification ); } -function meta::pure::router::routing::prevalFunctionExpressionIfRequired(fe:FunctionExpression[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]) : FunctionExpression[1] +function meta::pure::router::routing::prevalFunctionExpressionIfRequired(fe:FunctionExpression[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]) : ValueSpecification[1] { $fe.func->match( [ f : FunctionDefinition[1] | if($f->hasStereotype('NormalizeRequiredFunction', functionType), - | $fe->meta::pure::router::preeval::preval($inScopeVars->putAll($f->openVariableValues()), $extensions, noDebug()), - | $fe), + | $fe->meta::pure::router::preeval::preval($inScopeVars->putAll($f->openVariableValues()), $extensions, $debug), + | $fe + ), a:Any[*] | $fe; ] - )->cast(@FunctionExpression); + )->cast(@ValueSpecification); } function meta::pure::router::routing::routeFunctionExpression(fe:FunctionExpression[1], state:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):RoutingState[1] { - let newFe = prevalFunctionExpressionIfRequired($fe,$inScopeVars, $extensions, $debug); - - $newFe.func->match([ - p:Property[1] | $state.routingStrategy.processProperty($p, $newFe, $state, $executionContext, $vars, $inScopeVars, $extensions, $debug);, - f:Function[1] | print(if($debug.debug,|$debug.space+if($f->instanceOf(NativeFunction),|'NativeFunction',|'FunctionDefinition')+' : '+$f->asString()+'\n',|'')); - let specializedFunctionProcessor = specializedFunctionExpressionRouterProcessor($extensions)->filter(e|$e.first->eval($newFe)).second; - if($specializedFunctionProcessor->isNotEmpty(), - | assert($specializedFunctionProcessor->size() == 1, | 'Only one match is authorized for specializedFunctionProcessor'); - $specializedFunctionProcessor->toOne()->evaluate([list($f), list($newFe), list($state), list($executionContext), list($vars), list($inScopeVars), list($extensions), list($debug)])->toOne()->cast(@RoutingState);, - | $f->routeFunctionExpressionFunctionDefinition($newFe, $state, $executionContext, $vars, $inScopeVars->putAll($f->openVariableValues()), $extensions, $debug);); - ]); + let newFe = prevalFunctionExpressionIfRequired($fe,$inScopeVars, $extensions, $debug)->evaluateAndDeactivate(); + + $newFe->match([ + nfe : FunctionExpression[1]| + $nfe.func->match([ + p:Property[1] | $state.routingStrategy.processProperty($p, $nfe, $state, $executionContext, $vars, $inScopeVars, $extensions, $debug);, + c:Column[1] | print(if($debug.debug,|$debug.space+' Column: '+$c.name->toOne()+'\n',|'')); + $c->routeFunctionExpressionColumn($nfe, $state, $executionContext, $vars, $inScopeVars, $extensions, $debug);, + f:Function[1] | print(if($debug.debug,|$debug.space+if($f->instanceOf(NativeFunction),|'NativeFunction',|'FunctionDefinition')+' : '+$f->asString()+'\n',|'')); + let specializedFunctionProcessor = specializedFunctionExpressionRouterProcessor($extensions)->filter(e|$e.first->eval($nfe)).second; + if($specializedFunctionProcessor->isNotEmpty(), + | assert($specializedFunctionProcessor->size() == 1, | 'Only one match is authorized for specializedFunctionProcessor'); + $specializedFunctionProcessor->toOne()->evaluate([list($f), list($nfe), list($state), list($executionContext), list($vars), list($inScopeVars), list($extensions), list($debug)])->toOne()->cast(@RoutingState);, + | $f->routeFunctionExpressionFunctionDefinition($nfe, $state, $executionContext, $vars, $inScopeVars->putAll($f->openVariableValues()), $extensions, $debug);); + ]);, + i : InstanceValue[1]|^$state(value=$i) + ] + + ); } function meta::pure::router::routing::specializedFunctionExpressionRouterProcessor(extensions:meta::pure::extension::Extension[*]):PairBoolean[1]}>, Function<{Function[1], FunctionExpression[1], RoutingState[1], ExecutionContext[1], Map[1], Map>[1], meta::pure::extension::Extension[*], DebugContext[1]->RoutingState[1]}>>[*] @@ -204,6 +230,13 @@ function meta::pure::router::routing::specializedFunctionExpressionRouterProcess ->concatenate($extensions.routerExtensions().routeFunctionExpressions) } +function meta::pure::router::routing::routeFunctionExpressionColumn(c:Column[1], fe:FunctionExpression[1], state:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):RoutingState[1] +{ + let p = ^$state(value=$fe.parametersValues->evaluateAndDeactivate()->at(0)); + let nstate = $p->meta::pure::router::routing::routeValueSpecification($executionContext, $vars, $inScopeVars, $extensions, ^$debug(space = $debug.space+' ')); + ^$state(value=^$fe(parametersValues = $nstate.value->cast(@ValueSpecification))); +} + function meta::pure::router::routing::routeFunctionExpressionFunctionDefinition(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]):RoutingState[1] { if ($fe.parametersValues->isEmpty(), @@ -339,7 +372,7 @@ function meta::pure::router::routing::routeFunctionExpressionFunctionDefinition( | if(isGetAllFunction($f), |$routed->filter(v|let ta = $v.value.genericType.typeArguments; $ta->isNotEmpty() && $ta->at(0).rawType->toOne()->_subTypeOf($returnClass->toOne());), - |$newSet->filter(v|if ($v.value.genericType.rawType == Property || $v.value.genericType.rawType == Path, + |$newSet->filter(v|if ($v.value.genericType.rawType == Property || $v.value.genericType.rawType == Path || $v.value.genericType.rawType == Column, |$v.value.genericType.typeArguments->at(1).rawType->toOne()->_subTypeOf($returnClass->toOne()), |if ($v.value.genericType.rawType == LambdaFunction, | $v.value.genericType.typeArguments->at(0).rawType->cast(@FunctionType).returnType.rawType->toOne()->_subTypeOf($returnClass->toOne()), @@ -466,7 +499,7 @@ function meta::pure::router::routing::routeSubFunction(state:RoutingState[1], ex function meta::pure::router::routing::processColumnSpecification(v:ValueSpecification[1], state:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):RoutingState[1] { let i = $v->match([i:InstanceValue[1]| $i, - v:VariableExpression[1]|^InstanceValue(genericType=$v.genericType, multiplicity=$v.multiplicity, values=$inScopeVars->get($v.name).values)->evaluateAndDeactivate(), + v:VariableExpression[1]| ^InstanceValue(genericType=$v.genericType, multiplicity=$v.multiplicity, values=$inScopeVars->get($v.name).values)->evaluateAndDeactivate(), f:FunctionExpression[1]| ^InstanceValue(genericType=$f.genericType, multiplicity=$f.multiplicity, values=$f)->evaluateAndDeactivate()]); $i.values->fold({v,a| $v->match([ 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 b341f47866a..2e7730b2cce 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 @@ -71,7 +71,7 @@ Class meta::pure::router::clustering::ClusterResponse executableSetOperations: Pair[*]; } -function meta::pure::router::doCluster(enrichedExpression:StoreMappingRoutedValueSpecification[1], mapping:Mapping[1], runtime: Runtime[1], openVariables:Map>[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ClusteredValueSpecification[*] +function meta::pure::router::doCluster(enrichedExpression:StoreRoutedValueSpecification[1], mapping:Mapping[0..1], runtime: Runtime[1], openVariables:Map>[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ClusteredValueSpecification[*] { let clusterResult = $enrichedExpression->cluster($mapping, $runtime, $openVariables, $exeCtx, $extensions, $debug); if($clusterResult.cluster->instanceOf(ClusteredValueSpecification), @@ -86,10 +86,11 @@ function meta::pure::router::doCluster(enrichedExpression:StoreMappingRoutedValu )); } -function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mapping:Mapping[1], runtime: Runtime[1], openVariables:Map>[1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ClusterResponse[1] +function meta::pure::router::clustering::cluster(v:ValueSpecification[1], _mapping:Mapping[0..1], runtime: Runtime[1], openVariables:Map>[1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ClusterResponse[1] { if($exeCtx->instanceOf(AnalyticsExecutionContext) && ($exeCtx->cast(@AnalyticsExecutionContext).useAnalytics == true), - | let allPropertyAccesses = meta::pure::router::analytics::getAllPropertyAccesses($v, $mapping, $extensions); + | let mapping = $_mapping->toOne(); + let allPropertyAccesses = meta::pure::router::analytics::getAllPropertyAccesses($v, $mapping, $extensions); let crossPropertyAccesses = $allPropertyAccesses->meta::pure::router::analytics::filterCrossPropertyAccesses(); if($crossPropertyAccesses->size() == 0, | cluster($v, $mapping, $openVariables, $exeCtx, $debug, [], $extensions), @@ -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); + | cluster($v, $_mapping, $openVariables, $exeCtx, $debug, [], $extensions); ); } @@ -239,14 +240,14 @@ function meta::pure::router::clustering::specializedFunctionExpressionClustering } -function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mapping:Mapping[1], openVariables:Map>[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], analyticsDecision: AnalyticsDecision[0..1], extensions:meta::pure::extension::Extension[*]):ClusterResponse[1] +function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mapping:Mapping[0..1], openVariables:Map>[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], analyticsDecision: AnalyticsDecision[0..1], extensions:meta::pure::extension::Extension[*]):ClusterResponse[1] { - cluster($v, $mapping, $openVariables, $exeCtx, '', $debug, $analyticsDecision, $extensions) + cluster($v, $mapping, $openVariables, $exeCtx, '', $debug, $analyticsDecision, $extensions); } -function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mapping:Mapping[1], openVariables:Map>[1], exeCtx:ExecutionContext[1], paramSuffix: String[1], debug:DebugContext[1], analyticsDecision: AnalyticsDecision[0..1], extensions:meta::pure::extension::Extension[*]):ClusterResponse[1] +function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mapping:Mapping[0..1], openVariables:Map>[1], exeCtx:ExecutionContext[1], paramSuffix: String[1], debug:DebugContext[1], analyticsDecision: AnalyticsDecision[0..1], extensions:meta::pure::extension::Extension[*]):ClusterResponse[1] { - $v->match([f:FunctionExpression[1]| + $v->match([f:FunctionExpression[1]| let specializedFunctionProcessor = specializedFunctionExpressionClustering()->filter(spec | $spec.first->eval($f->evaluateAndDeactivate())).second; if($specializedFunctionProcessor->isNotEmpty(), | assert($specializedFunctionProcessor->size() == 1, | 'Only one match is authorized for specializedFunctionProcessor'); @@ -254,7 +255,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin | let childClustersResponse = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->cluster($mapping, $openVariables, $exeCtx, $paramSuffix + '_' + indexOf($f.parametersValues,$v)->toString(), $debug, $analyticsDecision, $extensions)); let pre_params = $childClustersResponse.cluster->evaluateAndDeactivate(); let paramsExecutablePairs = if($analyticsDecision->isNotEmpty(), - | let crossPropertyAccesses = meta::pure::router::analytics::getAllCrossPropertyAccesses($f, $mapping, $extensions); + | let crossPropertyAccesses = meta::pure::router::analytics::getAllCrossPropertyAccesses($f, $mapping->toOne(), $extensions); 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()), @@ -274,16 +275,15 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin let childExecutables = $childClustersResponse.executableSetOperations; let unique = getDistinctClusterVSByStore($params, $extensions); - if ($unique->size() == 1 && $unique->toOne()->instanceOf(StoreMappingClusteredValueSpecification) && ($f.func->instanceOf(Property) || $f.func->instanceOf(QualifiedProperty) || $unique->at(0)->cast(@StoreMappingClusteredValueSpecification).s.supports->toOne()->eval($f->evaluateAndDeactivate())), + if ($unique->size() == 1 && $unique->toOne()->instanceOf(StoreClusteredValueSpecification) && ($f.func->instanceOf(Property) || $f.func->instanceOf(QualifiedProperty) || $unique->at(0)->cast(@StoreClusteredValueSpecification).s.supports->toOne()->eval($f->evaluateAndDeactivate())), | let one = $unique->toOne(); print(if($debug.debug,|$f->evaluateAndDeactivate()->asString()->debug($debug.space+'Func Expression(merge): '),|'')); let res =^$one( genericType = $f.genericType, multiplicity = $f.multiplicity, - val = ^$f(parametersValues = $params->evaluateAndDeactivate()->map(p|$p->match([c:StoreMappingClusteredValueSpecification[1]|$c.val;, a:ValueSpecification[1]|$a]))), - executable = $params->evaluateAndDeactivate()->map(p|$p->match([c:StoreMappingClusteredValueSpecification[1]|$c.executable;, a:ValueSpecification[1]|[]]))->concatenate(false)->toOneMany()->or() || $f.functionName == 'getAll' + val = ^$f(parametersValues = $params->evaluateAndDeactivate()->map(p|$p->match([c:StoreClusteredValueSpecification[1]|$c.val;, a:ValueSpecification[1]|$a]))), + executable = $params->evaluateAndDeactivate()->map(p|$p->match([c:StoreClusteredValueSpecification[1]|$c.executable;, a:ValueSpecification[1]|[]]))->concatenate(false)->toOneMany()->or() || $f.functionName == 'getAll' ); - print(if($debug.debug,|$res->evaluateAndDeactivate()->asString()->debug($debug.space+'~> '),|'')); ^ClusterResponse(cluster=$res,letFunctions=$letFunctions,executableSetOperations=$executables->concatenate($childExecutables));, | print(if($debug.debug,|$f->evaluateAndDeactivate()->asString()->debug($debug.space+'Func Expression(non unique: '+$unique->size()->toString()+'): '),|'')); let k = if ($unique->size() == 0, @@ -350,8 +350,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin print(if($debug.debug,|$k.cluster->last()->evaluateAndDeactivate()->cast(@ValueSpecification)->toOne()->asString()->debug($debug.space+'~> '),|'')); $k; ););, - - r:StoreMappingRoutedValueSpecification[1]| + r:StoreMappingRoutedValueSpecification[1]| print(if($debug.debug,|$r->evaluateAndDeactivate()->asString()->debug($debug.space+'Routed: '),|'')); let crossPropertyAccesses = $analyticsDecision->isEmpty()->if(|[], |meta::pure::router::analytics::getAllCrossPropertyAccesses($r, $r.mapping, $extensions)); let clusterResponse = $r.value->cluster($r.mapping, $openVariables, $r.executionContext, ^$debug(space = $debug.space+' '), $analyticsDecision, $extensions); @@ -360,7 +359,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin c: ClusteredValueSpecification[1]|^$c(val = ^$r(value = $c.val)), a: Any[1]| if($r.sets->isEmpty(), // This check is needed for expressions (like : let x = 1->from($mapping, $runtime)) where there are no sets found | $clusterResponse.cluster, - | $r->meta::pure::router::clustering::getClusterVSFromSets($r.sets, $openVariables, $mapping, $extensions)); + | $r->meta::pure::router::clustering::getClusterVSFromSets($r.sets, $openVariables, $mapping->toOne(), $extensions)); ] ); let y = if($crossPropertyAccesses->isNotEmpty(), @@ -402,9 +401,9 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin );, | print(if($debug.debug,|$i->asString()->debug($debug.space+'Constant: '),|'')); let potentialClusterResponses = $i.values->evaluateAndDeactivate()->map(m|if($m->instanceOf(ValueSpecification), - | $m->cast(@ValueSpecification)->cluster($mapping, $openVariables, $exeCtx, ^$debug(space = $debug.space+' '), $analyticsDecision, $extensions), + | $m->cast(@ValueSpecification)->cluster($mapping, $openVariables, $exeCtx, ^$debug(space = $debug.space+' '), $analyticsDecision, $extensions), | $m->match([ - g : meta::pure::graphFetch::routing::RoutedGraphFetchTree[1] | $g->meta::pure::graphFetch::routing::clusterRoutedGraphFetchTree([], $mapping, [], $openVariables, $exeCtx, $extensions, $debug), + g : meta::pure::graphFetch::routing::RoutedGraphFetchTree[1] | $g->meta::pure::graphFetch::routing::clusterRoutedGraphFetchTree([], $mapping->toOne(), [], $openVariables, $exeCtx, $extensions, $debug), a : Any[1] | $a ]))); let values = $potentialClusterResponses->map(r|if($r->instanceOf(ClusterResponse),| $r->cast(@ClusterResponse).cluster,|$r)); @@ -421,7 +420,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin );, | ^$i(values = $values); ); - print(if($debug.debug,|$res->asString()->debug($debug.space+'~> '),|'')); + print(if($debug.debug,|$res->asString()->debug($debug.space+' ~> '),|'')); ^ClusterResponse(cluster=$res, letFunctions = $letFunctions, executableSetOperations=$executables); );, r:FunctionRoutedValueSpecification[1]|let clusterResponse = $r.value->cluster($mapping, $openVariables, $exeCtx,^$debug(space = $debug.space+' '), $analyticsDecision, $extensions); @@ -443,6 +442,20 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin exeCtx = $t.executionContext, executable = true )), + s:StoreRoutedValueSpecification[1]| + ^ClusterResponse( cluster = ^StoreClusteredValueSpecification( + genericType = $s.genericType, + multiplicity = $s.multiplicity, + s = meta::pure::extension::storeContractFromStore($extensions, $s.store->toOne()), + store = $s.store->toOne(), + runtime = $s.runtime, + openVars = $openVariables, + val = $s.value->cluster([], $openVariables, $s.executionContext, ^$debug(space = $debug.space+' '), $analyticsDecision, $extensions).cluster, + exeCtx = $s.executionContext, + executable = true + ) + ) + , e:ExtendedRoutedValueSpecification[1] | ^ClusterResponse(cluster=$e->clusterFunctionExpressions($openVariables, $exeCtx, $extensions, $debug)->toOne()) ] @@ -499,12 +512,12 @@ function meta::pure::router::clustering::getDistinctClusterVSByStore(params:Valu | []); 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))}); + || ($x->instanceOf(StoreClusteredValueSpecification) && $y->instanceOf(StoreClusteredValueSpecification) && areStoreMappingClustersCompatible($x->cast(@StoreClusteredValueSpecification), $y->cast(@StoreClusteredValueSpecification), $extensions))}); let n_unique = if ($p_unique->size() > 1,|$p_unique->filter(p|!$p.val->isOneFunction()),|$p_unique); $n_unique; } -function meta::pure::router::store::clustering::areStoreMappingClustersCompatible(cluster1:StoreMappingClusteredValueSpecification[1], cluster2:StoreMappingClusteredValueSpecification[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] +function meta::pure::router::store::clustering::areStoreMappingClustersCompatible(cluster1:StoreClusteredValueSpecification[1], cluster2:StoreClusteredValueSpecification[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] { ($cluster1.store->elementToPath() == $cluster2.store->elementToPath()) && meta::core::runtime::runtimeEquality($cluster1.runtime, $cluster2.runtime, $extensions) && ($cluster1.exeCtx == $cluster2.exeCtx); } 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 88f99a06b20..51d5c6f1242 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 @@ -45,6 +45,7 @@ Class meta::pure::router::store::metamodel::PermutationSet Class meta::pure::router::store::metamodel::StoreRoutingStrategy extends RoutingStrategy { + store : Store[0..1]; runtime : Runtime[1]; } 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 bb57daf24cc..044ee59f7d3 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 @@ -10,8 +10,9 @@ // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and -// limitations under the License. +// limitations under the License. +import meta::pure::metamodel::relation::*; import meta::pure::graphFetch::*; import meta::pure::mapping::*; import meta::pure::router::builder::*; @@ -36,54 +37,95 @@ function meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRun setsByDepth = ^Map(), classMappingsByClass = $mapping->buildClassMappingsByClassMap(), processClass = processClass_Class_1__InstanceValue_1__RoutingState_1__ExecutionContext_1__DebugContext_1__RoutingState_1_, + processRelationStoreAccessor = processRelationStoreAccessor_RelationStoreAccessor_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_, - wrapValueSpec = wrapValueSpecification_ValueSpecification_1__RoutingStrategy_1__String_1__ExecutionContext_1__Extension_MANY__DebugContext_1__ExtendedRoutedValueSpecification_1_, + wrapValueSpec = wrapValueSpecificationStoreMapping_ValueSpecification_1__RoutingStrategy_1__String_1__ExecutionContext_1__Extension_MANY__DebugContext_1__ExtendedRoutedValueSpecification_1_, toString = {strategy:RoutingStrategy[1] | $strategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()}); } +function meta::pure::router::store::routing::getRoutingStrategyFromRuntime(runtime:Runtime[1]):StoreRoutingStrategy[1] +{ + ^StoreRoutingStrategy(runtime = $runtime, + processRelationStoreAccessor = processRelationStoreAccessor_RelationStoreAccessor_1__InstanceValue_1__RoutingState_1__ExecutionContext_1__DebugContext_1__RoutingState_1_, + + processClass = processClassPassThrough_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_, + + wrapValueSpec = wrapValueSpecificationStore_ValueSpecification_1__RoutingStrategy_1__String_1__ExecutionContext_1__Extension_MANY__DebugContext_1__ExtendedRoutedValueSpecification_1_, + toString = {strategy:RoutingStrategy[1] | 'StoreRoutingStrategy'}); +} + +function <> meta::pure::router::store::routing::processRelationStoreAccessor(c:RelationStoreAccessor[1], i:InstanceValue[1], s:RoutingState[1], executionContext:ExecutionContext[1], debug:DebugContext[1]):RoutingState[1] +{ + let strategy = $s.routingStrategy->cast(@StoreRoutingStrategy); + let nStrategy = ^$strategy(store=$c.store); + let runtime = $strategy.runtime; + let id = $s.counter + 1; + let routed = ^StoreRoutedValueSpecification(genericType = $i.genericType, + multiplicity = $i.multiplicity, + id = $id->toString(), + store = $c.store, + runtime = $runtime, + executionContext = $executionContext, + value = $i, + routingStrategy = $nStrategy); + ^$s( + counter = $id, + routingStrategy = $nStrategy, + value = $routed + ); +} + +function <> meta::pure::router::store::routing::processClassPassThrough(c:Class[1], i:InstanceValue[1], s:RoutingState[1], executionContext:ExecutionContext[1], debug:DebugContext[1]):RoutingState[1] +{ + ^$s(depth = $s.depth + $c->varToString()); +} + function <> meta::pure::router::store::routing::processClass(c:Class[1], i:InstanceValue[1], s:RoutingState[1], executionContext:ExecutionContext[1], debug:DebugContext[1]):RoutingState[1] { - 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' - if ($classMapping->isEmpty(), - | print(if($debug.debug,|$debug.space+'~>C) ('+$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()+') '+$state.value->toOne()->toString()+'\n',|'')); - $state;, - | let existingSet = $state->findExistingPemutationSet($debug); - let existingSetCanBeUsed = $existingSet->permutationSetOnlyHasImplementation($classMapping); - let newID = if($existingSetCanBeUsed, - | $existingSet->toOne().id->cast(@Integer), - | $state.counter+1 - )->toString(); - 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; - $setByD->put(getSetPath($state), $newSet->toOne());, - |$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, - multiplicity = $i.multiplicity, - id = $newID, - sets = $classMapping, - runtime = $runtime, - mapping = $mapping, - executionContext = $executionContext, - value = $i, - routingStrategy = $updatedRoutingStrategy); - let res = ^$state( - counter = if (!$existingSetCanBeUsed,|$state.counter+1,|$state.counter), - routingStrategy = $updatedRoutingStrategy, - value = $routed - ); - print(if($debug.debug,|$debug.space+'~>C) ('+$res.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()+') '+$routed->evaluateAndDeactivate()->asString()+'\n',|'')); - $res; - ); + // Route a Class using the Mapping + 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' + if ($classMapping->isEmpty(), + | print(if($debug.debug,|$debug.space+'~>C) ('+$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()+') '+$state.value->toOne()->toString()+'\n',|'')); + $state;, + | let existingSet = $state->findExistingPemutationSet($debug); + let existingSetCanBeUsed = $existingSet->permutationSetOnlyHasImplementation($classMapping); + let newID = if($existingSetCanBeUsed, + | $existingSet->toOne().id->cast(@Integer), + | $state.counter+1 + )->toString(); + 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; + $setByD->put(getSetPath($state), $newSet->toOne());, + |$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, + multiplicity = $i.multiplicity, + id = $newID, + sets = $classMapping, + runtime = $runtime, + mapping = $mapping, + executionContext = $executionContext, + value = $i, + routingStrategy = $updatedRoutingStrategy); + let res = ^$state( + counter = if (!$existingSetCanBeUsed,|$state.counter+1,|$state.counter), + routingStrategy = $updatedRoutingStrategy, + value = $routed + ); + print(if($debug.debug,|$debug.space+'~>C) ('+$res.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()+') '+$routed->evaluateAndDeactivate()->asString()+'\n',|'')); + $res; + ); } function <> meta::pure::router::store::routing::routeFunctionExpressionProperty(p:Property[1], fe:FunctionExpression[1], v:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):RoutingState[1] @@ -194,7 +236,7 @@ function <> meta::pure::router::store::routing::routeFunctionExp $res; } -function <> meta::pure::router::store::routing::wrapValueSpecification(value:ValueSpecification[1], routingStrategy:RoutingStrategy[1], id:String[1], executionContext:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExtendedRoutedValueSpecification[1] +function <> meta::pure::router::store::routing::wrapValueSpecificationStoreMapping(value:ValueSpecification[1], routingStrategy:RoutingStrategy[1], id:String[1], executionContext:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExtendedRoutedValueSpecification[1] { let strategy = $routingStrategy->cast(@StoreMappingRoutingStrategy); @@ -211,6 +253,21 @@ function <> meta::pure::router::store::routing::wrapValueSpecifi ); } +function <> meta::pure::router::store::routing::wrapValueSpecificationStore(value:ValueSpecification[1], routingStrategy:RoutingStrategy[1], id:String[1], executionContext:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExtendedRoutedValueSpecification[1] +{ + let strategy = $routingStrategy->cast(@StoreRoutingStrategy); + ^StoreRoutedValueSpecification + ( + genericType = $value.genericType, + multiplicity = $value.multiplicity, + store = $strategy.store, + id = $id, + runtime = $strategy.runtime, + executionContext = $executionContext, + value = $value, + routingStrategy = $strategy + ); +} // =================================================================================== // Special Functions @@ -219,7 +276,28 @@ function <> meta::pure::router::store::routing::wrapValueSpecifi function meta::pure::router::store::routing::specializedFunctionExpressionRouterProcessorForStore(extensions:meta::pure::extension::Extension[*]):PairBoolean[1]}>, Function<{Function[1], FunctionExpression[1], RoutingState[1], ExecutionContext[1], Map[1], Map>[1], meta::pure::extension::Extension[*], DebugContext[1]->RoutingState[1]}>>[*] { [ - pair(fe:FunctionExpression[1] | $fe.func->in([meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_, meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_, meta::pure::mapping::from_T_m__Mapping_1__Runtime_1__T_m_]), + pair(fe:FunctionExpression[1] | $fe.func->in([meta::pure::mapping::from_T_m__Runtime_1__T_m_]), + {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 resolvedParameters = $fe.parametersValues->tail()->map(p|$p->evaluateAndDeactivate()->match([v:VariableExpression[1] |let iv = meta::pure::functions::meta::resolve($v, $vars, $inScopeVars)->cast(@InstanceValue).values, + f:FunctionExpression[1] |let r = $f->meta::pure::router::preeval::preval($inScopeVars, $extensions, $debug); + $r->reactivate($inScopeVars);, + i:InstanceValue[1] |$i.values])); + + let fromRuntime = $resolvedParameters->at(0)->cast(@Runtime); + routeFunctionExpression( + $fe.parametersValues->at(0)->cast(@FunctionExpression), + ^$state(routingStrategy = getRoutingStrategyFromRuntime($fromRuntime)), + $executionContext, + $vars, + $inScopeVars, + $extensions, + $debug + ); + } + ), + pair(fe:FunctionExpression[1] | $fe.func->in([meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_, + meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_, + meta::pure::mapping::from_T_m__Mapping_1__Runtime_1__T_m_]), {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 resolvedParameters = $fe.parametersValues->tail()->map(p|$p->evaluateAndDeactivate()->match([v:VariableExpression[1] |let iv = meta::pure::functions::meta::resolve($v, $vars, $inScopeVars)->cast(@InstanceValue).values, f:FunctionExpression[1] |let r = $f->meta::pure::router::preeval::preval($inScopeVars, $extensions, $debug); @@ -306,7 +384,7 @@ function meta::pure::router::store::routing::specializedFunctionExpressionRoute value = $routedSave); } ) - ] + ]; } // =================================================================================== diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure index d238e57f433..4d869eb78d9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::metamodel::relation::*; import meta::pure::mapping::*; import meta::pure::metamodel::serialization::grammar::*; @@ -92,6 +93,7 @@ function meta::pure::metamodel::serialization::grammar::printPropertyOrFunctionE $functionExpression.func->match([ p:Property[1] | printProperty($p, $functionExpression.parametersValues->at(0), $space), q:QualifiedProperty[1]| printProperty($q, $functionExpression.parametersValues, $space), + c:Column[1] | printColumn($c, $functionExpression.parametersValues->at(0), $space), a:Any[1] | printFunctionExpression($functionExpression, $space) ]) } @@ -145,6 +147,11 @@ function meta::pure::metamodel::serialization::grammar::printProperty(p:Property $o->printValueSpecification($space) + '.' + $p.name->toOne(); } +function meta::pure::metamodel::serialization::grammar::printColumn(c:Column[1], o:ValueSpecification[1], space:String[1]):String[1] +{ + $c.name->toOne(); +} + function meta::pure::metamodel::serialization::grammar::printProperty(p:QualifiedProperty[1], params:ValueSpecification[*], space:String[1]):String[1] { $params->at(0)->printValueSpecification($space) + '.' + $p.name->toOne() + '(%s)'->format($params->tail()->map(x | $x->printValueSpecification($space))->joinStrings(', ')); @@ -225,11 +232,18 @@ function meta::pure::metamodel::serialization::grammar::printProperty(p:Property function meta::pure::metamodel::serialization::grammar::printGenericType(genericType:GenericType[1]):String[1] { - if ($genericType.rawType->isEmpty(), - |$genericType.typeParameter->toOne().name->toOne(), - |$genericType.rawType->toOne()->match( + if ($genericType->instanceOf(GenericTypeOperation), + |let go = $genericType->cast(@GenericTypeOperation); + $go.left->printGenericType()+if($go.type == GenericTypeOperationType.Union,|'+',|'-')+$go.right->printGenericType();, + |if ($genericType.rawType->isEmpty(), + |if ($genericType.typeParameter->isEmpty(), + |'', + |$genericType.typeParameter->toOne().name->toOne() + ), + |$genericType.rawType->toOne()->match( [ f:FunctionType[1]|printFunctionType($f), + x:meta::pure::metamodel::relation::RelationType[1]|printRelationType($x), c:Class[1]|if ($c.name->isEmpty(),|'?MappingClass?',|$c->elementToPath()), e:Enumeration[1]|$e->elementToPath(), a:Any[1]|$a->id() @@ -241,6 +255,7 @@ function meta::pure::metamodel::serialization::grammar::printGenericType(generic |if($genericType.multiplicityArguments->isNotEmpty(), |$genericType.multiplicityArguments->map(m | $m->printMultiplicity())->joinStrings('<|', ',', '>'), |''))) + ) } function meta::pure::metamodel::serialization::grammar::printFunctionType(functionType:FunctionType[1]):String[1] @@ -250,6 +265,11 @@ function meta::pure::metamodel::serialization::grammar::printFunctionType(functi +printGenericType($functionType.returnType)+'['+printMultiplicity($functionType.returnMultiplicity)+']}'; } +function meta::pure::metamodel::serialization::grammar::printRelationType(rType:meta::pure::metamodel::relation::RelationType[1]):String[1] +{ + '('+$rType.columns->map(x|if($x.nameWildCard,|'?',|$x.name->toOne())+':'+$x.classifierGenericType.typeArguments->at(1)->printGenericType())->joinStrings(', ')+')'; +} + function meta::pure::metamodel::serialization::grammar::printFunctionSignature(func:Function[1]):String[1] { let funcType = $func->genericType().typeArguments->at(0).rawType->toOne()->cast(@FunctionType); 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 571591499ae..c2768c2b7d9 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 @@ -135,6 +135,27 @@ org.finos.legend.pure legend-pure-m2-dsl-mapping-pure + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + runtime + + + org.finos.legend.pure + legend-pure-m2-dsl-tds-grammar + runtime + + + org.finos.legend.pure + legend-pure-m2-functions-relation-pure + runtime + + + org.finos.legend.pure + legend-pure-runtime-java-extension-functions-relation + ${legend.pure.version} + runtime + org.finos.legend.engine diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/src/main/resources/pure_ide/concepts.pure b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/src/main/resources/pure_ide/concepts.pure index 3309013c1cf..b194a1c5e13 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/src/main/resources/pure_ide/concepts.pure +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/src/main/resources/pure_ide/concepts.pure @@ -157,8 +157,7 @@ function <> meta::pure::ide::display_ide(elem:Any[1]):String[1] f:FunctionDefinition[1] | let icon = if($f->hasStereotype('externalizable', meta::pure::profiles::access), |'"/ide/pure/icons/play.png"', |'"/ide/pure/icons/modelElements/function.png"' - ); - + ); '{"li_attr":' + display_ide_attr($f) + ', "id":"'+$p->buildKey()+ '","text":"' + printFunctionSignature($f) + '", "icon":'+$icon+'}';, f:NativeFunction[1] | '{"li_attr":' + display_ide_attr($f) + ', "id":"'+$p->buildKey()+ '","text":"' + printFunctionSignature($f) + '", "icon":"/ide/pure/icons/modelElements/function_parenthesis.png"}', e:Enumeration[1] | '{"li_attr":' + display_ide_attr($e) + ', "id":"'+$p->buildKey()+ '","text":"' + $e->id() + '", "icon":"/ide/pure/icons/modelElements/enumeration.gif"}', 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 185551de86c..965298afdf2 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 @@ -30,6 +30,7 @@ public class PureIDELight extends PureIDEServer { public static void main(String[] args) throws Exception { + System.setProperty("legend.test.h2.port", "1975"); new PureIDELight().run(args.length == 0 ? new String[]{"server", "legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/resources/ideLightConfig.json"} : args); } @@ -102,13 +103,13 @@ protected MutableList buildRepositories(SourceLocationCon .with(this.buildCore("legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel", "elasticsearch_specification_metamodel")) .with(this.buildCore("legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test", "elasticsearch_execution_test")) .with(this.buildCore("legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel", "elasticsearch_seven_metamodel")) - .with(this.buildCore("legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure","nonrelational-mongodb")) - .with(this.buildCore("legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure","nonrelational-mongodb-java-platform-binding")) - .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-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure", "nonrelational-mongodb")) + .with(this.buildCore("legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure", "nonrelational-mongodb-java-platform-binding")) + .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-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml new file mode 100644 index 00000000000..9a02a0a74f1 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml @@ -0,0 +1,101 @@ + + + + + + 4.0.0 + + + org.finos.legend.engine + legend-engine-pure-platform-modular-generation + 4.36.1-SNAPSHOT + + + legend-engine-pure-platform-dsl-tds-java + jar + Legend Engine - Pure - Platform - DSL - TDS - JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + true + modular + true + + platform_dsl_tds + + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-tds-grammar + ${legend.pure.version} + + + + + + + + + org.finos.legend.pure + legend-pure-m4 + + + org.finos.legend.pure + legend-pure-m3-core + + + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + ${legend.pure.version} + + + + org.finos.legend.pure + legend-pure-runtime-java-engine-compiled + + + + org.finos.legend.engine + legend-engine-pure-platform-java + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml new file mode 100644 index 00000000000..58925ab2b41 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml @@ -0,0 +1,121 @@ + + + + + + 4.0.0 + + + org.finos.legend.engine + legend-engine-pure-platform-modular-generation + 4.36.1-SNAPSHOT + + + legend-engine-pure-platform-functions-relation-java + jar + Legend Engine - Pure - Platform - Function - Relation - JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + true + modular + true + + platform_functions_relation + + + + + + + org.finos.legend.pure + legend-pure-m2-functions-relation-pure + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-runtime-java-extension-functions-relation + ${legend.pure.version} + + + + + + + + + org.finos.legend.pure + legend-pure-m4 + + + org.finos.legend.pure + legend-pure-m3-core + + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + + + + org.finos.legend.pure + legend-pure-runtime-java-engine-compiled + + + + + + + org.finos.legend.pure + legend-pure-runtime-java-extension-functions-relation + + + + + org.finos.legend.engine + legend-engine-pure-platform-java + + + org.finos.legend.engine + legend-engine-pure-platform-functions-java + + + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + 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 e1f15ec6fcb..d8b83ae0a63 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 @@ -33,9 +33,11 @@ legend-engine-pure-platform-dsl-graph-java legend-engine-pure-platform-dsl-mapping-java legend-engine-pure-platform-dsl-path-java + legend-engine-pure-platform-dsl-tds-java legend-engine-pure-platform-functions-java legend-engine-pure-platform-functions-json-java legend-engine-pure-platform-java legend-engine-pure-platform-store-relational-java + legend-engine-pure-platform-functions-relation-java \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/main/java/org/finos/legend/engine/pure/runtime/compiler/interpreted/natives/LegendCompileMixedProcessorSupport.java b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/main/java/org/finos/legend/engine/pure/runtime/compiler/interpreted/natives/LegendCompileMixedProcessorSupport.java index e16961f6e12..88dc8d987a5 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/main/java/org/finos/legend/engine/pure/runtime/compiler/interpreted/natives/LegendCompileMixedProcessorSupport.java +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/main/java/org/finos/legend/engine/pure/runtime/compiler/interpreted/natives/LegendCompileMixedProcessorSupport.java @@ -22,11 +22,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Any; 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; -import org.finos.legend.pure.m3.navigation.Instance; -import org.finos.legend.pure.m3.navigation.M3Paths; -import org.finos.legend.pure.m3.navigation.M3ProcessorSupport; -import org.finos.legend.pure.m3.navigation.M3Properties; -import org.finos.legend.pure.m3.navigation.ProcessorSupport; +import org.finos.legend.pure.m3.navigation.*; import org.finos.legend.pure.m3.navigation._package._Package; import org.finos.legend.pure.m4.ModelRepository; import org.finos.legend.pure.m4.coreinstance.CoreInstance; @@ -79,7 +75,7 @@ public CoreInstance getClassifier(CoreInstance instance) @Override public CoreInstance newGenericType(SourceInformation sourceInformation, CoreInstance source, boolean inferred) { - CoreInstance coreInstance = _Package.getByUserPath(M3Paths.GenericType, this.originalProcessorSupport); + CoreInstance coreInstance = _Package.getByUserPath(inferred ? M3Paths.InferredGenericType : M3Paths.GenericType, this.originalProcessorSupport); return this.modelRepository.newCoreInstance("", coreInstance, null); } diff --git a/legend-engine-xts-java/legend-engine-external-language-java/src/main/java/org/finos/legend/engine/external/language/java/generation/GenerateJavaProject.java b/legend-engine-xts-java/legend-engine-external-language-java/src/main/java/org/finos/legend/engine/external/language/java/generation/GenerateJavaProject.java index ff58ed88901..db4dd0e5d46 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/src/main/java/org/finos/legend/engine/external/language/java/generation/GenerateJavaProject.java +++ b/legend-engine-xts-java/legend-engine-external-language-java/src/main/java/org/finos/legend/engine/external/language/java/generation/GenerateJavaProject.java @@ -50,7 +50,7 @@ protected GenerateJavaProject(String outputDirectory) ClassLoader classLoader = Pure.class.getClassLoader(); this.executionSupport = new CompiledExecutionSupport( new JavaCompilerState(null, classLoader), - new CompiledProcessorSupport(classLoader, MetadataLazy.fromClassLoader(classLoader, CodeRepositoryProviderHelper.findCodeRepositories().collect(CodeRepository::getName)), Sets.mutable.empty()), + new CompiledProcessorSupport(classLoader, MetadataLazy.fromClassLoader(classLoader, CodeRepositoryProviderHelper.findCodeRepositories(classLoader).collect(CodeRepository::getName)), Sets.mutable.empty()), null, new CompositeCodeStorage(new VersionControlledClassLoaderCodeStorage(classLoader, Lists.mutable.of( CodeRepositoryProviderHelper.findPlatformCodeRepository() diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/tests/javaGenerationTest.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/tests/javaGenerationTest.pure index 2254b4e607a..aedcf565594 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/tests/javaGenerationTest.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/tests/javaGenerationTest.pure @@ -39,7 +39,8 @@ function <> meta::pure::executionPlan::platformBinding::legendJa meta::pure::functions::asserts, meta::pure::functions::meta, meta::pure::functions::multiplicity, - meta::pure::functions::test + meta::pure::functions::test, + meta::pure::functions::relation ]; } @@ -65,7 +66,8 @@ function <> meta::pure::executionPlan::platformBinding::legendJa meta::pure::functions::tests::collection::newMultiValueMap2Test__Boolean_1_, // requires meta::pure::functions::collection::pair_U_1__V_1__Pair_1_ meta::pure::functions::tests::collection::newMultiValueMapTest__Boolean_1_, // requires meta::pure::functions::collection::pair_U_1__V_1__Pair_1_ meta::pure::functions::tests::collection::toIndexed__Boolean_1_, // requires meta::pure::functions::collection::pair_U_1__V_1__Pair_1_ - meta::pure::functions::tests::collection::toNumbered__Boolean_1_ // requires meta::pure::functions::collection::pair_U_1__V_1__Pair_1_ + meta::pure::functions::tests::collection::toNumbered__Boolean_1_, // requires meta::pure::functions::collection::pair_U_1__V_1__Pair_1_ + meta::pure::functions::lang::tests::if::testMultiIf__Boolean_1_ // requires meta::pure::functions::collection::pair_U_1__V_1__Pair_1_ ]; let translationNotSupported = [ @@ -84,7 +86,11 @@ function <> meta::pure::executionPlan::platformBinding::legendJa meta::pure::functions::lang::tests::letFn::testAssignNewInstance__Boolean_1_, // requires meta::pure::functions::meta::genericType_Any_MANY__GenericType_1_ meta::pure::functions::lang::tests::match::testMatchWithExtraParam__Boolean_1_, // requires meta::pure::functions::lang::match_Any_MANY__Function_$1_MANY$__P_o__T_m_ meta::pure::functions::lang::tests::match::testMatchWithExtraParamsAndFunctionsAsParam__Boolean_1_, // requires meta::pure::functions::lang::match_Any_MANY__Function_$1_MANY$__P_o__T_m_ - meta::pure::functions::lang::tests::new::testDynamicInstance__Boolean_1_ // requires meta::pure::functions::meta::genericType_Any_MANY__GenericType_1_ + meta::pure::functions::lang::tests::new::testDynamicInstance__Boolean_1_, // requires meta::pure::functions::meta::genericType_Any_MANY__GenericType_1_, + meta::pure::functions::collection::tests::find::testFindInstance__Boolean_1_, + meta::pure::functions::collection::tests::find::testFindLiteralFromVar__Boolean_1_, + meta::pure::functions::collection::tests::find::testFindLiteral__Boolean_1_, + meta::pure::functions::collection::tests::find::testFindUsingVarForFunction__Boolean_1_ ]; let prohibitedFunctionAccess = [ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/h2/H2Manager.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/h2/H2Manager.java index 3d879f7541e..fb772b6d749 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/h2/H2Manager.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/h2/H2Manager.java @@ -16,6 +16,7 @@ import java.sql.DriverManager; import java.sql.SQLException; + import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy; 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 89d0bbc7b6a..be1410a968d 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 @@ -147,6 +147,16 @@ + + org.finos.legend.engine + legend-engine-test-framework + + + org.finos.legend.pure + * + + + 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/RelationalStoreExecutorBuilder.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/RelationalStoreExecutorBuilder.java index ef8f38b04d6..a9843e2b2d8 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/RelationalStoreExecutorBuilder.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/RelationalStoreExecutorBuilder.java @@ -28,7 +28,7 @@ public class RelationalStoreExecutorBuilder implements StoreExecutorBuilder { - private static final int DEFAULT_PORT = -1; + private static final int DEFAULT_PORT = Integer.parseInt(System.getProperty("legend.test.h2.port", "-1")); public static final String DEFAULT_TEMP_PATH = "/tmp/"; @Override 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/test/H2TestServerResource.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/test/H2TestServerResource.java new file mode 100644 index 00000000000..d9b331d1e81 --- /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/test/H2TestServerResource.java @@ -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. + +package org.finos.legend.engine.plan.execution.stores.relational.test; + +import org.finos.legend.engine.plan.execution.stores.relational.AlloyH2Server; +import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.h2.H2Manager; +import org.finos.legend.engine.test.shared.framework.TestServerResource; +import org.finos.legend.engine.shared.core.port.DynamicPortGenerator; + +public class H2TestServerResource implements TestServerResource +{ + private org.h2.tools.Server h2Server = null; + + @Override + public void start() throws Exception + { + int relationalDBPort; + if (System.getProperty("legend.test.h2.port") == null) + { + relationalDBPort = DynamicPortGenerator.generatePort(); + } + else + { + relationalDBPort = Integer.parseInt(System.getProperty("legend.test.h2.port")); + } + + this.h2Server = AlloyH2Server.startServer(relationalDBPort); + System.out.println("H2 database (Major Version:" + H2Manager.getMajorVersion() + ") started on port:" + relationalDBPort); + + // Set drop wizard vars + System.setProperty("dw.temporarytestdb.port", String.valueOf(relationalDBPort)); + System.setProperty("dw.relationalexecution.temporarytestdb.port", String.valueOf(relationalDBPort)); + + // Pure client configuration + System.setProperty("alloy.test.h2.port", String.valueOf(relationalDBPort)); + System.setProperty("legend.test.h2.port", String.valueOf(relationalDBPort)); + } + + @Override + public void shutDown() throws Exception + { + this.h2Server.shutdown(); + this.h2Server.stop(); + } +} 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 5013c7616b0..74f66dbc878 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 @@ -36,6 +36,5 @@ legend-engine-xt-relationalStore-executionPlan-connection-tests legend-engine-xt-relationalStore-h2-1.4.200-execution - legend-engine-xt-relationalStore-mutation-executionPlan-test \ No newline at end of file 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 a9010c62160..7966af4a26a 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 @@ -56,6 +56,11 @@ legend-pure-m2-functions-pure ${legend.pure.version} + + org.finos.legend.pure + legend-pure-m2-functions-relation-pure + ${legend.pure.version} + org.finos.legend.pure @@ -77,6 +82,11 @@ legend-pure-m2-dsl-graph-grammar ${legend.pure.version} + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + ${legend.pure.version} + org.finos.legend.pure @@ -117,6 +127,12 @@ + + org.finos.legend.pure + legend-pure-m2-functions-relation-pure + ${legend.pure.version} + + org.finos.legend.pure legend-pure-m2-dsl-mapping-grammar @@ -137,6 +153,11 @@ legend-pure-m2-dsl-path-grammar ${legend.pure.version} + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + ${legend.pure.version} + org.finos.legend.pure @@ -161,6 +182,13 @@ legend-pure-runtime-java-extension-store-relational ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-runtime-java-extension-functions-relation + ${legend.pure.version} + + @@ -213,6 +241,15 @@ legend-pure-m2-store-relational-grammar runtime + + org.finos.legend.pure + legend-pure-m2-functions-relation-pure + runtime + + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + org.finos.legend.engine @@ -242,6 +279,10 @@ org.finos.legend.engine legend-engine-pure-platform-functions-java + + org.finos.legend.engine + legend-engine-pure-platform-functions-relation-java + org.finos.legend.engine legend-engine-pure-platform-functions-json-java @@ -268,6 +309,10 @@ org.finos.legend.pure legend-pure-runtime-java-extension-functions-json + + org.finos.legend.pure + legend-pure-runtime-java-extension-functions-relation + org.finos.legend.pure legend-pure-runtime-java-extension-dsl-mapping @@ -283,6 +328,10 @@ legend-pure-runtime-java-extension-dsl-path runtime + + org.finos.legend.pure + legend-pure-runtime-java-extension-dsl-tds + org.finos.legend.pure legend-pure-runtime-java-extension-dsl-graph 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 d0ad8800aa4..4b7befc37ac 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 @@ -7,7 +7,9 @@ "platform_dsl_mapping", "platform_dsl_graph", "platform_dsl_path", + "platform_dsl_tds", "platform_functions_json", + "platform_functions_relation", "platform_store_relational", "core_functions", "core_service", 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 7ad7bcba2a4..c08b3bd50e6 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 @@ -212,31 +212,34 @@ function meta::relational::contract::planExecution(sq:meta::pure::mapping::Store { let store = $sq.store->cast(@Database); let fe = $sq.fe->evaluateAndDeactivate(); - if($fe.func->in([meta::pure::graphFetch::execution::graphFetchFunctions()]), - | - // Graph Fetch Flow - $sq->meta::pure::graphFetch::executionPlan::planGraphFetchExecution($ext, $m->toOne(), $runtime->toOne(), $exeCtx, $extensions, $debug);, - - | - if($fe.func->in(meta::pure::mutation::mutationFunctions()), - | - // Write Flow - $sq->meta::relational::mutation::executionPlan::planMutationExecution($ext, $m->toOne(), $runtime->toOne(), $exeCtx, $extensions, $debug);, - | - // Normal Flow - 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); - let dbConnectionStore = $oldRuntime.connectionStores->filter(c|$c.connection==$dbConn); - ^$oldRuntime(connectionStores = $dbConnectionStore); - ); - let queryExeCtx = if($exeCtx->instanceOf(RelationalExecutionContext),|$exeCtx,|[])->cast(@RelationalExecutionContext); + if([ + pair( + |$fe.func->in([meta::pure::graphFetch::execution::graphFetchFunctions()]), + | // Graph Fetch Flow + $sq->meta::pure::graphFetch::executionPlan::planGraphFetchExecution($ext, $m->toOne(), $runtime->toOne(), $exeCtx, $extensions, $debug); + ), + pair( + |$fe.func->in(meta::pure::mutation::mutationFunctions()), + | // Write Flow + $sq->meta::relational::mutation::executionPlan::planMutationExecution($ext, $m->toOne(), $runtime->toOne(), $exeCtx, $extensions, $debug); + ) + ] + ,| + // Normal Flow + 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); + let dbConnectionStore = $oldRuntime.connectionStores->filter(c|$c.connection==$dbConn); + ^$oldRuntime(connectionStores = $dbConnectionStore); + ); + let queryExeCtx = if($exeCtx->instanceOf(RelationalExecutionContext),|$exeCtx,|[])->cast(@RelationalExecutionContext); let originalQuery = $sq.fe->toSQLQuery($m->toOne(), $sq.inScopeVars,$debug,$queryExeCtx->relationalExecutionContextToState(defaultState($m->toOne(), $sq.inScopeVars, $exeCtx, $extensions)), $extensions); $originalQuery->postProcessSQLQuery($store, $ext, $m->toOne(), $storeRuntime, $exeCtx, $extensions) ->generateExecutionNodeForPostProcessedResult($sq, $store, $ext, $m->toOne(), $storeRuntime, $exeCtx, $debug, $extensions); ); + ); } 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 ff31e7706a8..7eedd4132eb 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 @@ -62,8 +62,8 @@ function <> meta::relational::tests::projection::testGroupByWithWindo //check for base table attributes are being selected only 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"', + '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) ); @@ -88,8 +88,8 @@ function <> meta::relational::tests::projection::testGroupByWithWindo //check for attributes that are in different order than the input parmeters 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"', + '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 ); 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 04555ea8276..4d236a931bd 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 @@ -78,7 +78,7 @@ Class meta::relational::functions::pureToSqlQuery::State inScopeVars:Map>[1]; supportedFunctions:Map,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]}>>[1]; contextBasedSupportedFunctions:Map, 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]}>>>[1]; - mapping:Mapping[1]; + mapping:Mapping[0..1]; inProject:Boolean[1]; // should we fetch all properties in getAll ('NOT'ed) inProjectFunctions:Boolean[1]; filterChainDepth:Integer[1]; @@ -156,7 +156,7 @@ Class meta::relational::functions::pureToSqlQuery::ColumnGroup columns : RelationalOperationElement[*]; } -function meta::relational::functions::pureToSqlQuery::toSQLQuery(functionExpression:FunctionExpression[1], mapping:Mapping[1], inScopeVars:Map>[1], execCtx: RelationalExecutionContext[0..1], debug:DebugContext[1], extensions:Extension[*]):SQLQuery[1] +function meta::relational::functions::pureToSqlQuery::toSQLQuery(functionExpression:FunctionExpression[1], mapping:Mapping[0..1], inScopeVars:Map>[1], execCtx: RelationalExecutionContext[0..1], debug:DebugContext[1], extensions:Extension[*]):SQLQuery[1] { toSQLQuery($functionExpression, $mapping, $inScopeVars, $debug, $execCtx->relationalExecutionContextToState(defaultState($mapping, $inScopeVars, $execCtx, $extensions)), $extensions); @@ -185,7 +185,7 @@ function <> meta::relational::functions::pureToSqlQuery::applyPo ]); } -function meta::relational::functions::pureToSqlQuery::toSQLQuery(functionExpression:FunctionExpression[1], mapping:Mapping[1], inScopeVars:Map>[1], debug:DebugContext[1], state:State[1], extensions:Extension[*]):SQLQuery[1] +function meta::relational::functions::pureToSqlQuery::toSQLQuery(functionExpression:FunctionExpression[1], mapping:Mapping[0..1], inScopeVars:Map>[1], debug:DebugContext[1], state:State[1], extensions:Extension[*]):SQLQuery[1] { $functionExpression ->processQuery($state, $debug, $extensions) @@ -279,7 +279,7 @@ function meta::relational::functions::pureToSqlQuery::relationalExecutionContex ) } -function meta::relational::functions::pureToSqlQuery::defaultState(mapping:Mapping[1], inScopeVars:Map>[1]):State[1] +function meta::relational::functions::pureToSqlQuery::defaultState(mapping:Mapping[0..1], inScopeVars:Map>[1]):State[1] { ^State(inScopeVars=$inScopeVars, supportedFunctions=getSupportedFunctions(), mapping=$mapping, inProject=false, inProjectFunctions=false, inFilter=false, filterChainDepth=0, processingProjectionThread=false, shouldIsolate=true, contextBasedSupportedFunctions=getContextBasedSupportedFunctions()); } @@ -370,6 +370,7 @@ function meta::relational::functions::pureToSqlQuery::processValueSpecificationR let res = $vs->evaluateAndDeactivate()->match( [ r:StoreMappingRoutedValueSpecification[1] | $r.value->processValueSpecificationReturnPropertyMapping($currentPropertyMapping, $operation, $vars, ^$state(propertyMappingFromRouter = $r.propertyMapping), $joinType, $nodeId, $aggFromMap, $context, $extensions), + r:StoreRoutedValueSpecification[1] | $r.value->processValueSpecificationReturnPropertyMapping($currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions), r:FunctionRoutedValueSpecification[1] | $r.value->processValueSpecificationReturnPropertyMapping($currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions), f:FunctionExpression[1] | processFunctionExpression($f, $currentPropertyMapping, $operation, $vars, ^$state(functionExpressionStack+=$f), $joinType, buildNodeId($nodeId,'_d'), $aggFromMap, $context, $extensions), i:InstanceValue[1] | let elements = processInstanceValue($i, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions); @@ -525,6 +526,20 @@ function meta::relational::functions::pureToSqlQuery::processValue(vals:Any[*], v:PlanVarPlaceHolder[1] |^$operation(select = $state.inFilter->if(|^$select(filteringOperation = ^Literal(value=^VarPlaceHolder(name=$v.name,type = $v.type, multiplicity = $v.multiplicity))),|^$select(columns = ^Literal(value=^VarPlaceHolder(name=$v.name,type = $v.type, multiplicity = $v.multiplicity)))));, v:ValueSpecification[1] | processValueSpecification($v, $currentPropertyMapping, $operation, $vars, $state, $joinType, buildNodeId($nodeId,'_i'+$vals->indexOf($v)->toString()), $aggFromMap, $context, $extensions), l:LambdaFunction[1] | $l.expressionSequence->at(0)->processValueSpecification($currentPropertyMapping, $operation, $vars, $state, $joinType, buildNodeId($nodeId,'_i'+$vals->indexOf($v)->toString()), $aggFromMap, $context, $extensions), + x:RelationDatabaseAccessor[1] | + let tableAlias = ^TableAlias(name='dbAccessor', relationalElement=$x.relation); + let res = ^$operation + ( + select = ^TdsSelectSqlQuery + ( + columns = $x.relation.columns->map(c|^Alias(name='"'+$c->cast(@Column).name->toOne()+'"', relationalElement=^TableAliasColumn(alias=$tableAlias, column=$c->cast(@Column)))), + data = ^RootJoinTreeNode(alias = $tableAlias) + ) + ); + print(if(!$context.debug, |'', | $context.space+'>Processing Relation Database Accessor: '+$res.select->meta::relational::functions::sqlQueryToString::sqlQueryToString(DatabaseType.H2, $extensions) + '\n')); + // let node = ^RootJoinTreeNode(alias = ^TableAlias(name='dbAccessor', relationalElement=$x.relation)); + // ^$operation(select = ^TdsSelectSqlQuery(data = $node), currentTreeNode = $node); + $res;, a:Any[1] | ^ClassInstanceHolder(value=$a); ])) ); } @@ -535,14 +550,23 @@ function meta::relational::functions::pureToSqlQuery::processFunctionExpression( let res = $functionExpression.func->match ([ p:Property[1] | processPropertyFunctionExpression($functionExpression, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions);, q:QualifiedProperty[1] | processQualifiedPropertyFunctionExpression($functionExpression, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions);, + c:meta::pure::metamodel::relation::Column[1] | processColumnFunctionExpression($functionExpression, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions);, a:Any[1]| processFunctionExpressionForNonPropertyFunction($functionExpression, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions); ]); - print(if(!$context.debug, |'', | $context.space+'>End Process Function Expression: '+ $functionExpression.func.name->toOne() + '\n'+$res.element->cast(@SelectWithCursor).select->map(s | $s->printDebugQuery($context.space, $extensions))->joinStrings(', '))); - + print(if(!$context.debug, |'', | $context.space+'>End Process Function Expression: '+ $functionExpression.func.name->toOne() + '\n ' + $context.space + $res.element->cast(@SelectWithCursor).select->map(s | $s->printDebugQuery($context.space, $extensions))->joinStrings(', '))); $res; } +function meta::relational::functions::pureToSqlQuery::processColumnFunctionExpression(fe: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[*]):OperationWithParentPropertyMapping[1] +{ + let leftSide = processValueSpecificationReturnPropertyMapping($fe.parametersValues->at(0), $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions)->toOne(); + let leftSelect = $leftSide.element->cast(@SelectWithCursor).select; + let colAlias = ^TableAliasColumn(alias = $leftSelect.data->toOne().alias, column = ^Column(name =$fe.func.name->toOne(), type =^meta::relational::metamodel::datatype::Integer())); + let newSelect = $state.inFilter->if(|^$leftSelect(filteringOperation=$colAlias),|^$leftSelect(columns=$colAlias)); + ^$leftSide(element = ^$operation(select=$newSelect)); +} + function meta::relational::functions::pureToSqlQuery::processPropertyFunctionExpression(fe: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[*]):OperationWithParentPropertyMapping[1] { let propertyOwner = $fe.parametersValues->at(0)->map(p|$p->byPassRouterInfo()); @@ -569,7 +593,7 @@ function meta::relational::functions::pureToSqlQuery::processPropertyFunctionExp let baseOperation = if($currentPropertyMapping->isEmpty() ,| $leftSide.currentPropertyMapping ,| $currentPropertyMapping - )->match([ + )->match([ o:OtherwiseEmbeddedRelationalInstanceSetImplementation[1] | let navigateToOtherwiseMapping = $o->propertyMappingsByPropertyName($property.name->toOne())->isEmpty(); if($navigateToOtherwiseMapping ,|let leftVS = if($state.leftSideOfQualifier->isEmpty(), @@ -1376,7 +1400,7 @@ function meta::relational::functions::pureToSqlQuery::doJoinToClass(relationalPr let joinTree = $relationalPropertyMapping.relationalOperationElement->cast(@RelationalOperationElementWithJoin).joinTreeNode->toOne(); let className = $c.name->toOne(); - let classMappings = $state.mapping->classMappingById($relationalPropertyMapping.targetSetImplementationId); + let classMappings = $state.mapping->toOne()->classMappingById($relationalPropertyMapping.targetSetImplementationId); assertSize($classMappings, 1, 'Expected 1 class mapping for \'%s\' in \'%s\', found %d', [$className, $state.mapping.name->toOne(), $classMappings->size()]); let setImplementation = $classMappings->toOne()->match([a : meta::pure::mapping::aggregationAware::AggregationAwareSetImplementation[1] | $a.mainSetImplementation, s: SetImplementation[1] | $s])->cast(@RootRelationalInstanceSetImplementation); @@ -1520,11 +1544,11 @@ function meta::relational::functions::pureToSqlQuery::findUnionPropertyMapping(u let allSourceSetImplementationIds = $setImpl->cast(@PropertyMappingsImplementation)->allPropertyMappings().sourceSetImplementationId->distinct(); if ($setImpl->instanceOf(EmbeddedRelationalInstanceSetImplementation), | $setImpl->cast(@EmbeddedRelationalInstanceSetImplementation)->_propertyMappingsByPropertyName($property.name->toOne())->filter(r|$r->instanceOf(RelationalPropertyMapping))->cast(@RelationalPropertyMapping), - | let propMappings = $relationalPropertyMappings->filter(r|$state.mapping->classMappingById($r.sourceSetImplementationId)->match([r:RootRelationalInstanceSetImplementation[1]|$r,e:EmbeddedRelationalInstanceSetImplementation[1]|$e.setMappingOwner])->cast(@InstanceSetImplementation).id->in($allSourceSetImplementationIds)); + | let propMappings = $relationalPropertyMappings->filter(r|$state.mapping->toOne()->classMappingById($r.sourceSetImplementationId)->match([r:RootRelationalInstanceSetImplementation[1]|$r,e:EmbeddedRelationalInstanceSetImplementation[1]|$e.setMappingOwner])->cast(@InstanceSetImplementation).id->in($allSourceSetImplementationIds)); // Filtering overriden property mappings let propertyMappingToSuperSetIdsMap = $propMappings->map({pm | let pmSourceSetId = $pm.sourceSetImplementationId; - pair($pm, list($state.mapping->allSuperSetImplementationIds($pmSourceSetId)->remove($pmSourceSetId))); + pair($pm, list($state.mapping->toOne()->allSuperSetImplementationIds($pmSourceSetId)->remove($pmSourceSetId))); })->newMap(); $propMappings->filter({pm | let pmSourceSetId = $pm.sourceSetImplementationId; @@ -1654,14 +1678,14 @@ function meta::relational::functions::pureToSqlQuery::processRelationalPropertyM let currentTreeNodeElement = $srcOperation.currentTreeNode.alias.relationalElement->toOne(); let extractParentMappingId = {rpm: RelationalPropertyMapping[1] | - $state.mapping->classMappingById($rpm.sourceSetImplementationId)->match([ + $state.mapping->toOne()->classMappingById($rpm.sourceSetImplementationId)->match([ r:RootRelationalInstanceSetImplementation[1] | $r.id, e:EmbeddedRelationalInstanceSetImplementation[1] | $e.setMappingOwner.id ]) }; let shouldUpdatePropertyMappings = if ($currentTreeNodeElement->isUnionOrNestedUnion(), - | let allSourceSetIdsForUnionSets = $currentTreeNodeElement->resolveUnion().setImplementations->map(s | $state.mapping->allSuperSetImplementationIds($s.id)); + | let allSourceSetIdsForUnionSets = $currentTreeNodeElement->resolveUnion().setImplementations->map(s | $state.mapping->toOne()->allSuperSetImplementationIds($s.id)); !$relationalPropertyMappings->exists({rpm | !$extractParentMappingId->eval($rpm)->in($allSourceSetIdsForUnionSets) });, @@ -1672,7 +1696,7 @@ function meta::relational::functions::pureToSqlQuery::processRelationalPropertyM let union = $currentTreeNodeElement->resolveUnion(); let nullAlias = ^Alias(name = $property.name->toOne(), relationalElement = ^Literal(value = ^SQLNull())); $union.setImplementations->map({currentSet | - let superSetIds = $state.mapping->allSuperSetImplementationIds($currentSet.id); + let superSetIds = $state.mapping->toOne()->allSuperSetImplementationIds($currentSet.id); let filteredRpms = $relationalPropertyMappings->filter(rpm | $extractParentMappingId->eval($rpm)->in($superSetIds)); let newRpms = if ($filteredRpms->isNotEmpty(), | $filteredRpms, @@ -1823,7 +1847,7 @@ function meta::relational::functions::pureToSqlQuery::processCrossPropertyMappin | $crossPropertyMappings->at(0).owner->toOne()); let targetSet = $crossPropertyMappings->at(0)->instanceOf(CrossSetImplementationReverseComplexPropertyMapping)->if( | $crossPropertyMappings->at(0)->cast(@CrossSetImplementationReverseComplexPropertyMapping).targetSet->cast(@CrossSetImplementation)->convertCrossSetImplToRelationalSetImpl(), - | $state.mapping->classMappingById($crossPropertyMappings->at(0).targetSetImplementationId)->cast(@RootRelationalInstanceSetImplementation)->toOne()); + | $state.mapping->toOne()->classMappingById($crossPropertyMappings->at(0).targetSetImplementationId)->cast(@RootRelationalInstanceSetImplementation)->toOne()); let propertypairs = $crossPropertyMappings->at(0)->cast(@CrossSetImplementationComplexPropertyMapping).crossExperssionPropertyPairs; let currentAlias = $oldSrcOperation.currentTreeNode.alias; let targetAlias = $targetSet.mainTableAlias->createJoinTableAlias($nodeId, $state, [], $context, $extensions); @@ -1983,19 +2007,22 @@ function meta::relational::functions::pureToSqlQuery::replaceJoinTableWithSelect function meta::relational::functions::pureToSqlQuery::processFunctionExpressionForNonPropertyFunction(functionExpression: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[*]):OperationWithParentPropertyMapping[*] { let func = findSupportedFunction($functionExpression, $state.supportedFunctions, $state.contextBasedSupportedFunctions); - if ( (!$func->isEmpty()), | let params1 = [^List(values=$functionExpression), ^List(values=$currentPropertyMapping)]; - let params = $params1->concatenate([$operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context]->map(v | ^List(values=$v)))->concatenate(^List(values = $extensions)); - $func->toOne()->evaluate($params)->cast(@RelationalOperationElement)->toOne()->wrapIfNecessary(); - , | - - - if($functionExpression.func->instanceOf(FunctionDefinition), - |let expression = $functionExpression.func->cast(@FunctionDefinition).expressionSequence; - assertEquals(1, $expression->size(), | 'Functions with more than one functionExpression are not supported yet! The function \'' + $functionExpression.func->toString() + '\' has ' + $expression->size()->toString() + ' expressions.'); - processValueSpecificationReturnPropertyMapping($expression->toOne(), $currentPropertyMapping, $operation, $functionExpression->mapVariables($vars, $state.inScopeVars), ^$state(inScopeVars=^Map>()), $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions); - , - |fail('No SQL translation exists for the PURE function \''+$functionExpression.func.name->toOne()+'\'. \nIf you would like to add a SQL translation for the function then follow the step-by-step guide on the PURE wiki.'); $operation->wrapIfNecessary(); - ); + + if ([ + pair( + |!$func->isEmpty(), + | let params1 = [^List(values=$functionExpression), ^List(values=$currentPropertyMapping)]; + let params = $params1->concatenate([$operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context]->map(v | ^List(values=$v)))->concatenate(^List(values = $extensions)); + $func->toOne()->evaluate($params)->cast(@RelationalOperationElement)->toOne()->wrapIfNecessary(); + ), + pair( + |$functionExpression.func->instanceOf(FunctionDefinition), + | let expression = $functionExpression.func->cast(@FunctionDefinition).expressionSequence; + assertEquals(1, $expression->size(), | 'Functions with more than one functionExpression are not supported yet! The function \'' + $functionExpression.func->toString() + '\' has ' + $expression->size()->toString() + ' expressions.'); + processValueSpecificationReturnPropertyMapping($expression->toOne(), $currentPropertyMapping, $operation, $functionExpression->mapVariables($vars, $state.inScopeVars), ^$state(inScopeVars=^Map>()), $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions); + ) + ], + |fail('No SQL translation exists for the PURE function \''+$functionExpression.func.name->toOne()+'\'. \nIf you would like to add a SQL translation for the function then follow the step-by-step guide on the PURE wiki.'); $operation->wrapIfNecessary(); ); } @@ -2005,7 +2032,8 @@ function meta::relational::functions::pureToSqlQuery::flattenConcatenate(f:Value fe:FunctionExpression[1] | if ($fe.func->in([ 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_ + concatenate_TabularDataSet_1__TabularDataSet_MANY__TabularDataSet_1_, + concatenate_Relation_1__Relation_1__Relation_1_ ]), | $fe.parametersValues->at(0)->flattenConcatenate()->concatenate($fe.parametersValues->at(1)->flattenConcatenate()), | $fe @@ -2042,7 +2070,7 @@ function meta::relational::functions::pureToSqlQuery::processConcatenate(f:Funct ^$p(element = $newSelectWithCursor); ); - let setImpl = if($isDataType || $targetType ->_subTypeOf(TabularDataSet),|[],|$elements->map(e|$e->cast(@StoreMappingRoutedValueSpecification).sets->toOne())->removeDuplicates()); + let setImpl = if($isDataType || $targetType ->_subTypeOf(TabularDataSet) || $targetType ->_subTypeOf(meta::pure::metamodel::relation::Relation),|[],|$elements->map(e|$e->cast(@StoreMappingRoutedValueSpecification).sets->toOne())->removeDuplicates()); // Fix columns ---------------- let columns = $processed.element->cast(@SelectWithCursor).select.columns; @@ -2050,7 +2078,7 @@ function meta::relational::functions::pureToSqlQuery::processConcatenate(f:Funct | $processed->map(p|let selectWithCursor = $p.element->cast(@SelectWithCursor); let select = $selectWithCursor.select->alignJoinAndPkColumnsForUnion($columns); let element = $elements->at($processed->indexOf($p)); - let type = if($isDataType || $targetType ->_subTypeOf(TabularDataSet), + let type = if($isDataType || $targetType ->_subTypeOf(TabularDataSet) || $targetType ->_subTypeOf(meta::pure::metamodel::relation::Relation), |[], |^Alias ( @@ -2132,7 +2160,7 @@ function meta::relational::functions::pureToSqlQuery::processConcatenate(f:Funct |[], |$t.currentPropertyMapping->match([ e:EmbeddedRelationalInstanceSetImplementation[1]| $e, - p:PropertyMapping[1]| $state.mapping->classMappingById($t.currentPropertyMapping.targetSetImplementationId->toOne())->toOne() + p:PropertyMapping[1]| $state.mapping->toOne()->classMappingById($t.currentPropertyMapping.targetSetImplementationId->toOne())->toOne() ]) ) )); @@ -2462,7 +2490,10 @@ function meta::relational::functions::pureToSqlQuery::findAliasOrFail(columnName function meta::relational::functions::pureToSqlQuery::findAliasOrFail(f:FunctionExpression[1], select:SelectSQLQuery[1], vars:Map[1], state:State[1]):Alias[*] { - $f->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->cast(@String)->map(s| $s->findAliasOrFail($select)); + $f->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->match([ + s:String[*]|$s, + x:meta::pure::metamodel::relation::ColSpecArray[1]|$x.names + ])->map(s| $s->findAliasOrFail($select)); } function meta::relational::functions::pureToSqlQuery::processTDSSortSingular(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] @@ -2479,6 +2510,12 @@ function meta::relational::functions::pureToSqlQuery::processTDSSortColumns(f:Fu $f->processTDSSort($currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $sortInfo, $extensions); } +function meta::relational::functions::pureToSqlQuery::processTDSSortSortInfo(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 sortInfo = $f->instanceValuesAtParameter(1,$vars, $state.inScopeVars)->cast(@SortInfo)->map(s | ^SortInformation(column = $s.column.name, direction = if($s.direction == SortType.ASC, |meta::pure::tds::SortDirection.ASC,|meta::pure::tds::SortDirection.DESC))); + $f->processTDSSort($currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $sortInfo, $extensions); +} + function meta::relational::functions::pureToSqlQuery::processTDSSortInformation(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 sortInfo = $f.parametersValues->at(1)->reactivate($state.inScopeVars)->cast(@SortInformation); @@ -2506,11 +2543,11 @@ function meta::relational::functions::pureToSqlQuery::processSortBy(f:FunctionEx let leftSidePure = $f.parametersValues->at(0); let leftSideOp = processValueSpecificationReturnPropertyMapping($leftSidePure, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne(); let mainQuery = $leftSideOp.element->cast(@SelectWithCursor); - let mainSelect = $mainQuery.select->pushSavedFilteringOperation($extensions); + let mainSelect = $mainQuery.select->pushSavedFilteringOperation($extensions); let sortByFunc = $f.parametersValues->evaluateAndDeactivate()->at(1)->byPassRouterInfo()->cast(@InstanceValue).values->at(0); - + $sortByFunc->match([ - path: Path[1] | + path: Path[1] | let pathName = 'o_'+$path->buildColumnNameOutOfPath(); let joinResult = processPath($path, $pathName, '1', $mainQuery, $vars, ^$state(inFilter=false), $nodeId, $aggFromMap, $context->shift(), $extensions).element->cast(@SelectWithCursor).select; @@ -2528,10 +2565,10 @@ function meta::relational::functions::pureToSqlQuery::processSortBy(f:FunctionEx orderBy = ^OrderBy(column=$joinResult.columns->at(0)->cast(@Alias).relationalElement, direction=meta::relational::metamodel::SortDirection.ASC) ) );, - l: LambdaFunction[1] | + l: LambdaFunction[1] | /* - already have a mainQuery - select ... - - process the lambda function inside sortBy with the state to generate a sql query + - process the lambda function inside sortBy with the state to generate a sql query select as "generated_order_key" from ... where is a sql representation for lambda function and "generated_order_key" is a temporary alias introduced - merge these two queries @@ -2546,7 +2583,7 @@ function meta::relational::functions::pureToSqlQuery::processSortBy(f:FunctionEx let lambdaFunctionExpression = $lambdaFunction.expressionSequence->at(0); let inScopeVarsWithPlaceholdersState = $lambdaFunction->addPlaceHoldersForLambdaOpenVariables($vars, $updatedState); let embeddedMapping = if($leftSideOp.currentPropertyMapping->isEmpty(), | $currentPropertyMapping, | $leftSideOp.currentPropertyMapping); - + let rightSide = processValueSpecification($lambdaFunctionExpression, $embeddedMapping, $mainQuery, $vars, ^$inScopeVarsWithPlaceholdersState(inFilter=false), JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context->shift(), $extensions)->toOne()->cast(@SelectWithCursor); let rightSideSelect = $rightSide.select; let rightSideModified = ^$rightSide( @@ -2554,7 +2591,7 @@ function meta::relational::functions::pureToSqlQuery::processSortBy(f:FunctionEx columns = if($rightSideSelect.columns->isEmpty(), | [], |^Alias(name = $generated_order_key, relationalElement = $rightSideSelect.columns->toOne())) ) ); - + let revisedLeftRightSelects = pair($mainSelect,$rightSideModified.select); let merge = [$revisedLeftRightSelects.first, $revisedLeftRightSelects.second]->cast(@SelectSQLQuery)->mergeSQLQueryData($nodeId, $updatedState, $context, $extensions); ^$operation( @@ -2806,7 +2843,7 @@ function meta::relational::functions::pureToSqlQuery::addPkForAggregation(f:Func |if($f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->instanceOf(RootRelationalInstanceSetImplementation), |let rs = $f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@RootRelationalInstanceSetImplementation); let pk = $rs->resolvePrimaryKey(); - let valid = if ($pk->isEmpty(), | fail('There is no primary key defined on the table ' + $rs->mainTable()->toOne().name + '. A primary key must be defined in the table definition in PURE to use this feature'); false; ,| true); + let valid = if ($pk->isEmpty(), | fail('There is no primary key defined on the table ' + $rs->mainTable()->toOne().name + '. A primary key must be defined in the table definition in PURE to use this feature'); false; ,| true); let existingSelect = $existingQuery.select; let all = $pk->filter(p|$p->instanceOf(TableAliasColumn))->map(p|$p->processColumnsInRelationalOperationElements(^$state(inFilter=false), ^$existingQuery(select=^$existingSelect(leftSideOfFilter=[]), positionBeforeLastApplyJoinTreeNode=[]), $nodeId, ^List(), false, $context, $extensions)); let sel = $all->map(c|$c.select)->cast(@SelectSQLQuery)->mergeSQLQueryData($nodeId, $state, $context, $extensions); @@ -2823,8 +2860,8 @@ function meta::relational::functions::pureToSqlQuery::addPkForAggregation(f:Func ); $result->validate([], $extensions); $result;, - |if($f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->instanceOf(OperationSetImplementation) && ($f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@OperationSetImplementation)->resolveOperation($state.mapping)->size() > 1) && $f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@OperationSetImplementation)->resolveOperation($state.mapping)->forAll(set | $set->instanceOf(RootRelationalInstanceSetImplementation)) && $existingQuery.currentTreeNode->isNotEmpty() && $existingQuery.currentTreeNode->toOne().alias.relationalElement->instanceOf(Union), - |addPkForAggregationInUnion($existingQuery, $f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@OperationSetImplementation)->resolveOperation($state.mapping)->cast(@RootRelationalInstanceSetImplementation), $state, $extensions), + |if($f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->instanceOf(OperationSetImplementation) && ($f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@OperationSetImplementation)->resolveOperation($state.mapping->toOne())->size() > 1) && $f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@OperationSetImplementation)->resolveOperation($state.mapping->toOne())->forAll(set | $set->instanceOf(RootRelationalInstanceSetImplementation)) && $existingQuery.currentTreeNode->isNotEmpty() && $existingQuery.currentTreeNode->toOne().alias.relationalElement->instanceOf(Union), + |addPkForAggregationInUnion($existingQuery, $f.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).sets->toOne()->cast(@OperationSetImplementation)->resolveOperation($state.mapping->toOne())->cast(@RootRelationalInstanceSetImplementation), $state, $extensions), |$existingQuery ); ); @@ -3221,7 +3258,7 @@ function <> meta::relational::functions::pureToSqlQuery::process let classPropertyPair = $e->findPropertySequence()->first(); if(!$classPropertyPair->isEmpty(),| let class = $classPropertyPair.first; let propertyName = $classPropertyPair.second.name->toOne(); - let classMapping = $state.mapping->_classMappingByClass($class->toOne()); + let classMapping = $state.mapping->toOne()->_classMappingByClass($class->toOne()); $classMapping->cast(@PropertyMappingsImplementation)->map(x|$x->_propertyMappingsByPropertyName($propertyName)); ,|[]); ); @@ -3407,7 +3444,7 @@ function meta::relational::functions::pureToSqlQuery::processGetAll(expression: r:meta::pure::router::clustering::CrossSetImplementation[1]| let newTable = ^VarCrossSetPlaceHolder(varName=$r.varName, name=$r.varName, schema=^Schema(name='default', database=^Database()), crossSetImplementation = $r); let treeNode = ^RootJoinTreeNode(alias = ^TableAlias(name = 'root', relationalElement = $newTable)); ^SelectWithCursor(select = ^SelectSQLQuery(data = $treeNode), currentTreeNode = $treeNode);, - o:OperationSetImplementation[1]|let setImpls = $o->resolveOperation($state.mapping)->cast(@RootRelationalInstanceSetImplementation); + o:OperationSetImplementation[1]|let setImpls = $o->resolveOperation($state.mapping->toOne())->cast(@RootRelationalInstanceSetImplementation); if($setImpls->size()==1,| $processRootSetImpl->eval($setImpls->at(0)) ,| let milestoningContext = getMilestoningContextForAll($expression,$o, $parameters, $state, $vars, $context, $extensions); let union = buildUnion($setImpls, [], false, $state.inProject, $milestoningContext, $nodeId, $state, $context, $extensions); @@ -3543,7 +3580,7 @@ function meta::relational::functions::pureToSqlQuery::processRelationalMappingSp let merged = $pksAndProperties->concatenate($filterQuery.select)->mergeSQLQueryData($nodeId, $state, $context, $extensions); let fks = if ($viewSpecification->getDistinct() == true && !$viewSpecification->instanceOf(View), - | collectAdditionalJoinColumnsForSource($viewSpecification, $state.mapping, $merged.data->toOne(), $merged.columns->cast(@Alias)), + | collectAdditionalJoinColumnsForSource($viewSpecification, $state.mapping->toOne(), $merged.data->toOne(), $merged.columns->cast(@Alias)), | if ($state.importDataFlowAddFks == true, |$state.importDataFlowFksByTable->toOne()->get($mainTable).values->map(c|^Alias(name=$c.name, relationalElement=^TableAliasColumn(alias=$merged.data.alias->toOne(), columnName=$c.name, column=$c))), |[] @@ -4312,7 +4349,7 @@ function meta::relational::functions::pureToSqlQuery::processObjectReferenceIn(f let setImplementation = $leftSide->match([ e:StoreMappingRoutedValueSpecification[1] | $e.sets, - v:ValueSpecification[1] | $state.mapping->rootClassMappingByClass($mainClass); + v:ValueSpecification[1] | $state.mapping->toOne()->rootClassMappingByClass($mainClass); ])->toOne(); assert($setImplementation->instanceOf(RelationalInstanceSetImplementation), | 'OperationInstanceSetImplementation not supported yet!!'); @@ -4444,6 +4481,13 @@ function <> meta::relational::functions::pureToSqlQuery::reproce ]) } +Class <> meta::relational::functions::pureToSqlQuery::AggContainer +{ + name:String[1]; + map:meta::pure::metamodel::function::Function[1]; + reduce:meta::pure::metamodel::function::Function[1]; +} + function meta::relational::functions::pureToSqlQuery::processGroupBy(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] { let nestedQuery = processValueSpecification($expression.parametersValues->at(0), [], $operation, $vars, $state, JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor); @@ -4451,18 +4495,26 @@ function meta::relational::functions::pureToSqlQuery::processGroupBy(expression: let groupByColumns = findAliasOrFail($expression, $select, $vars, $state); let noSubSelect = $select.groupBy->isEmpty() && ($select.distinct->isEmpty() || !$select.distinct->toOne()) && $select.orderBy.column->removeAll($groupByColumns)->isEmpty(); $groupByColumns->map(gc| assert(!$gc.relationalElement->instanceOf(WindowColumn),'Group by columns cannot include window columns');); - let aggVS = $expression.parametersValues->at(2)->reprocessVS()->reactivate($state.inScopeVars)->evaluateAndDeactivate()->cast(@meta::pure::tds::AggregateValue); - let newColumns= $aggVS->map(a|let aggFn = $a.aggregateFn->cast(@FunctionDefinition).expressionSequence->at(0); - let params = if($a.mapFn.expressionSequence->at(0)->instanceOf(FunctionExpression) || $a.mapFn.expressionSequence->at(0)->instanceOf(InstanceValue), - |let inScopeVarsWithPlaceholdersState = $a.mapFn->addPlaceHoldersForLambdaOpenVariables($vars, $state); - processTdsLambda($a.mapFn.expressionSequence->at(0)->evaluateAndDeactivate(), $select.columns->filter(c|!$c->instanceOf(WindowColumn))->cast(@Alias),!$noSubSelect, $vars, $inScopeVarsWithPlaceholdersState, $currentPropertyMapping, $context);, + let aggVS = $expression.parametersValues->at(2)->reprocessVS()->reactivate($state.inScopeVars)->evaluateAndDeactivate()->match([ + avs:meta::pure::tds::AggregateValue[*]|$avs->map(a|^AggContainer(name=$a.name,map=$a.mapFn,reduce=$a.aggregateFn));, + x:meta::pure::metamodel::relation::AggColSpec[1]|^AggContainer(name=$x.name,map=$x.map,reduce=$x.reduce); + ]); + let newColumns= $aggVS->map(a|let aggFn = $a.reduce->cast(@FunctionDefinition).expressionSequence->at(0)->evaluateAndDeactivate(); + let params = if($a.map->cast(@FunctionDefinition).expressionSequence->at(0)->instanceOf(FunctionExpression) || $a.map->cast(@FunctionDefinition).expressionSequence->at(0)->instanceOf(InstanceValue), + |let inScopeVarsWithPlaceholdersState = $a.map->cast(@FunctionDefinition)->addPlaceHoldersForLambdaOpenVariables($vars, $state); + processTdsLambda($a.map->cast(@FunctionDefinition).expressionSequence->at(0)->evaluateAndDeactivate(), $select.columns->filter(c|!$c->instanceOf(WindowColumn))->cast(@Alias),!$noSubSelect, $vars, $inScopeVarsWithPlaceholdersState, $currentPropertyMapping, $context);, |[] ); ^Alias(name='"'+$a.name+'"', relationalElement=$aggFn->processAggFn($params)->at(0)); ); let existingPaths = $select.paths; - let pathInfos = $expression->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->cast(@String)->map(n|$existingPaths->filter(p|$p.first == $n)) - ->concatenate($aggVS->map(a| let pureType = $a.aggregateFn->functionReturnType().rawType->toOne(); + let pathInfos = $expression->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->match( + [ + s:String[*]|$s, + x:meta::pure::metamodel::relation::ColSpecArray[1]|$x.names + ] + )->map(n|$existingPaths->filter(p|$p.first == $n)) + ->concatenate($aggVS->map(a| let pureType = $a.reduce->functionReturnType().rawType->toOne(); pair($a.name, ^PathInformation(type=$pureType, relationalType= meta::relational::transform::fromPure::pureTypeToDataTypeMap()->get($pureType)));)); if($noSubSelect @@ -4564,21 +4616,19 @@ function <> meta::relational::functions::pureToSqlQuery::process let select = $mainQuery.select->cast(@TdsSelectSqlQuery); let funcParams = $f->genericType().typeArguments.rawType->cast(@FunctionType).parameters->tail(); let updatedState = if(!$vars->keys()->isEmpty(),|updateFunctionParamScope($state, $funcParams->evaluateAndDeactivate(),$operation),|$state); - let cols = $f->instanceValuesAtParameter(1, $vars, $updatedState.inScopeVars)->map(col | - $col->match([ - b:BasicColumnSpecification[1] | $b, - s:SimpleFunctionExpression[1] | $s->reactivate()->cast(@BasicColumnSpecification) - ]) + let newCols = $f->instanceValuesAtParameter(1, $vars, $updatedState.inScopeVars)->map(col | + $col->match([ + b:BasicColumnSpecification[1] | processBasicColumnSpecification($b, $mainQuery, $currentPropertyMapping, $vars, $updatedState, $context), + s:SimpleFunctionExpression[1] | processBasicColumnSpecification($s->reactivate()->cast(@BasicColumnSpecification)->toOne(), $mainQuery, $currentPropertyMapping, $vars, $updatedState, $context), + col : meta::pure::metamodel::relation::FuncColSpec[1] | + let newElement = processTdsLambda($col.function->cast(@FunctionDefinition).expressionSequence->at(0), $mainQuery.select.columns->cast(@Alias), false, $vars, $updatedState, $currentPropertyMapping, $context)->at(0); + let alias = ^Alias(name='"'+$col.name+'"', relationalElement=$newElement); + let path = pair($col.name, ^PathInformation(type=$col.function->functionReturnType().rawType->toOne(), + relationalType = $newElement->getRelationalTypeFromRelationalPropertyMapping())); + pair($alias,$path); + ]) ); - let newCols = $cols->map(cs| - let newElement = processTdsLambda($cs.func->cast(@FunctionDefinition).expressionSequence->at(0), $mainQuery.select.columns->cast(@Alias), false, $vars, $updatedState, $currentPropertyMapping, $context)->at(0); - let alias = ^Alias(name='"'+$cs.name+'"', relationalElement=$newElement); - let path = pair($cs.name, ^PathInformation(type=$cs.func->functionReturnType().rawType->toOne(), - relationalType = $newElement->getRelationalTypeFromRelationalPropertyMapping())); - pair($alias,$path); - ); - ^$mainQuery( select = ^$select( columns = if($includeOriginalColumns, | $mainQuery.select.columns, | [])->concatenate($newCols.first), @@ -4587,6 +4637,17 @@ function <> meta::relational::functions::pureToSqlQuery::process ); } +function <> meta::relational::functions::pureToSqlQuery::processBasicColumnSpecification(cols:BasicColumnSpecification[1], mainQuery:SelectWithCursor[1], currentPropertyMapping:PropertyMapping[*], vars:Map[1], updatedState:State[1], context:DebugContext[1]):Pair>[1] +{ + $cols->map(cs| + let newElement = processTdsLambda($cs.func->cast(@FunctionDefinition).expressionSequence->at(0), $mainQuery.select.columns->cast(@Alias), false, $vars, $updatedState, $currentPropertyMapping, $context)->at(0); + let alias = ^Alias(name='"'+$cs.name+'"', relationalElement=$newElement); + let path = pair($cs.name, ^PathInformation(type=$cs.func->functionReturnType().rawType->toOne(), + relationalType = $newElement->getRelationalTypeFromRelationalPropertyMapping())); + pair($alias,$path); + ); +} + function <> meta::relational::functions::pureToSqlQuery::processTableToTDS(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] { @@ -4625,9 +4686,14 @@ function meta::relational::functions::pureToSqlQuery::processTdsRenameColumns(ex let select = $mainQuery.select->cast(@TdsSelectSqlQuery); let projectColPairNames = $expression->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->match([ - p:Pair[*] | $p, - vss:ValueSpecification[*] | $vss->map(vs|$vs->reprocessVS()->reactivate($state.inScopeVars)->evaluateAndDeactivate()->cast(@Pair)); + c:meta::pure::metamodel::relation::ColSpec[1] |pair ( + $expression->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->cast(@meta::pure::metamodel::relation::ColSpec).name->toOne(), + $expression->instanceValuesAtParameter(2, $vars, $state.inScopeVars)->cast(@meta::pure::metamodel::relation::ColSpec).name->toOne() + ), + p:Pair[*] | $p, + vss:ValueSpecification[*] | $vss->map(vs|$vs->reprocessVS()->reactivate($state.inScopeVars)->evaluateAndDeactivate()->cast(@Pair)); ]); + let projectColNamesMap = $projectColPairNames->map(p|^$p(first = $p.first->addQuotesIfNecessary(), second = $p.second->addQuotesIfNecessary()))->newMap(); let noWrappedProjectColNamesMap = $projectColPairNames->map(p|^$p(first = $p.first->stripMatchingQuotes(), second = $p.second))->newMap(); @@ -4820,6 +4886,16 @@ function <> meta::relational::functions::pureToSqlQuery::process ); } +function meta::relational::functions::pureToSqlQuery::joinKindToType(jk:JoinKind[1]):JoinType[1] +{ + if ([ + pair(|$jk == JoinKind.INNER, |JoinType.INNER)//, + // pair(|$jk == JoinKind.RIGHT_OUTER, |JoinType.RIGHT_OUTER) + ], + |JoinType.LEFT_OUTER + ); +} + function meta::relational::functions::pureToSqlQuery::processTdsJoin(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 swc1 = processValueSpecification($f.parametersValues->at(0), $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor); @@ -4828,12 +4904,13 @@ function meta::relational::functions::pureToSqlQuery::processTdsJoin(f:FunctionE let type = $f->instanceValuesAtParameter(2, $vars, $state.inScopeVars) ->match([ j: JoinType[1] | $j, + k: JoinKind[1] | $k, a: Any[1] | let jt = $a->cast(@FunctionExpression).parametersValues; - extractEnumValue($jt->at(0)->cast(@InstanceValue).values->toOne()->cast(@Enumeration), $jt->at(1)->cast(@InstanceValue).values->cast(@String)->toOne())->cast(@JoinType); + extractEnumValue($jt->at(0)->cast(@InstanceValue).values->toOne()->cast(@Enumeration), $jt->at(1)->cast(@InstanceValue).values->cast(@String)->toOne()); ]); let joinCondition = $f->instanceValuesAtParameter(3, $vars, $state.inScopeVars); - let joinOp = $joinCondition->cast(@FunctionDefinition<{TDSRow[1],TDSRow[1]->Boolean[1]}>); + let joinOp = $joinCondition->cast(@FunctionDefinition); let newOpenVars = $state.inScopeVars->putAll($joinCondition->cast(@meta::pure::metamodel::function::Function)->at(0)->evaluateAndDeactivate()->openVariableValues()); assert($joinOp->cast(@FunctionDefinition).expressionSequence->size() <= 1, 'Lambda with more than one expression are not supported yet'); @@ -4843,7 +4920,6 @@ function meta::relational::functions::pureToSqlQuery::processTdsJoin(f:FunctionE let query1 = if($Q1isVarSetPlaceHolder,| $query1WithFilter.data.alias.relationalElement->cast(@VarSetPlaceHolder)->toOne(),| $query1WithFilter); let leftTableAlias = ^TableAlias(name='"joinleft_"'+$nodeId, relationalElement=$query1); - let leftAliasWithColumns = createAliasWithColumns($query1,'"joinleft_"'+$nodeId); let rightAlias = ^TableAlias(name='"joinright_"'+$nodeId, relationalElement=$query2); let aliases2 = $rightAlias->switchAliasForJoinInput($query2.columns); @@ -4861,7 +4937,7 @@ function meta::relational::functions::pureToSqlQuery::processTdsJoin(f:FunctionE , | $leftTableAlias); let join = ^Join(name='tdsJoin', target=$rightAlias, aliases=[pair($leftAliasForJoinNode,$rightAlias),pair($rightAlias,$leftAliasForJoinNode)],operation=$element_new->cast(@Operation)->toOne()); - let child = ^JoinTreeNode(alias=$rightAlias, join=$join, joinType=$type, database=^Database(), joinName='tdsJoin'); + let child = ^JoinTreeNode(alias=$rightAlias, join=$join, joinType=if($type->instanceOf(JoinType),|$type->cast(@JoinType),|meta::relational::functions::pureToSqlQuery::joinKindToType($type->cast(@JoinKind))), database=^Database(), joinName='tdsJoin'); let root = ^RootJoinTreeNode(alias=$leftAliasForJoinNode, childrenData=$child); let newAlias = ^TableAlias(name = 'tdsJoined_' + $nodeId, relationalElement=^TdsSelectSqlQuery(data=$root, columns=if($Q1isVarSetPlaceHolder,|[],|$leftAliasWithColumns->concatenate($aliases2)))); let newData = ^RootJoinTreeNode(alias = $newAlias); @@ -5155,7 +5231,6 @@ function meta::relational::functions::pureToSqlQuery::findColumnInTdsFromGetter( if($returnColumnName, {| assert($funcName->isEmpty() || !['isNull', 'isNotNull']->contains($funcName->toOne()), | $funcName->makeString() + ' can not be used to return column name'); - $foundColumn->map(c|^ColumnName(name=$c->match([a:Alias[1]|$a.name ,w:WindowColumn[1]| $w.columnName,t:TableAliasColumn[1]| $t.column.name]))); }, {| @@ -5182,27 +5257,39 @@ function meta::relational::functions::pureToSqlQuery::processTdsLambda(mapFn:Val [ r:FunctionRoutedValueSpecification[1]|$r.value->processTdsLambda($a,$returnColumnName, $vars, $state, $currentPropertyMapping, $context), f:FunctionExpression[1]| - let dispatch = [ - pair('getNumber', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getInteger', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getDecimal', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getString', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getFloat', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getDate', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getDateTime', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getStrictDate', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getBoolean', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('getEnum', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('isNull', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), - pair('isNotNull', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)) - ]; - - 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 ($f.func->instanceOf(meta::pure::metamodel::relation::Column), + | let foundColumn = $a->filter(alias| + $alias->match( + [ + al:Alias[1]|$al.name->addQuotesIfNecessary(), + t:TableAliasColumn[1]| $t.column.name->addQuotesIfNecessary(), + w:WindowColumn[1]| $w.columnName->addQuotesIfNecessary() + ] + ) == $f.func.name->toOne()->addQuotesIfNecessary() + ); //TODO: I think this case can be removed - WindowColumn isn't a subtype of Alias? + assertNotEmpty($foundColumn, {|'The column \''+$f.func.name->toOne()+'\' can\'t be found in the TDS ('+$a.name->makeString(',')+')'}); + $foundColumn->map(c|$c->match([ a:Alias[1]| $a.relationalElement,r:RelationalOperationElement[1]|$r]));, + | let dispatch = [ + pair('getNumber', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getInteger', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getDecimal', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getString', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getFloat', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getDate', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getDateTime', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getStrictDate', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getBoolean', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('getEnum', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('isNull', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)), + pair('isNotNull', | findColumnInTdsFromGetter($f, $a,$returnColumnName, $vars, $state)) + ]; + + 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(), @@ -5244,35 +5331,37 @@ function meta::relational::functions::pureToSqlQuery::processTdsLambda(mapFn:Val 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); - }) - ]->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__String_1__String_1__String_1_ - ]->map(func| - ^PureFunctionTDSToRelationalFunctionPair(first = $func, second = {| - ^DynaFunction( - name = 'concat', - parameters =$f.parametersValues->map(p|$p->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)) - ) - }) - ) - ); + let value = $f.parametersValues->at(0)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context); + + 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__String_1__String_1__String_1_ + ]->map(func| + ^PureFunctionTDSToRelationalFunctionPair(first = $func, second = {| + ^DynaFunction( + name = 'concat', + parameters =$f.parametersValues->map(p|$p->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)) + ) + }) + ) + ); - let override = $overrides->filter(o | $o.first == $f.func)->first(); - 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), - | newDynaFunction($f.func.functionName->toOne(), $f.parametersValues->map(p|$p->processTdsLambda($a,$returnColumnName, $vars, $state, $currentPropertyMapping, $context)))));, + let override = $overrides->filter(o | $o.first == $f.func)->first(); + 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), + | newDynaFunction($f.func.functionName->toOne(), $f.parametersValues->map(p|$p->processTdsLambda($a,$returnColumnName, $vars, $state, $currentPropertyMapping, $context)))));, - | fail('function ' + $f.func.name->makeString() + ' is not yet supported'); ^DynaFunction(name='fail'); - ); - ); + | 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), @@ -5444,11 +5533,27 @@ function meta::relational::functions::pureToSqlQuery::processProjectWithColumnSu processProject($filteredFunctionIDPairs.second , $filteredFunctionIDPairs.first, [], $f, $operation, $vars, $state, $nodeId, $aggFromMap, $context,[], $extensions); } +Class meta::relational::functions::pureToSqlQuery::IntermediateColumn +{ + name : String[1]; + func : meta::pure::metamodel::function::Function[1]; + documentation : String[0..1]; +} + function meta::relational::functions::pureToSqlQuery::processProjectColumns(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 columns = $f->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->filter(c|$c->instanceOf(BasicColumnSpecification))->cast(@BasicColumnSpecification); + let columns = $f->instanceValuesAtParameter(1, $vars, $state.inScopeVars) + ->filter(c|$c->instanceOf(BasicColumnSpecification))->cast(@BasicColumnSpecification) + ->map(c|^IntermediateColumn(name=$c.name, func = $c.func, documentation = $c.documentation)); + + let colSpecArray = $f->instanceValuesAtParameter(1, $vars, $state.inScopeVars) + ->filter(c|$c->instanceOf(meta::pure::metamodel::relation::FuncColSpecArray))->cast(@meta::pure::metamodel::relation::FuncColSpecArray<{Nil[1]->Any[*]},Any>); + + let _columns = $columns->concatenate($colSpecArray.names->zip($colSpecArray.functions)->map(c|^IntermediateColumn(name=$c.first, func = $c.second, documentation = ''))); + + let windowColumns = $f->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->filter(c|$c->instanceOf(WindowColumnSpecification))->cast(@WindowColumnSpecification); - processProject($columns.name, $columns.func, $columns->map(c|if($c.documentation->isEmpty(),|'', |$c.documentation)), $f, $operation, $vars, $state, $nodeId, $aggFromMap, $context,$windowColumns, $extensions); + processProject($_columns.name, $_columns.func, $_columns->map(c|if($c.documentation->isEmpty(),|'', |$c.documentation)), $f, $operation, $vars, $state, $nodeId, $aggFromMap, $context,$windowColumns, $extensions); } function meta::relational::functions::pureToSqlQuery::getRootPrimaryKeyCols(source: SelectSQLQuery[1], sourceColumns: RelationalOperationElement[*], state:State[1], expression:FunctionExpression[1]):Pair, RootJoinTreeNode>[1] @@ -7933,7 +8038,6 @@ function meta::relational::functions::pureToSqlQuery::getSupportedFunctions():Ma ^PureFunctionToRelationalFunctionPair(first=meta::pure::tds::tdsContains_T_1__Function_MANY__TabularDataSet_1__Boolean_1_, second = meta::relational::functions::pureToSqlQuery::processTdsContains_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::tds::tdsContains_T_1__Function_MANY__String_MANY__TabularDataSet_1__Function_1__Boolean_1_, second = meta::relational::functions::pureToSqlQuery::processTdsContainsWithLambda_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::tds::extensions::firstNotNull_T_MANY__T_$0_1$_,second=meta::relational::functions::pureToSqlQuery::processFirstNotNull_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::relational::functions::columnProjectionsFromRoot_Any_MANY__NamedRelation_1__String_MANY__Boolean_$0_1$__Integer_$0_1$__RelationData_1_, second = meta::relational::functions::pureToSqlQuery::processColumnProjectionsFromRoot_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::tds::tdsRows_TabularDataSet_1__TDSRow_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::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_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_), @@ -7947,6 +8051,23 @@ function meta::relational::functions::pureToSqlQuery::getSupportedFunctions():Ma ^PureFunctionToRelationalFunctionPair(first=meta::pure::functions::math::percentile_Number_MANY__Float_1__Boolean_1__Boolean_1__Number_$0_1$_, second=meta::relational::functions::pureToSqlQuery::processAggregation_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::collection::isDistinct_T_MANY__Boolean_1_, second=meta::relational::functions::pureToSqlQuery::processAggregation_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::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_) + ^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_), + + ^PureFunctionToRelationalFunctionPair(first=meta::pure::functions::relation::filter_Relation_1__Function_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processTdsFilter_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::relation::distinct_Relation_1__ColSpecArray_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processDistinct_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::relation::concatenate_Relation_1__Relation_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processConcatenate_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::relation::drop_Relation_1__Integer_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processDrop_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::relation::extend_Relation_1__FuncColSpec_1__Relation_1_,second=meta::relational::functions::pureToSqlQuery::processTdsExtend_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::relation::groupBy_Relation_1__ColSpecArray_1__AggColSpec_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processGroupBy_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::relation::join_Relation_1__Relation_1__JoinKind_1__Function_1__Relation_1_,second=meta::relational::functions::pureToSqlQuery::processTdsJoin_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::relation::limit_Relation_1__Integer_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processTake_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::relation::rename_Relation_1__ColSpec_1__ColSpec_1__Relation_1_,second=meta::relational::functions::pureToSqlQuery::processTdsRenameColumns_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::relation::slice_Relation_1__Integer_1__Integer_1__Relation_1_,second=meta::relational::functions::pureToSqlQuery::processSlice_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::relation::sort_Relation_1__SortInfo_MANY__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processTDSSortSortInfo_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::relation::project_C_MANY__FuncColSpecArray_1__Relation_1_, second=meta::relational::functions::pureToSqlQuery::processProjectColumns_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_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/pureToSQLQuery_union.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery_union.pure index 0731717154c..af386cca3e7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery_union.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery_union.pure @@ -199,7 +199,7 @@ function meta::relational::functions::pureToSqlQuery::union::buildUnion(setImpls // 1. buildUnion is called as part of building the target of an association (in which case the 'source' flag is false) // 2. Used in the 'importDataFlow' use case on the source (getAll on the type itself) let avoidModeledProperties = $relationalPropertyMappings->exists(rpm | $rpm->isNullJoinPropertyMapping()); - let targetCols = findFkListForEachSet($propertyMappingsInScope, $state.importDataFlow==true, $state.mapping, $avoidModeledProperties); + let targetCols = findFkListForEachSet($propertyMappingsInScope, $state.importDataFlow==true, $state.mapping->toOne(), $avoidModeledProperties); let missingFks = $targetCols->map(c|list($c.second.values->map(z|pair($z.name+'_'+$targetCols->indexOf($c)->toString(), $z)))); let mappedFkPropertyNames = $targetCols.first.values.first->removeDuplicates(); @@ -359,9 +359,9 @@ function meta::relational::functions::pureToSqlQuery::union::buildSQLQueryOutMan print(if(!$context.debug, |'', | $context.space+'*>Build SQL query out many set implementations (and join) (propertyMappings:'+$relationalPropertyMappings->size()->toString()+'):\n')); let avoidModeledProperties = $relationalPropertyMappings->exists(rpm | $rpm->isNullJoinPropertyMapping()); - let sourceCols = findFkListForEachSet($relationalPropertyMappings, true, $state.mapping, $avoidModeledProperties); + let sourceCols = findFkListForEachSet($relationalPropertyMappings, true, $state.mapping->toOne(), $avoidModeledProperties); let srcMap = $sourceCols->buildColumnToNameMapForMappedFks(); - let targetCols = findFkListForEachSet($relationalPropertyMappings, false, $state.mapping, $avoidModeledProperties); + let targetCols = findFkListForEachSet($relationalPropertyMappings, false, $state.mapping->toOne(), $avoidModeledProperties); let targetMap = $targetCols->buildColumnToNameMapForMappedFks(); let sourceAlias = $srcOperation.currentTreeNode.alias; @@ -420,7 +420,7 @@ function meta::relational::functions::pureToSqlQuery::union::buildSQLQueryOutMan // New Queries let targetSetImplementationIds = $relationalPropertyMappings.targetSetImplementationId->removeDuplicates(); - let targetSetImplementations = $targetSetImplementationIds->map(t|$state.mapping->classMappingById($t)->cast(@RootRelationalInstanceSetImplementation)->toOne()); + let targetSetImplementations = $targetSetImplementationIds->map(t|$state.mapping->toOne()->classMappingById($t)->cast(@RootRelationalInstanceSetImplementation)->toOne()); print(if(!$context.debug, |'', | $context.space+' - sourceSetImplIds: ['+$sourceSetImplementationIds->joinStrings(',')+']\n'+$context.space+' - targetSetImplIds: ['+$targetSetImplementationIds->joinStrings(',')+']\n')); @@ -436,7 +436,7 @@ function meta::relational::functions::pureToSqlQuery::union::buildSQLQueryOutMan let unionTargetAlias = ^TableAlias(name='unionAlias', relationalElement=$newTargetOperation); - let unionJoin = buildUnionJoin($relationalPropertyMappings, $state.mapping, $srcMap, $targetMap, $sourceNode.alias, $unionTargetAlias, $newSourceOperation, $nodeId, $state, $context, $extensions); + let unionJoin = buildUnionJoin($relationalPropertyMappings, $state.mapping->toOne(), $srcMap, $targetMap, $sourceNode.alias, $unionTargetAlias, $newSourceOperation, $nodeId, $state, $context, $extensions); print(if(!$context.debug, |'', | $context.space+' [Merged]: '+$unionJoin.second->printRelationalTreeNode($extensions)+'\n')); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/testFramework.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/testFramework.pure new file mode 100644 index 00000000000..b8654d24130 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/testFramework.pure @@ -0,0 +1,679 @@ +// 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::relational::functions::sqlQueryToString::*; +import meta::relational::metamodel::execute::*; +import meta::relational::metamodel::relation::*; +import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; +import meta::core::runtime::*; +import meta::relational::metamodel::*; +import meta::pure::mapping::*; +import meta::pure::metamodel::relation::*; +import meta::relational::relation::testUtils::*; + +function meta::relational::relation::testUtils::reprocess(f:Function<{->Any[*]}>[1]):PairAny[*]}>,List,RelationStoreAccessor>>>[1] +{ + $f->match( + [ + z:FunctionDefinition<{->Any[*]}>[1]| + println('BEFORE: ' + meta::pure::metamodel::serialization::grammar::printFunctionDefinition($z, '')); + + // Init + let initState = meta::relational::relation::testUtils::initState($z->openVariableValues()); + let db = $initState.database; + let schema = $initState.schema; + let runtime = $initState.runtime; + + // Reprocess the function replacing values with Database elements + let reprocessed = $z.expressionSequence->evaluateAndDeactivate()->map(z|$z->reprocess($initState)); + + // Add 'from' + let returnGenericType = $z.expressionSequence->evaluateAndDeactivate()->last().genericType->toOne(); + let returnMultiplicity = $z.expressionSequence->evaluateAndDeactivate()->last().multiplicity->toOne(); + let result = pair( + ^$z + ( + expressionSequence = ^SimpleFunctionExpression + ( + importGroup=system::imports::coreImport, + func = if($reprocessed.mapping->isEmpty(),|from_T_m__Runtime_1__T_m_,|from_T_m__Mapping_1__Runtime_1__T_m_), + functionName = 'from', + genericType = $returnGenericType, + multiplicity = $returnMultiplicity, + parametersValues = + $reprocessed.current->toOne()->cast(@ValueSpecification) + ->concatenate(if ($reprocessed.mapping->isEmpty(), + |[], + |^InstanceValue + ( + genericType = ^GenericType(rawType=Mapping), + multiplicity = PureOne, + values = $reprocessed.mapping + ) + )) + ->concatenate(^InstanceValue + ( + genericType = ^GenericType(rawType=Runtime), + multiplicity = PureOne, + values = $runtime + ) + ) + , + resolvedMultiplicityParameters = $returnMultiplicity, + resolvedTypeParameters = $returnGenericType + ) + ), + list($reprocessed.replaced) + ); + + println('AFTER: ' + meta::pure::metamodel::serialization::grammar::printFunctionDefinition($result.first, '') + '\n'); + + // Update the database + let setUpSQLs = $reprocessed.csvs->joinStrings('\n-\n')->meta::alloy::service::execution::setUpDataSQLs($reprocessed.database->toOne()); + //println($setUpSQLs); + + // Count is here to ensure lazy execution is actually flushing... + $setUpSQLs->map(sql | executeInDb($sql, $reprocessed.runtime.connectionStores.connection->toOne()->cast(@TestDatabaseConnection)))->count(); + + $result; + ] + ); +} + +Class meta::relational::relation::testUtils::ProcessingState +{ + database : Database[1]; + schema : Schema[1]; + tables : Table[*]; + runtime : Runtime[1]; + mapping : Mapping[0..1]; + current : Any[0..1]; + replaced : Pair, RelationStoreAccessor>[*]; + openVars : Map[0..1]; + csvs : String[*]; +} + +function meta::relational::relation::testUtils::merge(s1:ProcessingState[1], s2:ProcessingState[1]):ProcessingState[1] +{ + ^$s1 + ( + tables += $s2.tables, + mapping += $s2.mapping, + replaced += $s2.replaced, + csvs += $s2.csvs, + openVars = if($s1.openVars->isEmpty(),|$s1.openVars,|$s2.openVars) + ); +} + +function meta::relational::relation::testUtils::initState(openVars:Map[0..1]):ProcessingState[1] +{ + let db = ^Database + ( + name = 'MyDatabase', + package = meta::relational::relation::testUtils + ); + + let schema = ^Schema + ( + name='default', + database = $db + ); + + $db->mutateAdd('schemas', $schema); + + ^ProcessingState + ( + database = $db, + schema = $schema, + openVars = $openVars, + runtime = ^Runtime + ( + connectionStores=^ConnectionStore + ( + connection=^TestDatabaseConnection + ( + type = DatabaseType.H2, + timeZone = 'GMT' + ), + element = $db + ) + ) + ); +} + + +###Pure +import meta::relational::metamodel::execute::*; +import meta::relational::functions::database::*; +import meta::external::store::relational::runtime::*; +import meta::pure::mapping::*; +import meta::core::runtime::*; +import meta::relational::metamodel::relation::*; +import meta::relational::metamodel::*; +import meta::pure::metamodel::relation::*; +import meta::relational::relation::testUtils::*; + +function meta::relational::relation::testUtils::reprocess(a:Any[1], state:ProcessingState[1]):ProcessingState[1] +{ + $a->match( + [ + z:FunctionExpression[1]| if($z.func == new_Class_1__String_1__KeyExpression_MANY__T_1_, + | meta::relational::relation::testUtils::reprocessNew($z->reactivate()->evaluateAndDeactivate(), $z.genericType.rawType->toOne()->cast(@Class), $state);, + | let repro = $z.parametersValues->evaluateAndDeactivate()->map(x|$x->reprocess($state)); + ^$state + ( + current = ^$z(parametersValues = $repro.current->cast(@ValueSpecification))->evaluateAndDeactivate(), + mapping = $repro.mapping->first(), + replaced = $repro.replaced, + tables = $repro.tables, + csvs = $repro.csvs + ); + );, + ix:InstanceValue[1]| + let i = $ix->evaluateAndDeactivate(); + let type = $i.genericType.rawType->toOne(); + if ($type->instanceOf(Class) && $type != LambdaFunction && $type != TDS && $type != Enumeration && $type != SortInfo, + | + let values = $i.values->map( + x|$x->match([ + v:ValueSpecification[1]|$v->reactivate()->evaluateAndDeactivate(), + a:Any[1]|$a + ] + ) + ); + meta::relational::relation::testUtils::reprocessNew($values, $type->cast(@Class), $state);, + | + let repro = $i.values->map(x|$x->reprocess($state)); + ^$state + ( + current = ^$i + ( + genericType = if($repro.current->genericType()->isEmpty(),|$i.genericType, |$repro.current->genericType()->first()->toOne()), + values = $repro.current + ), + mapping = $repro.mapping->first(), + replaced = $repro.replaced, + tables = $repro.tables, + csvs = $repro.csvs + ); + );, + z:LambdaFunction[1] | let repro = $z.expressionSequence->evaluateAndDeactivate()->map(z|$z->reprocess($state)); + ^$state + ( + current=^$z(expressionSequence = $repro.current->cast(@ValueSpecification)->toOneMany()), + mapping = $repro.mapping->first(), + replaced=$repro.replaced, + tables = $repro.tables, + csvs = $repro.csvs + );, + v:VariableExpression[1] | let openVar = $state.openVars->toOne()->get($v.name); + if ($openVar->isEmpty(), + |^$state + ( + current = $v + ), + |reprocess(^InstanceValue + ( + genericType = $openVar->toOne()->cast(@List).values->at(0)->genericType()->toOne(), + multiplicity = PureOne, + values = $openVar->toOne()->cast(@List).values + ), $state) + );, + x:TDS[1] | processTDS($x, $state), + e:Enumeration[1] | ^$state + ( + current = $e + );, + r:Integer[1] | ^$state + ( + current = $r + );, + s:String[1] | ^$state + ( + current = $s + ); + ] + ); +} + +function meta::relational::relation::testUtils::reprocessNew(values:Any[*], type:Class[1], state:ProcessingState[1]):ProcessingState[1] +{ + let newState = $state->merge(classesToDatabase($values, $state)); + ^$newState + ( + current = ^SimpleFunctionExpression + ( + importGroup=system::imports::coreImport, + func = getAll_Class_1__T_MANY_, + functionName = 'getAll', + genericType = ^GenericType(rawType=$type), + multiplicity = ZeroMany, + parametersValues = [ + ^InstanceValue + ( + genericType = ^GenericType(rawType=$type), + multiplicity = PureOne, + values = [] + ) + ] + )->evaluateAndDeactivate() + ); +} + +function meta::relational::relation::testUtils::processTDS(tds:TDS[1], state:ProcessingState[1]):ProcessingState[1] +{ + let map = meta::relational::transform::fromPure::pureTypeToDataTypeMap(); + let table = ^Table + ( + name = 'tb' + now()->toEpochValue(DurationUnit.MILLISECONDS)->toString(), + columns = $tds->columns()->map(c| + ^meta::relational::metamodel::Column( + name=$c.name->toOne(), + type=$map->meta::pure::functions::collection::get($c->genericType().typeArguments->at(1).rawType->toOne())->toOne() + ) + ), + schema = $state.schema + ); + + $state.schema->mutateAdd('tables', $table); + + let relAccessor = ^RelationDatabaseAccessor + ( + store = $state.database, + database = $state.database, + relation = $table + ); + + // Create CSV out of TDS data + let cols = $tds->columns(); + let csv = $state.schema.name+'\n' + + $relAccessor.relation.name + '\n' + + $cols->map(x|$x.name)->joinStrings(',' ) + '\n' + + $tds->map(x|$cols->map(c|$c->eval($x)->toOne()->toString())->joinStrings(',')) + ->joinStrings('\n'); + + ^$state + ( + current = $relAccessor, + replaced = pair($tds, $relAccessor), + tables += $table, + csvs += $csv + ); +} + + + + +function meta::relational::relation::testUtils::testTDSDatabaseRun(f:Function<{->Any[*]}>[1]):Any[*] +{ + // //For debug + // meta::pure::executionPlan::executionPlan($f->meta::relational::relation::testUtils::reprocess().first, ^meta::pure::runtime::ExecutionContext(), meta::relational::extension::relationalExtensions(), debug()); + // []; + + let x = meta::legend::executeLegendQuery($f->meta::relational::relation::testUtils::reprocess().first, [], ^meta::pure::runtime::ExecutionContext(), meta::relational::extension::relationalExtensions()); + let res = $x->meta::json::fromJSON(meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::RelationalTDSResult, ^meta::json::ExtendedJSONDeserializationConfig(typeKeyName='__TYPE', failOnUnknownProperties=true, nullReplacementInArray=TDSNull)); + let tdsString = $res.result.columns->joinStrings(',') + '\n' + + $res.result.rows->map(x| + range($x.values->size())->map(z | if($x.values->at($z) == TDSNull, + |let type = $res.builder->cast(@meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::TDSBuilder).columns->at($z).type; + if ([ + pair(|$type == 'Integer', |-2147483648), + pair(|$type == 'String', |'null') + ], + |fail();0; + );, + |$x.values->at($z) + ) + )->makeString(',') + )->joinStrings('\n'); + //println($tdsString); + $tdsString->stringToTDS(); +} + + + + + + + + + + + +###Pure +import meta::relational::metamodel::execute::*; +import meta::relational::functions::database::*; +import meta::external::store::relational::runtime::*; +import meta::relational::relation::testUtils::tests::*; +import meta::relational::relation::testUtils::*; +import meta::relational::metamodel::*; +import meta::relational::metamodel::relation::*; +import meta::relational::metamodel::join::*; +import meta::relational::mapping::*; +import meta::pure::mapping::*; + + + +function meta::relational::relation::testUtils::classesToDatabase(values:Any[*], givenState:ProcessingState[0..1]):ProcessingState[1] +{ + let _state = if ($givenState->isEmpty(),|initState([]),|$givenState)->toOne(); + let state = ^$_state( + mapping = ^Mapping + ( + name = 'myMapping' + ) + ); + + if (!$values->isEmpty(), + | // Scan types + let rootType = $values->genericType().rawType->first()->toOne()->cast(@Class); + let allClasses = scanClass($rootType); + + // Build schema + let tables = $allClasses->map(c|$c->classToTable($state.schema, $state.mapping->toOne())); + let joins = $allClasses->map(c|$c->buildJoins($tables, $state.database)); + $state.schema->mutateAdd('tables', $tables.table); + $state.database->mutateAdd('joins', $joins.join); + + buildCSV($values, $rootType, [], 1, $tables); + let csvs = $tables->map(k|$k.csv->joinStrings('\n')); + $state.mapping->toOne()->mutateAdd('classMappings', $tables.classMapping); + + let runtime = $state.runtime; + let mapping = $state.mapping->toOne(); + + ^$state + ( + csvs += $csvs + );, + | $state + ); + +} + +function meta::relational::relation::testUtils::buildCSV(values:Any[*], class:Class[1], property:Property[0..1], parentId:Integer[1], maps:ClassTableMapping[*]):ClassTableMapping[*] +{ + let info = $maps->filter(c|$c.class == $class)->toOne(); + let header = $info.table.schema.name->toOne()+'\n'+ + $info.table.name+'\n'+ + $info.table.columns->cast(@Column).name->joinStrings(','); + let rows = $values->map + ( + v | let id = $values->indexOf($v) + $parentId*10; + + let r = $id + ->concatenate($info.properties->map(p | $p->eval($v))) + ->concatenate($info.parentProperties->map(p | if($p == $property,|$parentId,|'-1'))) + ->makeString(','); + + let props = $class.properties->filter(p|!$p->isPrimitiveValueProperty()); + $props->map(p| + let vals = $p->eval($v); + buildCSV($vals, $p->functionReturnType().rawType->toOne()->cast(@Class), $p, $id, $maps); + ); + + $r; + + )->joinStrings('\n'); + + $info->mutateAdd('csv', if($info.csv->isEmpty(), + |$header+'\n'+$rows, + |$rows + )); + + $maps; +} + +Class meta::relational::relation::testUtils::ClassTableMapping +{ + class : Class[1]; + table : Table[1]; + properties : Property[*]; + parentProperties : Property[*]; + classMapping: RootRelationalInstanceSetImplementation[1]; + csv : String[*]; +} + +Class meta::relational::relation::testUtils::PropertyColumnMapping +{ + property : Property[1]; + column : Column[1]; +} + +function meta::relational::relation::testUtils::classToTable(class:Class[1], schema:Schema[1], mapping:Mapping[1]):ClassTableMapping[1] +{ + let map = meta::relational::transform::fromPure::pureTypeToDataTypeMap(); + let properties = $class.properties->filter(p|$p->isPrimitiveValueProperty()); + let cols = $properties->map(p|^PropertyColumnMapping(property=$p, column=^Column(name=$p.name->toOne(), type=$map->get($p->functionReturnType().rawType->toOne())->toOne()))); + let idCol = ^Column(name='_pureId', type=^meta::relational::metamodel::datatype::Integer()); + let table = ^Table(name=$class.name->toOne(), schema=$schema, primaryKey=$idCol, columns=$idCol->concatenate($cols.column)); + let tableAlias = ^TableAlias(name=$table.name, relationalElement = $table); + + + let set = ^RootRelationalInstanceSetImplementation + ( + id = $class.name->toOne(), + root = true, + userDefinedPrimaryKey = true, + primaryKey = ^TableAliasColumn(alias=$tableAlias, column=$idCol), + parent = $mapping, + class = $class, + mainTableAlias = $tableAlias + ); + + let pmappings = $cols->map(c | + ^RelationalPropertyMapping + ( + property = $c.property, + sourceSetImplementationId = $class.name->toOne(), + targetSetImplementationId = '', + owner = $set, + relationalOperationElement = ^TableAliasColumn + ( + columnName = $c.column.name, + alias = $tableAlias, + column = $c.column + ) + ) + + ); + + $set->mutateAdd('propertyMappings', $pmappings); + + ^ClassTableMapping + ( + class = $class, + table = $table, + properties = $properties, + classMapping = $set + ); +} + +Class meta::relational::relation::testUtils::JoinRes +{ + join : Join[1]; + property : Property[1]; + fk : Column[1]; + propertyMapping : RelationalPropertyMapping[1]; +} + +function meta::relational::relation::testUtils::buildJoins(class:Class[1], classTableMappings:ClassTableMapping[*], db:Database[1]):meta::relational::relation::testUtils::JoinRes[*] +{ + let src = $classTableMappings->filter(ctm|$ctm.class == $class)->toOne(); + let cols = $class.properties + ->filter(p|!$p->isPrimitiveValueProperty()) + ->map(p| + let targetType = $p->functionReturnType().rawType->toOne(); + let target = $classTableMappings->filter(ctm|$ctm.class == $targetType)->toOne(); + let srcColumn = $src.table.columns->cast(@Column)->filter(c|$c.name == '_pureId')->toOne(); + let fkColumn = ^Column(name='_'+$class.name->toOne()+'_'+$p.name->toOne(), type=^meta::relational::metamodel::datatype::Integer()); + let targetTable = $target.table; + $targetTable->mutateAdd('columns', $fkColumn); + let srcAlias = ^TableAlias(name='src', relationalElement=$src.table); + let targetAlias = ^TableAlias(name=$targetTable.name, relationalElement=$targetTable); + let join = ^Join + ( + name = $class.name->toOne() + '_' + $p.name->toOne(), + aliases = [pair($srcAlias,$targetAlias),pair($targetAlias,$srcAlias)], + operation = ^DynaFunction + ( + name = 'equal', + parameters = [ + ^TableAliasColumn(alias=$srcAlias, column=$srcColumn), + ^TableAliasColumn(alias=$targetAlias, column=$fkColumn) + ] + ) + ); + $target->mutateAdd('parentProperties', $p); + let res = ^JoinRes + ( + join = $join, + property = $p, + fk = $fkColumn, + propertyMapping = ^RelationalPropertyMapping + ( + property = $p, + sourceSetImplementationId = $class.name->toOne(), + targetSetImplementationId = $targetType.name->toOne(), + relationalOperationElement = ^RelationalOperationElementWithJoin + ( + joinTreeNode = ^JoinTreeNode + ( + joinName = $join.name, + database = $db, + alias = $srcAlias, + join = $join + ) + ) + ) + ); + $res.propertyMapping->mutateAdd('owner', $src.classMapping); + $res; + ); + $src.classMapping->mutateAdd('propertyMappings', $cols.propertyMapping); + $cols; +} + + + +function meta::relational::relation::testUtils::scanClass(a:Class[1]):Class[*] +{ + $a->scanClass([])->removeDuplicates(); +} + +function meta::relational::relation::testUtils::scanClass(a:Class[1], visited:Class[*]):Class[*] +{ + let newVisited = $visited->concatenate($a); + if ($a->in($visited), + |[], + | $a + ->concatenate( + $a.properties->map(p|$p.genericType.rawType)->filter(c|$c->instanceOf(Class))->cast(@Class)->map(x|$x->scanClass($newVisited)) + )->concatenate( + $a.generalizations.general.rawType->filter(x|$x != Any && $x->instanceOf(Class))->cast(@Class)->map(x|$x->scanClass($newVisited)) + ) + ); +} + + + + + + + + + + + + + +###Pure +import meta::relational::mapping::*; +import meta::relational::relation::testUtils::tests::*; + +Class meta::relational::relation::testUtils::tests::Firm +{ + legalName : String[1]; + employees : Person[*]; + address : Address[1]; +} + +Class meta::relational::relation::testUtils::tests::Person +{ + firstName : String[0..1]; + lastName : String[1]; + addresses : Address[*]; +} + +Class meta::relational::relation::testUtils::tests::Address +{ + zip : Integer[1]; +} + +function <> meta::relational::relation::testUtils::tests::testClassToDB():Boolean[1] +{ + let res = meta::relational::relation::testUtils::classesToDatabase( + ^Firm + ( + legalName = 'Goldman', + employees = [ + ^Person + ( + firstName = 'john', + lastName = 'doe', + addresses = [^Address(zip=1), ^Address(zip=2)] + ), + ^Person + ( + firstName = 'billy', + lastName = 'bob', + addresses = [^Address(zip=3), ^Address(zip=4)] + ) + ], + address = ^Address + ( + zip = 1999 + ) + ),[] + ); + + assertEquals([ + 'Firm', + 'Person', + 'Address' + ], $res.schema.tables.name); + + assertEquals([ + 'Firm_employees', + 'Firm_address', + 'Person_addresses' + ], $res.database.joins.name); + + assertEquals([ + 'Firm', + 'Person', + 'Address' + ], $res.mapping.classMappings.class.name); + + assertEquals([ + 'legalName', + 'employees', + 'address', + 'firstName', + 'lastName', + 'addresses', + 'zip' + ], $res.mapping.classMappings->cast(@RootRelationalInstanceSetImplementation).propertyMappings.property.name); +} \ 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/relation/tests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/tests.pure new file mode 100644 index 00000000000..34444b45d46 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relation/tests.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. + +function <> meta::relational::relation::executeDatabaseTests():Boolean[1] +{ + meta::pure::functions::relation::tests::executeTests(meta::relational::relation::testUtils::testTDSDatabaseRun_Function_1__Any_MANY_); +} + +function meta::relational::relation::executeSingleTest():Boolean[1] +{ + meta::pure::functions::relation::tests::filter::testSimpleFilterShared(meta::relational::relation::testUtils::testTDSDatabaseRun_Function_1__Any_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/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 7a5946aed86..f1090cdb1c9 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 @@ -43,12 +43,12 @@ import meta::relational::milestoning::*; import meta::pure::router::routing::*; import meta::pure::router::store::metamodel::*; -function meta::relational::mapping::generateExecutionNodeForPostProcessedResult(postProcessorResult:PostProcessorResult[1], sq:meta::pure::mapping::StoreQuery[1], store:Database[1], ext:RoutedValueSpecification[0..1], m:Mapping[1], runtime:Runtime[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], extensions:Extension[*]):ExecutionNode[1] +function meta::relational::mapping::generateExecutionNodeForPostProcessedResult(postProcessorResult:PostProcessorResult[1], sq:meta::pure::mapping::StoreQuery[1], store:Database[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], extensions:Extension[*]):ExecutionNode[1] { generateExecutionNodeForPostProcessedResult($postProcessorResult, $sq, $store, $ext, $m, $runtime, $exeCtx, $debug, true, $extensions) } -function meta::relational::mapping::generateExecutionNodeForPostProcessedResult(postProcessorResult:PostProcessorResult[1], sq:meta::pure::mapping::StoreQuery[1], store:Database[1], ext:RoutedValueSpecification[0..1], m:Mapping[1], runtime:Runtime[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], wrapInInstantiationNode: Boolean[1], extensions:Extension[*]):ExecutionNode[1] +function meta::relational::mapping::generateExecutionNodeForPostProcessedResult(postProcessorResult:PostProcessorResult[1], sq:meta::pure::mapping::StoreQuery[1], store:Database[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[1], exeCtx:ExecutionContext[1], debug:DebugContext[1], wrapInInstantiationNode: Boolean[1], extensions:Extension[*]):ExecutionNode[1] { let sqlNode = generateSQLExecutionNode($postProcessorResult.query, $runtime->toOne()->connectionByElement($store)->cast(@DatabaseConnection), addEnumMapSupportFunctions($sq, $m), $extensions); let relationalNode = if($wrapInInstantiationNode, | generateInstantiationExecutionNode($sq, $ext, $postProcessorResult.query, $sqlNode, $m,$exeCtx), | $sqlNode); @@ -61,45 +61,65 @@ function meta::relational::mapping::generateExecutionNodeForPostProcessedResult( ); } -function meta::relational::mapping::generateInstantiationExecutionNode(sq:meta::pure::mapping::StoreQuery[1], ext:RoutedValueSpecification[0..1], query:SQLQuery[1], node:ExecutionNode[1], m:Mapping[1],exeCtx:ExecutionContext[1]):ExecutionNode[1] +function meta::relational::mapping::generateInstantiationExecutionNode(sq:meta::pure::mapping::StoreQuery[1], ext:RoutedValueSpecification[0..1], query:SQLQuery[1], node:ExecutionNode[1], m:Mapping[0..1],exeCtx:ExecutionContext[1]):ExecutionNode[1] { let possibleClass = $sq.fe.genericType.rawType->toOne(); let class = if ($possibleClass == Any, | let getAllClass = findMainClassInGetAllExpression($sq.fe); if($getAllClass->isEmpty(), | $possibleClass, | $getAllClass);, | $possibleClass ); - let resultType = if($class->_subTypeOf(TabularDataSet), - |let paths = $query->cast(@TdsSelectSqlQuery).paths; - ^TDSResultType - ( - type = $class, - tdsColumns = $paths->map(p| - ^TDSColumn - ( - name = $p.first, - type = $p.second.type->cast(@meta::pure::metamodel::type::DataType), - documentation = $p.second.documentation, - enumMappingId = if($exeCtx->contextHasFlag(meta::pure::executionPlan::features::Feature.PUSH_DOWN_ENUM_TRANSFORM),|[] ,| $p.second.propertyMapping->match([r:RelationalPropertyMapping[0..1] | $r.transformer->cast(@EnumerationMapping).name, p:PropertyMapping[0..1] | []])), - offset = $paths->indexOf($p), - sourceDataType = if($p.second.relationalType->isNotEmpty(), - | $p.second.relationalType, - | $p.second.propertyMapping->match([ - rpm: RelationalPropertyMapping[0..1] | $rpm->getRelationalTypeFromRelationalPropertyMapping($p.first), - cpm: meta::pure::router::clustering::CrossSetImplementationPrimtivePropertyMapping[0..1] | $cpm.sourcePropertyMapping->match([rpm: RelationalPropertyMapping[0..1] | $rpm->getRelationalTypeFromRelationalPropertyMapping($p.first), pm: PropertyMapping[0..1] | []]), - pm: PropertyMapping[0..1] | [] - ])) - ); - ) - );, - | if($class->_subTypeOf(RelationData), - | let relationDataQuery = $query->cast(@RelationDataSelectSqlQuery); - ^RelationResultType + let resultType = if([ + pair( + |$class->_subTypeOf(TabularDataSet), + |let paths = $query->cast(@TdsSelectSqlQuery).paths; + ^TDSResultType ( - relationName = $relationDataQuery.relation.name, - relationType = $relationDataQuery.relation->instanceOf(View)->if(|RelationType.VIEW,|RelationType.TABLE), - schemaName = $relationDataQuery.relation->match([t:Table[1]|$t.schema,v:View[1]|$v.schema])->cast(@Schema).name, - database = $relationDataQuery.relation->match([t:Table[1]|$t.schema,v:View[1]|$v.schema])->cast(@Schema).database->elementToPath(), - columns = $relationDataQuery.columns->cast(@Alias)->map(x | ^Column(name = $x.name, type=$x.relationalElement->cast(@TableAliasColumn).column.type)), - type = $class - );, - | $class->match([ + type = $class, + tdsColumns = $paths->map(p| + ^TDSColumn + ( + name = $p.first, + type = $p.second.type->cast(@meta::pure::metamodel::type::DataType), + documentation = $p.second.documentation, + enumMappingId = if($exeCtx->contextHasFlag(meta::pure::executionPlan::features::Feature.PUSH_DOWN_ENUM_TRANSFORM),|[] ,| $p.second.propertyMapping->match([r:RelationalPropertyMapping[0..1] | $r.transformer->cast(@EnumerationMapping).name, p:PropertyMapping[0..1] | []])), + offset = $paths->indexOf($p), + sourceDataType = if($p.second.relationalType->isNotEmpty(), + | $p.second.relationalType, + | $p.second.propertyMapping->match([ + rpm: RelationalPropertyMapping[0..1] | $rpm->getRelationalTypeFromRelationalPropertyMapping($p.first), + cpm: meta::pure::router::clustering::CrossSetImplementationPrimtivePropertyMapping[0..1] | $cpm.sourcePropertyMapping->match([rpm: RelationalPropertyMapping[0..1] | $rpm->getRelationalTypeFromRelationalPropertyMapping($p.first), pm: PropertyMapping[0..1] | []]), + pm: PropertyMapping[0..1] | [] + ])) + ); + ) + ); + ), + pair( + |$class->_subTypeOf(meta::pure::metamodel::relation::Relation), + |^TDSResultType + ( + type = $class, + tdsColumns = $sq.fe.genericType.typeArguments->at(0).rawType->cast(@meta::pure::metamodel::relation::RelationType).columns->map(p| + ^TDSColumn + ( + name = $p.name->toOne(), + type = $p.classifierGenericType.typeArguments->at(1).rawType->cast(@meta::pure::metamodel::type::DataType) + ); + ) + ); + ), + pair( + |$class->_subTypeOf(RelationData), + | let relationDataQuery = $query->cast(@RelationDataSelectSqlQuery); + ^RelationResultType + ( + relationName = $relationDataQuery.relation.name, + relationType = $relationDataQuery.relation->instanceOf(View)->if(|RelationType.VIEW,|RelationType.TABLE), + schemaName = $relationDataQuery.relation->match([t:Table[1]|$t.schema,v:View[1]|$v.schema])->cast(@Schema).name, + database = $relationDataQuery.relation->match([t:Table[1]|$t.schema,v:View[1]|$v.schema])->cast(@Schema).database->elementToPath(), + columns = $relationDataQuery.columns->cast(@Alias)->map(x | ^Column(name = $x.name, type=$x.relationalElement->cast(@TableAliasColumn).column.type)), + type = $class + ); + ) + ], + |$class->match([ e : Enumeration[1] | ^DataTypeResultType(type=$class), p : PrimitiveType[1] | ^DataTypeResultType(type=$class), c : Class[1] | ^ClassResultType @@ -110,8 +130,12 @@ function meta::relational::mapping::generateInstantiationExecutionNode(sq:meta:: | $ext->cast(@StoreMappingRoutedValueSpecification).sets->at(0) )->resolveOperation($m->toOne()) ) - ]); - ) + ]) + + + + + ); $resultType->match([ @@ -175,11 +199,11 @@ function <> meta::relational::mapping::getRelationalTypeFromRela ])->cast(@meta::relational::metamodel::datatype::DataType); } -function meta::relational::mapping::addEnumMapSupportFunctions(sq:meta::pure::mapping::StoreQuery[1], m:Mapping[1]):String[*] +function meta::relational::mapping::addEnumMapSupportFunctions(sq:meta::pure::mapping::StoreQuery[1], m:Mapping[0..1]):String[*] { let enumParam = $sq.inScopeVars->keyValues().second->map(p | $p.values)->filter(e | $e->instanceOf(PlanVarPlaceHolder))->map(p | $p->cast(@PlanVarPlaceHolder).type)->filter(e | $e->instanceOf(Enumeration)); let enumMapTemplateFunctions = if($enumParam->isNotEmpty(), - |$m->allEnumerationMappings()->filter(e | $e.enumeration->in($enumParam))->map(enum | let concatStr = if($enum.enumValueMappings->at(0).sourceValues->type() == String, |'\'', |''); + |$m->toOne()->allEnumerationMappings()->filter(e | $e.enumeration->in($enumParam))->map(enum | let concatStr = if($enum.enumValueMappings->at(0).sourceValues->type() == String, |'\'', |''); let enumHashMap = $enum.enumValueMappings->map(e | '"'+ $e.enum->cast(@Enum).name +'":"'+ $concatStr + $e.sourceValues->makeString('\', \'') + $concatStr + '"')->makeString(', '); '<#function enumMap_' + fetchEnumFullPath($enum) + ' inputVal> <#assign enumMap = {'->concatenate($enumHashMap)->concatenate('}> <#if inputVal?has_content> <#return enumMap[inputVal]> <#else> <#return ""> ')->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/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 0919bc98857..3b473e2c34b 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 @@ -45,7 +45,7 @@ function <> meta::relational::tests::advanced::contractmoneyscenario: ), ContractMoney, testRuntime(), meta::relational::extension::relationalExtensions()); 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 = \'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() ); @@ -69,8 +69,8 @@ function <> meta::relational::tests::advanced::contractmoneyscenario: ), ContractMoney, testRuntime(), meta::relational::extension::relationalExtensions()); 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))', + '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() ); } 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-test/legend-engine-xt-relationalStore-test-mutation/pom.xml similarity index 98% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml index 8a7d2c51586..eba48c0f33b 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-test/legend-engine-xt-relationalStore-test-mutation/pom.xml @@ -18,14 +18,14 @@ org.finos.legend.engine - legend-engine-xt-relationalStore-execution + legend-engine-xt-relationalStore-test 4.36.1-SNAPSHOT 4.0.0 - legend-engine-xt-relationalStore-mutation-executionPlan-test + legend-engine-xt-relationalStore-test-mutation jar - Legend Engine - XT - Relational Store - Mutation - Execution Plan Test + Legend Engine - XT - Relational Store - Test - Mutation diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/java/org/finos/legend/pure/code/core/CoreRelationalMutationExecutionTestCodeRepositoryProvider.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/java/org/finos/legend/pure/code/core/CoreRelationalMutationExecutionTestCodeRepositoryProvider.java similarity index 100% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/java/org/finos/legend/pure/code/core/CoreRelationalMutationExecutionTestCodeRepositoryProvider.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/java/org/finos/legend/pure/code/core/CoreRelationalMutationExecutionTestCodeRepositoryProvider.java diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider similarity index 100% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider 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.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/resources/core_relational_mutation_execution_test.definition.json similarity index 100% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/core_relational_mutation_execution_test.definition.json rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/resources/core_relational_mutation_execution_test.definition.json 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-test/legend-engine-xt-relationalStore-test-mutation/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure similarity index 100% rename from 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 rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/mutation/test/TestRelationalMutationExecutionPlan.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/mutation/TestRelationalMutationExecutionPlan.java similarity index 99% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/mutation/test/TestRelationalMutationExecutionPlan.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/mutation/TestRelationalMutationExecutionPlan.java index 2ca867c8b28..1a8bf24952d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/mutation/test/TestRelationalMutationExecutionPlan.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/mutation/TestRelationalMutationExecutionPlan.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.plan.execution.stores.relational.mutation.test; +package org.finos.legend.engine.plan.execution.stores.relational.test.mutation; import junit.framework.TestSuite; import org.finos.legend.pure.m3.execution.test.PureTestBuilder; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml new file mode 100644 index 00000000000..ee6018b8beb --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml @@ -0,0 +1,109 @@ + + + + + + org.finos.legend.engine + legend-engine-xt-relationalStore-test + 4.36.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-relationalStore-test-relation + jar + Legend Engine - XT - Relational Store - Test - Relation + + + + + junit + junit + test + + + org.finos.legend.pure + legend-pure-m4 + test + + + org.finos.legend.pure + legend-pure-m3-core + test + + + org.finos.legend.pure + legend-pure-runtime-java-engine-compiled + test + + + org.finos.legend.engine + legend-engine-shared-core + test + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + test + + + org.finos.legend.engine + legend-engine-pure-platform-dsl-tds-java + test + + + org.finos.legend.engine + legend-engine-pure-platform-functions-relation-java + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-javaPlatformBinding-pure + test + + + org.finos.legend.engine + legend-engine-pure-runtime-execution + test + + + org.finos.legend.engine + legend-engine-pure-runtime-extensions + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + test + + + org.finos.legend.engine + legend-engine-test-framework + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-executionPlan + test + + + org.eclipse.collections + eclipse-collections-api + test + + + + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/relation/TestRelationalRelationExecutionPlan.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/relation/TestRelationalRelationExecutionPlan.java new file mode 100644 index 00000000000..866b4a8bc77 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/relation/TestRelationalRelationExecutionPlan.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.plan.execution.stores.relational.test.relation; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.engine.plan.execution.stores.relational.test.H2TestServerResource; +import org.finos.legend.engine.shared.core.port.DynamicPortGenerator; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; + +import static org.finos.legend.engine.test.shared.framework.PureTestHelperFramework.*; + +public class TestRelationalRelationExecutionPlan extends TestSuite +{ + public static Test suite() + { + System.setProperty("legend.test.h2.port", String.valueOf(DynamicPortGenerator.generatePort())); + + System.out.println(System.getProperty("legend.test.h2.port")); + + return wrapSuite( + () -> true, + () -> + { + CompiledExecutionSupport executionSupport = getClassLoaderExecutionSupport(true); + TestSuite suite = new TestSuite(); + suite.addTest(buildSuite(TestCollection.collectTests("meta::relational::relation", executionSupport.getProcessorSupport(), ci -> satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport)); + return suite; + }, + () -> false, + Lists.mutable.with(new H2TestServerResource()) + ); + } +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml new file mode 100644 index 00000000000..c4aabc9e264 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml @@ -0,0 +1,33 @@ + + + + + org.finos.legend.engine + legend-engine-xts-relationalStore + 4.36.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-relationalStore-test + pom + Legend Engine - XT - Relational Store - Test + + + legend-engine-xt-relationalStore-test-mutation + legend-engine-xt-relationalStore-test-relation + + \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index c4e8bd32279..4d755959c9e 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -34,5 +34,6 @@ legend-engine-xt-relationalStore-dbExtension legend-engine-xt-relationalStore-execution legend-engine-xt-relationalStore-generation + legend-engine-xt-relationalStore-test \ No newline at end of file diff --git a/pom.xml b/pom.xml index 5a8514bda04..41dd456d352 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ - 4.10.2 + 5.0.0 0.24.1 @@ -818,6 +818,11 @@ legend-engine-pure-runtime-execution ${project.version} + + org.finos.legend.engine + legend-engine-pure-platform-functions-relation-java + ${project.version} + org.finos.legend.engine legend-engine-xt-relationalStore-executionPlan-connection @@ -1892,6 +1897,11 @@ legend-engine-testable ${project.version} + + org.finos.legend.engine + legend-engine-test-framework + ${project.version} + org.finos.legend.engine legend-engine-test-data-generation @@ -1917,6 +1927,11 @@ legend-engine-pure-platform-dsl-path-java ${project.version} + + org.finos.legend.engine + legend-engine-pure-platform-dsl-tds-java + ${project.version} + org.finos.legend.engine legend-engine-pure-platform-dsl-mapping-java @@ -2284,6 +2299,26 @@ legend-pure-m2-dsl-diagram-grammar ${legend.pure.version} + + org.finos.legend.pure + legend-pure-m2-dsl-tds-pure + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-m2-dsl-tds-grammar + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-m2-functions-relation-pure + ${legend.pure.version} + + + org.finos.legend.pure + legend-pure-runtime-java-extension-functions-relation + ${legend.pure.version} + org.finos.legend.pure legend-pure-m2-dsl-mapping-grammar @@ -2309,6 +2344,11 @@ legend-pure-runtime-java-extension-dsl-path ${legend.pure.version} + + org.finos.legend.pure + legend-pure-runtime-java-extension-dsl-tds + ${legend.pure.version} + org.finos.legend.pure legend-pure-m2-dsl-graph-pure From f9c57e80c82fd6eb98250d395d60dd57357c77e3 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 20 Dec 2023 01:57:53 +0000 Subject: [PATCH 40/54] [maven-release-plugin] prepare release legend-engine-4.37.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 +- .../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-framework/pom.xml | 2 +- .../legend-engine-test-runner-function/pom.xml | 6 ++---- .../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-dsl-tds-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../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-quality-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-quality/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 +- .../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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/pom.xml | 2 +- .../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 +- .../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-deployment/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-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 +- .../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-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 +- .../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 +- .../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 +- .../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 +- .../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 +- .../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-xt-relationalStore-test-mutation/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-relation/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test/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-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-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-xt-text-compiler/pom.xml | 2 +- .../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 ++-- 401 files changed, 405 insertions(+), 407 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 6be03f03352..f936b74cb7b 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.36.1-SNAPSHOT + 4.37.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 6c4ffa616af..bd0227e9b39 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.36.1-SNAPSHOT + 4.37.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 538b7f26c5c..b83f3d4fafc 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.36.1-SNAPSHOT + 4.37.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 4e05d690684..b9ccfc61eeb 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.36.1-SNAPSHOT + 4.37.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 3f62ffa54a3..587b9257150 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.36.1-SNAPSHOT + 4.37.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 21be8593a77..7e97cd94481 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.36.1-SNAPSHOT + 4.37.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 9a4b8f45c36..4005bcceed4 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.36.1-SNAPSHOT + 4.37.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 469ca72f4ed..69e0894ab3c 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.36.1-SNAPSHOT + 4.37.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 738c7d3200d..d1c8fbe98b8 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.36.1-SNAPSHOT + 4.37.0 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 4183eb0a421..2c4f54b9440 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.1-SNAPSHOT + 4.37.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 13753269581..c0641f400eb 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.36.1-SNAPSHOT + 4.37.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 1f6064b3306..75f2f4ca2b3 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.36.1-SNAPSHOT + 4.37.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 66429b40f8f..2f614a6d74f 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.36.1-SNAPSHOT + 4.37.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 7ea9036129d..4721bf98e24 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.36.1-SNAPSHOT + 4.37.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 c41f16668d3..392650b5066 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.36.1-SNAPSHOT + 4.37.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 29a02df5704..f467386d6d0 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.36.1-SNAPSHOT + 4.37.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 7e9d85cb711..786a3fb769b 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.36.1-SNAPSHOT + 4.37.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 db2edc0de29..132de0b0ac9 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.36.1-SNAPSHOT + 4.37.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 9199b9d3c4e..14bfa8e0d42 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.36.1-SNAPSHOT + 4.37.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 d701b0087f1..ce1f373b15b 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.36.1-SNAPSHOT + 4.37.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 3d8948da689..072e7696e52 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.36.1-SNAPSHOT + 4.37.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 cec746cfad8..fe246c82206 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.36.1-SNAPSHOT + 4.37.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 d46518956da..4cb25f5c251 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.36.1-SNAPSHOT + 4.37.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 4e50e627e2c..bf5afe41324 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.36.1-SNAPSHOT + 4.37.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 2b3acefeb8f..ca6897a4978 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.36.1-SNAPSHOT + 4.37.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 2d0a8c7a62a..c3659cb5e8a 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.36.1-SNAPSHOT + 4.37.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 3971a0560dc..4c40c3bfb41 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.36.1-SNAPSHOT + 4.37.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 077a166015c..cbbf1348a73 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.36.1-SNAPSHOT + 4.37.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 0558e39110a..0b19b5e1b2c 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.36.1-SNAPSHOT + 4.37.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 d05cd6cd7cb..69c2451b33c 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.36.1-SNAPSHOT + 4.37.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 f9b45a459ec..4bd14efd68b 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.36.1-SNAPSHOT + 4.37.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 612bd7e4d11..fba6f8557ce 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.36.1-SNAPSHOT + 4.37.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 3fa8bbdec57..1b3ceb93dc3 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.36.1-SNAPSHOT + 4.37.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 ddda7246c70..80ac59e2774 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.36.1-SNAPSHOT + 4.37.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 fc9acf5d3c6..6f5f8775168 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.36.1-SNAPSHOT + 4.37.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 a9461602e64..979c647e005 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.36.1-SNAPSHOT + 4.37.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 6e089c02aa8..d5eb6f781f6 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.36.1-SNAPSHOT + 4.37.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 4d60d72635c..27aff2c5dc1 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml index 17ac62c1cba..1310bdcf1ea 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 legend-engine-test-framework diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml index d3c0ea726fb..bdf317c5661 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml @@ -15,13 +15,11 @@ limitations under the License. --> - + org.finos.legend.engine legend-engine-core-test - 4.36.1-SNAPSHOT + 4.37.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 712ed11da4f..ba67717b4be 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.36.1-SNAPSHOT + 4.37.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 abf9d780280..306623ae30d 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.36.1-SNAPSHOT + 4.37.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 46523787365..d7aaff7f1e3 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.36.1-SNAPSHOT + 4.37.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 eec0548e038..72a4dfec0b0 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.36.1-SNAPSHOT + 4.37.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 93b1d94a344..87bc5e5329a 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 8bdeb564ea1..0b2fe3831be 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.1-SNAPSHOT + 4.37.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 5fb90c64a51..b46e2526be1 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.36.1-SNAPSHOT + 4.37.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 9b26c605f7c..64650c677d6 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.36.1-SNAPSHOT + 4.37.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 661fb7933fc..6ee7400d4df 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.36.1-SNAPSHOT + 4.37.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 5cfd9b4b282..68332565536 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.36.1-SNAPSHOT + 4.37.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 b4aef78c402..4d5d90e04cc 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.36.1-SNAPSHOT + 4.37.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 c2768c2b7d9..7b159001417 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.36.1-SNAPSHOT + 4.37.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 6d408a3e438..6304806b4c7 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.36.1-SNAPSHOT + 4.37.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 5b58fd84f16..f6378ad91cc 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.36.1-SNAPSHOT + 4.37.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 ab720c92ee5..70ab4ee3c2a 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.36.1-SNAPSHOT + 4.37.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 93d279a3082..b8dc70ef311 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.36.1-SNAPSHOT + 4.37.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 7bc911eaacd..4abdbdc0d6a 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.36.1-SNAPSHOT + 4.37.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 bb1146d5f3b..0a009d7f872 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.36.1-SNAPSHOT + 4.37.0 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml index 9a02a0a74f1..833276702e0 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.36.1-SNAPSHOT + 4.37.0 legend-engine-pure-platform-dsl-tds-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 807939a187c..677b6812f43 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.36.1-SNAPSHOT + 4.37.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 f975c1e6ef8..7e96f3b9cd9 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.36.1-SNAPSHOT + 4.37.0 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml index 58925ab2b41..6db6ffe52ce 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.36.1-SNAPSHOT + 4.37.0 legend-engine-pure-platform-functions-relation-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 e6ae4cf21d8..a966a213a82 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.36.1-SNAPSHOT + 4.37.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 af6f851bd76..6bc183c87d8 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.36.1-SNAPSHOT + 4.37.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 d8b83ae0a63..de35d0400e8 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.36.1-SNAPSHOT + 4.37.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 9ba2140d065..5a595d2d05e 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.36.1-SNAPSHOT + 4.37.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 b0f94730199..e6022cc96a1 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.36.1-SNAPSHOT + 4.37.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 5fa73a7a53b..00c8fa19757 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.36.1-SNAPSHOT + 4.37.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 25688ecae3a..c6b20fad164 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.36.1-SNAPSHOT + 4.37.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 06e9ab6661d..effae8c189b 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 280532e5ec4..70e35083a30 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.1-SNAPSHOT + 4.37.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 74add035f34..2671a49e78a 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.36.1-SNAPSHOT + 4.37.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 cce2eeb6c61..e74ef81d7f1 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.36.1-SNAPSHOT + 4.37.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 6e3d80f2f8b..0ff3dd4cfe2 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.36.1-SNAPSHOT + 4.37.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 25f1bb7bc8a..b761997bcd5 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.36.1-SNAPSHOT + 4.37.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 ad513cf3e0f..84103bf4a28 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.36.1-SNAPSHOT + 4.37.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 7f707b178ec..3dfd0e80d83 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.36.1-SNAPSHOT + 4.37.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 930eac71423..8c0d8fff7c6 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.36.1-SNAPSHOT + 4.37.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 4e02707eb62..4a9bdd091f5 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.36.1-SNAPSHOT + 4.37.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 20277d0d9b7..f68c39e63d6 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.36.1-SNAPSHOT + 4.37.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 5430641e8f5..abda767cdd5 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.36.1-SNAPSHOT + 4.37.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 027a172a8d4..d047d2a4f40 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.36.1-SNAPSHOT + 4.37.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 a7036d20f45..de66832767b 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.36.1-SNAPSHOT + 4.37.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 3d481cf7716..6b3d6a372ef 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.36.1-SNAPSHOT + 4.37.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 2e9dcd08f1b..f996e961aa1 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.36.1-SNAPSHOT + 4.37.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 89866d559a7..0c52165480b 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.36.1-SNAPSHOT + 4.37.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 cdc099711bf..a3aa6dd382d 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml index 13dabfc8060..adda9f007ec 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-quality org.finos.legend.engine - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml index 54fe006dfdb..28440e7f879 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -2,7 +2,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.36.1-SNAPSHOT + 4.37.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 93fb54fe229..6b030e6e88d 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.36.1-SNAPSHOT + 4.37.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 94d00a42721..7edaade315f 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.36.1-SNAPSHOT + 4.37.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 10ff4120730..a1dbf990291 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.36.1-SNAPSHOT + 4.37.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 47bb4fc7420..002f7c44697 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.36.1-SNAPSHOT + 4.37.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 285086132d9..9bab390bbbe 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.36.1-SNAPSHOT + 4.37.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 ddd646f6d2c..4eb1e09b4ed 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index a4180352b8e..d2622c4e142 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.36.1-SNAPSHOT + 4.37.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 fbc3b734985..ed3ba67bb12 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.36.1-SNAPSHOT + 4.37.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 a9f7f539130..c30c308c4ba 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 229d910181a..297f3e688ea 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.36.1-SNAPSHOT + 4.37.0 legend-engine-xts-arrow 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 645345baf6d..9d50929de95 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.36.1-SNAPSHOT + 4.37.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 67adb109c73..35125cc9c1a 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.36.1-SNAPSHOT + 4.37.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 2d90ef4ce4b..0b99af232b3 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.36.1-SNAPSHOT + 4.37.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 d56883ca617..b9814a47220 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.36.1-SNAPSHOT + 4.37.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 44a4a172279..5f28e0bd10b 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.36.1-SNAPSHOT + 4.37.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 99fa6d5871c..83dab359197 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index e25fe1b800f..8b9ca7e26d4 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.36.1-SNAPSHOT + 4.37.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 0f017674fe7..f087739fa09 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.36.1-SNAPSHOT + 4.37.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 7750682c367..bf84bf840ae 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 7e5d4f08153..f49de5b43e8 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.36.1-SNAPSHOT + 4.37.0 4.0.0 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 440011cc1c0..7b974016c92 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 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 index 131610fc2d4..590acfd6a0d 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 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 index 99312cc3591..ea40ed53458 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 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 index 8daa8d8fc1b..3e7f9953908 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 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 index 48d6eeb9ace..32dce8d8172 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 11c84297e1d..35f3a73c4eb 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.1-SNAPSHOT + 4.37.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 a003d4d62c6..f5012322019 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.36.1-SNAPSHOT + 4.37.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 bbb3b13a3ba..da88b6d666b 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 18452feb657..3e482fba892 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index ab01d5977f2..aca131fc122 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 974029d04b5..357636467e6 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index b0be48ed5f9..5fd993f00ed 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index bd06a567078..cb25a7345e4 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index 28ab16e360e..c79a3ddadbd 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index a01b8ad9b15..d2cdad51a7b 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.36.1-SNAPSHOT + 4.37.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 43b373c2a85..de7085906bd 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.36.1-SNAPSHOT + 4.37.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 a152c506dd7..bd3da05d52d 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.36.1-SNAPSHOT + 4.37.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 e6c9da3688f..6362fd2d3a9 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 69a9be38dff..72a28d19579 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.36.1-SNAPSHOT + 4.37.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 8922cd29be0..a95efb239de 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 48fe3494cfa..8a544eb3c9b 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.36.1-SNAPSHOT + 4.37.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 8cf6bb14bd9..fbbd68d8c19 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.36.1-SNAPSHOT + 4.37.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 01b73d0b568..d0b961af3fe 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.36.1-SNAPSHOT + 4.37.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 f1b587611cc..a95167aa586 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.36.1-SNAPSHOT + 4.37.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 989c1846f33..a372390e174 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.36.1-SNAPSHOT + 4.37.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 188684b9d37..bd7a5e854d5 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.36.1-SNAPSHOT + 4.37.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 676d2765697..46ac2cf107a 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.36.1-SNAPSHOT + 4.37.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 747fcf4a66b..5d35ce78258 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index cf145800580..7ebdb65f37d 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.36.1-SNAPSHOT + 4.37.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 f89a1528be5..386d2b9ed2f 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.36.1-SNAPSHOT + 4.37.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 2064b9732fd..e1915689d92 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.36.1-SNAPSHOT + 4.37.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 848ca31f81c..914ece7ead0 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.36.1-SNAPSHOT + 4.37.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 054d7dfaa0c..d8afff7cbc9 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.36.1-SNAPSHOT + 4.37.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 93c5623d4ab..42469ca82a9 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.36.1-SNAPSHOT + 4.37.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 025baf8ccba..1ee262ac9fd 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 9b4cb7a1b98..a1465ead351 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.36.1-SNAPSHOT + 4.37.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 a597551fe4a..0afce345a6c 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.36.1-SNAPSHOT + 4.37.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 66f6ec91fe7..111c110c892 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.36.1-SNAPSHOT + 4.37.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 28daa62c845..56a4371b75e 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.36.1-SNAPSHOT + 4.37.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 91422be6bee..451e4deb909 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.36.1-SNAPSHOT + 4.37.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 f4c04eaa817..fe19de02a36 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.36.1-SNAPSHOT + 4.37.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 8638af852c4..b4ec86d6a66 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.36.1-SNAPSHOT + 4.37.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 cf9eb87f8ff..6a3a76ba954 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 1fc490950c7..1c86ab41ac2 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.36.1-SNAPSHOT + 4.37.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 f38c8352e12..1a80a8c16b3 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.36.1-SNAPSHOT + 4.37.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 a19a2be672a..2a903d15919 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.36.1-SNAPSHOT + 4.37.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 6c085fced95..53cbb626230 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.36.1-SNAPSHOT + 4.37.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 536cadc0fea..c9292baa70f 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.36.1-SNAPSHOT + 4.37.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 5af45949901..70457a42905 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.36.1-SNAPSHOT + 4.37.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 c378229ba71..9261cc1206a 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.36.1-SNAPSHOT + 4.37.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 6970af1e461..f3b3f08a61b 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 7c358e57d65..86ccbabcd30 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.36.1-SNAPSHOT + 4.37.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 6ed8dae0cdf..8d90a0b2b27 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.36.1-SNAPSHOT + 4.37.0 4.0.0 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 index c27f849ec4d..eebccbef031 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.36.1-SNAPSHOT + 4.37.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 fee864ca587..559ed21b082 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.36.1-SNAPSHOT + 4.37.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 f929ec206d4..fd55c977c05 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index ab684d7dc79..9de435bc027 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.36.1-SNAPSHOT + 4.37.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 0ccdaad62b7..9f109330854 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.36.1-SNAPSHOT + 4.37.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 1184cada142..eecffc21420 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.36.1-SNAPSHOT + 4.37.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 98f9983ec72..07d1e1941b0 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.36.1-SNAPSHOT + 4.37.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 0c2c058a48f..ad9d9d0249a 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 947b35d941c..728c1e228ce 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.36.1-SNAPSHOT + 4.37.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 30261b9c13e..c2e009c5fc7 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.36.1-SNAPSHOT + 4.37.0 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.36.1-SNAPSHOT + 4.37.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 1b4d5ed905d..cbb79015fed 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.36.1-SNAPSHOT + 4.37.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 789f179c996..bf1394047aa 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.36.1-SNAPSHOT + 4.37.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 bcb6c8c7afc..82d45d9da2a 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.36.1-SNAPSHOT + 4.37.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 76df6154c12..6b67765c27b 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.36.1-SNAPSHOT + 4.37.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 ce92fcda0c9..ef4e0b3ad62 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.36.1-SNAPSHOT + 4.37.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 dc60e2632e7..1217d128d27 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.36.1-SNAPSHOT + 4.37.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 be6779a33e7..9e153b3a58a 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 2ffc839746b..8c33e518373 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.36.1-SNAPSHOT + 4.37.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 c4383cfed09..d03356bc4e8 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.36.1-SNAPSHOT + 4.37.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 fc57fec843b..16aea64b482 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.36.1-SNAPSHOT + 4.37.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 6ff2f51a45d..3a08e0845c3 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 34bf851b1bc..129cd645db0 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.36.1-SNAPSHOT + 4.37.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 b7549138005..4a483e463b9 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.36.1-SNAPSHOT + 4.37.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 5c7156cb281..062187cbb33 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.36.1-SNAPSHOT + 4.37.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 697b2aec647..a1e1efba8d0 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.36.1-SNAPSHOT + 4.37.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 93510400e0f..c943b6525bc 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.36.1-SNAPSHOT + 4.37.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 50bed2fd2f4..b2e8b13feea 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.36.1-SNAPSHOT + 4.37.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 2c00d5af9b3..aaf0ceb92cf 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index b48d7524311..baf4e0bda6c 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.36.1-SNAPSHOT + 4.37.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 c3651ef42c2..25d9efbd478 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.36.1-SNAPSHOT + 4.37.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 88da492ea4c..9e9c381cdc8 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 5b32da9c6e8..bdd0c81c468 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.36.1-SNAPSHOT + 4.37.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 3719021f22a..2b5c7c0f8b7 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.36.1-SNAPSHOT + 4.37.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 d45119b7eec..2787dd2ba73 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.36.1-SNAPSHOT + 4.37.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 895de697649..1b1b43d00c7 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.36.1-SNAPSHOT + 4.37.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 aa8fd951303..7a18b4f61f1 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index f6add66ec5e..775abe650f4 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.36.1-SNAPSHOT + 4.37.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 718b377e04c..4d19c404631 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.36.1-SNAPSHOT + 4.37.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 f8944236508..df21866119f 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.36.1-SNAPSHOT + 4.37.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 847e25a1ed3..5cedf346a2f 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.36.1-SNAPSHOT + 4.37.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 6ee35ad2808..f22d9452713 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.36.1-SNAPSHOT + 4.37.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 9924ae4006e..ec165c80955 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.36.1-SNAPSHOT + 4.37.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 571b7bf9466..979a787ab70 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index dee7bd2d3a2..7c687709e9c 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.36.1-SNAPSHOT + 4.37.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 a2592e7ad41..d7ba213a9ef 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.36.1-SNAPSHOT + 4.37.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 a7fc808a308..5e832b7d434 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.36.1-SNAPSHOT + 4.37.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 c29c206cae6..c0a93d6c149 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 47b96793031..90a8023e4e4 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.36.1-SNAPSHOT + 4.37.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 192ae85d19c..167518cc603 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.36.1-SNAPSHOT + 4.37.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 bf8f15cbbc9..4e00b9850fd 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.36.1-SNAPSHOT + 4.37.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 394ab55366c..fbfc504509d 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.36.1-SNAPSHOT + 4.37.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 7a209735452..c3c9433ad05 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.36.1-SNAPSHOT + 4.37.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 a4fd021a652..1bf663b0b25 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.36.1-SNAPSHOT + 4.37.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 5976dfb749d..638e64d88f9 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.36.1-SNAPSHOT + 4.37.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 893080545c9..5a282bbae32 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.36.1-SNAPSHOT + 4.37.0 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 728b366dde9..e5e3ba6632f 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.36.1-SNAPSHOT + 4.37.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 9152aaddaf1..bd9c35ab528 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.36.1-SNAPSHOT + 4.37.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 da71fc770db..771ae1d7f4e 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 02cf812a232..efcab5e6b6d 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.36.1-SNAPSHOT + 4.37.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 acd4f98180e..3f7f277d71f 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.36.1-SNAPSHOT + 4.37.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 25afe7c31a8..47e4cf7875d 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.36.1-SNAPSHOT + 4.37.0 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 589f62796f3..b218ef2ac52 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.36.1-SNAPSHOT + 4.37.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 210ae6c886e..13d04fd3c9d 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.36.1-SNAPSHOT + 4.37.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 e47fe984c5c..371875bfbf5 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.36.1-SNAPSHOT + 4.37.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 32cf1cb319a..894323b6ea2 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.36.1-SNAPSHOT + 4.37.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 e9a6e707ba9..9cca24915a5 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.36.1-SNAPSHOT + 4.37.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 bde9b420c60..dd0e82283ff 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.36.1-SNAPSHOT + 4.37.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 6cb62f1b320..fe5681a9799 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.36.1-SNAPSHOT + 4.37.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 e5a47ba73c9..622b4ed999c 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.36.1-SNAPSHOT + 4.37.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 c2b5601da59..020487ddb49 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.36.1-SNAPSHOT + 4.37.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 4d932250384..6b4373c90e8 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.36.1-SNAPSHOT + 4.37.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 18f55eff360..161148675c5 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.36.1-SNAPSHOT + 4.37.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 396dc94601b..72281b2d77f 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.36.1-SNAPSHOT + 4.37.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 45093f8c462..de8fd5e2853 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.36.1-SNAPSHOT + 4.37.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 5e858406090..619d9161d0f 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.36.1-SNAPSHOT + 4.37.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 b29a8ddb3d1..1e7ad4b7cbf 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.36.1-SNAPSHOT + 4.37.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 181a51dd868..2365317bd88 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.36.1-SNAPSHOT + 4.37.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 4824cdfe411..c3442bce9cd 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.36.1-SNAPSHOT + 4.37.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 6f4e0f2633a..79e043efd5f 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.36.1-SNAPSHOT + 4.37.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 93957aa1b1b..1ab3549a250 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.36.1-SNAPSHOT + 4.37.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 37179ba4c26..f45aa000417 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.36.1-SNAPSHOT + 4.37.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 754531970ff..6c06390efe5 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.36.1-SNAPSHOT + 4.37.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 91b9d656f3f..38cde7ce63c 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index b5ae1ec8604..efd644b92aa 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.36.1-SNAPSHOT + 4.37.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 11b3c51fe86..807af8c2aab 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.36.1-SNAPSHOT + 4.37.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 8f1cd648bfd..0567fd47933 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.36.1-SNAPSHOT + 4.37.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 2de913ede19..3f403fe7de5 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.36.1-SNAPSHOT + 4.37.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 65b40477b6b..3c296ba1efb 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.36.1-SNAPSHOT + 4.37.0 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.36.1-SNAPSHOT + 4.37.0 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 95039d36bf3..8a43e2fa241 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.36.1-SNAPSHOT + 4.37.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 6cf0e9a24f2..dba40e29186 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.36.1-SNAPSHOT + 4.37.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 14265262f5f..20832f7c9ce 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.36.1-SNAPSHOT + 4.37.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 8baab7371b4..39aa12c3d2f 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.36.1-SNAPSHOT + 4.37.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 0b113ac4bc7..0cb913e5493 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.36.1-SNAPSHOT + 4.37.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 23afcece354..f36f5db168f 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.36.1-SNAPSHOT + 4.37.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 04be3efa44a..597312fc9e6 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.36.1-SNAPSHOT + 4.37.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 8f7526eef77..c2521a2a186 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.36.1-SNAPSHOT + 4.37.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 9d9dde5a1dc..334d22976d9 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.36.1-SNAPSHOT + 4.37.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 4d0c1dfb538..6816d17f6fc 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.36.1-SNAPSHOT + 4.37.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 102a4404384..2b8812f48b9 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.36.1-SNAPSHOT + 4.37.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 658857d9e58..a0c145b2fe4 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.36.1-SNAPSHOT + 4.37.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 db2a72be503..14b0c81b323 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.36.1-SNAPSHOT + 4.37.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 c4f8e39a52e..1f575c34ac3 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.36.1-SNAPSHOT + 4.37.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 44b060cbb95..21893b9eb7b 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.36.1-SNAPSHOT + 4.37.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 70929f85d27..11ea8a3da19 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.36.1-SNAPSHOT + 4.37.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 0b4b62a0610..0d28d263de6 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.36.1-SNAPSHOT + 4.37.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 0c5d4afd652..ec88c390693 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.36.1-SNAPSHOT + 4.37.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 07d35890a24..db5221ea7c9 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.36.1-SNAPSHOT + 4.37.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 3dff6f659ef..ff70efac0e3 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.36.1-SNAPSHOT + 4.37.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 11acde88567..9d935b99370 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.36.1-SNAPSHOT + 4.37.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 a5c97e2b36b..ff5776c8930 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.36.1-SNAPSHOT + 4.37.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 0fdf66ce53f..d05d5e46a6b 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.36.1-SNAPSHOT + 4.37.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 09ac5f7f29c..224991c7995 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.36.1-SNAPSHOT + 4.37.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 ca8606d78cd..501c91d0aae 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.36.1-SNAPSHOT + 4.37.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 9134896c3a2..3aeb41fa09a 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.36.1-SNAPSHOT + 4.37.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 64c6e19a045..b07e452fa20 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.36.1-SNAPSHOT + 4.37.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 4658eb3282d..b5f27794720 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.36.1-SNAPSHOT + 4.37.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 c199be851b5..f062d70f0e0 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.36.1-SNAPSHOT + 4.37.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 c614d98c52b..803ff0deb14 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.36.1-SNAPSHOT + 4.37.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 358982159cb..ab471e94ab7 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.36.1-SNAPSHOT + 4.37.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 376b502d660..233ab75e246 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.36.1-SNAPSHOT + 4.37.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 5c1399f8144..439a7acfcc2 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.36.1-SNAPSHOT + 4.37.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 c61e464e575..af9ee255c69 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.36.1-SNAPSHOT + 4.37.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 ea8e8de144f..bcc33cfc477 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.36.1-SNAPSHOT + 4.37.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 7be890d0128..5af861225c8 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.36.1-SNAPSHOT + 4.37.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 1bca2134250..52ef25f0912 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.36.1-SNAPSHOT + 4.37.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 6717c5e698a..e7ac677f63a 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.36.1-SNAPSHOT + 4.37.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 9deae754300..69fbdea4d72 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.36.1-SNAPSHOT + 4.37.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 776ed70ecc9..c69a8563327 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.36.1-SNAPSHOT + 4.37.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 17f889bd794..0dba98315f2 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.36.1-SNAPSHOT + 4.37.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 f73500ec728..817f4e65bc6 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.36.1-SNAPSHOT + 4.37.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 3d0a1fb5f1a..5ac5b057bc5 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.36.1-SNAPSHOT + 4.37.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 23f4392d73b..2fab66aebd6 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.36.1-SNAPSHOT + 4.37.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 2c2b8e089b1..19cc1e5e9f3 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.36.1-SNAPSHOT + 4.37.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 da12e92909a..d70934a3273 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.36.1-SNAPSHOT + 4.37.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 8b9698ba9ed..6a442919df4 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.36.1-SNAPSHOT + 4.37.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 afcad665ce5..077945acbab 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.36.1-SNAPSHOT + 4.37.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 3d263fe304d..cda8dc65656 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.36.1-SNAPSHOT + 4.37.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 8eb0c072a4d..fb73bb74392 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.36.1-SNAPSHOT + 4.37.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 070153b6e9e..b6a44d7bea7 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.36.1-SNAPSHOT + 4.37.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 cb37faf139a..7dfa22dca94 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.36.1-SNAPSHOT + 4.37.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 6d67a603352..bbf1d20b2cd 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.36.1-SNAPSHOT + 4.37.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 2f5be67fe5c..604656dd06c 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.36.1-SNAPSHOT + 4.37.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 3c94e9f83f4..0a8ce2598d2 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.36.1-SNAPSHOT + 4.37.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 ccdda2dc424..982fa9fef7a 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.36.1-SNAPSHOT + 4.37.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 d02fc7b0d9e..f244983dbd5 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.36.1-SNAPSHOT + 4.37.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 ac77b29c2d1..36fbe2d3272 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.36.1-SNAPSHOT + 4.37.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 dce3ee9758c..daabc86f540 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.36.1-SNAPSHOT + 4.37.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 74a972d387f..8e540f85d3a 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.36.1-SNAPSHOT + 4.37.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 52be1c4f760..c79b44dc1a5 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.36.1-SNAPSHOT + 4.37.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 598354ba647..293f6fed580 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.36.1-SNAPSHOT + 4.37.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 e4310dbb852..b920f0fe58f 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.36.1-SNAPSHOT + 4.37.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 9081c0ecba9..362da124ef1 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.36.1-SNAPSHOT + 4.37.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 e7931969e42..7291f6d807f 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.36.1-SNAPSHOT + 4.37.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 e0e32dbdd40..e83232c00d1 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.36.1-SNAPSHOT + 4.37.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 357229806f6..217a59ac772 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.36.1-SNAPSHOT + 4.37.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 2e8ff65f60a..458e66aa8d0 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.36.1-SNAPSHOT + 4.37.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 e7dd5d729f5..30bed6bcf84 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.36.1-SNAPSHOT + 4.37.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 604b04ff8fd..ad16bc0584a 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.36.1-SNAPSHOT + 4.37.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 051de941ed1..dd1c03aed13 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.36.1-SNAPSHOT + 4.37.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 8de778778da..a2188995021 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.36.1-SNAPSHOT + 4.37.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 c07a1032436..2a8967298f7 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.36.1-SNAPSHOT + 4.37.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 3965c022808..da6addf317e 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.36.1-SNAPSHOT + 4.37.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 03535226b64..18556e2347a 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.36.1-SNAPSHOT + 4.37.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 9636d03ad36..bd3f6208dfc 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.36.1-SNAPSHOT + 4.37.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 dff41682dbc..36a2a588fba 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.36.1-SNAPSHOT + 4.37.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 aababb93ff8..b32ec55f399 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.36.1-SNAPSHOT + 4.37.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 c8cc9f5f873..1144059143e 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.36.1-SNAPSHOT + 4.37.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 9118bdade2d..a37d6323d2f 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.36.1-SNAPSHOT + 4.37.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 d0990d367c9..4d0dd64ee27 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.36.1-SNAPSHOT + 4.37.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 2cace3512fa..16d43453982 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.36.1-SNAPSHOT + 4.37.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 ba0fce7ab6f..854bbeb996c 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.36.1-SNAPSHOT + 4.37.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 70b1b9541e7..80f87dbf25b 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.36.1-SNAPSHOT + 4.37.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 60c174b4bc5..bb52601b672 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.36.1-SNAPSHOT + 4.37.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 be1410a968d..84fcc2bd544 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.36.1-SNAPSHOT + 4.37.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 b72718e69f9..fea3ad49dad 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.36.1-SNAPSHOT + 4.37.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 74f66dbc878..6073938340b 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.36.1-SNAPSHOT + 4.37.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 b7122d1ea0f..e7dd3eb1fc1 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.36.1-SNAPSHOT + 4.37.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 3c62dcf1488..7894c58fdef 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.36.1-SNAPSHOT + 4.37.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 f584c0edd04..cc6838c9674 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.36.1-SNAPSHOT + 4.37.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 9bcec73ab58..88559ef1816 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.36.1-SNAPSHOT + 4.37.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 7966af4a26a..c4793ac18fa 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.36.1-SNAPSHOT + 4.37.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 b5f9084fa13..a282db6f82a 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml index eba48c0f33b..13485516c77 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-test - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml index ee6018b8beb..8240c280735 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-test - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml index c4aabc9e264..5b40f66f41f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 4d755959c9e..d745f499a89 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.36.1-SNAPSHOT + 4.37.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 03e6032fb8b..642bbaa1e97 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 48ee1a8c5af..0d116566c78 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.36.1-SNAPSHOT + 4.37.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 663afef42b4..2c8ea1ee2c2 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.36.1-SNAPSHOT + 4.37.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 a33ea6900a4..b9e7aa81b89 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index ea0a9613115..b2030a9be64 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.36.1-SNAPSHOT + 4.37.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 4a32debdc91..c78b8f8bf29 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.36.1-SNAPSHOT + 4.37.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 44ec9f230d2..fcd1014fb8d 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.36.1-SNAPSHOT + 4.37.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 d1209c0e03d..eac7e868144 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.36.1-SNAPSHOT + 4.37.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 83103ceede1..83b03cee84e 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.36.1-SNAPSHOT + 4.37.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 01bfe002d1b..91814ce454a 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.36.1-SNAPSHOT + 4.37.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 a4c771e4ae5..8ae82b714c8 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.36.1-SNAPSHOT + 4.37.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 08fec1c79c5..20cc9754b42 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.36.1-SNAPSHOT + 4.37.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 a029e78827a..8454d1eb816 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 4cccc75501f..0047e58b43c 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.36.1-SNAPSHOT + 4.37.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 9854bc8df6b..9268747a63f 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.36.1-SNAPSHOT + 4.37.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 6a5b1fc7c51..c5d5121f20e 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.36.1-SNAPSHOT + 4.37.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 5d53d788b04..f1217d89eac 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.36.1-SNAPSHOT + 4.37.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 291b2c9e0da..b7a59066ccc 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.36.1-SNAPSHOT + 4.37.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 e32d5507782..865ae3d019d 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 4d36c05b10b..461ff5b235b 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.36.1-SNAPSHOT + 4.37.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 2d13095f336..43dc1de1b64 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.36.1-SNAPSHOT + 4.37.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 2c0b9666afa..2cb26b9ec3a 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.36.1-SNAPSHOT + 4.37.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 64b34540b11..21dfd773208 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.36.1-SNAPSHOT + 4.37.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 d7a4e6c3ce9..46b16386560 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.36.1-SNAPSHOT + 4.37.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 2ad4998914d..2a4554b27c6 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.36.1-SNAPSHOT + 4.37.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 dc1002f3615..895513fc0a9 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index e6580f3cc7c..fb799bbd41b 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.36.1-SNAPSHOT + 4.37.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 657fed2d796..75fe024348b 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.36.1-SNAPSHOT + 4.37.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 23d801dba21..3a5063112ee 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.36.1-SNAPSHOT + 4.37.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 74b7b2c850a..d76f021be3f 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.36.1-SNAPSHOT + 4.37.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 717b39c9d1c..320c6f91bcf 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.36.1-SNAPSHOT + 4.37.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 3a2b0c85981..fc94dda5dba 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.36.1-SNAPSHOT + 4.37.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 f665df07276..bf277e74a3a 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.36.1-SNAPSHOT + 4.37.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 fde692e1cf8..2f7d344cb32 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.36.1-SNAPSHOT + 4.37.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 f9c50a31d81..21f6b25a22c 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.36.1-SNAPSHOT + 4.37.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 85fb4f23ac6..0bfb15f8ea3 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.36.1-SNAPSHOT + 4.37.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 384aa5d7b19..3d67e90f260 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.36.1-SNAPSHOT + 4.37.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 7deb1bf32dc..ab17f7db491 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.36.1-SNAPSHOT + 4.37.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 e08a31f2ca7..19d9d9c1d60 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.36.1-SNAPSHOT + 4.37.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 75608c8eb22..539c42a81cf 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index b6ef9f4e8e2..ed591c12ba3 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.36.1-SNAPSHOT + 4.37.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 e04f7238006..cbd451da7d5 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.36.1-SNAPSHOT + 4.37.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 7cbe7162ceb..b4f8a356fcf 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.36.1-SNAPSHOT + 4.37.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 9764c676eca..ed637807511 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.36.1-SNAPSHOT + 4.37.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 15245c30bba..326a6da6f0c 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index ad47efc988b..dd78b95e661 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.36.1-SNAPSHOT + 4.37.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 f5d1cca5281..7d740793d0f 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.36.1-SNAPSHOT + 4.37.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 543e92b33e1..811c50efced 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.36.1-SNAPSHOT + 4.37.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 6c2be4a53ab..a1f7322b7f3 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.36.1-SNAPSHOT + 4.37.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 3f19d58d59c..d60111c6536 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.36.1-SNAPSHOT + 4.37.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 e54cfa730b9..434d1e34a8e 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 6535228a8a8..25a297ed2c9 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.36.1-SNAPSHOT + 4.37.0 4.0.0 diff --git a/pom.xml b/pom.xml index 41dd456d352..fe6c65214a5 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.36.1-SNAPSHOT + 4.37.0 pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.37.0 From 71ed5c5bdf6d33584cfb89ee77a8bea2658bf47a Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 20 Dec 2023 01:57:57 +0000 Subject: [PATCH 41/54] [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-framework/pom.xml | 2 +- .../legend-engine-test-runner-function/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-dsl-tds-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../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-quality-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-quality/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 +- .../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-bigqueryFunction-api/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-compiler/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-grammar/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-protocol/pom.xml | 2 +- .../legend-engine-xt-bigqueryFunction-pure/pom.xml | 2 +- legend-engine-xts-bigqueryFunction/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-xt-connection-compiler/pom.xml | 2 +- .../legend-engine-xt-connection-factory/pom.xml | 2 +- .../legend-engine-xt-connection-grammar/pom.xml | 2 +- .../legend-engine-xt-connection-protocol/pom.xml | 2 +- .../legend-engine-xt-connection-pure-metamodel/pom.xml | 2 +- legend-engine-xts-connection/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-deployment/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 +- .../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-xt-relationalStore-test-mutation/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-relation/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test/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 ++-- 401 files changed, 404 insertions(+), 404 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index f936b74cb7b..f40f1bf57e7 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.37.0 + 4.37.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 bd0227e9b39..8c3e3762708 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.37.0 + 4.37.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 b83f3d4fafc..3d42ae0912d 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.37.0 + 4.37.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 b9ccfc61eeb..8fd9771a51a 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.37.0 + 4.37.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 587b9257150..3066c10f126 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.37.0 + 4.37.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 7e97cd94481..75cfdd6f6e7 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.37.0 + 4.37.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 4005bcceed4..6bef6672174 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.37.0 + 4.37.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 69e0894ab3c..4eb95bb73a6 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.37.0 + 4.37.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 d1c8fbe98b8..d109046d8be 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 2c4f54b9440..ec0c3baae0c 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.37.0 + 4.37.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 c0641f400eb..b6fe673eb30 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.37.0 + 4.37.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 75f2f4ca2b3..768b59a67a4 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.37.0 + 4.37.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 2f614a6d74f..0968d99d6c8 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.37.0 + 4.37.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 4721bf98e24..7c821b0322c 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.37.0 + 4.37.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 392650b5066..752c15dbcca 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.37.0 + 4.37.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 f467386d6d0..5f19bb0582a 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.37.0 + 4.37.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 786a3fb769b..896de489087 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.37.0 + 4.37.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 132de0b0ac9..e214d72529e 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.37.0 + 4.37.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 14bfa8e0d42..096c42581c6 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.37.0 + 4.37.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 ce1f373b15b..de043f59546 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.37.0 + 4.37.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 072e7696e52..3b4f84ac3f8 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.37.0 + 4.37.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 fe246c82206..cdc79b31a52 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.37.0 + 4.37.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 4cb25f5c251..597264c6c2f 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.37.0 + 4.37.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 bf5afe41324..b0eb0ec01c4 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.37.0 + 4.37.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 ca6897a4978..d2c9bfc8494 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.37.0 + 4.37.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 c3659cb5e8a..0ac92ce6bfc 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.37.0 + 4.37.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 4c40c3bfb41..a066060ceab 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.37.0 + 4.37.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 cbbf1348a73..ff5f1627911 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.37.0 + 4.37.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 0b19b5e1b2c..7635d38a4da 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.37.0 + 4.37.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 69c2451b33c..45cc485e86e 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.37.0 + 4.37.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 4bd14efd68b..b7d35cf95b5 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.37.0 + 4.37.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 fba6f8557ce..e493109ede5 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.37.0 + 4.37.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 1b3ceb93dc3..1704a4f0e8c 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.37.0 + 4.37.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 80ac59e2774..72a3d109b16 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.37.0 + 4.37.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 6f5f8775168..dedaab6bae8 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.37.0 + 4.37.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 979c647e005..86b13504a89 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.37.0 + 4.37.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 d5eb6f781f6..f0d5cb9bbd7 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.37.0 + 4.37.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 27aff2c5dc1..840d03913a7 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml index 1310bdcf1ea..816c06f16c9 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-framework/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 legend-engine-test-framework diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml index bdf317c5661..73f87eb8468 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-function/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.37.0 + 4.37.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 ba67717b4be..4753445e4e6 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.37.0 + 4.37.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 306623ae30d..063436a2ee0 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.37.0 + 4.37.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 d7aaff7f1e3..1427db856bc 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.37.0 + 4.37.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 72a4dfec0b0..8fa4d111940 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.37.0 + 4.37.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 87bc5e5329a..c35e5c2bf80 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 0b2fe3831be..13a8bc74adf 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.37.0 + 4.37.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 b46e2526be1..bd655a4b4c6 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.37.0 + 4.37.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 64650c677d6..c425ee7c393 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.37.0 + 4.37.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 6ee7400d4df..e50fac718ff 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.37.0 + 4.37.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 68332565536..cb41304d797 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.37.0 + 4.37.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 4d5d90e04cc..9092e7ad618 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.37.0 + 4.37.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 7b159001417..31046c7dc5f 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.37.0 + 4.37.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 6304806b4c7..373cfe454ce 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.37.0 + 4.37.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 f6378ad91cc..42a7aa41f6d 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.37.0 + 4.37.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 70ab4ee3c2a..06a7ac6fcc9 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.37.0 + 4.37.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 b8dc70ef311..e6f128e1c38 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.37.0 + 4.37.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 4abdbdc0d6a..03b85570031 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.37.0 + 4.37.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 0a009d7f872..f640f3f2dce 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.37.0 + 4.37.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-dsl-tds-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml index 833276702e0..7bf5561827f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-tds-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.37.0 + 4.37.1-SNAPSHOT legend-engine-pure-platform-dsl-tds-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 677b6812f43..1d410583b3a 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.37.0 + 4.37.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 7e96f3b9cd9..eb96f5c2c3d 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.37.0 + 4.37.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-functions-relation-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml index 6db6ffe52ce..423b1b19276 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-relation-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.37.0 + 4.37.1-SNAPSHOT legend-engine-pure-platform-functions-relation-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 a966a213a82..b995230dc58 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.37.0 + 4.37.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 6bc183c87d8..8c6519b3b9b 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.37.0 + 4.37.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 de35d0400e8..d72f18fa452 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.37.0 + 4.37.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 5a595d2d05e..f5e22fab6f2 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.37.0 + 4.37.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 e6022cc96a1..add89a187b5 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.37.0 + 4.37.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 00c8fa19757..99e8053ac60 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.37.0 + 4.37.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 c6b20fad164..d9ca36a4b93 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.37.0 + 4.37.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 effae8c189b..3249f9e7de6 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 70e35083a30..35ab81e6e01 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.37.0 + 4.37.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 2671a49e78a..05293fee8e3 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.37.0 + 4.37.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 e74ef81d7f1..8d6ea58f12d 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.37.0 + 4.37.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 0ff3dd4cfe2..81c81ca7a2a 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.37.0 + 4.37.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 b761997bcd5..b0f319c8d45 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.37.0 + 4.37.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 84103bf4a28..4e721cf4fe6 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.37.0 + 4.37.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 3dfd0e80d83..9605896f24e 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.37.0 + 4.37.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 8c0d8fff7c6..09fbbb4f49c 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.37.0 + 4.37.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 4a9bdd091f5..586b8ee62e5 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.37.0 + 4.37.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 f68c39e63d6..3515b5046ef 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.37.0 + 4.37.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 abda767cdd5..32276f9bd2d 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.37.0 + 4.37.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 d047d2a4f40..d6aaaaeed66 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.37.0 + 4.37.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 de66832767b..a520cc4370c 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.37.0 + 4.37.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 6b3d6a372ef..d822b73f6cf 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.37.0 + 4.37.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 f996e961aa1..943a2cd59b9 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.37.0 + 4.37.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 0c52165480b..1eab1674d55 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.37.0 + 4.37.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 a3aa6dd382d..14018387e16 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml index adda9f007ec..453f1c58bcd 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/legend-engine-xt-analytics-quality-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-quality org.finos.legend.engine - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml index 28440e7f879..79af68046bd 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-quality/pom.xml @@ -2,7 +2,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.37.0 + 4.37.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 6b030e6e88d..8a741752426 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.37.0 + 4.37.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 7edaade315f..ce1fd86fb5f 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.37.0 + 4.37.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 a1dbf990291..b7ac36edfbd 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.37.0 + 4.37.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 002f7c44697..52111ded048 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.37.0 + 4.37.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 9bab390bbbe..5e068aed3e5 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.37.0 + 4.37.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 4eb1e09b4ed..8e9fe327681 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index d2622c4e142..8718703f0bc 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.37.0 + 4.37.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 ed3ba67bb12..e850104bb9b 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.37.0 + 4.37.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 c30c308c4ba..9fa3c05e7c3 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 297f3e688ea..486a5b04f4a 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.37.0 + 4.37.1-SNAPSHOT legend-engine-xts-arrow 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 9d50929de95..a6884b505c5 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.37.0 + 4.37.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 35125cc9c1a..b0ef6f96773 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.37.0 + 4.37.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 0b99af232b3..e2ac486a89b 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.37.0 + 4.37.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 b9814a47220..4a553179a6b 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.37.0 + 4.37.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 5f28e0bd10b..c7d63bb288c 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.37.0 + 4.37.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 83dab359197..fef096738ab 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 8b9ca7e26d4..b2af82dbd07 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.37.0 + 4.37.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 f087739fa09..7149d99764b 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.37.0 + 4.37.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 bf84bf840ae..8a75f699a31 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index f49de5b43e8..905a2cbea6a 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 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 7b974016c92..15263f4c1ff 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 @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 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 index 590acfd6a0d..543a189f2e3 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 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 index ea40ed53458..3918cd753d4 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 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 index 3e7f9953908..ca0a1837461 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 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 index 32dce8d8172..2af89dba974 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-bigqueryFunction - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml index 35f3a73c4eb..aba611be72b 100644 --- a/legend-engine-xts-bigqueryFunction/pom.xml +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.37.0 + 4.37.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 f5012322019..78edc7db7df 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.37.0 + 4.37.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 da88b6d666b..41d8cc4c3df 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 3e482fba892..a27342a3157 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml index aca131fc122..5a457b36d61 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml index 357636467e6..3bca113386f 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml index 5fd993f00ed..4ad8eabefc8 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml index cb25a7345e4..2276d60da76 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml index c79a3ddadbd..68ee7abcdf1 100644 --- a/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml +++ b/legend-engine-xts-connection/legend-engine-xt-connection-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-connection - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-connection/pom.xml b/legend-engine-xts-connection/pom.xml index d2cdad51a7b..0b54a8f22f0 100644 --- a/legend-engine-xts-connection/pom.xml +++ b/legend-engine-xts-connection/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.37.0 + 4.37.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 de7085906bd..f4338bfe7d1 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.37.0 + 4.37.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 bd3da05d52d..062d96652bf 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.37.0 + 4.37.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 6362fd2d3a9..6b7963a298b 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 72a28d19579..0f64296bd52 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.37.0 + 4.37.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 a95efb239de..84e25525340 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 8a544eb3c9b..596cca5d9da 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.37.0 + 4.37.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 fbbd68d8c19..913504eec90 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.37.0 + 4.37.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 d0b961af3fe..effaa31235c 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.37.0 + 4.37.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 a95167aa586..2f09f31ce41 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.37.0 + 4.37.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 a372390e174..40e306cc972 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.37.0 + 4.37.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 bd7a5e854d5..e0496c8d0d1 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.37.0 + 4.37.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 46ac2cf107a..5d12f3421e6 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.37.0 + 4.37.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 5d35ce78258..3b0cb88463b 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 7ebdb65f37d..78ffb8456e2 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.37.0 + 4.37.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 386d2b9ed2f..7335d45454c 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.37.0 + 4.37.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 e1915689d92..8021490e82d 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.37.0 + 4.37.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 914ece7ead0..6b3bffe3c8c 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.37.0 + 4.37.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 d8afff7cbc9..651ee89a2fe 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.37.0 + 4.37.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 42469ca82a9..d7a91a73a65 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.37.0 + 4.37.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 1ee262ac9fd..87f73ba03e6 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index a1465ead351..88e49d8c0ea 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.37.0 + 4.37.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 0afce345a6c..ee74e794040 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.37.0 + 4.37.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 111c110c892..5832e28ca95 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.37.0 + 4.37.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 56a4371b75e..8e5c9a21941 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.37.0 + 4.37.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 451e4deb909..e02057edcff 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.37.0 + 4.37.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 fe19de02a36..f42dbd3d616 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.37.0 + 4.37.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 b4ec86d6a66..0a35ac3d741 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.37.0 + 4.37.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 6a3a76ba954..f3020bc9a63 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 1c86ab41ac2..83db00cbfd1 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.37.0 + 4.37.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 1a80a8c16b3..d2fe973846e 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.37.0 + 4.37.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 2a903d15919..1dfea63cd68 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.37.0 + 4.37.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 53cbb626230..32043a2c3f6 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.37.0 + 4.37.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 c9292baa70f..55d124225b1 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.37.0 + 4.37.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 70457a42905..27f05982e70 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.37.0 + 4.37.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 9261cc1206a..f3395db8e61 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.37.0 + 4.37.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 f3b3f08a61b..658fe98a88f 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 86ccbabcd30..c5ceafdcff8 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.37.0 + 4.37.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 8d90a0b2b27..ff35b7a993b 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 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 index eebccbef031..8f3601559b1 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.37.0 + 4.37.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 559ed21b082..e75fe6ccd0c 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.37.0 + 4.37.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 fd55c977c05..6f000fcf689 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 9de435bc027..1c709f9debb 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.37.0 + 4.37.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 9f109330854..95d875a57bb 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.37.0 + 4.37.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 eecffc21420..1b22613c3b2 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.37.0 + 4.37.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 07d1e1941b0..fd9dbd18c24 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.37.0 + 4.37.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 ad9d9d0249a..4785ae95287 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 728c1e228ce..a1faf2e4797 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.37.0 + 4.37.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 c2e009c5fc7..7e27208b917 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.37.0 + 4.37.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 cbb79015fed..8105af62ec8 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.37.0 + 4.37.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 bf1394047aa..1fe928fb720 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.37.0 + 4.37.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 82d45d9da2a..e73244759e8 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.37.0 + 4.37.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 6b67765c27b..fc48a68f787 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.37.0 + 4.37.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 ef4e0b3ad62..08f9241a525 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.37.0 + 4.37.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 1217d128d27..2016dbbcfbc 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.37.0 + 4.37.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 9e153b3a58a..0387ff0d126 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 8c33e518373..07dd6193028 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.37.0 + 4.37.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 d03356bc4e8..0d5cfe321e8 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.37.0 + 4.37.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 16aea64b482..777a8dfab19 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.37.0 + 4.37.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 3a08e0845c3..8d84e15429e 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 129cd645db0..88981656fd8 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.37.0 + 4.37.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 4a483e463b9..f5b087507c4 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.37.0 + 4.37.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 062187cbb33..aa5c4890c66 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.37.0 + 4.37.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 a1e1efba8d0..75392f8f41b 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.37.0 + 4.37.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 c943b6525bc..9c11a016625 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.37.0 + 4.37.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 b2e8b13feea..97c4ba34d40 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.37.0 + 4.37.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 aaf0ceb92cf..821a84ad6ab 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index baf4e0bda6c..36e2e11c995 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.37.0 + 4.37.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 25d9efbd478..871e79faaf3 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.37.0 + 4.37.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 9e9c381cdc8..d0e2bf28328 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index bdd0c81c468..ecb7305c6bb 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.37.0 + 4.37.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 2b5c7c0f8b7..5fc63bb1bcd 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.37.0 + 4.37.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 2787dd2ba73..bb4cc9f4a39 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.37.0 + 4.37.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 1b1b43d00c7..5cb9a19c680 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.37.0 + 4.37.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 7a18b4f61f1..4be725e583c 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 775abe650f4..64a648a0afe 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.37.0 + 4.37.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 4d19c404631..853e6dfad7e 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.37.0 + 4.37.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 df21866119f..9d0ceca14d7 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.37.0 + 4.37.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 5cedf346a2f..a1f943f9eaa 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.37.0 + 4.37.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 f22d9452713..d70637c1f42 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.37.0 + 4.37.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 ec165c80955..548106a0c86 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.37.0 + 4.37.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 979a787ab70..4acb532f76a 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 7c687709e9c..4e953be556b 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.37.0 + 4.37.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 d7ba213a9ef..efc16ba8ae1 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.37.0 + 4.37.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 5e832b7d434..5c0a666f1be 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.37.0 + 4.37.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 c0a93d6c149..435ed54e104 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 90a8023e4e4..b0382e70738 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.37.0 + 4.37.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 167518cc603..f3025e0919e 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.37.0 + 4.37.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 4e00b9850fd..42b9f2a10ba 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.37.0 + 4.37.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 fbfc504509d..43b7d20160e 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.37.0 + 4.37.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 c3c9433ad05..871ddb4ab71 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.37.0 + 4.37.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 1bf663b0b25..f58cefa24e3 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.37.0 + 4.37.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 638e64d88f9..0f14518ef15 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.37.0 + 4.37.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 5a282bbae32..38b7543b600 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.37.0 + 4.37.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 e5e3ba6632f..4c38cc2ec69 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.37.0 + 4.37.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 bd9c35ab528..daead9bd95b 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.37.0 + 4.37.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 771ae1d7f4e..669bb4845e3 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index efcab5e6b6d..07e2c5edbbd 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.37.0 + 4.37.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 3f7f277d71f..e457f0658e4 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.37.0 + 4.37.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 47e4cf7875d..80b7934c190 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.37.0 + 4.37.1-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index b218ef2ac52..294f0ef5a77 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.37.0 + 4.37.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 13d04fd3c9d..a590acee76f 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.37.0 + 4.37.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 371875bfbf5..175f808468a 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.37.0 + 4.37.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 894323b6ea2..f3fe0c3512a 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.37.0 + 4.37.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 9cca24915a5..412383b7c49 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.37.0 + 4.37.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 dd0e82283ff..3002f18b8a2 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.37.0 + 4.37.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 fe5681a9799..4791dcf59a8 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.37.0 + 4.37.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 622b4ed999c..f9424e8dfe3 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.37.0 + 4.37.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 020487ddb49..d5be5b90f60 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.37.0 + 4.37.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 6b4373c90e8..1c14c9b6ddb 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.37.0 + 4.37.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 161148675c5..796d0ee354b 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.37.0 + 4.37.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 72281b2d77f..3deeb6ad115 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.37.0 + 4.37.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 de8fd5e2853..dd61d4e112d 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.37.0 + 4.37.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 619d9161d0f..2b0573f4714 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.37.0 + 4.37.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 1e7ad4b7cbf..f8f75a84e3e 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.37.0 + 4.37.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 2365317bd88..a0ec03941d6 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.37.0 + 4.37.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 c3442bce9cd..2d3d52e458a 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.37.0 + 4.37.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 79e043efd5f..a0d97df4e9f 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.37.0 + 4.37.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 1ab3549a250..3363489944b 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.37.0 + 4.37.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 f45aa000417..1bb23c12404 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.37.0 + 4.37.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 6c06390efe5..b14bb601259 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.37.0 + 4.37.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 38cde7ce63c..2b146f70f3f 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index efd644b92aa..030b053fca4 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.37.0 + 4.37.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 807af8c2aab..4d8e590680a 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.37.0 + 4.37.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 0567fd47933..66b8d999dbb 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.37.0 + 4.37.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 3f403fe7de5..66e47139887 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.37.0 + 4.37.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 3c296ba1efb..14f340200f2 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.37.0 + 4.37.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 8a43e2fa241..629a02ccd75 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.37.0 + 4.37.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 dba40e29186..1cdf9e5ed25 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.37.0 + 4.37.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 20832f7c9ce..d320658de35 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.37.0 + 4.37.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 39aa12c3d2f..2e80302b452 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.37.0 + 4.37.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 0cb913e5493..5dc51f92793 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.37.0 + 4.37.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 f36f5db168f..a2933426035 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.37.0 + 4.37.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 597312fc9e6..253c1f424ac 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.37.0 + 4.37.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 c2521a2a186..98ca00ac692 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.37.0 + 4.37.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 334d22976d9..2f9e0e8a601 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.37.0 + 4.37.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 6816d17f6fc..41d3c3c8fd8 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.37.0 + 4.37.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 2b8812f48b9..5cd92b99be3 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.37.0 + 4.37.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 a0c145b2fe4..84b36697d0f 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.37.0 + 4.37.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 14b0c81b323..a50e8c9c15d 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.37.0 + 4.37.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 1f575c34ac3..81b83a9fb4f 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.37.0 + 4.37.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 21893b9eb7b..fd9209202b1 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.37.0 + 4.37.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 11ea8a3da19..c16e5adcea8 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.37.0 + 4.37.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 0d28d263de6..91710e6c15d 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.37.0 + 4.37.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 ec88c390693..9297de6241a 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.37.0 + 4.37.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 db5221ea7c9..244275faa10 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.37.0 + 4.37.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 ff70efac0e3..639c4414e47 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.37.0 + 4.37.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 9d935b99370..5da3f467af5 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.37.0 + 4.37.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 ff5776c8930..0f2fdeb7efa 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.37.0 + 4.37.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 d05d5e46a6b..f92c58518fc 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.37.0 + 4.37.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 224991c7995..c482f59f809 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.37.0 + 4.37.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 501c91d0aae..883674eb965 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.37.0 + 4.37.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 3aeb41fa09a..c98d343725f 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.37.0 + 4.37.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 b07e452fa20..4dfa68a1998 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.37.0 + 4.37.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 b5f27794720..c2754ba0fa0 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.37.0 + 4.37.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 f062d70f0e0..ef672e8ac72 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.37.0 + 4.37.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 803ff0deb14..c7d04eee3d1 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.37.0 + 4.37.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 ab471e94ab7..8bda1073220 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.37.0 + 4.37.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 233ab75e246..63c8e324db6 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.37.0 + 4.37.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 439a7acfcc2..63b3ff94061 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.37.0 + 4.37.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 af9ee255c69..a0c5fc4f588 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.37.0 + 4.37.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 bcc33cfc477..8958d8c74cb 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.37.0 + 4.37.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 5af861225c8..8a7ec7c7193 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.37.0 + 4.37.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 52ef25f0912..a6752755685 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.37.0 + 4.37.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 e7ac677f63a..2be86a773de 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.37.0 + 4.37.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 69fbdea4d72..db1b3fb528c 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.37.0 + 4.37.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 c69a8563327..310c1cc0fdb 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.37.0 + 4.37.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 0dba98315f2..879bb976aac 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.37.0 + 4.37.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 817f4e65bc6..3f231f2cbb1 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.37.0 + 4.37.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 5ac5b057bc5..3fb49ef833b 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.37.0 + 4.37.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 2fab66aebd6..8fc15a67b4f 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.37.0 + 4.37.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 19cc1e5e9f3..1b4b6384e41 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.37.0 + 4.37.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 d70934a3273..4ba576c9e6c 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.37.0 + 4.37.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 6a442919df4..a6c34f0f12b 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.37.0 + 4.37.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 077945acbab..9e58aea5b18 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.37.0 + 4.37.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 cda8dc65656..354836f81ac 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.37.0 + 4.37.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 fb73bb74392..c886a5d4c21 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.37.0 + 4.37.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 b6a44d7bea7..d5de7c0eae3 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.37.0 + 4.37.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 7dfa22dca94..9cc9a8ab7c0 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.37.0 + 4.37.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 bbf1d20b2cd..5fe7b96266a 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.37.0 + 4.37.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 604656dd06c..adff7e76b78 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.37.0 + 4.37.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 0a8ce2598d2..299b8f1992b 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.37.0 + 4.37.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 982fa9fef7a..c3226fdb1a3 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.37.0 + 4.37.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 f244983dbd5..08bc2f2d246 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.37.0 + 4.37.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 36fbe2d3272..5b11a5a1f36 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.37.0 + 4.37.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 daabc86f540..b298bbe7044 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.37.0 + 4.37.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 8e540f85d3a..74b8bddfd06 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.37.0 + 4.37.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 c79b44dc1a5..de2625cc545 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.37.0 + 4.37.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 293f6fed580..b52ada31623 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.37.0 + 4.37.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 b920f0fe58f..ff66cc60a37 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.37.0 + 4.37.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 362da124ef1..f35b78d4469 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.37.0 + 4.37.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 7291f6d807f..125648c0b7e 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.37.0 + 4.37.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 e83232c00d1..f86b835c7a3 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.37.0 + 4.37.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 217a59ac772..556c23dd825 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.37.0 + 4.37.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 458e66aa8d0..a5cccd044f4 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.37.0 + 4.37.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 30bed6bcf84..93748d44d0a 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.37.0 + 4.37.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 ad16bc0584a..c9acdab88cd 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.37.0 + 4.37.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 dd1c03aed13..2d6b8bf7ad9 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.37.0 + 4.37.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 a2188995021..60b0004ddfd 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.37.0 + 4.37.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 2a8967298f7..57ac882c6a0 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.37.0 + 4.37.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 da6addf317e..8323ecfb983 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.37.0 + 4.37.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 18556e2347a..95238401c3b 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.37.0 + 4.37.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 bd3f6208dfc..f1620d175c7 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.37.0 + 4.37.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 36a2a588fba..ff4d6395e5f 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.37.0 + 4.37.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 b32ec55f399..20484d88d7b 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.37.0 + 4.37.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 1144059143e..86761af9c37 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.37.0 + 4.37.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 a37d6323d2f..0c1a9e8e83d 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.37.0 + 4.37.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 4d0dd64ee27..3034ff15044 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.37.0 + 4.37.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 16d43453982..bd50dce03b4 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.37.0 + 4.37.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 854bbeb996c..a32529f1928 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.37.0 + 4.37.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 80f87dbf25b..0b3ffd5f21d 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.37.0 + 4.37.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 bb52601b672..f94088c8a42 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.37.0 + 4.37.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 84fcc2bd544..d294a7a1fbe 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.37.0 + 4.37.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 fea3ad49dad..4f9b1d2e624 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.37.0 + 4.37.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 6073938340b..8393b43fa6d 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.37.0 + 4.37.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 e7dd3eb1fc1..2fabbe7e214 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.37.0 + 4.37.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 7894c58fdef..66470fdb067 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.37.0 + 4.37.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 cc6838c9674..c5f1907c34e 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.37.0 + 4.37.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 88559ef1816..170b9297dc9 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.37.0 + 4.37.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 c4793ac18fa..82101abd2ee 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.37.0 + 4.37.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 a282db6f82a..6aa3f7f421a 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml index 13485516c77..8d4442f674f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-mutation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-test - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml index 8240c280735..d08aacb9afa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/legend-engine-xt-relationalStore-test-relation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-test - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml index 5b40f66f41f..2a4f991aeda 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index d745f499a89..065f8c9e48d 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.37.0 + 4.37.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 642bbaa1e97..f6b33fe0b4d 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 0d116566c78..ed90224fe2f 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.37.0 + 4.37.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 2c8ea1ee2c2..a7999502e10 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.37.0 + 4.37.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 b9e7aa81b89..a41d070cc9e 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index b2030a9be64..5598d6199cc 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.37.0 + 4.37.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 c78b8f8bf29..855ea5b23ad 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.37.0 + 4.37.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 fcd1014fb8d..52c1e49c9ce 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.37.0 + 4.37.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 eac7e868144..9c5f6b19a8d 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.37.0 + 4.37.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 83b03cee84e..4ed0ad7716b 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.37.0 + 4.37.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 91814ce454a..02b6cccb1a2 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.37.0 + 4.37.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 8ae82b714c8..180214cd1dc 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.37.0 + 4.37.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 20cc9754b42..278b4419a34 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.37.0 + 4.37.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 8454d1eb816..3d86433df69 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 0047e58b43c..730374563e4 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.37.0 + 4.37.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 9268747a63f..d6dd8386a73 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.37.0 + 4.37.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 c5d5121f20e..9e549a9e90d 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.37.0 + 4.37.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 f1217d89eac..e68fc482c02 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.37.0 + 4.37.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 b7a59066ccc..07b9d600a4a 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.37.0 + 4.37.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 865ae3d019d..887b358b9ff 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 461ff5b235b..cc5bd5fee84 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.37.0 + 4.37.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 43dc1de1b64..0f6f1d87236 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.37.0 + 4.37.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 2cb26b9ec3a..7e5f1bde469 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.37.0 + 4.37.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 21dfd773208..65072e5bad0 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.37.0 + 4.37.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 46b16386560..453c1c60931 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.37.0 + 4.37.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 2a4554b27c6..3ed953ea3f7 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.37.0 + 4.37.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 895513fc0a9..80854b7fbdd 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index fb799bbd41b..1fe213874b6 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.37.0 + 4.37.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 75fe024348b..9c5daa978de 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.37.0 + 4.37.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 3a5063112ee..bc0b62d3bc3 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.37.0 + 4.37.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 d76f021be3f..6068343f2bf 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.37.0 + 4.37.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 320c6f91bcf..c6ba0960367 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.37.0 + 4.37.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 fc94dda5dba..7dcb04c4f73 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.37.0 + 4.37.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 bf277e74a3a..94c78110c5f 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.37.0 + 4.37.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 2f7d344cb32..844877971f3 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.37.0 + 4.37.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 21f6b25a22c..42bd3c88caa 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.37.0 + 4.37.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 0bfb15f8ea3..f70cb45056f 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.37.0 + 4.37.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 3d67e90f260..e7e98fce222 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.37.0 + 4.37.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 ab17f7db491..53363ab39b3 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.37.0 + 4.37.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 19d9d9c1d60..3c2dcfbf561 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.37.0 + 4.37.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 539c42a81cf..2a6c1611fe8 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index ed591c12ba3..61a5a980c64 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.37.0 + 4.37.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 cbd451da7d5..b8941006fc9 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.37.0 + 4.37.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 b4f8a356fcf..b1248275de7 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.37.0 + 4.37.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 ed637807511..858dee12ee2 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.37.0 + 4.37.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 326a6da6f0c..3910cfff0a7 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index dd78b95e661..3d15b9bb761 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.37.0 + 4.37.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 7d740793d0f..35594ec0888 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.37.0 + 4.37.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 811c50efced..8ec30d47752 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.37.0 + 4.37.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 a1f7322b7f3..70378a8c53f 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.37.0 + 4.37.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 d60111c6536..2ddbe9c5440 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.37.0 + 4.37.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 434d1e34a8e..e72555e9837 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 25a297ed2c9..1cb05b86d86 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.37.0 + 4.37.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index fe6c65214a5..cd6ecbd011d 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.37.0 + 4.37.1-SNAPSHOT pom @@ -232,7 +232,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.37.0 + HEAD From b63ba618178228f81e9f4c460b68c0c318041a18 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Thu, 21 Dec 2023 11:49:01 -0500 Subject: [PATCH 42/54] Check string length before substring (#2516) --- .../defaultPostProcessor/trimColumnNamePostProcessor.pure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 87257b009bc..e71085b93f9 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 @@ -81,10 +81,10 @@ function meta::relational::postProcessor::reAliasColumnName::search(q:Relationa d: DynaFunction[1]| $d.parameters->search($runtime);, b: BinaryOperation[1] |$b.left->search($runtime)->concatenate($b.right->search($runtime));, a: Alias[1] | let maxLength = lengthConfig($runtime); - if( $a.name->length()>=$maxLength,|pair($a.name->replace('"','')->substring(0,$maxLength-10), $a.name),|[])->concatenate($a.relationalElement->search($runtime));, + if( $a.name->length()>=$maxLength,|let sanitizedName = $a.name->replace('"',''); pair(if($sanitizedName->length() > ($maxLength - 10),| $a.name->replace('"','')->substring(0,$maxLength-10),| $sanitizedName), $a.name);,|[])->concatenate($a.relationalElement->search($runtime));, js: JoinStrings[1]| $js.strings->search($runtime)->concatenate($js.prefix->search($runtime))->concatenate($js.suffix->search($runtime))->concatenate($js.separator->search($runtime));, c: Column[1]| let maxLength = lengthConfig($runtime); - if( $c.name->length()>=$maxLength,|pair($c.name->replace('"','')->substring(0,$maxLength-10), $c.name),|[]);, + if( $c.name->length()>=$maxLength,|let sanitizedName = $c.name->replace('"',''); pair(if($sanitizedName->length() > ($maxLength - 10),| $c.name->replace('"','')->substring(0,$maxLength-10),| $sanitizedName), $c.name);,|[]);, s:SemiStructuredPropertyAccess[1] | $s.operand->concatenate($s.property)->concatenate($s.index)->search($runtime), s:SemiStructuredArrayElementAccess[1] | $s.operand->concatenate($s.index)->search($runtime), s:SemiStructuredArrayFlatten[1] | $s.navigation->search($runtime), From d1779a42fd22eba0dd943b5c02abc60569ca8bc1 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Tue, 2 Jan 2024 09:21:24 +0000 Subject: [PATCH 43/54] SQL - Assortment of changes (#2517) - sqlserver: kerberos support - legend sql: handle group by expressions - memsql: lpad/rpad/booland/boolor fixes - pure2sql: handle split part expressions - preeval: add tracing span --- .../core/pure/router/preeval/preeval.pure | 45 ++--- .../pure/serialization/toPureGrammar.pure | 5 +- .../sqlQueryToString/memSQLExtension.pure | 6 +- .../vendors/sqlserver/SqlServerManager.java | 26 ++- .../pureToSQLQuery/pureToSQLQuery.pure | 9 +- .../fromPure/tests/testToSQLString.pure | 8 +- .../sql/grammar/to/SQLGrammarComposer.java | 6 + .../legend-engine-xt-sql-providers/pom.xml | 2 +- ...ternal_query_sql_metamodel.definition.json | 3 +- .../metamodel.pure | 23 ++- .../binding/fromPure/fromPure.pure | 161 ++++++++++++------ .../binding/fromPure/tests/testTranspile.pure | 18 ++ .../query/sql/api/TableSourceExtractor.java | 6 + 13 files changed, 224 insertions(+), 94 deletions(-) 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 6f6571d56db..5abe9cfa2ef 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 @@ -78,31 +78,34 @@ function <> meta::pure::router::preeval::preval(f : FunctionDefin function <> meta::pure::router::preeval::preval(f : FunctionDefinition[1], state:State[1], extensions:Extension[*]):PrevalWrapper>[1] { - let r = prevalInternal($f->evaluateAndDeactivate(), $state, $extensions)->toOne()->cast(@PrevalWrapper>); - - if(!$r->anyModified(), - | - $state->printDebug(|'No changes made for: '); - $state->printDebug(|$f->meta::pure::metamodel::serialization::grammar::printFunctionDefinition(''));, - | - let res = $r.value->toOne(); - $state->printDebug('Transformed To:'); - $state->printDebug(|$res->meta::pure::metamodel::serialization::grammar::printFunctionDefinition('')); - $state->printDebug($res); - ); - - $r; + meta::pure::functions::tracing::traceSpan({| + let r = prevalInternal($f->evaluateAndDeactivate(), $state, $extensions)->toOne()->cast(@PrevalWrapper>); + + if(!$r->anyModified(), + | + $state->printDebug(|'No changes made for: '); + $state->printDebug(|$f->meta::pure::metamodel::serialization::grammar::printFunctionDefinition(''));, + | + let res = $r.value->toOne(); + $state->printDebug('Transformed To:'); + $state->printDebug(|$res->meta::pure::metamodel::serialization::grammar::printFunctionDefinition('')); + $state->printDebug($res); + ); + $r; + }, 'preval'); } function <> meta::pure::router::preeval::preval(f : FunctionExpression[1], inScopeVars:Map>[1], extensions:Extension[*], debug:DebugContext[1]):ValueSpecification[1] { - let state = ^meta::pure::router::preeval::State(inScopeVars = $inScopeVars, - shouldInlineFxn = defaultFunctionInlineStrategy($extensions), - stopPreeval = defaultPreevalStopStrategy($extensions), - rollingInScopeVars = $inScopeVars, - debug = $debug, - inScopeTypeParams = ^Map()); - prevalInternal($f, $state, $extensions).value->cast(@ValueSpecification); + meta::pure::functions::tracing::traceSpan({| + let state = ^meta::pure::router::preeval::State(inScopeVars = $inScopeVars, + shouldInlineFxn = defaultFunctionInlineStrategy($extensions), + stopPreeval = defaultPreevalStopStrategy($extensions), + rollingInScopeVars = $inScopeVars, + debug = $debug, + inScopeTypeParams = ^Map()); + prevalInternal($f, $state, $extensions).value->cast(@ValueSpecification); + }, 'preval') } // ==================================================================================================================================================================== diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure index 4d869eb78d9..23a18ad1c0d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/serialization/toPureGrammar.pure @@ -129,7 +129,10 @@ function meta::pure::metamodel::serialization::grammar::printFunctionExpression( | $functionExpression.parametersValues->head()->toOne()->printValueSpecification($space) + '->' + $functionExpression.func.functionName->toOne() + $functionExpression.parametersValues->tail()->map(vs | printValueSpecification($vs, $space))->joinStrings('(', ', ', ')'); );, |let vals = if ($name->in(['plus', 'minus', 'times']), - |$functionExpression.parametersValues->cast(@InstanceValue).values, + |$functionExpression.parametersValues->match([ + i:InstanceValue[1] | $i.values, + v:ValueSpecification[1] | $v + ]), |$functionExpression.parametersValues ); if ($name == 'minus' && $vals->size() == 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/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 7fea40450ee..808050f17ba 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 @@ -78,8 +78,8 @@ function <> meta::relational::functions::sqlQueryToString::memsq [ dynaFnToSql('adjust', $allStates, ^ToSql(format='adddate(%s)', transform={p:String[3] | $p->at(0) + ', INTERVAL ' + $p->at(1) + ' ' + $p->at(2)->mapToDBUnitType()})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), - dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), - dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='min(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='max(%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateMemSQL()})), @@ -109,6 +109,7 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('joinStrings', $allStates, ^ToSql(format='group_concat(%s separator %s)')), dynaFnToSql('left', $allStates, ^ToSql(format='left(%s, %s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), + dynaFnToSql('lpad', $allStates, ^ToSql(format='lpad(%s)', transform={p:String[2..*] | $p->concatenate(if ($p->size() == 2, | '\' \'', | []))->joinStrings(', ')})), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), @@ -127,6 +128,7 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('repeatString', $allStates, ^ToSql(format='%s', transform={p:String[2] | 'lpad(\'\', length(' + $p->at(0) + ') * ' + $p->at(1) + ', ' + $p->at(0) + ')'})), dynaFnToSql('right', $allStates, ^ToSql(format='right(%s, %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), + dynaFnToSql('rpad', $allStates, ^ToSql(format='rpad(%s)', transform={p:String[2..*] | $p->concatenate(if ($p->size() == 2, | '\' \'', | []))->joinStrings(', ')})), dynaFnToSql('rtrim', $allStates, ^ToSql(format='rtrim(%s)')), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('sha256', $allStates, ^ToSql(format='sha2(%s, 256)')), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/sqlserver/SqlServerManager.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/sqlserver/SqlServerManager.java index b841a5e7880..31b7c730aa7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/sqlserver/SqlServerManager.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/sqlserver/SqlServerManager.java @@ -17,6 +17,7 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy; +import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.DelegatedKerberosAuthenticationStrategy; import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager; import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.RelationalDatabaseCommands; @@ -24,6 +25,10 @@ public class SqlServerManager extends DatabaseManager { + private static final String SERVICE_PRINCIPAL_NAME = "ServerSpn"; + private static final String INTEGRATED_SECURITY = "integratedSecurity"; + private static final String AUTHENTICATION_SCHEMA = "authenticationScheme"; + @Override public MutableList getIds() { @@ -33,8 +38,27 @@ public MutableList getIds() @Override public String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties, AuthenticationStrategy authenticationStrategy) { + String additionalProperties = ""; + if (authenticationStrategy instanceof DelegatedKerberosAuthenticationStrategy) + { + additionalProperties = ";" + SERVICE_PRINCIPAL_NAME + "=" + getServerPrincipal((DelegatedKerberosAuthenticationStrategy) authenticationStrategy); + additionalProperties += ";" + INTEGRATED_SECURITY + "=true"; + additionalProperties += ";" + AUTHENTICATION_SCHEMA + "=JavaKerberos"; + } + String hostWithPort = host + ":" + port; - return "jdbc:sqlserver://" + hostWithPort + ";databaseName=" + databaseName; + return "jdbc:sqlserver://" + hostWithPort + ";databaseName=" + databaseName + additionalProperties; + } + + private String getServerPrincipal(DelegatedKerberosAuthenticationStrategy authenticationStrategy) + { + String serverProperty = authenticationStrategy.getServerPrincipal(); + if (serverProperty == null) + { + throw new RuntimeException("You must provide a serverPrincipal name for kerberos SqlServer connections"); + } + + return serverProperty; } @Override 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 4d236a931bd..aeb5b89c971 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 @@ -2283,7 +2283,13 @@ function meta::relational::functions::pureToSqlQuery::processSplitPart(f:Functio function meta::relational::functions::pureToSqlQuery::zeroToOneBasedIndex(v:ValueSpecification[1]):ValueSpecification[1] { $v->match([ - i:InstanceValue[1] | ^$i(values = $i.values->toOne()->cast(@Integer) + 1) + i:InstanceValue[1] | ^$i(values = $i.values->toOne()->cast(@Integer) + 1), + v:ValueSpecification[1] | ^SimpleFunctionExpression(multiplicity = PureOne, func = plus_Integer_MANY__Integer_1_, functionName = 'plus', + genericType = ^GenericType(rawType = Integer), importGroup = system::imports::coreImport, + parametersValues = ^InstanceValue(multiplicity = ZeroMany, genericType = ^GenericType(rawType = Integer), values = [ + $v, + ^InstanceValue(multiplicity = PureOne, genericType = ^GenericType(rawType = Integer), values = 1) + ]))->evaluateAndDeactivate() ]); } @@ -5370,6 +5376,7 @@ function meta::relational::functions::pureToSqlQuery::processTdsLambda(mapFn:Val e:Enum[1] | ^Literal(value=$e), e:Enumeration[1] | ^Literal(value=$e), f:SimpleFunctionExpression[1]|$f->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context), + v:VariableExpression[1] | $v->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context), i:InstanceValue[1]|$i->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context), f:FunctionDefinition[1]|$f.expressionSequence->at(0)->processTdsLambda($a, $returnColumnName,$vars, $state, $currentPropertyMapping, $context), v:PlanVarPlaceHolder[1]| ^Literal(value=^VarPlaceHolder(name=$v.name,type = $v.type, multiplicity = $v.multiplicity)) 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 5cc74e81a43..794de711539 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 @@ -214,12 +214,14 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS { let sql = toSQLString({|Person.all() ->project([ - col(p|splitPart($p.firstName, '|', 0), 'splitBar') + col(p|splitPart($p.firstName, '|', 0), 'splitBar'), + col(p|splitPart($p.firstName, '|', 1 + 1), 'splitBarExpression') ])->project([ - col(row:TDSRow[1] | splitPart($row.getString('splitBar'), ',', 1), 'splitComma') + col(row:TDSRow[1] | splitPart($row.getString('splitBar'), ',', 1), 'splitComma'), + col(row:TDSRow[1] | splitPart($row.getString('splitBarExpression'), ',', 1 + 1), 'splitCommaExpression') ])}, simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertEquals('select legend_h2_extension_split_part(legend_h2_extension_split_part("root".FIRSTNAME, \'|\', 1), \',\', 2) as "splitComma" from personTable as "root"', $sql); + assertEquals('select legend_h2_extension_split_part(legend_h2_extension_split_part("root".FIRSTNAME, \'|\', 1), \',\', 2) as "splitComma", legend_h2_extension_split_part(legend_h2_extension_split_part("root".FIRSTNAME, \'|\', ((1 + 1) + 1)), \',\', ((1 + 1) + 1)) as "splitCommaExpression" from personTable as "root"', $sql); } function <> meta::relational::tests::functions::sqlstring::testToSQLStringAscii():Boolean[1] diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java index 9991e4eff7e..d876c26f475 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/to/SQLGrammarComposer.java @@ -211,6 +211,12 @@ public String visit(NullLiteral val) return "NULL"; } + @Override + public String visit(ParameterExpression val) + { + return "$" + val.index; + } + @Override public String visit(NegativeExpression val) { 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 e7e98fce222..ed716f32f95 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 @@ -24,7 +24,7 @@ legend-engine-xt-sql-providers pom - Legend Engine - XTS - SQL - Providers + Legend Engine - XT - SQL - Providers legend-engine-xt-sql-providers-core diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel.definition.json b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel.definition.json index 43bd9be74c6..74f8f40bd6a 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel.definition.json +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel.definition.json @@ -2,6 +2,7 @@ "name": "core_external_query_sql_metamodel", "pattern": "(meta::external::query::sql)(::.*)?", "dependencies": [ - "platform" + "platform", + "platform_functions" ] } \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure index 37ad513ee78..ddee895f464 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/src/main/resources/core_external_query_sql_metamodel/metamodel.pure @@ -14,11 +14,11 @@ import meta::meta::external::query::sql::metamodel::*; -Class meta::external::query::sql::metamodel::Node +Class <> meta::external::query::sql::metamodel::Node { } -Class meta::external::query::sql::metamodel::Statement extends meta::external::query::sql::metamodel::Node +Class <> meta::external::query::sql::metamodel::Statement extends meta::external::query::sql::metamodel::Node { } @@ -30,11 +30,11 @@ Class meta::external::query::sql::metamodel::Query extends meta::external::query <> offset: meta::external::query::sql::metamodel::Expression[0..1]; } -Class meta::external::query::sql::metamodel::Relation extends meta::external::query::sql::metamodel::Node +Class <> meta::external::query::sql::metamodel::Relation extends meta::external::query::sql::metamodel::Node { } -Class meta::external::query::sql::metamodel::QueryBody extends meta::external::query::sql::metamodel::Relation +Class <>meta::external::query::sql::metamodel::QueryBody extends meta::external::query::sql::metamodel::Relation { } @@ -60,7 +60,7 @@ Class meta::external::query::sql::metamodel::QuerySpecification extends meta::ex <> offset: meta::external::query::sql::metamodel::Expression[0..1]; } -Class meta::external::query::sql::metamodel::SetOperation extends meta::external::query::sql::metamodel::QueryBody +Class <> meta::external::query::sql::metamodel::SetOperation extends meta::external::query::sql::metamodel::QueryBody { } @@ -84,7 +84,7 @@ Class meta::external::query::sql::metamodel::Select extends meta::external::quer <> selectItems: meta::external::query::sql::metamodel::SelectItem[*]; } -Class meta::external::query::sql::metamodel::SelectItem extends meta::external::query::sql::metamodel::Node +Class <> meta::external::query::sql::metamodel::SelectItem extends meta::external::query::sql::metamodel::Node { } @@ -109,11 +109,11 @@ Class meta::external::query::sql::metamodel::TableFunction extends meta::externa <> functionCall: meta::external::query::sql::metamodel::FunctionCall[1]; } -Class meta::external::query::sql::metamodel::Expression extends meta::external::query::sql::metamodel::Node +Class <> meta::external::query::sql::metamodel::Expression extends meta::external::query::sql::metamodel::Node { } -Class meta::external::query::sql::metamodel::Literal extends meta::external::query::sql::metamodel::Expression +Class <> meta::external::query::sql::metamodel::Literal extends meta::external::query::sql::metamodel::Expression { } @@ -170,6 +170,11 @@ Class meta::external::query::sql::metamodel::NamedArgumentExpression extends met <> expression: meta::external::query::sql::metamodel::Expression[1]; } +Class meta::external::query::sql::metamodel::ParameterExpression extends meta::external::query::sql::metamodel::Expression +{ + <> index: Integer[1]; +} + Class meta::external::query::sql::metamodel::LikePredicate extends meta::external::query::sql::metamodel::Expression { <> value: meta::external::query::sql::metamodel::Expression[1]; @@ -283,7 +288,7 @@ Class meta::external::query::sql::metamodel::Join extends meta::external::query: <> criteria: meta::external::query::sql::metamodel::JoinCriteria[0..1]; } -Class meta::external::query::sql::metamodel::JoinCriteria +Class <> meta::external::query::sql::metamodel::JoinCriteria { } 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 189a6656376..bae78d62bd3 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 @@ -85,15 +85,28 @@ function meta::external::query::sql::transformation::queryToPure::getPlanResult( { let plan = getPlan($context, $sources, $extensions); - let arguments = $context.parametersRecursive->map(p | - ^PlanParameter(name = $p.name, - value = parameterConstantValue($p.value, $p.variable.multiplicity->isToMany()), - plan = parameterPlan($p.value, $extensions)) - ); + let arguments = $context.parametersRecursive->getPlanParameters($extensions); ^PlanGenerationResult(plan = $plan, arguments = $arguments); } +function meta::external::query::sql::transformation::queryToPure::getPlanParameters(parameters:SQLPlaceholderParameter[*], extensions: meta::pure::extension::Extension[*]):PlanParameter[*] +{ + $parameters->map(p | createLambdaParameter($p.variable, $p.value->extractSourceArguments().value, [], rootContext([], $extensions)))->getPlanParameters($extensions) +} + +function meta::external::query::sql::transformation::queryToPure::getPlanParameters(parameters:SQLLambdaParameter[*], extensions: meta::pure::extension::Extension[*]):PlanParameter[*] +{ + $parameters->map(p | getPlanParameter($p.variable, $p.value, $extensions)); +} + +function meta::external::query::sql::transformation::queryToPure::getPlanParameter(variable:VariableExpression[1], value:ValueSpecification[1], extensions: meta::pure::extension::Extension[*]):PlanParameter[1] +{ + ^PlanParameter(name = $variable->evaluateAndDeactivate().name, + value = parameterConstantValue($value, $variable->evaluateAndDeactivate().multiplicity->isToMany()), + plan = parameterPlan($value, $extensions)) +} + function meta::external::query::sql::transformation::queryToPure::getPlan( context:SqlTransformContext[1], @@ -222,8 +235,10 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processUnion(union: Union[1], context: SqlTransformContext[1]): SqlTransformContext[1] { + debug('processUnion', $context.debug); let left = wrapWithFrom(processRelation($union.left, ^$context(root = false, id = $context.id + 1))); + let right = wrapWithFrom(processRelation($union.right, ^$context(root = false, id = $context.id + 3))); let newExp = appendTdsFunc($left.expression->toOne(), concatenate_TabularDataSet_1__TabularDataSet_1__TabularDataSet_1_, [list($right.expression->toOne())]); @@ -263,7 +278,7 @@ function <> meta::external::query::sql::transformation::queryToP a:AllColumns[1] | if ($a.prefix->isEmpty(), | $query.aliases;, - | $query.context($a.prefix).aliases->map(alias | + | $query.context($a.prefix).aliases->map(alias | let finalAlias = $query.alias($alias.name, $alias.alias, false); let realias = if ($alias.realias->isNotEmpty() && $finalAlias->isEmpty(), | $alias.realias, | $finalAlias.realias); @@ -281,14 +296,14 @@ function <> meta::external::query::sql::transformation::queryToP let currentSchema = $query.columns.name; - let restrict = if ($currentSchema != $expectedWithRealias.actual, - | ^$query(expression = processRestrict($expectedWithRealias.actual, $query)), + let restrict = if ($currentSchema != $expectedWithRealias.actual, + | ^$query(expression = processRestrict($expectedWithRealias.actual, $query)), | $query); let restrictSchema = $restrict.columns.name; - let final = if ($expected.alias != $restrictSchema, - | ^$restrict(expression = processRename($expected->filter(e | !$e.alias->in($restrictSchema)), $restrict)), + let final = if ($expected.alias != $restrictSchema, + | ^$restrict(expression = processRename($expected->filter(e | !$e.alias->in($restrictSchema)), $restrict)), | $restrict); let aliases = $final.columns.name->map(c | ^SQLColumnAlias(name = $c)); @@ -298,7 +313,7 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::extractAggregatesFromExpression(expression:meta::external::query::sql::metamodel::Expression[0..1]):meta::external::query::sql::metamodel::Expression[*] { - + walk($expression, t | $t, f:FunctionCall[1] | if (isExpressionAggregate($f, false), | $f, | $f.arguments->map(a | $a->extractAggregatesFromExpression())) @@ -307,8 +322,8 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::extractUsedColumnNames(expression:meta::external::query::sql::metamodel::Expression[*]):String[*] { - walk($expression, - q | $q, + walk($expression, + q | $q, q:QualifiedNameReference[1] | $q->extractNameFromExpression([]) )->removeDuplicates() } @@ -323,6 +338,11 @@ function <> meta::external::query::sql::transformation::queryToP let standard = $originalSelect.selectItems->removeAll($aggregates)->removeAll($windows); let havingExtensions = extractAggregatesFromExpression($having)->map(e | ^SingleColumn(expression = $e)); + let groupByExtensions = $groupBy->map(g | $g->match([ + i:IntegerLiteral[1] | [], + q:QualifiedNameReference[1] | [], + e:meta::external::query::sql::metamodel::Expression[1] | $e + ]))->map(e | ^SingleColumn(expression = $e)); let standardExtensions = $standard->filter(si | !$si->isNonAliasedSelectItemColumnReference() && !$si->isSelectItemAggregate())->cast(@SingleColumn); let windowExtensions = extractWindowExtensionExpressions($windows); @@ -338,24 +358,24 @@ function <> meta::external::query::sql::transformation::queryToP //1. it clashes with existing column //2. we need to carry a column through the lambda to be used in a group/agg/order/having clause let usedColumns = extractUsedColumnNames($groupBy->concatenate($orderBy)->concatenate($having) - ->concatenate($aggregates.expression)->concatenate($aggregates.expression)->concatenate($havingExtensions.expression) + ->concatenate($aggregates.expression)->concatenate($aggregates.expression)->concatenate($havingExtensions.expression)->concatenate($groupByExtensions.expression) )->filter(c | $columns->contains($c)); - let extensionPairs = $standardExtensions->concatenate($windowExtensions)->cast(@SingleColumn)->map(sc | + let extensionPairs = $standardExtensions->concatenate($windowExtensions)->concatenate($groupByExtensions)->cast(@SingleColumn)->map(sc | let name = extractNameFromSingleColumn($sc->toOne(), $context); pair($sc, if ($columns->contains($name) || $usedColumns->contains($name), | ^$sc(alias = $name + '_1'), | $sc)); ); - let extensions = $extensionPairs.second; + let extensions = $extensionPairs.second; - let extendRequired = $extensions->isNotEmpty() && ($isAggregate || $isWindow || $havingExtensions->isNotEmpty()); + let extendRequired = $extensions->isNotEmpty() && ($isAggregate || $isWindow || $havingExtensions->isNotEmpty() || $groupByExtensions->isNotEmpty()); let selectItems = $originalSelect.selectItems->map(si | let extension = $extensionPairs->filter(e | $e.first == $si)->first(); - if (!$extendRequired || $extension.first == $extension.second, - | $si, + if (!$extendRequired || $extension.first == $extension.second, + | $si, | $extension->toOne().second); ); @@ -372,7 +392,7 @@ function <> meta::external::query::sql::transformation::queryToP let ealias = extractAliasFromColumn($eis->cast(@SingleColumn)); pair($s, if ($si != $eis, | ^$alias(realias = $ealias.actual), | $alias));, - a:AllColumns[1] | + a:AllColumns[1] | let contexts = if ($a.prefix->isEmpty(), | $context.contexts->concatenate($context), | $context.context($a.prefix)); $contexts.aliases->map(a | pair(^SingleColumn(expression = ^QualifiedNameReference(name=^QualifiedName(parts = $a.expected))), $a)); ]); @@ -392,7 +412,7 @@ function <> meta::external::query::sql::transformation::queryToP | $extend); let olapGroupBy = if ($isWindow, - | processOlapGroupBy($windows, $select, $extensions, $havingExtensions, ^$context(expression = $group)), + | processOlapGroupBy($windows, $select, $extensions, $havingExtensions, $groupByExtensions, ^$context(expression = $group)), | $group); let distinctExp = if($select.distinct, @@ -405,7 +425,7 @@ function <> meta::external::query::sql::transformation::queryToP //we now want to add the current schema to the context aliases, to do this we lookup to see whether an aliased column has been re-named throughout //this projection code (eg in project) and update the alias accordingly - let newAliases = $aliases->map(pair | + let newAliases = $aliases->map(pair | let si = $pair.first; let alias = $pair.second; @@ -434,9 +454,9 @@ function <> meta::external::query::sql::transformation::queryToP ]); } -function <> meta::external::query::sql::transformation::queryToPure::processOlapGroupBy(windows:SelectItem[*], select: Select[1], extensions:SelectItem[*], havingExtensions:SelectItem[*], context: SqlTransformContext[1]):FunctionExpression[1] +function <> meta::external::query::sql::transformation::queryToPure::processOlapGroupBy(windows:SelectItem[*], select: Select[1], extensions:SelectItem[*], havingExtensions:SelectItem[*], groupByExtensions:SelectItem[*], context: SqlTransformContext[1]):FunctionExpression[1] { - let rename = ^$context(expression = processRename($select.selectItems->removeAll($windows)->removeAll($extensions)->removeAll($havingExtensions)->cast(@SingleColumn), $context)); + let rename = ^$context(expression = processRename($select.selectItems->removeAll($windows)->removeAll($extensions)->removeAll($havingExtensions)->removeAll($groupByExtensions)->cast(@SingleColumn), $context)); $windows->cast(@SingleColumn)->fold({item, acc | processWindowSingleColumn($item, $acc, $rename)}, $rename.expression->toOne()); } @@ -571,7 +591,7 @@ function <> meta::external::query::sql::transformation::queryToP let processor = functionProcessor($functionCall.name); - let func = if ($processor.isAggregate, + let func = if ($processor.isAggregate, | let extacted = $processor->cast(@AggregateFunctionProcessor).preProcess(^$functionCall(window = []), ^$functionCall(window = [])); let aggregation = processAggregationLambda($extacted.aggregate, Number, $context); @@ -688,7 +708,7 @@ function <> meta::external::query::sql::transformation::queryToP { $si->match([ a:AllColumns[1] | true, - s:SingleColumn[1] | + s:SingleColumn[1] | ($s.expression->instanceOf(QualifiedNameReference) && $s.alias->isEmpty()) || ($s.expression->instanceOf(QualifiedNameReference) && $s.alias == $s.expression->extractNameFromExpression([])) ]) } @@ -1137,20 +1157,26 @@ function <> meta::external::query::sql::transformation::queryToP $parameters->map(p | let argument = $arguments->filter(a | $a.name == $p.name); - let value = if ($argument->isEmpty(), + createLambdaParameter($p, $argument.value, $suffix, $context); + ) +} + +function <> meta::external::query::sql::transformation::queryToPure::createLambdaParameter(p:VariableExpression[1], expressions:Any[*], suffix:String[0..1], context: SqlTransformContext[1]):SQLLambdaParameter[*] +{ + let value = if ($expressions->isEmpty(), | iv([]), - | $argument.value->match([ + | $expressions->match([ e:meta::external::query::sql::metamodel::Expression[1] | $e->processExpression(rowExpressionContext(), $context)->convertValueSpecification($p.genericType.rawType->toOne()), - a:Any[*] | iv(convertValue($a, $p.genericType.rawType->toOne())) + a:Any[*] | iv(convertValue($a, $p->evaluateAndDeactivate().genericType.rawType->toOne())) ]); ); let name = if ($suffix->isNotEmpty(), | $p.name + '_' + $suffix->toOne(), | $p.name); - ^SQLLambdaParameter(name = $name, variable = ^$p(name = $name), value = $value); - ); + ^SQLLambdaParameter(variable = ^$p(name = $name), value = $value); } + function meta::external::query::sql::transformation::queryToPure::convertValueSpecification(v:ValueSpecification[1], type:Type[0..1]):ValueSpecification[1] { $type->match([ @@ -1372,6 +1398,7 @@ function meta::external::query::sql::transformation::queryToPure::extractNameFro n:NamedArgumentExpression[1] | $n.name + ' => ' + $n.expression->extractNameFromExpression($context), n:NegativeExpression[1] | '-' + $n.value->extractNameFromExpression($context), n:NotExpression[1] | 'NOT ' + $n.value->extractNameFromExpression($context), + p:ParameterExpression[1] | '$' + $p.index->toString(), q:QualifiedNameReference[1] | $q.name->extractNameFromQualifiedName($context), s:SimpleCaseExpression[1] | $s->convertToSearchedCaseExpression()->extractNameFromExpression($context), s:SearchedCaseExpression[1] | @@ -1455,6 +1482,7 @@ function <> meta::external::query::sql::transformation::queryToP n:NamedArgumentExpression[1] | fail('Named Argument Expressions only supported within function calls'); iv(1);, n:NegativeExpression[1] | processNegativeExpression($n, $expContext, $context), n:NotExpression[1] | processNotExpression($n, $expContext, $context), + p:ParameterExpression[1] | processParameterExpression($p, $expContext, $context), q:QualifiedNameReference[1] | processQualifiedNameReference($q, $expContext, $context), s:SimpleCaseExpression[1] | processSimpleCaseExpression($s, $expContext, $context), s:SearchedCaseExpression[1] | processSearchedCaseExpression($s, $expContext, $context), @@ -1463,6 +1491,12 @@ function <> meta::external::query::sql::transformation::queryToP ])->evaluateAndDeactivate(); } + +function <> meta::external::query::sql::transformation::queryToPure::processParameterExpression(p:ParameterExpression[1], expContext:SqlTransformExpressionContext[1], context:SqlTransformContext[1]):ValueSpecification[1] +{ + $context.positional($p)->convertValueSpecification($expContext.type); +} + function <> meta::external::query::sql::transformation::queryToPure::processLikePredicate(l:LikePredicate[1], expContext:SqlTransformExpressionContext[1], context:SqlTransformContext[1]):ValueSpecification[1] { //TODO add more support/look to map to matches handling the special characters @@ -1586,9 +1620,9 @@ function <> meta::external::query::sql::transformation::queryToP let expression = processExpression($c.expression, $expContext, $context); if ($expression->evaluateAndDeactivate().multiplicity == PureZero, - | + | processCastAsCast($c, $expression, $expContext, $context), - | + | let type = $expression.genericType.rawType->toOne(); let castName = $c.type.name->toUpper(); @@ -1736,8 +1770,8 @@ function <> meta::external::query::sql::transformation::queryToP pair(TrimMode.BOTH, 'btrim') ]->getValue($t.mode); - ^FunctionCall(name = ^QualifiedName(parts = $name), - distinct = false, + ^FunctionCall(name = ^QualifiedName(parts = $name), + distinct = false, arguments = $t.value->concatenate($t.characters))->processFunctionCall($expContext, $context); } @@ -2075,28 +2109,28 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('concat', String, {args, fc, ctx | sfe(plus_String_MANY__String_1_, iv($args)) }), - processor('decode', String, {args, fc, ctx | + processor('decode', String, {args, fc, ctx | assert($args->size() == 2, | 'incorrect number of args to decode'); - + let type = $args->at(1)->reactivate()->cast(@String)->toOne(); - + let func = [ pair('base64', decodeBase64_String_1__String_1_) ]->getValue($type->toLower()); nullOrSfe($func, $args->at(0)); - }), - processor('encode', String, {args, fc, ctx | + }), + processor('encode', String, {args, fc, ctx | assert($args->size() == 2, | 'incorrect number of args to encode'); - + let type = $args->at(1)->reactivate()->cast(@String)->toOne(); - + let func = [ pair('base64', encodeBase64_String_1__String_1_) ]->getValue($type->toLower()); nullOrSfe($func, $args->at(0)); - }), + }), processor('length', length_String_1__Integer_1_), processor('lower', toLower_String_1__String_1_), processor('lpad', String, {args, fc, ctx | processPad($args, true)}), @@ -2174,12 +2208,12 @@ function meta::external::query::sql::transformation::queryToPure::functionProces nullOrSfe($func, $args->at(1)); }), - processor('localtimestamp', Date, {args, fc, ctx | + processor('localtimestamp', Date, {args, fc, ctx | assertEquals(0, $args->size(), 'only zero arg localtimestamp supported'); sfe(now__DateTime_1_, []); }), - processor('make_date', Date, {args, fc, ctx | + processor('make_date', Date, {args, fc, ctx | assertEquals(3, $args->size(), 'incorrect number of args for make_date'); let year = $args->at(0)->reactivate()->toOne()->cast(@Integer); @@ -2191,7 +2225,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces iv($date); }), - processor('make_timestamp', Date, {args, fc, ctx | + processor('make_timestamp', Date, {args, fc, ctx | assertEquals(6, $args->size(), 'incorrect number of args for make_timestamp'); let year = $args->at(0)->reactivate()->toOne()->cast(@Integer); @@ -2204,7 +2238,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces let date = date($year, $month, $day, $hours, $minutes, $seconds); iv($date); - }), + }), //COLLECTION processor('coalesce', [], {args, fc, ctx | @@ -2273,7 +2307,7 @@ function <> meta::external::query::sql::transformation::queryToP $args->filter(a | $a->match([ i:InstanceValue[1] | !($i.genericType.rawType == Nil && $i.values->isEmpty()), v:ValueSpecification[1] | true - ])); + ])); } function <> meta::external::query::sql::transformation::queryToPure::toCharFormats():Pair ValueSpecification[1]}>>[*] @@ -2569,6 +2603,7 @@ function <> meta::external::query::sql::transformation::queryToP l:LogicalBinaryExpression[1] | Boolean, n:NegativeExpression[1] | getExpressionType($n.value, $context), n:NotExpression[1] | Boolean, + p:ParameterExpression[1] | $context.positional($p)->evaluateAndDeactivate().genericType.rawType->toOne(), q:QualifiedNameReference[1] | $context.columnByNameParts($q.name.parts, true).type->toOne(), s:SearchedCaseExpression[1] | caseExpressionType($s.whenClauses, $s.defaultValue, $context), s:SimpleCaseExpression[1] | caseExpressionType($s.whenClauses, $s.defaultValue, $context), @@ -2637,6 +2672,7 @@ function <> meta::external::query::sql::transformation::queryToP 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_), @@ -3079,6 +3115,7 @@ function <> meta::external::query::sql::transformation::queryToP ^$f(window = $window, group = $group, arguments = $f.arguments->map(a | $a->walk($extras)));, i:InListExpression[1] | ^$i(values = $i.values->map(v | $v->walk($extras))), + i:InPredicate[1] | ^$i(value = $i.value->walk($extras)->toOne(), valueList = $i.valueList->walk($extras)->toOne()), i:IsNotNullPredicate[1] | ^$i(value = $i.value->walk($extras)->toOne()), i:IsNullPredicate[1] | ^$i(value = $i.value->walk($extras)->toOne()), l:LikePredicate[1] | ^$l(value = $l.value->walk($extras)->toOne(), pattern = $l.pattern->walk($extras)->toOne()), @@ -3184,7 +3221,7 @@ function <> meta::external::query::sql::transformation::queryToP let zipped = $func->getParameters()->evaluateAndDeactivate()->zip($pvs); - let parameters = $zipped->map(p | + let parameters = $zipped->map(p | [ pair($p.first.multiplicity->hasLowerBound() && $p.second->isZeroOne(), | sfe(toOne_T_MANY__T_1_, $p.second->evaluateAndDeactivate().genericType, [], PureOne, $p.second->evaluateAndDeactivate())), @@ -3277,15 +3314,20 @@ Class meta::external::query::sql::transformation::queryToPure::SQLColumnAlias Class meta::external::query::sql::transformation::queryToPure::SQLLambdaParameter { - name:String[1]; variable: VariableExpression[1]; value: ValueSpecification[1]; toString(){ - $this.name; + $this.variable->evaluateAndDeactivate().name; }:String[1]; } +Class meta::external::query::sql::transformation::queryToPure::SQLPlaceholderParameter +{ + variable: VariableExpression[1]; + value: meta::external::query::sql::metamodel::Expression[1]; +} + function meta::external::query::sql::transformation::queryToPure::rootContext(sources: SQLSource[*], extensions: meta::pure::extension::Extension[*]):SqlTransformContext[1] { context(0, true, $sources, $extensions, true, noDebug()); @@ -3306,6 +3348,7 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte expression: FunctionExpression[0..1]; assignments: ValueSpecification[*]; parameters: SQLLambdaParameter[*]; + positionals: VariableExpression[*]; source: SQLSource[0..1]; extensions: meta::pure::extension::Extension[*]; aliases:SQLColumnAlias[*]; @@ -3313,6 +3356,15 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte scopeWithFrom: Boolean[0..1]; debug: DebugContext[1]; + positional(p:ParameterExpression[1]){ + let name = '_' + $p.index->toString(); + let found = $this.positionals->filter(p | $p.name == $name); + + assertEquals(1, $found->size(), | 'no positional found with name ' + $name); + + $found->toOne(); + }:VariableExpression[1]; + assignmentsRecursive(){ $this.assignments->concatenate($this.contexts.assignmentsRecursive()) }:ValueSpecification[*]; @@ -3327,6 +3379,7 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte }:String[1]; toString(indent:String[1]) { + $indent + 'id ' + $this.id->toString() + '\n' + $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', | '') + @@ -3388,7 +3441,7 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte }:SQLColumnAlias[0..1]; lambda(){ - lambda(functionType($this.parametersRecursive.variable, ^GenericType(rawType = TabularDataSet), PureOne), + lambda(functionType($this.parametersRecursive.variable->concatenate($this.positionals), ^GenericType(rawType = TabularDataSet), PureOne), $this.assignmentsRecursive->concatenate($this.expression)->evaluateAndDeactivate() ); }: LambdaFunction[1]; @@ -3396,7 +3449,7 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte let source = $this.sources->filter(s | $s.matches($type, $arguments))->first(); assertNotEquals(0, $source->size(), 'No source found for type ' + $type); - + $source->toOne(); }:SQLSource[1]; } @@ -3569,4 +3622,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 24131ddf746..40e6cb6a92c 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 @@ -883,6 +883,24 @@ function <> meta::external::query::sql::transformation::queryToPure:: ) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testGroupByExpression():Boolean[1] +{ + //NOTE: group by complex expressions, cannot reference projected columns, only source columns + test( + 'SELECT sum(Integer) AS "sum", String FROM service."/service/service1" GROUP BY String, (case when "String" = \'N/A\' then \'\' else "String" end)', + + {| 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] | if ($row.getString('String') == 'N/A', | '', | $row.getString('String')), 'CASE WHEN String = N/A THEN ELSE String END') + ]) + ->groupBy(['String', 'CASE WHEN String = N/A THEN ELSE String END'], agg('sum', row | $row.getInteger('Integer'), y | $y->sum())) + ->restrict(['sum', 'String']) + }, false) +} + //HAVING function <> meta::external::query::sql::transformation::queryToPure::tests::testHaving():Boolean[1] { diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java index 06b2684782c..6a6dcb8d076 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java @@ -241,6 +241,12 @@ public Set visit(NullLiteral val) return Collections.emptySet(); } + @Override + public Set visit(ParameterExpression val) + { + return Collections.emptySet(); + } + @Override public Set visit(QualifiedNameReference val) { From 402959553d55efdedf9b00ebc520a0800cf3efd3 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Tue, 2 Jan 2024 09:21:53 +0000 Subject: [PATCH 44/54] SQLServer - sql2string translations (#2518) * SQLServer - fix translations --- .../sqlQueryToString/sqlServerExtension.pure | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) 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 c49bb926c7d..2ac7b07136e 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 @@ -39,11 +39,13 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe isBooleanLiteralSupported = true, isDbReservedIdentifier = {str:String[1]| $str->in($reservedWords)}, literalProcessor = $literalProcessor, + windowColumnProcessor = processWindowColumn_WindowColumn_1__SqlGenerationContext_1__String_1_, joinStringsProcessor = processJoinStringsOperationForSqlServer_JoinStrings_1__SqlGenerationContext_1__String_1_, selectSQLQueryProcessor = processSelectSQLQueryDefault_SelectSQLQuery_1__SqlGenerationContext_1__Boolean_1__String_1_, columnNameToIdentifier = columnNameToIdentifierDefault_String_1__DbConfig_1__String_1_, identifierProcessor = processIdentifierWithDoubleQuotes_String_1__DbConfig_1__String_1_, - dynaFuncDispatch = $dynaFuncDispatch + dynaFuncDispatch = $dynaFuncDispatch, + ddlCommandsTranslator = getDDLCommandsTranslatorDefault() ); } @@ -52,10 +54,14 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe let allStates = allGenerationStates(); [ + dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atn2(%s,%s)')), + dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), + dynaFnToSql('dateDiff', $allStates, ^ToSql(format='datediff(%s,%s,%s)', transform={p:String[*]|[$p->at(2)->replace('\'', '')->processDateDiffDurationUnitForSqlServer(),$p->at(0),$p->at(1)]})), dynaFnToSql('datePart', $allStates, ^ToSql(format='cast(%s as date)')), dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='datepart(day, %s)')), + dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='datename(weekday, %s)')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='datepart(dw, %s)')), dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='datepart(dayofyear, %s)')), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='dateadd(day, -(day(cast(%s as date)) - 1), cast(%s as date))', transform={p:String[1] | $p->repeat(2)})), @@ -64,24 +70,31 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='dateadd(qq, datediff(qq, 0, getdate()), 0)')), dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='dateadd(yy, datediff(yy, 0, getdate()), 0)')), dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='dateadd(yy, datediff(yy, 0, %s), 0)')), - dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), + dynaFnToSql('hour', $allStates, ^ToSql(format='datepart(hh, %s)')), + dynaFnToSql('indexOf', $allStates, ^ToSql(format='charindex(%s)', transform={p:String[2] | $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='len(%s)')), - dynaFnToSql('md5', $allStates, ^ToSql(format='hashbytes(\'MD5\', %s)')), - dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), + dynaFnToSql('log', $allStates, ^ToSql(format='log(%s)')), + dynaFnToSql('lpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | 'replicate(' + if ($p->size() == 2, | ' ', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + ')) + ' + $p->at(0)})), + dynaFnToSql('md5', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'MD5\', %s), 2))')), + dynaFnToSql('minute', $allStates, ^ToSql(format='datepart(mi, %s)')), + dynaFnToSql('mod', $allStates, ^ToSql(format='%s %% %s')), + dynaFnToSql('month', $allStates, ^ToSql(format='datename(month, %s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('now', $allStates, ^ToSql(format='getdate()')), dynaFnToSql('parseFloat', $allStates, ^ToSql(format='cast(%s as float)')), dynaFnToSql('parseInteger', $allStates, ^ToSql(format='cast(%s as integer)')), dynaFnToSql('position', $allStates, ^ToSql(format='charindex(%s, %s)')), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), + dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='datepart(qq, %s)')), + dynaFnToSql('repeatString', $allStates, ^ToSql(format='replicate(%s, %s)')), dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, 0)')), - dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), - dynaFnToSql('sha1', $allStates, ^ToSql(format='hashbytes(\'SHA1\', %s)')), - dynaFnToSql('sha256', $allStates, ^ToSql(format='hashbytes(\'SHA2_256\', %s)')), + dynaFnToSql('rpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | $p->at(0) + ' + replicate(' + if ($p->size() == 2, | ' ', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + '))'})), + dynaFnToSql('second', $allStates, ^ToSql(format='datepart(ss, %s)')), + dynaFnToSql('sha1', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'SHA1\', %s), 2))')), + dynaFnToSql('sha256', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'SHA2_256\', %s), 2))')), + dynaFnToSql('splitPart', $allStates, ^ToSql(format='coalesce((select value from string_split(%s, %s, 1) WHERE ordinal = %s),\'\')')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stdevp(%s)')), dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stdev(%s)')), @@ -92,7 +105,7 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('variancePopulation', $allStates, ^ToSql(format='varp(%s)')), dynaFnToSql('varianceSample', $allStates, ^ToSql(format='var(%s)')), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='datepart(wk, %s)')), - dynaFnToSql('year', $allStates, ^ToSql(format='year(wk, %s)')) + dynaFnToSql('year', $allStates, ^ToSql(format='year(%s)')) ]; } @@ -100,3 +113,10 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe { processJoinStringsOperation($js, $sgc, [], {strs, sep| $strs->joinStrings(if('\'\'' == $sep, |'+', |'+' + $sep + '+'))}); } + +function <> meta::relational::functions::sqlQueryToString::sqlServer::processDateDiffDurationUnitForSqlServer(durationUnit:String[1]):String[1] +{ + let durationEnumNames = [DurationUnit.YEARS,DurationUnit.MONTHS,DurationUnit.WEEKS,DurationUnit.DAYS,DurationUnit.HOURS,DurationUnit.MINUTES,DurationUnit.SECONDS,DurationUnit.MILLISECONDS]->map(e|$e->toString()); + let durationDbNames = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; + $durationEnumNames->zip($durationDbNames)->filter(h | $h.first == $durationUnit).second->toOne(); +} From ce0c55ecc5abddedd98ff69e74c3faabf0a5af88 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Tue, 2 Jan 2024 14:12:16 -0500 Subject: [PATCH 45/54] Move generation logic to Pure (#2519) * Check string length before substring * Move generation to logic to pure * fix dependencies * fix dependencies * fix dependencies --- .../core_hostedservice.definition.json | 1 - .../pom.xml | 17 +- .../core_snowflakeapp.definition.json | 8 + .../generation/generation.pure | 34 ++++ .../showcase/showcaseModel.pure | 175 ++++++++++++++++++ .../showcase/showcaseNativeApps.pure | 31 ++++ 6 files changed, 264 insertions(+), 2 deletions(-) create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/generation/generation.pure create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseModel.pure create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseNativeApps.pure diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json index 40429ddca81..65e20406065 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json @@ -2,7 +2,6 @@ "name": "core_hostedservice", "pattern": "(meta::external::function::activator::hostedService|meta::protocols)(::.*)?", "dependencies": [ - "platform", "platform", "platform_dsl_graph", "platform_dsl_mapping", 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 80854b7fbdd..478229db19f 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 @@ -118,7 +118,22 @@ org.finos.legend.pure legend-pure-m3-core - + + org.finos.legend.pure + legend-pure-m2-dsl-mapping-pure + + + org.finos.legend.pure + legend-pure-m2-store-relational-pure + + + org.finos.legend.engine + legend-engine-pure-platform-dsl-mapping-java + + + org.finos.legend.engine + legend-engine-pure-platform-store-relational-java + org.finos.legend.pure diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp.definition.json b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp.definition.json index cc4f5c58b1d..9fb456e44dd 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp.definition.json +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp.definition.json @@ -2,8 +2,16 @@ "name": "core_snowflakeapp", "pattern": "(meta::external::function::activator::snowflakeApp|meta::protocols)(::.*)?", "dependencies": [ + "core", "platform", + "platform_dsl_graph", + "platform_dsl_mapping", + "platform_store_relational", + "platform_functions", + "platform_functions_json", + "core_relational", "core_function_activator", + "core_functions", "core_relational" ] } \ No newline at end of file diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/generation/generation.pure b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/generation/generation.pure new file mode 100644 index 00000000000..8ea8111e0f6 --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/generation/generation.pure @@ -0,0 +1,34 @@ +import meta::external::function::activator::snowflakeApp::generation::*; +import meta::relational::mapping::*; +import meta::pure::executionPlan::*; + + +function meta::external::function::activator::snowflakeApp::generation::generateArtifact(s: meta::external::function::activator::snowflakeApp::SnowflakeApp[1]):Any[*] +{ + let extensions = meta::external::format::shared::externalFormatExtension()->concatenate(meta::relational::extension::relationalExtensions()); + meta::external::function::activator::snowflakeApp::generation::generateArtifact($s, $extensions); +} + +function meta::external::function::activator::snowflakeApp::generation::generateArtifact(s: meta::external::function::activator::snowflakeApp::SnowflakeApp[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let plan = meta::pure::executionPlan::executionPlan($s.function->cast(@ConcreteFunctionDefinition),$extensions ); + let resultStub = generateResultTypeStub($plan.rootExecutionNode.resultType->cast(@TDSResultType), $extensions); + let generatedQuery = $plan.rootExecutionNode->allNodes($extensions)->filter(n|$n->instanceOf(SQLExecutionNode))->last()->cast(@SQLExecutionNode).sqlQuery->toOne('candidate query not found'); + 'CREATE OR REPLACE SECURE FUNCTION '+ $s.applicationName->toUpper()+ ' RETURNS TABLE ('+ $resultStub+ ') LANGUAGE SQL AS \''+ $generatedQuery +'\';'; + +} + +function meta::external::function::activator::snowflakeApp::generation::generateResultTypeStub(r: TDSResultType[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let tdsTypeToRelationalTypeMap = TdsTypeToRelationalTypeMap(); + $r.tdsColumns->map(c|'"'+ $c.name->toUpper() + '" '+ $tdsTypeToRelationalTypeMap->get($c.type->toOne('Column type missing for column: '+$c.name))->toOne('Relational type missing for type: '+ $c.type->toOne()->toString()))->joinStrings(','); +} + +function meta::external::function::activator::snowflakeApp::generation::TdsTypeToRelationalTypeMap():Map[1] +{ + [pair(String, 'VARCHAR(16777216)'), + pair(Boolean, 'boolean'), + pair(Integer, 'number'), + pair(Float, 'number') + ]->newMap() +} \ No newline at end of file diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseModel.pure b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseModel.pure new file mode 100644 index 00000000000..799b1b8fdf7 --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseModel.pure @@ -0,0 +1,175 @@ + +import meta::external::function::activator::snowflakeApp::tests::*; +import meta::external::function::activator::snowflakeApp::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::*; + + +Class meta::external::function::activator::snowflakeApp::tests::model::simple::PersonX +{ + firstName : String[1]; + lastName : String[1]; + otherNames : String[*]; + extraInformation : String[0..1]; + manager : PersonX[0..1]; + age : Integer[0..1]; + nickName : String[0..1]; + activeEmployment: Boolean[0..1]; + name(){$this.firstName+' '+$this.lastName}:String[1]; + +} + +function meta::external::function::activator::snowflakeApp::tests::testRuntime(db:Database[1]):Runtime[1] +{ + testRuntime(testDatabaseConnection($db,[]->cast(@String))); +} + +function meta::external::function::activator::snowflakeApp::tests::testRelationalConnection():ConnectionStore[1] +{ + ^ConnectionStore( + element = dbInc ,connection= + ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv = ''), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() + )) +} + +function <> meta::external::function::activator::snowflakeApp::tests::testRuntime(testConnection:ConnectionStore[1]):Runtime[1] +{ + ^Runtime(connectionStores = $testConnection) +} + +function <> meta::external::function::activator::snowflakeApp::tests::testDatabaseConnection(db:Database[1], timeZone:String[0..1]):ConnectionStore[1] +{ + ^ConnectionStore( + element = $db, + connection= + ^TestDatabaseConnection( + type = DatabaseType.H2, + timeZone = if($timeZone->isEmpty(), |'GMT', |$timeZone) + )); +} + + +###Mapping + +import meta::external::function::activator::snowflakeApp::tests::model::simple::*; +import meta::external::function::activator::snowflakeApp::tests::*; + + +Mapping meta::external::function::activator::snowflakeApp::tests::simpleRelationalMapping +( + + PersonX : Relational + { + scope([dbInc]) + ( + firstName : personTable.FIRSTNAME, + age : personTable.AGE + ), + scope([dbInc]default.personTable) + ( + lastName : LASTNAME + ), + manager : [dbInc]@Person_Manager + } + + +) + + + +Mapping meta::external::function::activator::snowflakeApp::tests::simpleRelationalMapping2 +( + + PersonX : Relational + { + scope([dbInc]) + ( + firstName : concat(personTable.FIRSTNAME,'__X'), + age : personTable.AGE + ), + scope([dbInc]default.personTable) + ( + lastName : concat(LASTNAME,'__X') + ), + manager : [dbInc]@Person_Manager + } + + +) + + +###Relational +Database meta::external::function::activator::snowflakeApp::tests::dbInc +( + Table personTable (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), AGE INT, ADDRESSID INT, FIRMID INT, MANAGERID INT) + Table validPersonTable (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), AGE INT, ADDRESSID INT, FIRMID INT, MANAGERID INT) + Table PersonTableExtension (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), AGE INT, ADDRESSID INT, FIRMID INT, MANAGERID INT, birthDate DATE) + Table differentPersonTable (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), AGE INT, ADDRESSID INT, FIRMID INT, MANAGERID INT) + + Table firmTable(ID INT PRIMARY KEY, LEGALNAME VARCHAR(200), ADDRESSID INT, CEOID INT) + Table firmExtensionTable(firmId INT PRIMARY KEY, legalName VARCHAR(200), establishedDate DATE) + Table otherFirmTable(ID INT PRIMARY KEY, LEGALNAME VARCHAR(200), ADDRESSID INT) + + Table addressTable(ID INT PRIMARY KEY, TYPE INT, NAME VARCHAR(200), STREET VARCHAR(100), COMMENTS VARCHAR(100)) + Table locationTable(ID INT PRIMARY KEY, PERSONID INT, PLACE VARCHAR(200),date DATE) + Table placeOfInterestTable(ID INT PRIMARY KEY,locationID INT PRIMARY KEY, NAME VARCHAR(200)) + + View PersonFirmView + ( + PERSON_ID: personTable.ID PRIMARY KEY, + lastName: personTable.LASTNAME, + firm_name : @Firm_Person | firmTable.LEGALNAME + ) + + View FirstNameAddress + ( + ~distinct + firstName: personTable.FIRSTNAME PRIMARY KEY, + address : @Address_Person | addressTable.NAME PRIMARY KEY + ) + + View personViewWithGroupBy + ( + ~groupBy(personTable.ID) + id: personTable.ID PRIMARY KEY, + maxage: max(personTable.AGE) + ) + + View PersonViewWithDistinct + ( + ~distinct + id: @PersonWithPersonView| personTable.ID PRIMARY KEY, + firstName: @PersonWithPersonView| personTable.FIRSTNAME, + lastName: @PersonWithPersonView|personTable.LASTNAME, + firmId: @PersonWithPersonView|personTable.FIRMID + ) + + Schema productSchema + ( + Table productTable(ID INT PRIMARY KEY, NAME VARCHAR(200)) + ) + + Filter FirmXFilter(firmTable.LEGALNAME = 'Firm X') + Filter FirmBFilter(firmTable.LEGALNAME = 'Firm B') + + Join personViewWithFirmTable(firmTable.ID = PersonViewWithDistinct.firmId) + Join PersonWithPersonView(personTable.ID = personViewWithGroupBy.id and personTable.AGE = personViewWithGroupBy.maxage) + Join Address_Firm(addressTable.ID = firmTable.ADDRESSID) + Join Address_Person(addressTable.ID = personTable.ADDRESSID) + Join Firm_Ceo(firmTable.CEOID = personTable.ID) + Join Firm_Person(firmTable.ID = personTable.FIRMID) + Join Firm_Person1(firmTable.ID = personTable.FIRMID and firmTable.LEGALNAME = 'Firm X') + Join Firm_Person2(firmTable.ID = personTable.FIRMID and personTable.FIRSTNAME = 'Peter') + Join FirmExtension_PersonExtension(firmExtensionTable.firmId = PersonTableExtension.FIRMID) + Join Person_Location(personTable.ID = locationTable.PERSONID) + Join Person_Manager(personTable.MANAGERID = {target}.ID) + Join location_PlaceOfInterest(locationTable.ID = placeOfInterestTable.locationID) + Join Person_OtherFirm(personTable.FIRMID = otherFirmTable.ID) + +) diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseNativeApps.pure b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseNativeApps.pure new file mode 100644 index 00000000000..07b2df4b31d --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/showcase/showcaseNativeApps.pure @@ -0,0 +1,31 @@ +import meta::external::function::activator::snowflakeApp::generation::*; +import meta::external::store::relational::runtime::*; +import meta::pure::mapping::*; +import meta::external::function::activator::snowflakeApp::tests::model::simple::*; +import meta::external::function::activator::snowflakeApp::tests::*; +import meta::external::function::activator::snowflakeApp::*; + +function meta::external::function::activator::snowflakeApp::tests::defaultConfig():SnowflakeDeploymentConfiguration[1] +{ + ^SnowflakeDeploymentConfiguration(target = testRelationalConnection().connection->cast(@RelationalDatabaseConnection) ); +} + +function meta::external::function::activator::snowflakeApp::tests::simpleApp():Any[*] +{ + let app = ^SnowflakeApp + ( + applicationName = 'App1', + owner = 'owner1', + description = 'bla bla', + activationConfiguration = defaultConfig() , + function = meta::external::function::activator::snowflakeApp::tests::simpleRelationalfunction__TabularDataSet_1_ + ); + let generatedQuery = $app->generateArtifact(); + //isMulti +} + +function meta::external::function::activator::snowflakeApp::tests::simpleRelationalfunction():TabularDataSet[1] +{ + PersonX.all()->filter(p|$p.firstName == 'haha')->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')]) + ->from(simpleRelationalMapping, testRuntime(dbInc)) +} \ No newline at end of file From 5445aa3c9257fde2001aaeb1a6537c77cba45a70 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Thu, 4 Jan 2024 13:01:02 +0000 Subject: [PATCH 46/54] SQL - further SQL translations (#2523) * SQL - more translations/fixes/refactors --- .../sqlQueryToString/athenaExtension.pure | 59 +++++++++++---- .../sqlQueryToString/bigQueryExtension.pure | 29 ++++++-- .../sqlQueryToString/databricksExtension.pure | 11 ++- .../sqlQueryToString/memSQLExtension.pure | 1 - .../sqlQueryToString/postgresExtension.pure | 38 ++++++++-- .../sqlQueryToString/prestoExtension.pure | 3 - .../sqlQueryToString/redshiftExtension.pure | 30 ++++++-- .../sqlQueryToString/snowflakeExtension.pure | 16 ++-- .../sqlQueryToString/spannerExtension.pure | 74 +++++++++---------- .../sqlQueryToString/sparkSQLExtension.pure | 5 -- .../sqlQueryToString/sqlServerExtension.pure | 39 +++++++++- .../sqlQueryToString/sybaseASEExtension.pure | 5 -- .../sqlQueryToString/sybaseIQExtension.pure | 5 -- .../sqlQueryToString/trinoExtension.pure | 5 -- .../dbSpecific/db2/db2Extension.pure | 3 - .../dbSpecific/h2/h2Extension1_4_200.pure | 5 -- .../dbSpecific/h2/h2Extension2_1_214.pure | 5 -- .../sqlQueryToString/extensionDefaults.pure | 5 ++ 18 files changed, 218 insertions(+), 120 deletions(-) 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 8c0b53dc00c..a397c24abfa 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 @@ -33,7 +33,9 @@ function <> meta::relational::functions::sqlQueryToString::athen let reservedWords = defaultReservedWords(); let literalProcessors = getDefaultLiteralProcessors()->putAll(getLiteralProcessorsForAthena()); let literalProcessor = {type:Type[1]| $literalProcessors->get(if($type->instanceOf(Enumeration), | Enum, | $type))->toOne()}; - let dynaFuncDispatch = getDynaFunctionToSqlForAthena()->groupBy(d| $d.funcName)->getDynaFunctionDispatcher(); + + let dynaFuncDispatch = getDynaFunctionToSqlDefault($literalProcessor)->groupBy(d| $d.funcName)->putAll( + getDynaFunctionToSqlForAthena()->groupBy(d| $d.funcName))->getDynaFunctionDispatcher(); ^DbExtension( isBooleanLiteralSupported = true, @@ -141,22 +143,46 @@ function <> meta::relational::functions::sqlQueryToString::athen dynaFnToSql('and', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' and ')})), dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)')), + dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), + dynaFnToSql('convertVarchar128', $allStates, ^ToSql(format='cast(%s as VARCHAR(128))')), dynaFnToSql('count', $allStates, ^ToSql(format='count(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), + dynaFnToSql('dateDiff', $allStates, ^ToSql(format='date_diff(%s,%s,%s)', transform={p:String[*]|[$p->at(2)->replace('\'', '')->processDateDiffDurationUnitForAthena(),$p->at(0),$p->at(1)]})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), - dynaFnToSql('equal', $allStates, ^ToSql(format='%s = %s')), - dynaFnToSql('greaterThan', $allStates, ^ToSql(format='%s > %s')), - dynaFnToSql('greaterThanEqual', $allStates, ^ToSql(format='%s >= %s')), - dynaFnToSql('if', $allStates, ^ToSql(format='case when %s then %s else %s end', parametersWithinWhenClause = [true, false, false])), + dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='mod(day_of_week(%s),7)+1')), + dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date_trunc(\'month\', %s)')), + dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date_trunc(\'quarter\', %s)')), + dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='cast(date_trunc(\'month\', current_date) as timestamp)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='cast(date_trunc(\'quarter\', current_date) as timestamp)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='cast(date_trunc(\'year\', current_date) as timestamp)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date_trunc(\'week\', %s)')), + dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='date_trunc(\'year\', %s)')), + dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), dynaFnToSql('in', $allStates, ^ToSql(format='%s in %s', transform={p:String[2] | if($p->at(1)->startsWith('(') && $p->at(1)->endsWith(')'), | $p, | [$p->at(0), ('(' + $p->at(1) + ')')])})), - dynaFnToSql('isEmpty', $allStates, ^ToSql(format='%s is null')), - dynaFnToSql('isNotEmpty', $allStates, ^ToSql(format='%s is not null')), - dynaFnToSql('isNotNull', $allStates, ^ToSql(format='%s is not null')), - dynaFnToSql('isNull', $allStates, ^ToSql(format='%s is null')), - dynaFnToSql('lessThan', $allStates, ^ToSql(format='%s < %s')), - dynaFnToSql('lessThanEqual', $allStates, ^ToSql(format='%s <= %s')), - dynaFnToSql('notEqual', $allStates, ^ToSql(format='%s != %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)')), + dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), + dynaFnToSql('matches', $allStates, ^ToSql(format=regexpLikePattern('%s','%s'), transform={p:String[2]|$p->transformRegexpParams()})), + dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), + dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), + dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), + dynaFnToSql('now', $allStates, ^ToSql(format='current_timestamp')), dynaFnToSql('or', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' or ')})), - dynaFnToSql('sqlNull', $allStates, ^ToSql(format='null')) + dynaFnToSql('parseDate', $allStates, ^ToSql(format='date_parse(%s,%s)')), + dynaFnToSql('parseFloat', $allStates, ^ToSql(format='cast(%s as double)')), + dynaFnToSql('parseInteger', $allStates, ^ToSql(format='cast(%s as integer)')), + dynaFnToSql('position', $allStates, ^ToSql(format='position(%s in %s)')), + dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), + dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), + //dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), + dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), + dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), + 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)')), + dynaFnToSql('today', $allStates, ^ToSql(format='cast(current_date as timestamp)')), + dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), + dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='week(%s)')), + dynaFnToSql('year', $allStates, ^ToSql(format='year(%s)')) ]; } @@ -179,3 +205,10 @@ function <> meta::relational::functions::sqlQueryToString::athen if (eq($opStr, ''), |'', | ' ' + $format.separator + 'where ' + $opStr) + if ($s.orderBy->isEmpty(),|'',| ' ' + $format.separator + 'order by '+ $s.orderBy->processOrderBy($dbConfig, $format->indent(), $config, $extensions)->makeString(',')); } + +function <> meta::relational::functions::sqlQueryToString::athena::processDateDiffDurationUnitForAthena(durationUnit:String[1]):String[1] +{ + let durationEnumNames = [DurationUnit.YEARS,DurationUnit.MONTHS,DurationUnit.WEEKS,DurationUnit.DAYS,DurationUnit.HOURS,DurationUnit.MINUTES,DurationUnit.SECONDS,DurationUnit.MILLISECONDS]->map(e|$e->toString()); + let durationDbNames = ['\'year\'', '\'month\'', '\'week\'', '\'day\'', '\'hour\'', '\'minute\'', '\'second\'', '\'millisecond\'']; + $durationEnumNames->zip($durationDbNames)->filter(h | $h.first == $durationUnit).second->toOne(); +} \ 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 6fb907e875a..8a11e813e32 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 @@ -53,28 +53,42 @@ function <> meta::relational::functions::sqlQueryToString::bigQu [ dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | $p->at(0) + ', INTERVAL ' + $p->at(1) + ' ' + $p->at(2)->mapToDBUnitType()})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='logical_and(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='logical_or(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), + dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='extract(day from %s)')), + dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='format_datetime("%%A", DATETIME(%s))')), + dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='extract(dayofweek from %s)')), + dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='extract(dayofyear from %s)')), + dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='safe_convert_bytes_to_string(from_base64(%s))')), + dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='to_base64(%s)')), + dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, month))')), + dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, quarter))')), + dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='date_trunc(current_date, month)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='date_trunc(current_date, quarter)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='date_trunc(current_date, year)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, week)')), + dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, year)')), + dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, day)')), + dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, second)')), + dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='timestamp_trunctimestamp %s, hour)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, minute)')), dynaFnToSql('hour', $allStates, ^ToSql(format='extract(hour from %s)')), + dynaFnToSql('indexOf', $allStates, ^ToSql(format='strpos(%s, %s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='string_agg(%s, %s)')), + dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('minute', $allStates, ^ToSql(format='extract(minute from %s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='extract(month from %s)')), + dynaFnToSql('monthName', $allStates, ^ToSql(format='format_datetime("%%B", DATETIME(%s))')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='extract(month from %s)')), dynaFnToSql('now', $allStates, ^ToSql(format='current_timestamp()')), dynaFnToSql('parseDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), dynaFnToSql('parseFloat', $allStates, ^ToSql(format='cast(%s as float64)')), dynaFnToSql('parseInteger', $allStates, ^ToSql(format='cast(%s as int64)')), dynaFnToSql('position', $allStates, ^ToSql(format='strpos(%s, %s)')), - dynaFnToSql('quarter', $allStates, ^ToSql(format='extract( quarter from %s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='extract( quarter from %s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, 0)')), - dynaFnToSql('rtrim', $allStates, ^ToSql(format='rtrim(%s)')), dynaFnToSql('second', $allStates, ^ToSql(format='extract( second from %s)')), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stddev_pop(%s)')), dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), @@ -82,7 +96,8 @@ function <> meta::relational::functions::sqlQueryToString::bigQu dynaFnToSql('today', $allStates, ^ToSql(format='CURRENT_DATE()')), 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)')) + 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-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 b9b243ea9b7..66af2437027 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 @@ -75,7 +75,8 @@ function <> meta::relational::functions::sqlQueryToString::datab [ dynaFnToSql('adjust', $allStates, ^ToSql(format='%s', transform={p:String[3] | $p->at(0) + ' + INTERVAL ' + $p->at(1) + ' ' + $p->at(2)->mapToDBUnitType()})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)', transform={p:String[*] | joinStrings($p, ', ')})), + dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)', transform={p:String[*] | joinStrings($p, ', ')})), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateDatabricks()})), dynaFnToSql('convertDateTime', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateTimeDatabricks()})), @@ -85,6 +86,8 @@ function <> meta::relational::functions::sqlQueryToString::datab dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='dayofmonth(%s)')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='dayofweek(%s)')), dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='dayofyear(%s)')), + dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='cast(unbase64(%s) AS STRING)')), + dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='base64(%s)')), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='trunc(%s, \'MONTH\')')), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='trunc(%s, \'QUARTER\')')), dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='trunc(current_date(), \'MONTH\')%s', transform={p:String[*] | ''})), @@ -101,13 +104,12 @@ function <> meta::relational::functions::sqlQueryToString::datab dynaFnToSql('isNumeric', $allStates, ^ToSql(format='(lower(%s) = upper(%s))')), dynaFnToSql('isAlphaNumeric', $allStates, ^ToSql(format='%s', transform={p:String[1]|$p->transformAlphaNumericParamsDatabricks()})), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='%s', transform={p:String[1..2] | $p->arrayJoinDatabricks()})), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format='%s', transform={p:String[2]|$p->transformRegexpParamsDatabricks()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), + dynaFnToSql('monthName', $allStates, ^ToSql(format='to_char(%s, \'MMMM\')')), dynaFnToSql('mostRecentDayOfWeek', $allStates, ^ToSql(format='date_sub(%s, case when dayofweek(%s) = %s then 0 else dayofweek(%s) - %s end)', transform={p:String[1..2] | $p->formatMostRecentDatabricks('current_date()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('now', $allStates, ^ToSql(format='current_timestamp')), dynaFnToSql('parseDate', $allStates, ^ToSql(format='to_date(%s,%s)')), @@ -118,13 +120,10 @@ function <> meta::relational::functions::sqlQueryToString::datab dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='date_sub(%s, case when dayofweek(%s) = %s then 7 else dayofweek(%s) - %s end)', transform={p:String[1..2] | $p->formatMostRecentDatabricks('current_date()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('sha256', $allStates, ^ToSql(format='sha2(%s, 256)')), dynaFnToSql('sqlFalse', $allStates, ^ToSql(format='false')), - dynaFnToSql('sqlNull', $allStates, ^ToSql(format='null')), dynaFnToSql('sqlTrue', $allStates, ^ToSql(format='true')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stddev_pop(%s)')), 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 808050f17ba..3fa256fb46b 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 @@ -112,7 +112,6 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('lpad', $allStates, ^ToSql(format='lpad(%s)', transform={p:String[2..*] | $p->concatenate(if ($p->size() == 2, | '\' \'', | []))->joinStrings(', ')})), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='monthname(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%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/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 42fd762831f..d4cf841fad1 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 @@ -26,11 +26,12 @@ function <> meta::relational::functions::sqlQueryToString::postg isBooleanLiteralSupported = true, isDbReservedIdentifier = {str:String[1]| $str->toLower()->in($reservedWords)}, literalProcessor = $literalProcessor, + windowColumnProcessor = processWindowColumn_WindowColumn_1__SqlGenerationContext_1__String_1_, joinStringsProcessor = processJoinStringsOperationForPostgres_JoinStrings_1__SqlGenerationContext_1__String_1_, selectSQLQueryProcessor = processSelectSQLQueryForPostgres_SelectSQLQuery_1__SqlGenerationContext_1__Boolean_1__String_1_, identifierProcessor = processIdentifierWithDoubleQuotes_String_1__DbConfig_1__String_1_, dynaFuncDispatch = $dynaFuncDispatch, - ddlCommandsTranslator = getDDLCommandsTranslatorDefault() + ddlCommandsTranslator = getDDLCommandsTranslatorForPostgres() ); } @@ -162,15 +163,17 @@ function <> meta::relational::functions::sqlQueryToString::postg [ dynaFnToSql('adjust', $allStates, ^ToSql(format='(%s + (INTERVAL \'1 %s\' * %s))', transform={p:String[3] | [$p->at(0), $p->at(2)->replace('Text', '')->removeQuotesIfExist(), $p->at(1)]})), //https://www.postgresql.org/message-id/2B704E31-B533-4159-B6F0-EC284CFE824C%40skype.net, - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)', transform={p:String[*] | joinStrings($p, ', ')})), dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)', transform={p:String[*] | joinStrings($p, ', ')})), + dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' || ')})), dynaFnToSql('dateDiff', $allStates, ^ToSql(format='%s', transform={p:String[*]|generateDateDiffExpressionForPostgres($p)})), dynaFnToSql('datePart', $allStates, ^ToSql(format='Date(%s)')), dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='date_part(\'day\', %s)')), dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='to_char(%s, \'FMDay\')')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='date_part(\'dow\', %s)')), dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='date_part(\'doy\', %s)')), + dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='convert_from(decode(%s, \'base64\'), \'utf8\')')), + dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='encode(%s, \'base64\')')), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date_trunc(\'month\', %s)')), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date_trunc(\'quarter\', %s)')), dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='date_trunc(\'month\', CURRENT_DATE)%s', transform={p:String[*] | ''})), @@ -185,10 +188,10 @@ function <> meta::relational::functions::sqlQueryToString::postg 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)')), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s, %s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), + dynaFnToSql('log10', $allStates, ^ToSql(format='log(%s)')), dynaFnToSql('minute', $allStates, ^ToSql(format='date_part(\'minute\', %s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), + dynaFnToSql('month', $allStates, ^ToSql(format='date_part(\'month\', %s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='to_char(%s, \'FMMonth\')')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='date_part(\'month\', %s)')), dynaFnToSql('now', $allStates, ^ToSql(format='now()')), @@ -198,8 +201,6 @@ function <> meta::relational::functions::sqlQueryToString::postg dynaFnToSql('position', $allStates, ^ToSql(format='position(%s in %s)')), dynaFnToSql('quarter', $allStates, ^ToSql(format='date_part(\'quarter\', %s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='date_part(\'quarter\', %s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s, %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round((%s)::numeric, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='date_part(\'second\', %s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), @@ -283,3 +284,28 @@ function <> meta::relational::functions::sqlQueryToString::postg { '%s offset %s'->format([$format.separator, $s.fromRow->toOne()->getValueForTake($format, $dbConfig, $extensions)]) + if ($size == -1, | '', | ' limit %s'->format($size)); } + +function <> meta::relational::functions::sqlQueryToString::postgres::getDDLCommandsTranslatorForPostgres(): RelationalDDLCommandsTranslator[1] +{ + ^RelationalDDLCommandsTranslator( + createSchema = translateCreateSchemaStatementForPostgres_CreateSchemaSQL_1__DbConfig_1__String_$0_1$_, + dropSchema = translateDropSchemaStatementForPostgres_DropSchemaSQL_1__DbConfig_1__String_$0_1$_, + createTable = translateCreateTableStatementDefault_CreateTableSQL_1__DbConfig_1__String_1_, + dropTable = translateDropTableStatementDefault_DropTableSQL_1__DbConfig_1__String_1_, + loadTable = loadValuesToDbTableDefault_LoadTableSQL_1__DbConfig_1__String_MANY_ + ); +} + +function <> meta::relational::functions::sqlQueryToString::postgres::translateCreateSchemaStatementForPostgres(createSchemaSQL:CreateSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if ($createSchemaSQL.schema.name == 'default', + | [], + | 'Create Schema if not exists ' + $createSchemaSQL.schema.name + ';';); +} + +function <> meta::relational::functions::sqlQueryToString::postgres::translateDropSchemaStatementForPostgres(dropSchemaSQL:DropSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if ($dropSchemaSQL.schema.name == 'default', + | [], + | 'Drop schema if exists ' + $dropSchemaSQL.schema.name + ';') +} 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 67634276e1b..321163ee245 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 @@ -51,7 +51,6 @@ function <> meta::relational::functions::sqlQueryToString::prest [ dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | '\'' + $p->at(2)->mapToDBUnitType() + '\', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), @@ -80,7 +79,6 @@ function <> meta::relational::functions::sqlQueryToString::prest dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpLikePattern('%s','%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='date_format(%s, \'%M\')')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), @@ -93,7 +91,6 @@ function <> meta::relational::functions::sqlQueryToString::prest dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='date_add(\'day\', case when %s - day_of_week(%s) >= 0 then %s - day_of_week(%s) - 7 else %s - day_of_week(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentPresto('current_date')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%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/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 d31ae218f89..aa57a077f64 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 @@ -49,17 +49,32 @@ function <> meta::relational::functions::sqlQueryToString::redsh let allStates = allGenerationStates(); [ - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), + dynaFnToSql('dateDiff', $allStates, ^ToSql(format='datediff(%s,%s,%s)', transform={p:String[*]|[$p->at(2)->replace('\'', '')->processDateDiffDurationUnitForRedshift(),$p->at(0),$p->at(1)]})), dynaFnToSql('datePart', $allStates, ^ToSql(format='trunc(%s)')), + dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='date_part(\'day\', %s)')), dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='to_char(%s, \'FMDay\')')), + dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='date_part(\'dow\', %s)')), + dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='date_part(\'doy\', %s)')), + dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date_trunc(\'month\', %s)')), + dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date_trunc(\'quarter\', %s)')), + dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='date_trunc(\'month\', current_date)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='date_trunc(\'quarter\', current_date)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='date_trunc(\'year\', current_date)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date_trunc(\'week\', %s)')), + dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='date_trunc(\'year\', %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='date_part(hour, %s)')), + dynaFnToSql('indexOf', $allStates, ^ToSql(format='strpos(%s, %s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='listagg(%s, %s)')), + dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), dynaFnToSql('log10', $allStates, ^ToSql(format='log(%s)')), dynaFnToSql('minute', $allStates, ^ToSql(format='extract(minute from %s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='extract(month from %s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='to_char(%s, \'FMMonth\')')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='extract(month from %s)')), @@ -68,10 +83,8 @@ function <> meta::relational::functions::sqlQueryToString::redsh 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)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), + dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='date_part(\'quarter\', %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), - dynaFnToSql('rtrim', $allStates, ^ToSql(format='rtrim(%s)')), dynaFnToSql('second', $allStates, ^ToSql(format='extract( second from %s)')), dynaFnToSql('sha256', $allStates, ^ToSql(format='sha2(%s, 256)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), @@ -85,3 +98,10 @@ function <> meta::relational::functions::sqlQueryToString::redsh dynaFnToSql('year', $allStates, ^ToSql(format='extract(year from %s)')) ]; } + +function <> meta::relational::functions::sqlQueryToString::redshift::processDateDiffDurationUnitForRedshift(durationUnit:String[1]):String[1] +{ + let durationEnumNames = [DurationUnit.YEARS,DurationUnit.MONTHS,DurationUnit.WEEKS,DurationUnit.DAYS,DurationUnit.HOURS,DurationUnit.MINUTES,DurationUnit.SECONDS,DurationUnit.MILLISECONDS]->map(e|$e->toString()); + let durationDbNames = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; + $durationEnumNames->zip($durationDbNames)->filter(h | $h.first == $durationUnit).second->toOne(); +} 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 303c8677fd6..f36a6cb8a3d 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 @@ -60,6 +60,8 @@ function <> meta::relational::functions::sqlQueryToString::snowf function meta::relational::functions::sqlQueryToString::snowflake::getDDLCommandsTranslator(): RelationalDDLCommandsTranslator[1] { ^RelationalDDLCommandsTranslator( + createSchema = translateCreateSchemaStatementForSnowflake_CreateSchemaSQL_1__DbConfig_1__String_$0_1$_, + dropSchema = translateDropSchemaStatementDefault_DropSchemaSQL_1__DbConfig_1__String_1_, createTable = translateCreateTableStatementForSnowflake_CreateTableSQL_1__DbConfig_1__String_1_, dropTable = translateDropTableStatementForSnowflake_DropTableSQL_1__DbConfig_1__String_1_, loadTable = loadValuesToDbTableForSnowflake_LoadTableSQL_1__DbConfig_1__String_MANY_ @@ -71,6 +73,13 @@ function meta::relational::functions::sqlQueryToString::snowflake::processTempTa 'LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.' + $tempTableName; } +function <> meta::relational::functions::sqlQueryToString::snowflake::translateCreateSchemaStatementForSnowflake(createSchemaSQL:CreateSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if($createSchemaSQL.schema.name == 'default', + | [], + | 'Create Schema if not exists ' + $createSchemaSQL.schema.name); +} + function meta::relational::functions::sqlQueryToString::snowflake::translateCreateTableStatementForSnowflake(c:CreateTableSQL[1], dbConfig: DbConfig[1]): String[1] { if($c.isTempTable->isTrue(),| 'CREATE TEMPORARY TABLE ' + $c.table->tableToString($dbConfig) + '('+ $c.table.columns->map(r|$r->match([c:Column[1]| $c.name->processColumnName($dbConfig) + ' ' + getColumnTypeSqlTextDefault($c.type), @@ -102,7 +111,6 @@ function <> meta::relational::functions::sqlQueryToString::snowf [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='booland(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='boolor(%s)')), dynaFnToSql('ceiling', $allStates, ^ToSql(format='ceil(%s)')), @@ -116,6 +124,8 @@ function <> meta::relational::functions::sqlQueryToString::snowf dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='to_char(%s, \'DYDY\')')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='DAYOFWEEKISO(%s)')), dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='DAYOFYEAR(%s)')), + dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='BASE64_DECODE_STRING(%s)')), + dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='BASE64_ENCODE(%s)')), dynaFnToSql('extractFromSemiStructured', $allStates, ^ToSql(format='%s', transform={p:String[3]|$p->processExtractFromSemiStructuredParamsForSnowflake()})), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='DATE_TRUNC(\'MONTH\', %s)')), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='DATE_TRUNC(\'QUARTER\', %s)')), @@ -132,12 +142,10 @@ function <> meta::relational::functions::sqlQueryToString::snowf dynaFnToSql('indexOf', $allStates, ^ToSql(format='CHARINDEX(%s)', transform={p:String[2] | $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('isAlphaNumeric', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[1]|$p->transformAlphaNumericParamsDefault()})), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='listagg(%s, %s)')), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('log10', $allStates, ^ToSql(format='log(10, %s)')), dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='MONTH(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='to_char(%s, \'MMMM\')')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='MONTH(%s)')), @@ -150,8 +158,6 @@ function <> meta::relational::functions::sqlQueryToString::snowf dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, case when %s - DAYOFWEEK(%s) +1 >= 0 then %s - DAYOFWEEK(%s) -1 - 7 else %s - DAYOFWEEK(%s) -1 end, %s)', transform={p:String[1..2] | $p->formatMostRecentSnowflake('current_date')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round((%s)::numeric, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('sha256', $allStates, ^ToSql(format='sha2(%s, 256)')), 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 61ae1279969..446ef0314a2 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 @@ -33,7 +33,9 @@ function meta::relational::functions::sqlQueryToString::spanner::createDbExtensi let reservedWords = spannerReservedWords(); let literalProcessors = getDefaultLiteralProcessors()->putAll(getLiteralProcessorsForSpanner()); let literalProcessor = {type:Type[1]| $literalProcessors->get(if($type->instanceOf(Enumeration), | Enum, | $type))->toOne()}; - let dynaFuncDispatch = getDynaFunctionToSqlForSpanner($literalProcessor)->groupBy(d| $d.funcName)->getDynaFunctionDispatcher(); + + let dynaFuncDispatch = getDynaFunctionToSqlDefault($literalProcessor)->groupBy(d| $d.funcName)->putAll( + getDynaFunctionToSqlForSpanner($literalProcessor)->groupBy(d| $d.funcName))->getDynaFunctionDispatcher(); ^DbExtension( isBooleanLiteralSupported = true, @@ -72,46 +74,49 @@ function <> meta::relational::functions::sqlQueryToString::spann let allStates = allGenerationStates(); [ - dynaFnToSql('abs', $allStates, ^ToSql(format='abs(%s)')), - dynaFnToSql('acos', $allStates, ^ToSql(format='acos(%s)')), dynaFnToSql('and', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' and ')})), - dynaFnToSql('asin', $allStates, ^ToSql(format='asin(%s)')), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), - dynaFnToSql('atan', $allStates, ^ToSql(format='atan(%s)')), + dynaFnToSql('ascii', $allStates, ^ToSql(format='array_first(to_code_points(%s))')), dynaFnToSql('booland', $allStates, ^ToSql(format='logical_and(%s)')), - dynaFnToSql('boolor', $allStates, ^ToSql(format='logical_or(%s)')), - dynaFnToSql('average', $allStates, ^ToSql(format='avg(1.0 * %s)')), - dynaFnToSql('ceiling', $allStates, ^ToSql(format='ceiling(%s)')), + dynaFnToSql('boolor', $allStates, ^ToSql(format='logical_or(%s)')), + dynaFnToSql('char', $allStates, ^ToSql(format='code_points_to_string(%s)')), dynaFnToSql('coalesce', $allStates, ^ToSql(format='coalesce%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), + dynaFnToSql('concat', $allStates, ^ToSql(format='concat(%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('count', $allStates, ^ToSql(format='count(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), + dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='extract(day from %s)')), + dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='format_datetime("%%A", DATETIME(%s))')), + dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='extract(dayofweek from %s)')), + dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='extract(dayofyear from %s)')), + dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='safe_convert_bytes_to_string(from_base64(%s))')), + dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='to_base64(%s)')), // dynaFnToSql('dateDiff', $allStates, ^ToSql(format='%s', transform={p:String[*]|generateDateDiffExpressionForSpanner($p)})), // dynaFnToSql('distinct', $allStates, ^ToSql(format='distinct(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), dynaFnToSql('endsWith', $allStates, ^ToSql(format=likePattern('%%%s'), transform={p:String[2]|$p->transformLikeParamsDefault()})), - dynaFnToSql('equal', $allStates, ^ToSql(format='%s = %s')), dynaFnToSql('exp', $allStates, ^ToSql(format='exp(%s::float)')), - dynaFnToSql('floor', $allStates, ^ToSql(format='floor(%s)')), - dynaFnToSql('group', $allStates, ^ToSql(format='(%s)')), - dynaFnToSql('greaterThan', $allStates, ^ToSql(format='%s > %s')), - dynaFnToSql('greaterThanEqual', $allStates, ^ToSql(format='%s >= %s')), - dynaFnToSql('if', $allStates, ^ToSql(format='case when %s then %s else %s end', parametersWithinWhenClause = [true, false, false])), dynaFnToSql('in', $allStates, ^ToSql(format='%s in %s', transform={p:String[2] | if($p->at(1)->startsWith('(') && $p->at(1)->endsWith(')'), | $p, | [$p->at(0), ('(' + $p->at(1) + ')')])})), - dynaFnToSql('isEmpty', $allStates, ^ToSql(format='%s is null')), + dynaFnToSql('indexOf', $allStates, ^ToSql(format='strpos(%s, %s)')), + dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, month))')), + dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, quarter))')), + dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='date_trunc(current_date, month)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='date_trunc(current_date, quarter)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='date_trunc(current_date, year)%s', transform={p:String[*] | ''})), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, week)')), + dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, year)')), + dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, day)')), + dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, second)')), + dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='timestamp_trunctimestamp %s, hour)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, minute)')), // dynaFnToSql('isNotEmpty', $allStates, ^ToSql(format='%s is not null')), - dynaFnToSql('isNotNull', $allStates, ^ToSql(format='%s is not null')), // dynaFnToSql('isNull', $allStates, ^ToSql(format='%s is null')), + dynaFnToSql('hour', $allStates, ^ToSql(format='extract(hour from %s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='string_agg(%s, %s)')), + dynaFnToSql('left', $allStates, ^ToSql(format='substr(%s, 1, %s)')), dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), - dynaFnToSql('lessThan', $allStates, ^ToSql(format='%s < %s')), - dynaFnToSql('lessThanEqual', $allStates, ^ToSql(format='%s <= %s')), dynaFnToSql('log', $allStates, ^ToSql(format='ln(%s::float)')), - dynaFnToSql('max', $allStates, ^ToSql(format='max(%s)')), - dynaFnToSql('min', $allStates, ^ToSql(format='min(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('notEqual', $allStates, ^ToSql(format='%s != %s')), - dynaFnToSql('notEqualAnsi', $allStates, ^ToSql(format='%s <> %s')), + dynaFnToSql('minute', $allStates, ^ToSql(format='extract(minute from %s)')), + dynaFnToSql('month', $allStates, ^ToSql(format='extract(month from %s)')), + dynaFnToSql('monthNumber', $allStates, ^ToSql(format='extract(month from %s)')), dynaFnToSql('now', $allStates, ^ToSql(format='now()')), dynaFnToSql('or', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' or ')})), // dynaFnToSql('parseFloat', $allStates, ^ToSql(format='cast(%s as float)')), @@ -120,28 +125,23 @@ function <> meta::relational::functions::sqlQueryToString::spann dynaFnToSql('plus', $allStates, ^ToSql(format='%s', transform=getTransformForAddPlus())), dynaFnToSql('pow', $allStates, ^ToSql(format='dpow(%s, %s)')), // dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), - // dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('replace', $allStates, ^ToSql(format='replace(%s, %s, %s)')), + dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='extract(quarter from %s)')), + dynaFnToSql('right', $allStates, ^ToSql(format='%s', transform={p:String[2] | 'substr(' + $p->at(0) + ', length(' + $p->at(0) + ') + (1 - ' + $p->at(1) + '))'})), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s::float)')), - dynaFnToSql('sin', $allStates, ^ToSql(format='sin(%s)')), + dynaFnToSql('second', $allStates, ^ToSql(format='extract(second from %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')), dynaFnToSql('sqlTrue', $allStates, ^ToSql(format='%s', transform={p:String[*]|processLiteralValue(true, [], $literalProcessor)})), - dynaFnToSql('sqlNull', $allStates, ^ToSql(format='null')), - dynaFnToSql('sqrt', $allStates, ^ToSql(format='sqrt(%s)')), dynaFnToSql('startsWith', $allStates, ^ToSql(format=likePattern('%s%%'), transform={p:String[2]|$p->transformLikeParamsDefault()})), // dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), - dynaFnToSql('sum', $allStates, ^ToSql(format='sum(%s)')), - dynaFnToSql('tan', $allStates, ^ToSql(format='tan(%s)')), - dynaFnToSql('toLower', $allStates, ^ToSql(format='lower(%s)')), // dynaFnToSql('toOne', $allStates, ^ToSql(format='%s')), - dynaFnToSql('toUpper', $allStates, ^ToSql(format='upper(%s)')), // dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stddev_pop(%s)')), - // dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), - dynaFnToSql('today', $allStates, ^ToSql(format='current_date')) + dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), + dynaFnToSql('today', $allStates, ^ToSql(format='current_date')), + dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='extract(week from %s)')), + dynaFnToSql('year', $allStates, ^ToSql(format='extract(year from %s)')) // dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), ]; } 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 173a5efd426..af8acbb6fcd 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 @@ -80,7 +80,6 @@ function meta::relational::functions::sqlQueryToString::sparkSQL::getDynaFunctio [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateIQ()})), @@ -113,12 +112,10 @@ function meta::relational::functions::sqlQueryToString::sparkSQL::getDynaFunctio dynaFnToSql('isNull', $notSelectOutsideWhen, ^ToSql(format='%s is null')), dynaFnToSql('isNumeric', $allStates, ^ToSql(format='isnumeric(%s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='list(%s,%s)')), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('md5', $allStates, ^ToSql(format='hash(%s, \'MD5\')')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('mostRecentDayOfWeek', $allStates, ^ToSql(format='dateadd(Day, case when %s - dow(%s) > 0 then %s - dow(%s) - 7 else %s - dow(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentSybase('today()')}, parametersWithinWhenClause = [false, false])), @@ -131,8 +128,6 @@ function meta::relational::functions::sqlQueryToString::sparkSQL::getDynaFunctio dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, case when %s - dow(%s) >= 0 then %s - dow(%s) - 7 else %s - dow(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentSybase('today()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), 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\')')), 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 2ac7b07136e..ca72af10f2d 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 @@ -45,7 +45,7 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe columnNameToIdentifier = columnNameToIdentifierDefault_String_1__DbConfig_1__String_1_, identifierProcessor = processIdentifierWithDoubleQuotes_String_1__DbConfig_1__String_1_, dynaFuncDispatch = $dynaFuncDispatch, - ddlCommandsTranslator = getDDLCommandsTranslatorDefault() + ddlCommandsTranslator = getDDLCommandsTranslatorForSqlServer() ); } @@ -64,22 +64,29 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='datename(weekday, %s)')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='datepart(dw, %s)')), dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='datepart(dayofyear, %s)')), + dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='convert(varchar(8000), base64_decode(%s), 2)')), + dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='base64_encode(%s)')), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='dateadd(day, -(day(cast(%s as date)) - 1), cast(%s as date))', transform={p:String[1] | $p->repeat(2)})), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='dateadd(qq, datediff(qq, 0, %s), 0)')), dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='dateadd(day, -(day(cast(getdate() as date)) - 1), cast(getdate() as date))')), dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='dateadd(qq, datediff(qq, 0, getdate()), 0)')), dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='dateadd(yy, datediff(yy, 0, getdate()), 0)')), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='datetrunc(week, %s)')), dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='dateadd(yy, datediff(yy, 0, %s), 0)')), + dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='datetrunc(day %s)')), + dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='datetrunc(second, %s)')), + dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='datetrunc(hour, %s)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='datetrunc(minute, %s)')), dynaFnToSql('hour', $allStates, ^ToSql(format='datepart(hh, %s)')), dynaFnToSql('indexOf', $allStates, ^ToSql(format='charindex(%s)', transform={p:String[2] | $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='len(%s)')), dynaFnToSql('log', $allStates, ^ToSql(format='log(%s)')), dynaFnToSql('lpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | 'replicate(' + if ($p->size() == 2, | ' ', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + ')) + ' + $p->at(0)})), dynaFnToSql('md5', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'MD5\', %s), 2))')), dynaFnToSql('minute', $allStates, ^ToSql(format='datepart(mi, %s)')), dynaFnToSql('mod', $allStates, ^ToSql(format='%s %% %s')), - dynaFnToSql('month', $allStates, ^ToSql(format='datename(month, %s)')), + dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), + dynaFnToSql('monthName', $allStates, ^ToSql(format='datename(month, %s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('now', $allStates, ^ToSql(format='getdate()')), dynaFnToSql('parseFloat', $allStates, ^ToSql(format='cast(%s as float)')), @@ -88,7 +95,6 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='datepart(qq, %s)')), dynaFnToSql('repeatString', $allStates, ^ToSql(format='replicate(%s, %s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, 0)')), dynaFnToSql('rpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | $p->at(0) + ' + replicate(' + if ($p->size() == 2, | ' ', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + '))'})), dynaFnToSql('second', $allStates, ^ToSql(format='datepart(ss, %s)')), @@ -120,3 +126,28 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe let durationDbNames = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; $durationEnumNames->zip($durationDbNames)->filter(h | $h.first == $durationUnit).second->toOne(); } + +function <> meta::relational::functions::sqlQueryToString::sqlServer::getDDLCommandsTranslatorForSqlServer(): RelationalDDLCommandsTranslator[1] +{ + ^RelationalDDLCommandsTranslator( + createSchema = translateCreateSchemaStatementForSqlServer_CreateSchemaSQL_1__DbConfig_1__String_$0_1$_, + dropSchema = translateDropSchemaStatementForSqlServer_DropSchemaSQL_1__DbConfig_1__String_$0_1$_, + createTable = translateCreateTableStatementDefault_CreateTableSQL_1__DbConfig_1__String_1_, + dropTable = translateDropTableStatementDefault_DropTableSQL_1__DbConfig_1__String_1_, + loadTable = loadValuesToDbTableDefault_LoadTableSQL_1__DbConfig_1__String_MANY_ + ); +} + +function <> meta::relational::functions::sqlQueryToString::sqlServer::translateCreateSchemaStatementForSqlServer(createSchemaSQL:CreateSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if ($createSchemaSQL.schema.name == 'default', + | [], + | 'Create Schema ' + $createSchemaSQL.schema.name + ';';); +} + +function <> meta::relational::functions::sqlQueryToString::sqlServer::translateDropSchemaStatementForSqlServer(dropSchemaSQL:DropSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if ($dropSchemaSQL.schema.name == 'default', + | [], + | 'Drop schema if exists ' + $dropSchemaSQL.schema.name + ';') +} 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 f8909fb9592..df673d6557d 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 @@ -89,7 +89,6 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, true)})), dynaFnToSql('boolor', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, false)})), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), @@ -121,12 +120,10 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti dynaFnToSql('isNumeric', $allStates, ^ToSql(format='isnumeric(%s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='list(%s,%s)')), dynaFnToSql('least', $allStates, ^ToSql(format='%s', transform={p:String[*] | convertGreatestLeastToCaseStatement('<=', $p)})), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('md5', $allStates, ^ToSql(format='hash(%s, \'MD5\')')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='datename(MONTH, %s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), @@ -140,8 +137,6 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, case when %s - dow(%s) >= 0 then %s - dow(%s) - 7 else %s - dow(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentSybase('today()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), 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\')')), 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 042dfb76ea1..92298a64a5c 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 @@ -81,7 +81,6 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, true)})), dynaFnToSql('boolor', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, false)})), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), @@ -118,12 +117,10 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio dynaFnToSql('isNumeric', $allStates, ^ToSql(format='isnumeric(%s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='list(%s,%s)')), dynaFnToSql('least', $allStates, ^ToSql(format='%s', transform={p:String[*] | convertGreatestLeastToCaseStatement('<=', $p)})), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('md5', $allStates, ^ToSql(format='hash(%s, \'MD5\')')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='monthname(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), @@ -137,8 +134,6 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, case when %s - dow(%s) >= 0 then %s - dow(%s) - 7 else %s - dow(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentSybase('today()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), 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\')')), 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 ba808039b6d..abb959ee512 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 @@ -51,7 +51,6 @@ function <> meta::relational::functions::sqlQueryToString::trino [ //dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | '\'' + $p->at(2)->mapToDBUnitTrino() + '\', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateTrino()})), dynaFnToSql('convertDateTime', $allStates, ^ToSql(format='%s' , transform={p:String[*] | $p->convertToDateTimeTrino()})), @@ -70,10 +69,8 @@ function <> meta::relational::functions::sqlQueryToString::trino 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)')), dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), - dynaFnToSql('ltrim', $allStates, ^ToSql(format='ltrim(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpLikePattern('%s','%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('mostRecentDayOfWeek', $allStates, ^ToSql(format='date_add(\'day\', case when %s - day_of_week(%s) > 0 then %s - day_of_week(%s) - 7 else %s - day_of_week(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentTrino('current_date')}, parametersWithinWhenClause = [false, false])), @@ -85,10 +82,8 @@ function <> meta::relational::functions::sqlQueryToString::trino dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='date_add(\'day\', case when %s - day_of_week(%s) >= 0 then %s - day_of_week(%s) - 7 else %s - day_of_week(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentTrino('current_date')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), //dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), - dynaFnToSql('rtrim', $allStates, ^ToSql(format='rtrim(%s)')), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stddev_pop(%s)')), 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 7c3e5926461..a9d1bd462c9 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 @@ -80,7 +80,6 @@ function <> meta::relational::functions::sqlQueryToString::db2:: [ dynaFnToSql('adjust', $allStates, ^ToSql(format='%s', transform=transformAdjustDB2SQL_String_3__String_1_)), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='ascii_chr(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings('(',' concat ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateDB2()})), @@ -102,7 +101,6 @@ function <> meta::relational::functions::sqlQueryToString::db2:: dynaFnToSql('length', $allStates, ^ToSql(format='CHARACTER_LENGTH(%s,CODEUNITS32)')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), dynaFnToSql('md5', $allStates, ^ToSql(format='hash_md5(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='monthname(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), @@ -114,7 +112,6 @@ function <> meta::relational::functions::sqlQueryToString::db2:: dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='%s + case when %s - dayofweek(%s) >= 0 then %s - dayofweek(%s) - 7 else %s - dayofweek(%s) end DAY', transform={p:String[1..2] | $p->formatMostRecentDb2('current date')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('right', $allStates, ^ToSql(format='trim(right(%s, %s))')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), 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 89f3d8efc4f..633d7d5a27f 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 @@ -75,7 +75,6 @@ function <> meta::relational::functions::sqlQueryToString::h2::v [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), @@ -104,12 +103,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('isNumeric', $allStates, ^ToSql(format='(lower(%s) = upper(%s))')), dynaFnToSql('isAlphaNumeric', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[1]|$p->transformAlphaNumericParamsDefault()})), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='group_concat(%s separator %s)')), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('md5', $allStates, ^ToSql(format='legend_h2_extension_hash_md5(%s)')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='monthname(%s)')), @@ -124,9 +121,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, case when %s - DAY_OF_WEEK(%s) >= 0 then %s - DAY_OF_WEEK(%s) - 7 else %s - DAY_OF_WEEK(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentH2('current_date()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('reverseString', $allStates, ^ToSql(format='legend_h2_extension_reverse_string(%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), 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='legend_h2_extension_hash_sha1(%s)')), 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 9ad24f49407..fc11f421286 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 @@ -183,7 +183,6 @@ function <> meta::relational::functions::sqlQueryToString::h2::v [ dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), - dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('booland', $allStates, ^ToSql(format='every(%s)')), dynaFnToSql('boolor', $allStates, ^ToSql(format='any(%s)')), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), @@ -217,12 +216,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('isNumeric', $allStates, ^ToSql(format='(lower(%s) = upper(%s))')), dynaFnToSql('isAlphaNumeric', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[1]|$p->transformAlphaNumericParamsDefault()})), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='group_concat(%s separator %s)')), - dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='char_length(%s)')), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpPattern('%s'), transform={p:String[2]|$p->transformRegexpParams()})), dynaFnToSql('md5', $allStates, ^ToSql(format='rawtohex(hash(\'MD5\', %s))')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), - dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('monthName', $allStates, ^ToSql(format='monthname(%s)')), @@ -237,9 +234,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, case when %s - DAY_OF_WEEK(%s) >= 0 then %s - DAY_OF_WEEK(%s) - 7 else %s - DAY_OF_WEEK(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentH2('current_date()')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('reverseString', $allStates, ^ToSql(format='legend_h2_extension_reverse_string(%s)')), - dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), 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))')), 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 50a45d00173..c3ca06df858 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 @@ -183,6 +183,7 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('and', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' and ')})), dynaFnToSql('asin', $allStates, ^ToSql(format='asin(%s)')), dynaFnToSql('atan', $allStates, ^ToSql(format='atan(%s)')), + dynaFnToSql('atan2', $allStates, ^ToSql(format='atan2(%s,%s)')), dynaFnToSql('average', $allStates, ^ToSql(format='avg(1.0 * %s)')), dynaFnToSql('averageRank', $allStates, ^ToSql(format='average_rank()')), dynaFnToSql('cbrt', $allStates, ^ToSql(format='cbrt(%s)')), @@ -214,6 +215,7 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('isNotNull', $allStates, ^ToSql(format='%s is not null')), dynaFnToSql('isNull', $allStates, ^ToSql(format='%s is null')), dynaFnToSql('least', $allStates, ^ToSql(format='least(%s)', transform={p:String[*]|$p->joinStrings(', ')})), + dynaFnToSql('left', $allStates, ^ToSql(format='left(%s,%s)')), dynaFnToSql('lessThan', $allStates, ^ToSql(format='%s < %s')), dynaFnToSql('lessThanEqual', $allStates, ^ToSql(format='%s <= %s')), dynaFnToSql('log', $allStates, ^ToSql(format='ln(%s)')), @@ -224,6 +226,7 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('md5', $allStates, ^ToSql(format='md5(%s)')), dynaFnToSql('min', $allStates, ^ToSql(format='min(%s)')), dynaFnToSql('minus', $allStates, ^ToSql(format='%s', transform={p:String[*]|if($p->size() == 1, | '-' + $p->toOne(), | $p->joinStrings('(', ' - ', ')'))})), + dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('notEqual', $allStates, ^ToSql(format='%s != %s')), dynaFnToSql('notEqualAnsi', $allStates, ^ToSql(format='%s <> %s')), dynaFnToSql('or', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->makeString(' or ')})), @@ -231,9 +234,11 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('pow', $allStates, ^ToSql(format='power(%s, %s)')), dynaFnToSql('percentile', $allStates, ^ToSql(format='%s', transform = {p:String[*] | $p->transformPercentile($literalProcessor)})), dynaFnToSql('rank', $allStates, ^ToSql(format='rank()')), + dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('repeatString', $allStates, ^ToSql(format='repeat(%s, %s)')), dynaFnToSql('replace', $allStates, ^ToSql(format='replace(%s, %s, %s)')), dynaFnToSql('reverseString', $allStates, ^ToSql(format='reverse(%s)')), + dynaFnToSql('right', $allStates, ^ToSql(format='right(%s,%s)')), dynaFnToSql('rpad', $allStates, ^ToSql(format='rpad(%s)', transform={p:String[*] | $p->joinStrings(', ')})), dynaFnToSql('rtrim', $allStates, ^ToSql(format='rtrim(%s)')), dynaFnToSql('rowNumber', $allStates, ^ToSql(format='row_number()')), From 28f72ea7f509cd39aa487bbb63f393bd058d4f71 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Thu, 4 Jan 2024 20:56:13 +0000 Subject: [PATCH 47/54] SQL - further sql translations/fixes (#2524) --- .../database-athena-integration-test.yml | 2 +- ...athena-sql-generation-integration-test.yml | 2 +- .../sqlQueryToString/athenaExtension.pure | 2 +- .../sqlQueryToString/memSQLExtension.pure | 2 +- .../sqlQueryToString/redshiftExtension.pure | 28 ++++++++++++++++++- .../sqlQueryToString/sqlServerExtension.pure | 19 +++++++++---- .../sqlQueryToString/trinoExtension.pure | 22 +++++++++++++-- 7 files changed, 64 insertions(+), 13 deletions(-) diff --git a/.github/workflows/database-athena-integration-test.yml b/.github/workflows/database-athena-integration-test.yml index 42a8da53db7..ae3c9f9dd35 100644 --- a/.github/workflows/database-athena-integration-test.yml +++ b/.github/workflows/database-athena-integration-test.yml @@ -66,7 +66,7 @@ jobs: run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -am clean install -DskipTests=true - name: Download Athena Driver Jar run: | - wget --output-document=athenaDriver.jar http://s3.amazonaws.com/athena-downloads/drivers/JDBC/SimbaAthenaJDBC-2.0.34.1000/AthenaJDBC42-2.0.34.1000.jar + wget --output-document=athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar - name: Run Connection Protocol Integration Tests env: MAVEN_OPTS: -Xmx4g diff --git a/.github/workflows/database-athena-sql-generation-integration-test.yml b/.github/workflows/database-athena-sql-generation-integration-test.yml index 069f15a8bb0..66cb0508198 100644 --- a/.github/workflows/database-athena-sql-generation-integration-test.yml +++ b/.github/workflows/database-athena-sql-generation-integration-test.yml @@ -66,7 +66,7 @@ jobs: run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -am clean install -DskipTests=true - name: Download Athena Driver Jar run: | - wget --output-document=athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.0.34.1000/AthenaJDBC42-2.0.34.1000.jar + wget --output-document=athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar - name: SQL Generation Integration Tests env: MAVEN_OPTS: -Xmx4g 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 a397c24abfa..0ec522896d5 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 @@ -173,7 +173,7 @@ function <> meta::relational::functions::sqlQueryToString::athen dynaFnToSql('position', $allStates, ^ToSql(format='position(%s in %s)')), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - //dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), + dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), 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 3fa256fb46b..0e01fba5a6e 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 @@ -124,7 +124,7 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('rem', $allStates, ^ToSql(format='mod(%s, %s)')), - dynaFnToSql('repeatString', $allStates, ^ToSql(format='%s', transform={p:String[2] | 'lpad(\'\', length(' + $p->at(0) + ') * ' + $p->at(1) + ', ' + $p->at(0) + ')'})), + dynaFnToSql('repeatString', $allStates, ^ToSql(format='%s', transform={p:String[2] | 'rpad(\'\', char_length(' + $p->at(0) + ') * ' + $p->at(1) + ', ' + $p->at(0) + ')'})), dynaFnToSql('right', $allStates, ^ToSql(format='right(%s, %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('rpad', $allStates, ^ToSql(format='rpad(%s)', transform={p:String[2..*] | $p->concatenate(if ($p->size() == 2, | '\' \'', | []))->joinStrings(', ')})), 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 aa57a077f64..2059fec1f5a 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 @@ -31,7 +31,8 @@ function <> meta::relational::functions::sqlQueryToString::redsh selectSQLQueryProcessor = processSelectSQLQueryDefault_SelectSQLQuery_1__SqlGenerationContext_1__Boolean_1__String_1_, columnNameToIdentifier = columnNameToIdentifierDefault_String_1__DbConfig_1__String_1_, identifierProcessor = processIdentifierWithDoubleQuotes_String_1__DbConfig_1__String_1_, - dynaFuncDispatch = $dynaFuncDispatch + dynaFuncDispatch = $dynaFuncDispatch, + ddlCommandsTranslator = getDDLCommandsTranslatorForRedshift() ); } @@ -105,3 +106,28 @@ function <> meta::relational::functions::sqlQueryToString::redsh let durationDbNames = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; $durationEnumNames->zip($durationDbNames)->filter(h | $h.first == $durationUnit).second->toOne(); } + +function <> meta::relational::functions::sqlQueryToString::redshift::getDDLCommandsTranslatorForRedshift(): RelationalDDLCommandsTranslator[1] +{ + ^RelationalDDLCommandsTranslator( + createSchema = translateCreateSchemaStatementForRedshift_CreateSchemaSQL_1__DbConfig_1__String_$0_1$_, + dropSchema = translateDropSchemaStatementForRedshift_DropSchemaSQL_1__DbConfig_1__String_$0_1$_, + createTable = translateCreateTableStatementDefault_CreateTableSQL_1__DbConfig_1__String_1_, + dropTable = translateDropTableStatementDefault_DropTableSQL_1__DbConfig_1__String_1_, + loadTable = loadValuesToDbTableDefault_LoadTableSQL_1__DbConfig_1__String_MANY_ + ); +} + +function <> meta::relational::functions::sqlQueryToString::redshift::translateCreateSchemaStatementForRedshift(createSchemaSQL:CreateSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if ($createSchemaSQL.schema.name == 'default', + | [], + | 'Create Schema if not exists ' + $createSchemaSQL.schema.name + ';';); +} + +function <> meta::relational::functions::sqlQueryToString::redshift::translateDropSchemaStatementForRedshift(dropSchemaSQL:DropSchemaSQL[1], dbConfig:DbConfig[1]) : String[0..1] +{ + if ($dropSchemaSQL.schema.name == 'default', + | [], + | 'Drop schema if exists ' + $dropSchemaSQL.schema.name + ';') +} \ 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/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 ca72af10f2d..0c3fdcee946 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 @@ -54,8 +54,10 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe let allStates = allGenerationStates(); [ - dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + $p->at(0)})), + dynaFnToSql('adjust', $allStates, ^ToSql(format='dateadd(%s)', transform={p:String[3] | $p->at(2)->mapToDBUnitType() + ', ' + $p->at(1) + ', ' + maybeConvertToDateTime2($p->at(0), $p->at(2)->mapToDBUnitType())})), dynaFnToSql('atan2', $allStates, ^ToSql(format='atn2(%s,%s)')), + dynaFnToSql('booland', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, true)})), + dynaFnToSql('boolor', $allStates, ^ToSql(format='%s', transform={p:String[1] | convertBoolAndOrToCaseStatement($p, false)})), dynaFnToSql('char', $allStates, ^ToSql(format='char(%s)')), dynaFnToSql('concat', $allStates, ^ToSql(format='%s', transform={p:String[*]|$p->joinStrings(' + ')})), dynaFnToSql('dateDiff', $allStates, ^ToSql(format='datediff(%s,%s,%s)', transform={p:String[*]|[$p->at(2)->replace('\'', '')->processDateDiffDurationUnitForSqlServer(),$p->at(0),$p->at(1)]})), @@ -81,7 +83,7 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('indexOf', $allStates, ^ToSql(format='charindex(%s)', transform={p:String[2] | $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('length', $allStates, ^ToSql(format='len(%s)')), dynaFnToSql('log', $allStates, ^ToSql(format='log(%s)')), - dynaFnToSql('lpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | 'replicate(' + if ($p->size() == 2, | ' ', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + ')) + ' + $p->at(0)})), + dynaFnToSql('lpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | 'replicate(' + if ($p->size() == 2, | '\' \'', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + ')) + ' + $p->at(0)})), dynaFnToSql('md5', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'MD5\', %s), 2))')), dynaFnToSql('minute', $allStates, ^ToSql(format='datepart(mi, %s)')), dynaFnToSql('mod', $allStates, ^ToSql(format='%s %% %s')), @@ -96,12 +98,12 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='datepart(qq, %s)')), dynaFnToSql('repeatString', $allStates, ^ToSql(format='replicate(%s, %s)')), dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, 0)')), - dynaFnToSql('rpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | $p->at(0) + ' + replicate(' + if ($p->size() == 2, | ' ', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + '))'})), + dynaFnToSql('rpad', $allStates, ^ToSql(format='%s', transform={p:String[2..3] | $p->at(0) + ' + replicate(' + if ($p->size() == 2, | '\' \'', | $p->at(2)) + ', ' + $p->at(1) + ' - len(' + $p->at(0) + '))'})), dynaFnToSql('second', $allStates, ^ToSql(format='datepart(ss, %s)')), - dynaFnToSql('sha1', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'SHA1\', %s), 2))')), - dynaFnToSql('sha256', $allStates, ^ToSql(format='lower(convert(varchar(32), hashbytes(\'SHA2_256\', %s), 2))')), + dynaFnToSql('sha1', $allStates, ^ToSql(format='lower(convert(varchar(40), hashbytes(\'SHA1\', %s), 2))')), + dynaFnToSql('sha256', $allStates, ^ToSql(format='lower(convert(varchar(64), hashbytes(\'SHA2_256\', %s), 2))')), dynaFnToSql('splitPart', $allStates, ^ToSql(format='coalesce((select value from string_split(%s, %s, 1) WHERE ordinal = %s),\'\')')), - dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), + dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->concatenate(if ($p->size() == 2, | 'len(' + $p->at(0) + ')', | []))->joinStrings('(', ', ', ')')})), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stdevp(%s)')), dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stdev(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='cast(getdate() as date)')), @@ -127,6 +129,11 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe $durationEnumNames->zip($durationDbNames)->filter(h | $h.first == $durationUnit).second->toOne(); } +function <> meta::relational::functions::sqlQueryToString::sqlServer::maybeConvertToDateTime2(date:String[1], part:String[1]):String[1] +{ + if ($part->toLower() == 'microsecond', | 'convert(datetime2, ' + $date + ')', | $date); +} + function <> meta::relational::functions::sqlQueryToString::sqlServer::getDDLCommandsTranslatorForSqlServer(): RelationalDDLCommandsTranslator[1] { ^RelationalDDLCommandsTranslator( 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 abb959ee512..83b6bf35dff 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 @@ -26,6 +26,7 @@ function <> meta::relational::functions::sqlQueryToString::trino isBooleanLiteralSupported = true, isDbReservedIdentifier = {str:String[1]| $str->in($reservedWords)}, literalProcessor = $literalProcessor, + windowColumnProcessor = processWindowColumn_WindowColumn_1__SqlGenerationContext_1__String_1_, joinStringsProcessor = processJoinStringsOperationWithConcatCall_JoinStrings_1__SqlGenerationContext_1__String_1_, selectSQLQueryProcessor = processSelectSQLQueryForTrino_SelectSQLQuery_1__SqlGenerationContext_1__Boolean_1__String_1_, schemaNameToIdentifier = schemaNameToIdentifierForTrino_String_1__DbConfig_1__String_1_, @@ -50,13 +51,19 @@ function <> meta::relational::functions::sqlQueryToString::trino let allStates = allGenerationStates(); [ - //dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | '\'' + $p->at(2)->mapToDBUnitTrino() + '\', ' + $p->at(1) + ', ' + $p->at(0)})), + // dynaFnToSql('adjust', $allStates, ^ToSql(format='date_add(%s)', transform={p:String[3] | '\'' + $p->at(2)->mapToDBUnitTrino() + '\', ' + $p->at(1) + ', ' + $p->at(0)})), + dynaFnToSql('booland', $allStates, ^ToSql(format='bool_and(%s)', transform={p:String[*] | joinStrings($p, ', ')})), + dynaFnToSql('boolor', $allStates, ^ToSql(format='bool_or(%s)', transform={p:String[*] | joinStrings($p, ', ')})), dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateTrino()})), dynaFnToSql('convertDateTime', $allStates, ^ToSql(format='%s' , transform={p:String[*] | $p->convertToDateTimeTrino()})), dynaFnToSql('convertVarchar128', $allStates, ^ToSql(format='cast(%s as VARCHAR(128))')), + dynaFnToSql('cot', $allStates, ^ToSql(format='cos(%s) / sin(%s)', transform={p:String[1] | [$p->at(0), $p->at(0)]})), dynaFnToSql('dateDiff', $allStates, ^ToSql(format='date_diff(%s,%s,%s)', transform={p:String[*]|[$p->at(2)->replace('\'', '')->processDateDiffDurationUnitForTrino(),$p->at(0),$p->at(1)]})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), + dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='day_of_month(%s)')), + dynaFnToSql('dayOfWeek', $allStates, ^ToSql(format='format(\'%%A\', %s)')), + dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='day_of_year(%s)')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='mod(day_of_week(%s),7)+1')), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date_trunc(\'month\', %s)')), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date_trunc(\'quarter\', %s)')), @@ -65,13 +72,20 @@ function <> meta::relational::functions::sqlQueryToString::trino dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='cast(date_trunc(\'year\', current_date) as timestamp)%s', transform={p:String[*] | ''})), dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date_trunc(\'week\', %s)')), dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='date_trunc(\'year\', %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='strpos(%s)', transform={p:String[2] | $p->at(0) + ', ' + $p->at(1)})), dynaFnToSql('left', $allStates, ^ToSql(format='substr(%s,1,%s)')), dynaFnToSql('length', $allStates, ^ToSql(format='length(%s)')), + dynaFnToSql('lpad', $allStates, ^ToSql(format='lpad(%s)', transform={p:String[2..*] | $p->concatenate(if ($p->size() == 2, | '\' \'', | []))->joinStrings(', ')})), dynaFnToSql('matches', $allStates, ^ToSql(format=regexpLikePattern('%s','%s'), transform={p:String[2]|$p->transformRegexpParams()})), + dynaFnToSql('md5', $allStates, ^ToSql(format='to_hex(md5(to_utf8(%s)))')), dynaFnToSql('minute', $allStates, ^ToSql(format='minute(%s)')), dynaFnToSql('month', $allStates, ^ToSql(format='month(%s)')), + dynaFnToSql('monthName', $allStates, ^ToSql(format='format(\'%%B\', %s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='month(%s)')), dynaFnToSql('mostRecentDayOfWeek', $allStates, ^ToSql(format='date_add(\'day\', case when %s - day_of_week(%s) > 0 then %s - day_of_week(%s) - 7 else %s - day_of_week(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentTrino('current_date')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('now', $allStates, ^ToSql(format='current_timestamp')), @@ -82,9 +96,13 @@ function <> meta::relational::functions::sqlQueryToString::trino dynaFnToSql('previousDayOfWeek', $allStates, ^ToSql(format='date_add(\'day\', case when %s - day_of_week(%s) >= 0 then %s - day_of_week(%s) - 7 else %s - day_of_week(%s) end, %s)', transform={p:String[1..2] | $p->formatMostRecentTrino('current_date')}, parametersWithinWhenClause = [false, false])), dynaFnToSql('quarter', $allStates, ^ToSql(format='quarter(%s)')), dynaFnToSql('quarterNumber', $allStates, ^ToSql(format='quarter(%s)')), - //dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), + dynaFnToSql('repeatString', $allStates, ^ToSql(format='rpad(%s, length(%s) * %s, %s)', transform={p:String[2] | [$p->at(0), $p->at(0), $p->at(1), $p->at(0)]})), + dynaFnToSql('right', $allStates, ^ToSql(format='substr(%s,-1,%s)')), + dynaFnToSql('rpad', $allStates, ^ToSql(format='rpad(%s)', transform={p:String[2..*] | $p->concatenate(if ($p->size() == 2, | '\' \'', | []))->joinStrings(', ')})), 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='to_hex(sha1(to_utf8(%s)))')), + dynaFnToSql('sha256', $allStates, ^ToSql(format='to_hex(sha256(to_utf8(%s)))')), 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)')), From efb45d6f88d8b5e187a6ac8b9e695c3c76d8f785 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Thu, 4 Jan 2024 20:57:15 +0000 Subject: [PATCH 48/54] TDS Schema -> propagate through resolved openvars (#2525) --- .../main/resources/core/pure/tds/tdsSchema.pure | 8 +++++--- .../resources/core/pure/tds/testTdsSchema.pure | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure index cff7447b91a..7d22b4cc77c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure @@ -23,7 +23,7 @@ function meta::pure::tds::schema::resolveSchema(f : FunctionDefinition[1], function meta::pure::tds::schema::resolveSchema(vs : ValueSpecification[1], openVars : Map>[1], extensions:meta::pure::extension::Extension[*]) : TDSColumn[*] { - resolveSchemaImpl($vs, $openVars, $extensions).columns; + resolveSchemaImpl($vs, $openVars, $extensions).columns; } function meta::pure::tds::schema::createSchemaState(cols : TDSColumn[*]) : SchemaState[1] @@ -171,7 +171,7 @@ function meta::pure::tds::schema::resolveSchemaImpl(vs : ValueSpecification[1], v:VariableExpression[1]| $openVars->get($v.name).values->evaluateAndDeactivate()->match([ t:TabularDataSet[1]|createSchemaState($t.columns), vs2:ValueSpecification[1]|resolveSchemaImpl($vs2, $openVars, $extensions) - ]), + ]);, fe:FunctionExpression[1]|resolveSchemaImpl($fe, $openVars, $extensions); ]); } @@ -324,7 +324,9 @@ function <> meta::pure::tds::schema::resolveSchemaImpl(fe : Func | //this allows us to handle calls to custom functions that return TDS. let zip = $fe.func.classifierGenericType.typeArguments.rawType->cast(@FunctionType).parameters->evaluateAndDeactivate()->zip($fe.parametersValues); let vars = $zip->map(p | - pair($p.first.name, list($p.second)); + let resolve = $openVars->get($p.first.name); + let vars = if ($resolve->isEmpty(), | list($p.second), | $resolve->toOne()); + pair($p.first.name, $vars); )->newMap(); $fe.func->cast(@FunctionDefinition)->resolveSchemaImpl($vars, $extensions);, diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure index d72eaa86a4b..2b7d84c307a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure @@ -35,6 +35,11 @@ function <> meta::pure::tds::schema::tests::addFullName(objects: ) } +function <> meta::pure::tds::schema::tests::addFullNameAndFilter(objects: meta::pure::tds::TabularDataSet[1], name:String[1]): meta::pure::tds::TabularDataSet[1] +{ + $objects->addFullName()->filter(r | $r.getString('fullName') == $name); +} + function <> meta::pure::tds::schema::tests::resolveSchemaTest() : Boolean[1] { assertSchemaRoundTripEquality({| @@ -55,6 +60,15 @@ function <> meta::pure::tds::schema::tests::resolveSchemaTest() : Bo ->meta::pure::tds::schema::tests::addFullName() }); + assertSchemaRoundTripEquality({| + Person.all() + ->project([ + col(p|$p.firstName,'firstName') , + col(p|$p.lastName,'lastName') + ]) + ->meta::pure::tds::schema::tests::addFullNameAndFilter('john doe') + }); + assertSchemaRoundTripEquality( [ ^TDSColumn(name='firstName', offset = 0, type = String), From a924434ca668ff369fbbd767b9ab192a4d30b387 Mon Sep 17 00:00:00 2001 From: Adeoye Oluwatobi Date: Fri, 5 Jan 2024 17:29:04 +0100 Subject: [PATCH 49/54] fix comma bug when rendering precedence rules (#2522) --- .../grammar/to/HelperMasteryGrammarComposer.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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/HelperMasteryGrammarComposer.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/HelperMasteryGrammarComposer.java index bc007bc9631..93894d23615 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/HelperMasteryGrammarComposer.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/HelperMasteryGrammarComposer.java @@ -14,7 +14,6 @@ package org.finos.legend.engine.language.pure.dsl.mastery.grammar.to; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.language.pure.grammar.to.DEPRECATED_PureGrammarComposerCore; @@ -38,6 +37,8 @@ import java.util.List; import java.util.Map; +import static org.apache.commons.lang3.StringUtils.chomp; +import static org.apache.commons.lang3.StringUtils.chop; import static org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerUtility.*; @@ -248,11 +249,11 @@ private static String renderPrecedenceRules(List precedenceRules StringBuilder nonSourcePrecedenceRulesBuilder = new StringBuilder() .append(getTabString(indentLevel)).append("precedenceRules: ["); - ListIterate.forEachWithIndex(precedenceRules, (precedenceRule, i) -> + ListIterate.forEach(precedenceRules, (precedenceRule) -> { String precedenceRuleString = precedenceRule.accept(new PrecedenceRuleComposer(indentLevel + 1, context, uniqueSourcePrecedenceRules)); nonSourcePrecedenceRulesBuilder.append(precedenceRuleString); - nonSourcePrecedenceRulesBuilder.append(i < precedenceRules.size() - 1 && !precedenceRuleString.equals("") ? "," : ""); + nonSourcePrecedenceRulesBuilder.append(!precedenceRuleString.isEmpty() ? "," : ""); }); return combinePrecedenceRules(uniqueSourcePrecedenceRules, nonSourcePrecedenceRulesBuilder.toString(), indentLevel); } @@ -262,14 +263,15 @@ private static String combinePrecedenceRules(Map, StringBui StringBuilder allPrecedenceRules = new StringBuilder(); if (uniqueSourcePrecedenceRules.isEmpty()) { - nonSourcePrecedenceRules = StringUtils.chomp(nonSourcePrecedenceRules); + nonSourcePrecedenceRules = chop(nonSourcePrecedenceRules); + nonSourcePrecedenceRules = chomp(nonSourcePrecedenceRules); } allPrecedenceRules.append(nonSourcePrecedenceRules); List sourcePrecedenceRules = new ArrayList<>(uniqueSourcePrecedenceRules.values()); ListIterate.forEachWithIndex(sourcePrecedenceRules, (sourcePrecedenceRule, i) -> { allPrecedenceRules.append(i > 0 ? "," : ""); - String sourcePrecedenceSTring = StringUtils.chop(sourcePrecedenceRule.toString()); + String sourcePrecedenceSTring = chop(sourcePrecedenceRule.toString()); allPrecedenceRules.append(sourcePrecedenceSTring).append("\n"); allPrecedenceRules.append(getTabString(indentLevel + 2)).append("];\n"); allPrecedenceRules.append(getTabString(indentLevel + 1)).append("}"); From b9d51b1ea0e1e1ce49c56dae041204494a949eb5 Mon Sep 17 00:00:00 2001 From: "Sherjan, Haroon" <35983762+haroonsherjan@users.noreply.github.com> Date: Fri, 5 Jan 2024 11:38:40 -0500 Subject: [PATCH 50/54] Translate XStore joins based on Runtime Locality (#2520) * Localize XStoreAssociations based on Runtime Locality * Update routing.pure * Update routing.pure * Update runtimeExtension.pure * Update extension.pure * Update extension.pure * Update testRouting.pure * Update method reference * Fix reference --- .../pure/graphFetch/graphFetch_routing.pure | 4 +- .../resources/core/pure/mapping/XStore.pure | 6 +- .../pure/router/deprecated/deprecated.pure | 2 +- .../router/extension/router_extension.pure | 1 + .../core/pure/router/store/cluster.pure | 4 +- .../core/pure/router/store/routing.pure | 93 ++++-- .../core/pure/runtime/runtimeExtension.pure | 8 + .../core/pure/store/storeContract.pure | 2 + .../relational/contract/storeContract.pure | 8 +- .../relational/modelJoins/modelJoins.pure | 118 ++++++++ .../testModelJoinsToRelationalJoins.pure | 279 ++++++++++++++++++ .../core_service/service/extension.pure | 5 +- .../core_servicestore/tests/testRouting.pure | 22 +- 13 files changed, 510 insertions(+), 42 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/modelJoins.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/testModelJoinsToRelationalJoins.pure 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 c5d1ad201be..7ccf2535377 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 @@ -218,7 +218,7 @@ function meta::pure::graphFetch::routing::routeRootGraphFetchTree(root: RootGrap let rootGetAllExpression = createGetAllApplicationForRootGraphFetchTree($root, $set); let dummyLambda = {|'ok'}; - let routedFunction = ^$dummyLambda(expressionSequence = $rootGetAllExpression)->routeFunction(getRoutingStrategyFromMappingAndRuntime($mapping, ^Runtime()), ^ExecutionContext(), [], true, $extensions, noDebug())->evaluateAndDeactivate()->toOne(); + let routedFunction = ^$dummyLambda(expressionSequence = $rootGetAllExpression)->routeFunction(getRoutingStrategyFromMappingAndRuntime($mapping, ^Runtime(), $extensions), ^ExecutionContext(), [], true, $extensions, noDebug())->evaluateAndDeactivate()->toOne(); let ext = $routedFunction.expressionSequence->evaluateAndDeactivate()->toOne()->cast(@StoreMappingClusteredValueSpecification).val->cast(@StoreMappingRoutedValueSpecification); let extended = if($exeCtx.enableConstraints->isEmpty() || $exeCtx.enableConstraints->toOne(), @@ -462,7 +462,7 @@ function meta::pure::graphFetch::routing::routePropertyGraphFetchTree(prop: Prop let cls = $functionExpression.genericType.rawType->toOne()->cast(@Class); // TODO Only allow no mapping routing for expanded (sub)trees - let routedFunctions = ^$dummyLambda(expressionSequence = $propertyApplicationExporession)->routeFunction(getRoutingStrategyFromMappingAndRuntime($mapping, ^Runtime()), ^ExecutionContext(), [], true, $extensions, noDebug())->evaluateAndDeactivate(); + let routedFunctions = ^$dummyLambda(expressionSequence = $propertyApplicationExporession)->routeFunction(getRoutingStrategyFromMappingAndRuntime($mapping, ^Runtime(), $extensions), ^ExecutionContext(), [], true, $extensions, noDebug())->evaluateAndDeactivate(); if($routedFunctions->isNotEmpty(), | let routedFunction = $routedFunctions->toOne(); 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 2b198c0bf4d..357c5d4d94e 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 @@ -124,10 +124,10 @@ function meta::pure::mapping::xStore::performXStoreQuery(o:Any[1], p:PropertyMap multiplicity = PureOne, values = $returnType.rawType ), - routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime) + routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime, $extensions) ) ), - routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime) + routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime, $extensions) ), ^FunctionRoutedValueSpecification ( @@ -143,7 +143,7 @@ function meta::pure::mapping::xStore::performXStoreQuery(o:Any[1], p:PropertyMap ) ] ), - routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime) + routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime, $extensions) )->evaluateAndDeactivate(); print(if(!$debug.debug, |'', 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 e8595f8cab3..d43c1e6f542 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 @@ -25,5 +25,5 @@ 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) + routeFunction($f, getRoutingStrategyFromMappingAndRuntime($mapping, $runtime, $extensions), $exeCtx, [], $extensions, $debug) } 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 95be391df8b..62ccfd245ec 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 @@ -26,6 +26,7 @@ Class meta::pure::router::extension::RouterExtension shouldStopPreeval : Function<{Any[*] -> Boolean[1]}>[0..1]; routeFunctionExpressions : PairBoolean[1]}>, Function<{Function[1], FunctionExpression[1], RoutingState[1], ExecutionContext[1], Map[1], Map>[1], meta::pure::extension::Extension[*], DebugContext[1]->RoutingState[1]}>>[*]; connectionEquality : Function<{Connection[1] -> Function<{Nil[1]->Boolean[1]}>[*]}>[0..1]; + processModelJoinsInExecution : Function<{Mapping[1], Runtime[1] -> Function<{Nil[1]->Mapping[1]}>[*]}>[0..1]; splitGraphFetchTreeForPropertyUnion : Boolean[1] = false; // Execution 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/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 2e7730b2cce..e80a08efe29 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 @@ -717,10 +717,10 @@ function meta::pure::router::clustering::clusteredGetAll(set: SetImplementation[ ( genericType = ^GenericType(rawType=Class, typeArguments=$sourceType), multiplicity = PureOne, values = $sourceType.rawType ), - routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($mapping, $runtime) + routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($mapping, $runtime, $extensions) ) ), - routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($mapping, $runtime) + routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($mapping, $runtime, $extensions) )->evaluateAndDeactivate(); let clustered = list($newExpr)->doCluster(^LambdaFunction<{->Any[1]}>(expressionSequence=^InstanceValue(values='', genericType=^GenericType(rawType=String), multiplicity=PureOne)), 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 044ee59f7d3..6f4db50c653 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 @@ -10,9 +10,11 @@ // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and -// limitations under the License. +// limitations under the License. import meta::pure::metamodel::relation::*; +import meta::relational::metamodel::*; +import meta::pure::extension::*; import meta::pure::graphFetch::*; import meta::pure::mapping::*; import meta::pure::router::builder::*; @@ -30,17 +32,72 @@ import meta::pure::runtime::*; // Store Mapping Routing Strategy Builder Helper // ========================================================================================= -function meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime(mapping:Mapping[1], runtime:Runtime[1]):StoreMappingRoutingStrategy[1] +function meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime(mapping:Mapping[1], runtime:Runtime[1], extensions: Extension[*]):StoreMappingRoutingStrategy[1] { - ^StoreMappingRoutingStrategy(mapping = $mapping, - runtime = $runtime, - setsByDepth = ^Map(), - classMappingsByClass = $mapping->buildClassMappingsByClassMap(), - processClass = processClass_Class_1__InstanceValue_1__RoutingState_1__ExecutionContext_1__DebugContext_1__RoutingState_1_, - processRelationStoreAccessor = processRelationStoreAccessor_RelationStoreAccessor_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_, - wrapValueSpec = wrapValueSpecificationStoreMapping_ValueSpecification_1__RoutingStrategy_1__String_1__ExecutionContext_1__Extension_MANY__DebugContext_1__ExtendedRoutedValueSpecification_1_, - toString = {strategy:RoutingStrategy[1] | $strategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()}); + getRoutingStrategyFromMappingAndRuntime([],$mapping, $runtime, $extensions); +} + +function meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime(routingStrategy: RoutingStrategy[0..1], mapping:Mapping[1], runtime:Runtime[1], extensions: Extension[*]):StoreMappingRoutingStrategy[1] +{ + let modifiedRuntime = $runtime; + let modifiedMapping = modifyMappingBasedOnRuntimeLocality($mapping, $modifiedRuntime, $extensions); + let currentStoreMappingRoutingStrategy = $routingStrategy->filter(x | $x->instanceOf(StoreMappingRoutingStrategy))->cast(@StoreMappingRoutingStrategy); + if($currentStoreMappingRoutingStrategy->isEmpty(), + | ^StoreMappingRoutingStrategy(mapping = $modifiedMapping, + runtime = $modifiedRuntime, + setsByDepth = ^Map(), + classMappingsByClass = $modifiedMapping->buildClassMappingsByClassMap(), + processClass = processClass_Class_1__InstanceValue_1__RoutingState_1__ExecutionContext_1__DebugContext_1__RoutingState_1_, + processRelationStoreAccessor = processRelationStoreAccessor_RelationStoreAccessor_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_, + wrapValueSpec = wrapValueSpecificationStoreMapping_ValueSpecification_1__RoutingStrategy_1__String_1__ExecutionContext_1__Extension_MANY__DebugContext_1__ExtendedRoutedValueSpecification_1_, + toString = {strategy:RoutingStrategy[1] | $strategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()} + );, + | let newStoreMappingRoutingStrategy = $currentStoreMappingRoutingStrategy->toOne(); + ^$newStoreMappingRoutingStrategy(mapping = $modifiedMapping, runtime = $modifiedRuntime, classMappingsByClass = $modifiedMapping->buildClassMappingsByClassMap(), setsByDepth = ^Map()); + ); +} + +function <> meta::pure::router::store::routing::modifyMappingBasedOnRuntimeLocality(mapping:Mapping[1], runtime:meta::core::runtime::Runtime[1], extensions: meta::pure::extension::Extension[*]):Mapping[1] +{ + let allMappings = $mapping->getIncludedMappingsRecursively(); + let classMappings = $allMappings.classMappings; + let associationMappings = $allMappings.associationMappings->map(associationMap|$associationMap->match( + [ + x:meta::pure::mapping::xStore::XStoreAssociationImplementation[1]| + let mappingIds = $x.propertyMappings.sourceSetImplementationId->concatenate($x.propertyMappings.targetSetImplementationId); + let inScopeClassMappings = $classMappings->filter(x|$x.id->in($mappingIds))->distinct(); + let inScopeStores = $inScopeClassMappings->map(setImpl | meta::pure::router::clustering::storeContractForSetImplementation($setImpl, $mapping, $extensions).second); + if( + $runtime.connectionStores->size() >= 1, + | let connection = $inScopeStores->map(s|$runtime->connectionByElementFailSafe($s))->distinct(); + if( + $connection->size() == 1, + | $connection->toOne()->match( + $extensions.availableStores.localizeXStoreAssociation + ->map(e|$e->eval($x, $inScopeClassMappings, $inScopeStores)) + ->concatenate([a:Connection[1] | $x;])->toOneMany() + );, + | $x + );, + | $x + );, + + a:AssociationImplementation[1]|$a + ] + )); + if( + $associationMappings->equal($allMappings.associationMappings), + | $mapping, + | let newMapping = ^Mapping(name=$mapping.name, includes=[], associationMappings=$associationMappings); + let includedMappings = $allMappings->map(map|^$map(associationMappings=[]))->map(map|^MappingInclude(owner=$newMapping,included=$map)); + $newMapping->mutateAdd('includes', $includedMappings); + ); +} + +function <> meta::pure::router::store::routing::getIncludedMappingsRecursively(m : Mapping[1]): Mapping[*] +{ + $m->concatenate(if($m.includes->isEmpty(), |[], |$m.includes.included->map(i|$i->getIncludedMappingsRecursively()))); } function meta::pure::router::store::routing::getRoutingStrategyFromRuntime(runtime:Runtime[1]):StoreRoutingStrategy[1] @@ -90,7 +147,7 @@ function <> meta::pure::router::store::routing::processClass(c:C 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' if ($classMapping->isEmpty(), | print(if($debug.debug,|$debug.space+'~>C) ('+$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->size()->toString()+') '+$state.value->toOne()->toString()+'\n',|'')); @@ -283,7 +340,7 @@ function meta::pure::router::store::routing::specializedFunctionExpressionRoute $r->reactivate($inScopeVars);, i:InstanceValue[1] |$i.values])); - let fromRuntime = $resolvedParameters->at(0)->cast(@Runtime); + let fromRuntime = $resolvedParameters->at(0)->cast(@Runtime); routeFunctionExpression( $fe.parametersValues->at(0)->cast(@FunctionExpression), ^$state(routingStrategy = getRoutingStrategyFromRuntime($fromRuntime)), @@ -308,10 +365,7 @@ function meta::pure::router::store::routing::specializedFunctionExpressionRoute let fromExecutionContext = if($resolvedParameters->size() == 3, | $resolvedParameters->at(2)->cast(@ExecutionContext), | $executionContext); let currentRoutingStrategy = $state.routingStrategy; - let newRoutingStrategy = if($currentRoutingStrategy->instanceOf(StoreMappingRoutingStrategy), - | let storeMapStrategy = $currentRoutingStrategy->cast(@StoreMappingRoutingStrategy); - ^$storeMapStrategy(mapping = $fromMapping, runtime = $fromRuntime, classMappingsByClass = $fromMapping->buildClassMappingsByClassMap(), setsByDepth = ^Map());, - | getRoutingStrategyFromMappingAndRuntime($fromMapping, $fromRuntime)); + let newRoutingStrategy = getRoutingStrategyFromMappingAndRuntime($currentRoutingStrategy, $fromMapping, $fromRuntime, $extensions); let newState = ^$state(routingStrategy = $newRoutingStrategy); let processedFunction = routeFunctionExpression($fe.parametersValues->at(0)->cast(@FunctionExpression), $newState, $fromExecutionContext, $vars, $inScopeVars, $extensions, $debug); @@ -361,10 +415,7 @@ function meta::pure::router::store::routing::specializedFunctionExpressionRoute 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 newRoutingStrategy = getRoutingStrategyFromMappingAndRuntime($currentRoutingStrategy, $mapping, $runtime, $extensions); 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())); 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 af4e0994f5a..cd45d8e86b1 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 @@ -94,6 +94,14 @@ function meta::core::runtime::connectionByElement(runtime:Runtime[1], store:Stor ); } +function meta::core::runtime::connectionByElementFailSafe(runtime:Runtime[1], store:Store[1]):Connection[*] +{ + if ($store->instanceOf(ModelStore), + |let connections = $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore)).connection;, + |let connections = $runtime.connectionStores->filter(c|$c.element == $store).connection; + ); +} + function meta::core::runtime::getMappingsFromRuntime(runtime:Runtime[0..1]):Mapping[*] { if($runtime->isNotEmpty(),|$runtime.connectionStores->filter(c | $c.connection->instanceOf(ModelChainConnection)).connection->cast(@ModelChainConnection).mappings,|[]); 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 cd79361bd1a..948c20fe06e 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 @@ -7,6 +7,7 @@ import meta::pure::store::*; import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; +import meta::pure::mapping::xStore::*; Class meta::pure::store::StoreContract extends meta::pure::router::extension::RouterExtension, meta::pure::executionPlan::extension::ExecutionPlanExtension { @@ -16,6 +17,7 @@ Class meta::pure::store::StoreContract extends meta::pure::router::extension::Ro supports : Function<{FunctionExpression[1]->Boolean[1]}>[0..1]; supportsNativeJoinAmongElements : Boolean[1]; isPropertyAutoMapped : Function<{AbstractProperty[1], InstanceSetImplementation[1]->Boolean[1]}>[0..1]; + localizeXStoreAssociation : Function<{XStoreAssociationImplementation[1], SetImplementation[*], Store[*] -> Function<{Nil[1]->AssociationImplementation[1]}>[*]}>[0..1]; // ------------------------------------------------------------------------------------------ Routing // ExecutionPlan Generation ------------------------------------------------------------------------- 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 c08b3bd50e6..ba6322a316e 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::pure::mapping::xStore::*; import meta::relational::contract::*; import meta::pure::router::metamodel::*; import meta::pure::router::systemMapping::tests::*; @@ -43,7 +44,12 @@ 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_, - + localizeXStoreAssociation = { + x : XStoreAssociationImplementation[1], setImpl : SetImplementation[*], stores : Store[*] | + [ + d: DatabaseConnection[1]| meta::external::store::relational::modelJoins::localizeXStoreAssociation($x, $setImpl, $stores); + ] + }, connectionEquality = { b : Connection [1] | [ d: RelationalDatabaseConnection[1]| diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/modelJoins.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/modelJoins.pure new file mode 100644 index 00000000000..b62caf16180 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/modelJoins.pure @@ -0,0 +1,118 @@ +import meta::pure::store::*; +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::*; +import meta::relational::functions::pureToSqlQuery::*; +import meta::pure::metamodel::valuespecification::*; +import meta::relational::mapping::*; +import meta::relational::metamodel::*; +import meta::relational::metamodel::operation::*; +import meta::relational::metamodel::relation::*; +import meta::relational::metamodel::join::*; +import meta::relational::functions::pureToSqlQuery::*; +import meta::relational::functions::pureToSqlQuery::relationalmappingspecification::*; +import meta::pure::mapping::*; +import meta::pure::metamodel::path::*; +import meta::pure::metamodel::serialization::grammar::*; +import meta::pure::milestoning::*; +import meta::pure::tds::*; +import meta::relational::functions::*; +import meta::relational::milestoning::*; +import meta::pure::router::clustering::*; +import meta::pure::router::printer::*; +import meta::pure::router::routing::*; +import meta::pure::router::store::embedded::*; +import meta::pure::router::store::metamodel::*; +import meta::pure::router::store::metamodel::clustering::*; +import meta::pure::router::utils::*; +import meta::relational::extension::*; +import meta::pure::mapping::xStore::*; +import meta::external::store::relational::modelJoins::*; + +function meta::external::store::relational::modelJoins::localizeXStoreAssociation(xstoreAssociation: XStoreAssociationImplementation[1], setImpl:SetImplementation[*], stores:Store[*]):AssociationImplementation[1] +{ + let database = ^Database(includes=$stores->cast(@Database)); + let relationalPropertyMappings = $xstoreAssociation.propertyMappings->cast(@XStorePropertyMapping)->map(xstorePropertyMapping | transformXStorePropertyIntoRelationalProperty($xstorePropertyMapping, $setImpl, $database)); + ^RelationalAssociationImplementation(association=$xstoreAssociation.association,parent=$xstoreAssociation.parent,id=$xstoreAssociation.id, stores=$database, propertyMappings=$relationalPropertyMappings); +} + +function <> meta::external::store::relational::modelJoins::transformXStorePropertyIntoRelationalProperty(xstoreProperty: meta::pure::mapping::xStore::XStorePropertyMapping[1], setImpl:SetImplementation[*], database:Database[1]): RelationalPropertyMapping[1] +{ + let expressionSequence = $xstoreProperty.crossExpression.expressionSequence->cast(@SimpleFunctionExpression)->toOne()->evaluateAndDeactivate(); + let sourceId = $xstoreProperty.sourceSetImplementationId->toOne(); + let targetId = $xstoreProperty.targetSetImplementationId->toOne(); + let classMappings = $setImpl->cast(@RootRelationalInstanceSetImplementation); + let sourceMainTableAlias = $classMappings->filter(c| $c.id == $sourceId)->toOne().mainTableAlias; + + let join = transformExpressionSequenceIntoJoin($expressionSequence, $sourceId, $targetId, $classMappings); + + let joinTreeNode = ^JoinTreeNode( + joinName=$join.name, + database=$join.database->toOne(), + alias=$join.target->toOne(), + join=$join + ); + + let ro = ^RelationalOperationElementWithJoin(joinTreeNode=$joinTreeNode); + let r = ^RelationalPropertyMapping(sourceSetImplementationId=$sourceId,property=$xstoreProperty.property->toOne(),relationalOperationElement=$ro,targetSetImplementationId=$targetId); +} + +function <> meta::external::store::relational::modelJoins::getTableAliasColumn(propertyImplementations:SimpleFunctionExpression[*], thisOrThat:String[1], id:String[1], classMappings:RootRelationalInstanceSetImplementation[*]):TableAliasColumn[1] +{ + let propertyImplementation = $propertyImplementations->filter(p|$p.parametersValues->cast(@VariableExpression).name->toOne()==$thisOrThat).func->toOne(); + let classMapping = $classMappings->filter(c| $c.id == $id)->toOne(); + let relationalPropertyMapping = $classMapping.propertyMappings->filter(p|$p.property==$propertyImplementation)->cast(@RelationalPropertyMapping)->toOne(); + let tableAliasColumn = $relationalPropertyMapping.relationalOperationElement->cast(@TableAliasColumn)->toOne(); +} + +function <> meta::external::store::relational::modelJoins::transformExpressionSequenceIntoJoin(expressionSequence: SimpleFunctionExpression[1], sourceId:String[1], targetId:String[1], classMappings:RootRelationalInstanceSetImplementation[*]): Join[1] +{ + let functionOperator = $expressionSequence.functionName->toOne(); + let joinName = $sourceId + '_' + $targetId + '_GeneratedRelationalJoin'; + let sourceMainTableAlias = $classMappings->filter(c| $c.id == $sourceId)->toOne().mainTableAlias->map(alias|^$alias(name=$alias.relation->cast(@Table).name)); + let targetMainTableAlias = $classMappings->filter(c| $c.id == $targetId)->toOne().mainTableAlias->map(alias|^$alias(name=$alias.relation->cast(@Table).name)); + let sourceDatabase = $sourceMainTableAlias.database->toOne(); + let targetDatabase = $targetMainTableAlias.database->toOne(); + let aggregatedDatabase = ^Database(includes=[$sourceDatabase, $targetDatabase]); + + assertContains(['equal', 'not', 'and', 'or'], $functionOperator, 'Failed to translate XStore Property into Relational Property because function operator is not in standard list'); + + let join = if( + $functionOperator=='equal' || $functionOperator=='not', + | let propertyImplementations = $expressionSequence.parametersValues->cast(@SimpleFunctionExpression)->evaluateAndDeactivate(); + + let sourceTableAliasColumn = getTableAliasColumn($propertyImplementations, 'this', $sourceId, $classMappings); + let sourceTableAlias = $sourceTableAliasColumn.alias->cast(@TableAlias)->map(alias|^$alias(name=$alias.relation->cast(@Table).name)); + + let targetTableAliasColumn = getTableAliasColumn($propertyImplementations, 'that', $targetId, $classMappings); + let targetTableAlias = $targetTableAliasColumn.alias->cast(@TableAlias)->map(alias|^$alias(name=$alias.relation->cast(@Table).name)); + + let parameters = $sourceTableAliasColumn->concatenate($targetTableAliasColumn); + let operation = ^DynaFunction(name=$functionOperator, parameters=$parameters); + ^Join( + name=$joinName, + operation=$operation, + target=$targetTableAlias, + database=$aggregatedDatabase, + aliases = [^Pair(first=$targetTableAlias,second=$sourceTableAlias), ^Pair(first=$sourceTableAlias,second=$targetTableAlias)] + );, + | let childJoins = $expressionSequence.parametersValues->map(p | + transformExpressionSequenceIntoJoin($p->cast(@SimpleFunctionExpression)->evaluateAndDeactivate(), $sourceId, $targetId, $classMappings) + ); + let operation = ^DynaFunction(name=$functionOperator, parameters=$childJoins.operation->evaluateAndDeactivate()); + ^Join( + name=$joinName, + operation=$operation, + target=$targetMainTableAlias, + database=$aggregatedDatabase, + aliases = [^Pair(first=$targetMainTableAlias,second=$sourceMainTableAlias), ^Pair(first=$sourceMainTableAlias,second=$targetMainTableAlias)]->concatenate($childJoins.aliases) + ); + ); + +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/testModelJoinsToRelationalJoins.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/testModelJoinsToRelationalJoins.pure new file mode 100644 index 00000000000..f731237120b --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelJoins/testModelJoinsToRelationalJoins.pure @@ -0,0 +1,279 @@ +###Pure +import meta::pure::mapping::*; +import meta::pure::graphFetch::execution::*; +import meta::pure::executionPlan::*; +import meta::relational::metamodel::execute::*; +import meta::relational::mapping::*; +import meta::relational::runtime::*; +import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::core::runtime::*; +import meta::external::store::relational::modelJoins::test::*; +import meta::pure::alloy::connections::alloy::specification::*; + +function <> meta::external::store::relational::modelJoins::test::setUp():Boolean[1] +{ + let connection = meta::external::store::relational::tests::testRuntime(LocalTradesDatabase).connectionStores.connection->toOne()->cast(@DatabaseConnection); + + executeInDb('Drop table if exists LegalEntity;', $connection); + executeInDb('Create Table LegalEntity (ENTITY_ID INT, name VARCHAR(32));', $connection); + executeInDb('insert into LegalEntity (ENTITY_ID, name) values (1, \'Firm X\');', $connection); + executeInDb('insert into LegalEntity (ENTITY_ID, name) values (2, \'Firm A\');', $connection); + + executeInDb('Drop table if exists Trade;', $connection); + executeInDb('Create Table Trade(id INT, ENTITY_NAME_FK VARCHAR(32), value INT, ENTITY_ID_FK INT);', $connection); + executeInDb('insert into Trade (id, ENTITY_NAME_FK, value, ENTITY_ID_FK) values (1, \'Firm X\', 8, 1);', $connection); + executeInDb('insert into Trade (id, ENTITY_NAME_FK, value, ENTITY_ID_FK) values (2, \'Firm A\', 9, 2);', $connection); + executeInDb('insert into Trade (id, ENTITY_NAME_FK, value, ENTITY_ID_FK) values (3, \'Firm X\', 10, 1);', $connection); + executeInDb('insert into Trade (id, ENTITY_NAME_FK, value, ENTITY_ID_FK) values (4, \'Firm X\', 11, 1);', $connection); + true; +} + +function meta::external::store::relational::modelJoins::test::getConnection():meta::core::runtime::Connection[1] +{ + ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); +} + +function meta::external::store::relational::modelJoins::test::getXStoreRuntime():Runtime[1] +{ + let c = getConnection(); + let xstoreruntime = ^meta::core::runtime::Runtime( + connectionStores=[ + ^ConnectionStore(element=XStoreTradesDatabase, connection=$c), + ^ConnectionStore(element=EntityDatabase, connection=$c) + ] + ); +} + +function meta::external::store::relational::modelJoins::test::getLocalRuntime():Runtime[1] +{ + let localruntime = ^meta::core::runtime::Runtime( + connectionStores=[ + ^ConnectionStore(element=LocalTradesDatabase, connection=getConnection()) + ] + ); +} + +function <> meta::external::store::relational::modelJoins::test::testPersonToFirmUsingProject():Boolean[1] +{ + let query = {|Trade.all()->project([x|$x.value,x|$x.client.name],['Value','Client/Name']);}; + let xstoreResult = executionPlan($query, XStoreTradesMapping, getXStoreRuntime(), meta::relational::extension::relationalExtensions()); + let localResult = executionPlan($query, LocalTradesMapping, getLocalRuntime(),meta::relational::extension::relationalExtensions()); + assertEquals( + $xstoreResult.rootExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).sqlQuery, + $localResult.rootExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).sqlQuery + ); + assertEquals('select "root".value as "Value", "legalentity_0".name as "Client/Name" from Trades.Trade as "root" left outer join Entity.LegalEntity as "legalentity_0" on ("root".ENTITY_ID_FK = "legalentity_0".ENTITY_ID and "root".ENTITY_NAME_FK = "legalentity_0".name)',$xstoreResult.rootExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).sqlQuery); + // assertSameElements(['Anthony Firm X', 'David Firm C', 'Fabrice Firm A', 'John Firm X', 'John Firm X', 'Oliver Firm B', 'Peter Firm X'], $result.values->at(0).rows->map(r|$r.getString('name')+' '+$r.getString('firm')->toString())); +} + +function <> meta::external::store::relational::modelJoins::test::testPersonToFirmUsingFromProject():Boolean[1] +{ + let xstoreResult = executionPlan({|Trade.all()->from(XStoreTradesMapping, getXStoreRuntime())->project([x|$x.value,x|$x.client.name],['Value','Client/Name']);}, meta::relational::extension::relationalExtensions()); + let localResult = executionPlan({|Trade.all()->from(LocalTradesMapping, getLocalRuntime())->project([x|$x.value,x|$x.client.name],['Value','Client/Name']);}, meta::relational::extension::relationalExtensions()); + assertEquals( + $xstoreResult.rootExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).sqlQuery, + $localResult.rootExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).sqlQuery + ); + assertEquals('select "root".value as "Value", "legalentity_0".name as "Client/Name" from Trades.Trade as "root" left outer join Entity.LegalEntity as "legalentity_0" on ("root".ENTITY_ID_FK = "legalentity_0".ENTITY_ID and "root".ENTITY_NAME_FK = "legalentity_0".name)',$xstoreResult.rootExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).sqlQuery); + // assertSameElements(['Anthony Firm X', 'David Firm C', 'Fabrice Firm A', 'John Firm X', 'John Firm X', 'Oliver Firm B', 'Peter Firm X'], $result.values->at(0).rows->map(r|$r.getString('name')+' '+$r.getString('firm')->toString())); +} + +function <> meta::external::store::relational::modelJoins::test::testPersonToFirmGraphUsingFetch():Boolean[1] +{ + let tree = #{ + Trade { + value, + client { + name + } + } + }#; + let query = {|Trade.all()->graphFetch($tree)->serialize($tree);}; + let xstoreResult = executionPlan($query, XStoreTradesMapping, getXStoreRuntime(), meta::relational::extension::relationalExtensions()); + let localResult = executionPlan($query, LocalTradesMapping, getLocalRuntime(), meta::relational::extension::relationalExtensions()); + false; +} + +function <> meta::external::store::relational::modelJoins::test::testPersonToFirmUsingFromGraphFetch():Boolean[1] +{ + let tree = #{ + Trade { + value, + client { + name + } + } + }#; + let xstoreResult = executionPlan({|Trade.all()->from(XStoreTradesMapping, getXStoreRuntime())->graphFetch($tree)->serialize($tree);}, meta::relational::extension::relationalExtensions()); + let localResult = executionPlan({|Trade.all()->from(LocalTradesMapping, getLocalRuntime())->graphFetch($tree)->serialize($tree);}, meta::relational::extension::relationalExtensions()); + false; +} + +###Pure +Class meta::external::store::relational::modelJoins::test::LegalEntity +{ + entityId: String[1]; + name: String[1]; +} + +Class meta::external::store::relational::modelJoins::test::Trade +{ + id: String[1]; + value: Integer[1]; +} + +Class meta::external::store::relational::modelJoins::test::OtherEntity +{ + idPlusName: String[1]; +} + +Association meta::external::store::relational::modelJoins::test::Trade_LegalEntity +{ + client: meta::external::store::relational::modelJoins::test::LegalEntity[1]; + trades: meta::external::store::relational::modelJoins::test::Trade[*]; +} + +Association meta::external::store::relational::modelJoins::test::Trade_OtherEntity +{ + otherClient: meta::external::store::relational::modelJoins::test::OtherEntity[1]; + trades: meta::external::store::relational::modelJoins::test::Trade[*]; +} + + +###Relational +Database meta::external::store::relational::modelJoins::test::EntityDatabase +( + Schema Entity + ( + Table LegalEntity + ( + ENTITY_ID VARCHAR(32) PRIMARY KEY, + name VARCHAR(32) NOT NULL + ) + ) +) + +###Relational +Database meta::external::store::relational::modelJoins::test::LocalTradesDatabase +( + include meta::external::store::relational::modelJoins::test::EntityDatabase + Schema Trades + ( + Table Trade + ( + id VARCHAR(32) PRIMARY KEY, + value INTEGER NOT NULL, + ENTITY_ID_FK VARCHAR(32) NOT NULL, + ENTITY_NAME_FK VARCHAR(32) NOT NULL + ) + ) + + Join Entity_Trade( + Trades.Trade.ENTITY_ID_FK = Entity.LegalEntity.ENTITY_ID and Trades.Trade.ENTITY_NAME_FK = Entity.LegalEntity.name + ) +) + + +###Relational +Database meta::external::store::relational::modelJoins::test::XStoreTradesDatabase +( + Schema Trades + ( + Table Trade + ( + id VARCHAR(32) PRIMARY KEY, + value INTEGER NOT NULL, + ENTITY_ID_FK VARCHAR(32) NOT NULL, + ENTITY_NAME_FK VARCHAR(32) NOT NULL + ) + ) +) + + +###Mapping +import meta::external::store::relational::modelJoins::test::*; + +Mapping meta::external::store::relational::modelJoins::test::LegalEntityMapping +( + meta::external::store::relational::modelJoins::test::LegalEntity[legal_entity]: Relational + { + ~primaryKey + ( + [meta::external::store::relational::modelJoins::test::EntityDatabase]Entity.LegalEntity.ENTITY_ID + ) + ~mainTable [meta::external::store::relational::modelJoins::test::EntityDatabase]Entity.LegalEntity + entityId: [meta::external::store::relational::modelJoins::test::EntityDatabase]Entity.LegalEntity.ENTITY_ID, + name: [meta::external::store::relational::modelJoins::test::EntityDatabase]Entity.LegalEntity.name + } + + OtherEntity[otherEntity]: Pure + { + ~src LegalEntity + idPlusName: toString($src.entityId)+$src.name + } +) + +###Mapping +import meta::external::store::relational::modelJoins::test::*; + +Mapping meta::external::store::relational::modelJoins::test::LocalTradesMapping +( + include meta::external::store::relational::modelJoins::test::LegalEntityMapping + + Trade[trade]: Relational + { + ~primaryKey + ( + [LocalTradesDatabase]Trades.Trade.id + ) + ~mainTable [LocalTradesDatabase]Trades.Trade + id: [LocalTradesDatabase]Trades.Trade.id, + value: [LocalTradesDatabase]Trades.Trade.value, + +entityIdFk: String[1]: [LocalTradesDatabase]Trades.Trade.ENTITY_ID_FK, + +entityNameFk: String[1]: [LocalTradesDatabase]Trades.Trade.ENTITY_NAME_FK + } + + meta::external::store::relational::modelJoins::test::Trade_LegalEntity[trade_legal]: Relational + { + AssociationMapping + ( + client[trade, legal_entity]: [LocalTradesDatabase]@Entity_Trade, + trades[legal_entity, trade]: [LocalTradesDatabase]@Entity_Trade + ) + } +) + + +###Mapping +import meta::external::store::relational::modelJoins::test::*; + +Mapping meta::external::store::relational::modelJoins::test::XStoreTradesMapping +( + include meta::external::store::relational::modelJoins::test::LegalEntityMapping + + Trade[trade]: Relational + { + ~primaryKey + ( + [XStoreTradesDatabase]Trades.Trade.id + ) + ~mainTable [XStoreTradesDatabase]Trades.Trade + id: [XStoreTradesDatabase]Trades.Trade.id, + value: [XStoreTradesDatabase]Trades.Trade.value, + +entityIdFk: String[1]: [XStoreTradesDatabase]Trades.Trade.ENTITY_ID_FK, + +entityNameFk: String[1]: [XStoreTradesDatabase]Trades.Trade.ENTITY_NAME_FK + } + + meta::external::store::relational::modelJoins::test::Trade_LegalEntity: XStore + { + client[trade, legal_entity]: $this.entityIdFk == + $that.entityId && $this.entityNameFk == $that.name, + trades[legal_entity, trade]: $this.entityId == + $that.entityIdFk && $this.name == $that.entityNameFk + } +) 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 c5070ac09e3..497ccf0c7bb 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 @@ -34,10 +34,7 @@ function meta::legend::service::serviceExtension() : Extension[1] let fromRuntime = $fromSingleExecParams.runtime; let currentRoutingStrategy = $state.routingStrategy; - let newRoutingStrategy = if($currentRoutingStrategy->instanceOf(StoreMappingRoutingStrategy), - | let storeMapStrategy = $currentRoutingStrategy->cast(@StoreMappingRoutingStrategy); - ^$storeMapStrategy(mapping = $fromMapping, runtime = $fromRuntime, classMappingsByClass = $fromMapping->buildClassMappingsByClassMap(), setsByDepth = ^Map());, - | getRoutingStrategyFromMappingAndRuntime($fromMapping, $fromRuntime)); + let newRoutingStrategy = getRoutingStrategyFromMappingAndRuntime($currentRoutingStrategy, $fromMapping, $fromRuntime, $extensions); let newState = ^$state(routingStrategy = $newRoutingStrategy); let processedFunction = routeFunctionExpressionFunctionDefinition($f, $fe, $newState, $executionContext, $vars, $inScopeVars, $extensions, $debug); diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/testRouting.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/testRouting.pure index 5a82390125b..70aae263af1 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/testRouting.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/testRouting.pure @@ -18,6 +18,12 @@ import meta::external::store::service::extension::*; import meta::external::store::service::tests::domain::*; import meta::external::store::service::tests::mapping::*; import meta::external::store::service::tests::runtime::*; +import meta::external::store::service::tests::router::*; + +function meta::external::store::service::tests::router::serviceStoreTestExtensions():meta::pure::extension::Extension[*] +{ + meta::pure::extension::defaultExtensions()->concatenate(serviceStoreExtensions()) +} function <> meta::external::store::service::tests::router::testServiceStoreRoutingSimple():Boolean[1] { @@ -30,7 +36,7 @@ function <> meta::external::store::service::tes }#; let query = {|S_Trade.all()->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_trade_set/[1 s_trade_set/[1 s_trade_set/Class S_Trade].all()] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_trade_set / meta::external::store::service::tests::domain::S_Trade] {@(s_trade_set->)@ [ / s_tradeId], @(s_trade_set->)@ [ / s_traderDetails], @(s_trade_set->)@ [ / s_tradeDetails]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Trade {s_tradeId, s_traderDetails, s_tradeDetails}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -45,7 +51,7 @@ function <> meta::external::store::service::tes }#; let query = {|S_Product.all()->filter(p | $p.s_productId == 'xyz')->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_prod_set/[1 s_prod_set/[1 s_prod_set/[1 s_prod_set/Class S_Product].all()] -> filter([Routed Func:p:meta::external::store::service::tests::domain::S_Product[1] | [1 @s_productId(s_prod_set->)@ s_prod_set/[1 s_prod_set/$p].s_productId] == \'xyz\';])] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_prod_set / meta::external::store::service::tests::domain::S_Product] {@(s_prod_set->)@ [ / s_productId], @(s_prod_set->)@ [ / s_productName], @(s_prod_set->)@ [ / s_description]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Product {s_productId, s_productName, s_description}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -60,7 +66,7 @@ function <> meta::external::store::service::tes }#; let query = {|S_Product.all()->filter(p | $p.s_productId == 'xyz' && $p.s_productName == 'dummy')->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_prod_set/[1 s_prod_set/[1 s_prod_set/[1 s_prod_set/Class S_Product].all()] -> filter([Routed Func:p:meta::external::store::service::tests::domain::S_Product[1] | [1 @s_productId(s_prod_set->)@ s_prod_set/[1 s_prod_set/$p].s_productId] == \'xyz\' -> and([1 @s_productName(s_prod_set->)@ s_prod_set/[1 s_prod_set/$p].s_productName] == \'dummy\');])] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_prod_set / meta::external::store::service::tests::domain::S_Product] {@(s_prod_set->)@ [ / s_productId], @(s_prod_set->)@ [ / s_productName], @(s_prod_set->)@ [ / s_description]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Product {s_productId, s_productName, s_description}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -75,7 +81,7 @@ function <> meta::external::store::service::tes }#; let query = {id:String[1]|S_Product.all()->filter(p | $p.s_productId == $id)->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals('id:String[1] | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_prod_set/[1 s_prod_set/[1 s_prod_set/[1 s_prod_set/Class S_Product].all()] -> filter([Routed Func:p:meta::external::store::service::tests::domain::S_Product[1] | [1 @s_productId(s_prod_set->)@ s_prod_set/[1 s_prod_set/$p].s_productId] == $id;])] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_prod_set / meta::external::store::service::tests::domain::S_Product] {@(s_prod_set->)@ [ / s_productId], @(s_prod_set->)@ [ / s_productName], @(s_prod_set->)@ [ / s_description]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Product {s_productId, s_productName, s_description}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -94,7 +100,7 @@ function <> meta::external::store::service::tes }#; let query = {|S_Product.all()->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_prod_set/[1 s_prod_set/[1 s_prod_set/Class S_Product].all()] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_prod_set / meta::external::store::service::tests::domain::S_Product] {@(s_prod_set->)@ [ / s_productId], @(s_prod_set->)@ [ / s_productName], @(s_prod_set->)@ [ / s_description], @(s_prod_set->s_synonym_set)@ [s_synonym_set / s_synonyms] {@(s_synonyms->)@ [ / s_type], @(s_synonyms->)@ [ / s_name]}}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Product {s_productId, s_productName, s_description, s_synonyms {s_type, s_name}}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -118,7 +124,7 @@ function <> meta::external::store::service::tes }#; let query = {|S_Trade.all()->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_trade_set/[1 s_trade_set/[1 s_trade_set/Class S_Trade].all()] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_trade_set / meta::external::store::service::tests::domain::S_Trade] {@(s_trade_set->)@ [ / s_tradeId], @(s_trade_set->)@ [ / s_traderDetails], {meta::external::store::service::tests::store::TradeProductServiceStore> @(s_trade_set->s_prod_set)@ [s_prod_set / s_product] {@(s_prod_set->)@ [ / s_productId], @(s_prod_set->)@ [ / s_productName], @(s_prod_set->)@ [ / s_description], @(s_prod_set->s_synonym_set)@ [s_synonym_set / s_synonyms] {@(s_synonyms->)@ [ / s_name], @(s_synonyms->)@ [ / s_type]}, @(s_prod_set->)@ [ / s_tradeId]}}, @(s_trade_set->)@ [ / s_tradeDetails]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Trade {s_tradeId, s_traderDetails, s_tradeDetails, s_product {s_productId, s_productName, s_description, s_synonyms {s_name, s_type}}}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -133,7 +139,7 @@ function <> meta::external::store::service::tes }#; let query = {|S_Trade.all()->toOne()->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_trade_set/[1 s_trade_set/[1 s_trade_set/[1 s_trade_set/Class S_Trade].all()] -> toOne()] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_trade_set / meta::external::store::service::tests::domain::S_Trade] {@(s_trade_set->)@ [ / s_tradeId], @(s_trade_set->)@ [ / s_traderDetails], @(s_trade_set->)@ [ / s_tradeDetails]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Trade {s_tradeId, s_traderDetails, s_tradeDetails}}#)]};', $routed->meta::pure::router::printer::asString()); } @@ -148,6 +154,6 @@ function <> meta::external::store::service::tes }#; let query = {|S_Trade.all()->take(10)->graphFetch($tree)->serialize($tree)}; - let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreExtensions(), noDebug()); + let routed = $query->routeFunction(serviceStoreMapping(), serviceStoreRuntime(), ^meta::pure::runtime::ExecutionContext(), serviceStoreTestExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{meta::external::store::service::tests::store::TradeProductServiceStore> [1 s_trade_set/[1 s_trade_set/[1 s_trade_set/[1 s_trade_set/Class S_Trade].all()] -> take(10)] -> graphFetch({meta::external::store::service::tests::store::TradeProductServiceStore> [s_trade_set / meta::external::store::service::tests::domain::S_Trade] {@(s_trade_set->)@ [ / s_tradeId], @(s_trade_set->)@ [ / s_traderDetails], @(s_trade_set->)@ [ / s_tradeDetails]}})]} -> serialize(#{meta::external::store::service::tests::domain::S_Trade {s_tradeId, s_traderDetails, s_tradeDetails}}#)]};', $routed->meta::pure::router::printer::asString()); } From ec678f57806d07080fda2c261d93f6b61545e1b0 Mon Sep 17 00:00:00 2001 From: siaka-Akash <109946032+siaka-Akash@users.noreply.github.com> Date: Fri, 5 Jan 2024 23:05:09 +0530 Subject: [PATCH 51/54] Support hosted service execution from data space (#2527) * add dependency * add dependency * add generation for dataSpace * add packageableRuntime * add tests * add Dependency * add dependency * add dataSpace support in from function * fix naming * change multiExec logic --- .../pom.xml | 15 +++++ .../core_hostedservice.definition.json | 6 +- .../generation/generation.pure | 48 +++++++++------- .../showcase/showcaseModel.pure | 10 ++++ .../showcase/showcaseServices.pure | 55 ++++++++++++++++++- .../pom.xml | 14 +++++ .../resources/core_service.definition.json | 5 +- .../service/mappingExtension.pure | 7 ++- 8 files changed, 134 insertions(+), 26 deletions(-) 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 821a84ad6ab..29cfe995952 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 @@ -85,6 +85,11 @@ legend-engine-xt-relationalStore-pure ${project.version} + + org.finos.legend.engine + legend-engine-xt-data-space-pure-metamodel + ${project.version} + @@ -123,6 +128,11 @@ legend-pure-m2-dsl-diagram-grammar ${legend.pure.version} + + org.finos.legend.engine + legend-engine-xt-data-space-pure-metamodel + ${project.version} + @@ -214,5 +224,10 @@ org.eclipse.collections eclipse-collections-api + + org.finos.legend.engine + legend-engine-xt-data-space-pure-metamodel + + diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json index 65e20406065..6043e6c58dc 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json @@ -2,6 +2,7 @@ "name": "core_hostedservice", "pattern": "(meta::external::function::activator::hostedService|meta::protocols)(::.*)?", "dependencies": [ + "platform", "platform", "platform_dsl_graph", "platform_dsl_mapping", @@ -12,6 +13,7 @@ "core_function_activator", "core_functions", "core_service", - "core" + "core", + "core_data_space_metamodel" ] -} \ No newline at end of file +} 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 afd1c983fac..c2b3322ce9f 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 @@ -11,6 +11,7 @@ import meta::pure::graphFetch::*; import meta::external::function::activator::hostedService::generation::*; import meta::pure::extension::*; import meta::external::function::activator::hostedService::*; +import meta::pure::metamodel::dataSpace::*; function meta::external::function::activator::hostedService::generation::printPlan(h:HostedService[1]): Any[*] @@ -119,12 +120,11 @@ function meta::external::function::activator::hostedService::generation::getTree ->cast(@GraphFetchTree)->toOne() } -function meta::external::function::activator::hostedService::generation::isMultiEenvironmentService(h:HostedService[1] ):Boolean[1] +function meta::external::function::activator::hostedService::generation::isMultiEenvironmentService(h:HostedService[1]):Boolean[1] { - $h.function->meta::external::function::activator::hostedService::generation::getExecutionEnvInstance()->size()>0; + $h.function->meta::external::function::activator::hostedService::generation::getExecutionParam()->size() > 0; } - function meta::external::function::activator::hostedService::generation::getEnvironmentkey(h:HostedService[1] ):String[1] { let func = $h.function; @@ -142,11 +142,10 @@ function meta::external::function::activator::hostedService::generation::getEnvi } - -function meta::external::function::activator::hostedService::generation::getExecutionEnvInstance(func: PackageableFunction[1]):ExecutionEnvironmentInstance[*] +function meta::external::function::activator::hostedService::generation::getExecutionParam(func: PackageableFunction[1]):PackageableElement[*] { let valueSpecification = $func->cast(@ConcreteFunctionDefinition).expressionSequence->cast(@SimpleFunctionExpression)->evaluateAndDeactivate().parametersValues - ->filter(x| $x.genericType.rawType->toOne()->in([ExecutionEnvironmentInstance, SingleExecutionParameters])); + ->filter(x| $x.genericType.rawType->toOne()->in([ExecutionEnvironmentInstance, SingleExecutionParameters, DataSpace])); //today we'll get a function cos we're in the pure IDE. from syudio we should be getting a packageable element so the need for the inner match will be eliminated if($valueSpecification->isNotEmpty(), |$valueSpecification->match([ @@ -157,26 +156,36 @@ function meta::external::function::activator::hostedService::generation::getExec e: ExecutionEnvironmentInstance[1]| $e ]));, |$s->reactivate()->toOne() - ); , + );, e: ExecutionEnvironmentInstance[1]| $e, + d: DataSpace[1] | $d, a:Any[1]| fail('unexpected type'); $a; ]), - |[])->cast(@ExecutionEnvironmentInstance); + |[])->cast(@PackageableElement); } function meta::external::function::activator::hostedService::generation::rebuildServiceUsingSingleExecutionParams(h:HostedService[1] ):Pair[*] { - let execEnv = getExecutionEnvInstance($h.function); - assert($execEnv->size()== 1, 'Found too many/not enough execution environment instances. Size='+ $execEnv->size()->toString()); - $execEnv.executionParameters->map( - p| assert($p->instanceOf(SingleExecutionParameters),'Only handles singleExecutionParams'); - let newFunc = rebuildFromExpression($h.function, $p->cast(@SingleExecutionParameters)); - let newHostedService = ^$h(function=$newFunc); - pair($p->cast(@SingleExecutionParameters).key, $newHostedService); - ); + let execParam = getExecutionParam($h.function); + $execParam->match([ + e : ExecutionEnvironmentInstance[*] | assert($e->size()== 1, 'Found too many/not enough execution environment instances. Size='+ $e->size()->toString()); + $e.executionParameters->map( + p | assert($p->instanceOf(SingleExecutionParameters),'Only handles singleExecutionParams'); + let newFunc = rebuildFromExpression($h.function, $p->cast(@SingleExecutionParameters).mapping, $p->cast(@SingleExecutionParameters).runtime); + let newHostedService = ^$h(function=$newFunc); + pair($p->cast(@SingleExecutionParameters).key, $newHostedService); + );, + d : DataSpace[*] | assert($d->size() == 1, 'Found too many/ not enough dataSpaces, Size =' + $d->size()->toString()); + $d.executionContexts->map( + ec | let newFunc = rebuildFromExpression($h.function, $ec.mapping, $ec.defaultRuntime.runtimeValue); + let newHostedService = ^$h(function = $newFunc); + pair($ec.name, $newHostedService); + );, + a : Any[1] | fail('unexpected type'); []; + ]); } -function meta::external::function::activator::hostedService::generation::rebuildFromExpression(func: PackageableFunction[1], executionParam:SingleExecutionParameters[1]): PackageableFunction[1] +function meta::external::function::activator::hostedService::generation::rebuildFromExpression(func: PackageableFunction[1], mapping: Mapping[1], runtime: Runtime[1]): PackageableFunction[1] { let fromExpression = ^SimpleFunctionExpression( importGroup = system::imports::coreImport, @@ -185,8 +194,8 @@ function meta::external::function::activator::hostedService::generation::rebuild genericType = $func->functionReturnType(), multiplicity = PureOne, parametersValues = $func->cast(@ConcreteFunctionDefinition).expressionSequence->cast(@SimpleFunctionExpression)->evaluateAndDeactivate().parametersValues->at(0) - ->concatenate(^InstanceValue(genericType =^GenericType(rawType = Mapping), multiplicity = PureOne, values = $executionParam.mapping)) - ->concatenate(^InstanceValue(genericType =^GenericType(rawType = Runtime), multiplicity = PureOne, values = $executionParam.runtime)) + ->concatenate(^InstanceValue(genericType =^GenericType(rawType = Mapping), multiplicity = PureOne, values = $mapping)) + ->concatenate(^InstanceValue(genericType =^GenericType(rawType = Runtime), multiplicity = PureOne, values = $runtime)) )->evaluateAndDeactivate(); let serviceFunc = $func->cast(@ConcreteFunctionDefinition); let newServiceFunc = ^$serviceFunc(expressionSequence =$fromExpression->evaluateAndDeactivate()); @@ -247,4 +256,3 @@ function meta::external::function::activator::hostedService::validator::allowedR Byte ] } - 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 d22a487cd78..819c8c6ffaf 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 @@ -27,6 +27,16 @@ function meta::external::function::activator::hostedService::tests::testRuntime( testRuntime(testDatabaseConnection($db,[]->cast(@String))); } +function meta::external::function::activator::hostedService::tests::testPackageableRuntime(db:Database[1], name: String[1]):PackageableRuntime[1] +{ + ^PackageableRuntime( + name = $name, + runtimeValue = ^meta::core::runtime::EngineRuntime( + connectionStores = testDatabaseConnection(dbInc,[]->cast(@String)) + ) + ) +} + function <> meta::external::function::activator::hostedService::tests::testRuntime(testConnection:ConnectionStore[1]):Runtime[1] { ^Runtime(connectionStores = $testConnection) 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 25d0d8fb18b..fc0350c5161 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 @@ -115,7 +115,9 @@ function meta::external::function::activator::hostedService::tests::simpleServic autoActivateUpdates = true, function= meta::external::function::activator::hostedService::tests::simpleRelationalfunctionWithExecutionEnvInstance__TabularDataSet_1_ ); - + //isMulti + print('isMultiExecService:'); + $service-> meta::external::function::activator::hostedService::generation::isMultiEenvironmentService()->println(); //validate $service->meta::external::function::activator::hostedService::validator::validateService(); //printlnPlan @@ -224,6 +226,57 @@ function meta::external::function::activator::hostedService::tests::TestExecutio } +function meta::external::function::activator::hostedService::tests::simpleServiceTDSShowcaseWithDataSpace():Any[*] +{ + let service = ^HostedService + ( + pattern = '/service/{var}', + ownership = ^UserList(users = ['debelp', 'harted']), + contentType = 'application/json', + documentation = 'bla bla', + autoActivateUpdates = true, + function= meta::external::function::activator::hostedService::tests::simplegraphFetchfunctionWithDataSpace__PersonX_MANY_ + ); + //isMulti + print('isMultiExecService:'); + $service-> meta::external::function::activator::hostedService::generation::isMultiEenvironmentService()->println(); + //validate + $service->meta::external::function::activator::hostedService::validator::validateService(); + //printlnPlan + $service->rebuildServiceUsingSingleExecutionParams().second->map(s|$s->meta::external::function::activator::hostedService::generation::printPlan()); + +} + +function meta::external::function::activator::hostedService::tests::simplegraphFetchfunctionWithDataSpace():PersonX[*] +{ + PersonX.all()->graphFetch(#{ PersonX {firstName} } #)->from(meta::external::function::activator::hostedService::tests::TestDataSpaces()); +} + +function meta::external::function::activator::hostedService::tests::TestDataSpaces(): meta::pure::metamodel::dataSpace::DataSpace[1] +{ + let executionContext1 = ^meta::pure::metamodel::dataSpace::DataSpaceExecutionContext( + name = 'UAT', + mapping = simpleRelationalMapping, + defaultRuntime = meta::external::function::activator::hostedService::tests::testPackageableRuntime(dbInc, 'meta::external::function::activator::hostedService::tests::testRuntime') + ); + + let executionContext2 = ^meta::pure::metamodel::dataSpace::DataSpaceExecutionContext( + name = 'PROD', + mapping = simpleRelationalMapping2, + defaultRuntime = meta::external::function::activator::hostedService::tests::testPackageableRuntime(dbInc, 'meta::external::function::activator::hostedService::tests::testRuntime') + ); + + ^meta::pure::metamodel::dataSpace::DataSpace( + name = 'TestDataSpace', + package = ^Package( + name = 'test' + ), + defaultExecutionContext = $executionContext1, + executionContexts = [$executionContext1, $executionContext2], + title = 'Test DataSpace' + ); +} + // ========================================================================================================= // Examples that require the function to be recomposed 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 9c5f6b19a8d..8450e1e3e72 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 @@ -71,6 +71,11 @@ legend-engine-pure-code-compiled-core ${project.version} + + org.finos.legend.engine + legend-engine-xt-data-space-pure-metamodel + ${project.version} + @@ -119,6 +124,11 @@ legend-engine-pure-platform-functions-java ${project.version} + + org.finos.legend.engine + legend-engine-xt-data-space-pure-metamodel + ${project.version} + @@ -165,6 +175,10 @@ org.finos.legend.engine legend-engine-pure-platform-dsl-mapping-java + + org.finos.legend.engine + legend-engine-xt-data-space-pure-metamodel + org.finos.legend.pure legend-pure-m2-dsl-mapping-pure diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service.definition.json b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service.definition.json index 6556380314d..708d7b011ee 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service.definition.json +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service.definition.json @@ -7,6 +7,7 @@ "platform_dsl_diagram", "platform_dsl_mapping", "core_functions", - "core" + "core", + "core_data_space_metamodel" ] -} \ 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/mappingExtension.pure b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/mappingExtension.pure index 21f78cc4a1a..07952d8db92 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/mappingExtension.pure +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/mappingExtension.pure @@ -6,4 +6,9 @@ function <> meta::pure::mapping::from( function <> meta::pure::mapping::from(t:T[m], executionEnvironment: meta::legend::service::metamodel::ExecutionEnvironmentInstance[1]):T[m] { $t -} \ No newline at end of file +} + +function <> meta::pure::mapping::from(t:T[m], dataSpace: meta::pure::metamodel::dataSpace::DataSpace[1]):T[m] +{ + $t +} From 9c5a04ebd5bbc24a868d24ba4ddd64d6bfd344cb Mon Sep 17 00:00:00 2001 From: "Sherjan, Haroon" <35983762+haroonsherjan@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:22:59 -0500 Subject: [PATCH 52/54] Connection DSL does not require store (#2528) * Connection DSL does not require store * Update Mongodb test for DSL update --- .../connection/MongoDBConnectionParseTreeWalker.java | 9 ++------- .../integration/TestMongoDBConnectionCompiler.java | 4 +--- .../integration/TestMongoDBConnectionGrammarParser.java | 1 - .../RelationalDatabaseConnectionParseTreeWalker.java | 5 ----- .../test/TestRelationalCompilationFromGrammar.java | 3 +-- .../test/TestRelationalConnectionGrammarParser.java | 2 +- 6 files changed, 5 insertions(+), 19 deletions(-) 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/connection/MongoDBConnectionParseTreeWalker.java b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/connection/MongoDBConnectionParseTreeWalker.java index 9b468941432..d3b8032020c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/connection/MongoDBConnectionParseTreeWalker.java +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/connection/MongoDBConnectionParseTreeWalker.java @@ -42,19 +42,14 @@ public MongoDBConnectionParseTreeWalker(ParseTreeWalkerSourceInformation walkerS public void visitMongoDBConnectionValue(MongoDBConnectionParserGrammar.DefinitionContext ctx, MongoDBConnection connectionValue, boolean isEmbedded) { // store (optional if the store is provided by embedding context, if not provided, it is required) - MongoDBConnectionParserGrammar.ConnectionStoreContext connectionStoreContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.connectionStore(), "store", connectionValue.sourceInformation); + MongoDBConnectionParserGrammar.ConnectionStoreContext connectionStoreContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.connectionStore(), "store", connectionValue.sourceInformation); if (connectionStoreContext != null) { connectionValue.element = PureGrammarParserUtility.fromQualifiedName(connectionStoreContext.qualifiedName().packagePath() == null ? Collections.emptyList() : connectionStoreContext.qualifiedName().packagePath().identifier(), connectionStoreContext.qualifiedName().identifier()); connectionValue.elementSourceInformation = this.walkerSourceInformation.getSourceInformation(connectionStoreContext.qualifiedName()); - connectionValue.type = DatabaseType.MongoDb; - } - else if (!isEmbedded) - { - // Copied from service store, do we need this?? - PureGrammarParserUtility.validateAndExtractRequiredField(ctx.connectionStore(), "store", connectionValue.sourceInformation); } // database type + connectionValue.type = DatabaseType.MongoDb; MongoDBDatasourceSpecification dsSpecification = getMongoDBDatasourceSpecification(ctx, connectionValue); connectionValue.dataSourceSpecification = dsSpecification; diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionCompiler.java b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionCompiler.java index 4899126013e..c2e61c3c0ca 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionCompiler.java +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionCompiler.java @@ -28,7 +28,6 @@ protected String getDuplicatedElementTestCode() "MongoDBConnection test::mongodb::connection" + "{\n" + " database: legend_db;\n" + - " store: mongo::test::db;\n" + " serverURLs: [localhost:27071];\n" + " authentication: # UserPassword {\n" + " username: 'mongo_ro';\n" + @@ -47,7 +46,7 @@ protected String getDuplicatedElementTestCode() @Override protected String getDuplicatedElementTestExpectedErrorMessage() { - return "COMPILATION error at [16:1-18:1]: Duplicated element 'test::mongodb::connection'"; + return "COMPILATION error at [15:1-17:1]: Duplicated element 'test::mongodb::connection'"; } @Test @@ -60,7 +59,6 @@ public void testMongoDBConnectionDefinitionv1() "MongoDBConnection test::testConnection\n" + "{\n" + " database: legend_db;\n" + - " store: meta::external::store::mongodb::showcase::store::PersonDatabase;\n" + " serverURLs: [localhost:27071];\n" + " authentication: # UserPassword {\n" + " username: 'mongo_ro';\n" + diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionGrammarParser.java b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionGrammarParser.java index a2b236777d1..e02bd27b11d 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionGrammarParser.java +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/test/java/org/finos/legend/engine/language/pure/grammar/integration/TestMongoDBConnectionGrammarParser.java @@ -37,7 +37,6 @@ public String getParserGrammarIdentifierInclusionTestCode(List keywords) "MongoDBConnection " + ListAdapter.adapt(keywords).makeString("::") + "\n" + "{\n" + " database: legend_db;\n" + - " store: mongo::test::db;\n" + " serverURLs: [localhost:27071];\n" + " authentication: # UserPassword {\n" + " username: 'mongo_ro';\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/grammar/from/RelationalDatabaseConnectionParseTreeWalker.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalDatabaseConnectionParseTreeWalker.java index d14fe27502a..848debb5114 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalDatabaseConnectionParseTreeWalker.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalDatabaseConnectionParseTreeWalker.java @@ -50,11 +50,6 @@ public void visitRelationalDatabaseConnectionValue(RelationalDatabaseConnectionP connectionValue.element = PureGrammarParserUtility.fromQualifiedName(storeContext.qualifiedName().packagePath() == null ? Collections.emptyList() : storeContext.qualifiedName().packagePath().identifier(), storeContext.qualifiedName().identifier()); connectionValue.elementSourceInformation = this.walkerSourceInformation.getSourceInformation(storeContext.qualifiedName()); } - else if (!isEmbedded) - { - // non-embedded connection requires store - PureGrammarParserUtility.validateAndExtractRequiredField(ctx.connectionStore(), "store", connectionValue.sourceInformation); - } // database type RelationalDatabaseConnectionParserGrammar.DbTypeContext dbTypeCtx = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.dbType(), "type", connectionValue.sourceInformation); try 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 2278dfbd4f8..aaf0ccca908 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 @@ -2170,7 +2170,6 @@ public void testForMultipleRelationalConnections() "###Connection\n" + "RelationalDatabaseConnection relational::graphFetch::RelationalConnection\n" + "{\n" + - " store: relational::graphFetch::dbInc;\n" + " type: H2;\n" + " specification: Static\n" + " {\n" + @@ -2225,7 +2224,7 @@ public void testForMultipleRelationalConnections() " connection_1: relational::graphFetch::OneMappingConnection\n" + " ]\n" + " ];\n" + - "}\n", "COMPILATION error at [90:1-108:1]: Found 2 connections against store [dbInc] under a single runtime."); + "}\n", "COMPILATION error at [89:1-107:1]: Found 2 connections against store [dbInc] under a single runtime."); } @Test diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarParser.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarParser.java index 717141de685..0decfd55cbf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarParser.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarParser.java @@ -60,7 +60,7 @@ public void testRelationalDatabaseConnection() test("###Connection\n" + "RelationalDatabaseConnection meta::mySimpleConnection\n" + "{\n" + - "}\n\n", "PARSER error at [2:1-4:1]: Field 'store' is required"); + "}\n\n", "PARSER error at [2:1-4:1]: Field 'type' is required"); test("###Connection\n" + "RelationalDatabaseConnection meta::mySimpleConnection\n" + "{\n" + From 82df394ca2f32240331aa66a400d4cdba53b708a Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Mon, 8 Jan 2024 17:26:38 -0500 Subject: [PATCH 53/54] Add validation to hosted service (#2530) * Check string length before substring * Move generation to logic to pure * fix dependencies * fix dependencies * fix dependencies * Add validation for hostedService * add validations for hosted service --- .../core_hostedservice.definition.json | 1 - .../generation/generation.pure | 28 ++++++++++++++++++- .../showcase/showcaseServices.pure | 28 +++++++++---------- 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json index 6043e6c58dc..4b56cd2529d 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice.definition.json @@ -2,7 +2,6 @@ "name": "core_hostedservice", "pattern": "(meta::external::function::activator::hostedService|meta::protocols)(::.*)?", "dependencies": [ - "platform", "platform", "platform_dsl_graph", "platform_dsl_mapping", 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 c2b3322ce9f..370d4609638 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 @@ -23,6 +23,7 @@ function meta::external::function::activator::hostedService::generation::printPl function meta::external::function::activator::hostedService::validator::validateService(s:HostedService[1]):Boolean[1] { + $s->validateFunctionParamsInPattern(); $s.function->validateFunction(); $s->validateReturnType(); } @@ -35,6 +36,31 @@ function meta::external::function::activator::hostedService::validator::validate ); } +function meta::external::function::activator::hostedService::validator::validateFunctionParamsInPattern(h:HostedService[1]): Boolean[1] +{ + let pattern = $h.pattern; + assert($pattern->startsWith('/'),'Pattern must start with backslash'); + let params = $h.function->functionType().parameters->evaluateAndDeactivate(); + let oneParams = $params->filter(p|$p->deactivate().multiplicity == PureOne); + let nonOneParams = $params->filter(p|!$p->deactivate().multiplicity == PureOne); + //all [1] params in pattern + $oneParams->map(p| assert($pattern->contains('{'+$p.name+'}'), 'Parameter '+$p.name+' with multiplicty [1] must be in service pattern.')); + //all non [1] params not in pattern + $nonOneParams->map(p| assert($pattern->contains('{'+$p.name+'}'), 'Parameter '+$p.name+' with multiplicty not [1] cannot be in service pattern.')); + //Service has a base pattern + let firstParamIndex = $pattern->indexOf('{'); + + assert(if($firstParamIndex != -1,| $firstParamIndex != 1,| true), 'Service must have a base pattern. Cannot start with a parameter'); + //no param in pattern that doesnt exist in function + if($firstParamIndex!=-1, + | + let withoutBase = $pattern->substring($firstParamIndex, $pattern->length()); + let leftOver = $oneParams.name->fold({b, a| $a->replace('{'+$b+'}','')}, $withoutBase->replace('/','')); + assert($leftOver->length()==0, 'Found unexpected params in pattern: '+$leftOver->replace('{','')->replace('}',' ')->trim()->replace(' ',','));, + | true); + true; +} + function meta::external::function::activator::hostedService::validator::validateFunction(func:Function[1]): Boolean[1] { $func->match([ @@ -70,7 +96,7 @@ function meta::external::function::activator::hostedService::generation::needsSe function meta::external::function::activator::hostedService::generation::recomposeServiceFunction(service:HostedService[1]):HostedService[1] { let result = if($service.function->functionReturnType()->needsSerialization(), - |let tree = getTree($service.function); println($service.function->functionReturnType().rawType); + |let tree = getTree($service.function); //println($service.function->functionReturnType().rawType); assert($service.binding->isNotEmpty() || $service.contentType->isNotEmpty() , 'Service needs serialization but no binding/contentType provides'); let binding = if($service.binding->isNotEmpty(), |$service.binding, 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 fc0350c5161..fed10a366c6 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 @@ -25,7 +25,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', autoActivateUpdates = true, @@ -54,7 +54,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', autoActivateUpdates = true, @@ -84,7 +84,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', autoActivateUpdates = true, @@ -109,7 +109,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', autoActivateUpdates = true, @@ -136,7 +136,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', autoActivateUpdates = true, @@ -163,7 +163,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), binding = ^Binding(name='serviceBinding', contentType = 'application/json',modelUnit = meta::pure::model::unit::newModelUnit()->include(PersonX)), documentation = 'bla bla', @@ -182,7 +182,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), contentType = 'application/json', documentation = 'bla bla', @@ -230,7 +230,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), contentType = 'application/json', documentation = 'bla bla', @@ -291,7 +291,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', binding = ^Binding(name='serviceBinding', contentType = 'application/json',modelUnit = meta::pure::model::unit::newModelUnit()->include(PersonX)), @@ -322,11 +322,11 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service/{name}/{length}', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', autoActivateUpdates = true, - function= meta::external::function::activator::hostedService::tests::simpleRelationalfunction_String_1__TabularDataSet_1_ + function= meta::external::function::activator::hostedService::tests::simpleRelationalfunction_String_1__Integer_1__TabularDataSet_1_ ); //validate $service->meta::external::function::activator::hostedService::validator::validateService(); @@ -334,9 +334,9 @@ function meta::external::function::activator::hostedService::tests::simpleServic $service->meta::external::function::activator::hostedService::generation::printPlan(); } -function meta::external::function::activator::hostedService::tests::simpleRelationalfunction(name:String[1]):TabularDataSet[1] +function meta::external::function::activator::hostedService::tests::simpleRelationalfunction(name:String[1], length:Integer[1]):TabularDataSet[1] { - PersonX.all()->filter(p|$p.firstName == $name)->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')]) + PersonX.all()->filter(p|$p.firstName == $name || $p.lastName->length()==$length) ->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')]) ->from(simpleRelationalMapping, testRuntime(dbInc)) } @@ -346,7 +346,7 @@ function meta::external::function::activator::hostedService::tests::simpleServic { let service = ^HostedService ( - pattern = '/service/{var}', + pattern = '/service/{tree}', ownership = ^UserList(users = ['debelp', 'harted']), documentation = 'bla bla', binding = ^Binding(name='serviceBinding', contentType = 'application/json',modelUnit = meta::pure::model::unit::newModelUnit()->include(PersonX)), From 46e948493fabdd4d4a3117b418ced268e080c392 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Tue, 9 Jan 2024 09:28:01 +0000 Subject: [PATCH 54/54] SQL - assortment of changes (#2529) 1. fix athena action 2. fix tdsschema when passing variables through functions 3. legendsql - realias let functions to realised parameters 4. legendsql - fix select * from limited subselect --- .../database-athena-integration-test.yml | 5 +-- ...athena-sql-generation-integration-test.yml | 5 +-- .../resources/core/pure/tds/tdsSchema.pure | 14 +++++--- .../core/pure/tds/testTdsSchema.pure | 7 +++- .../sqlQueryToString/spannerExtension.pure | 17 ++++----- .../binding/fromPure/fromPure.pure | 8 +++-- .../binding/fromPure/tests/testTranspile.pure | 36 +++++++++++++++++++ 7 files changed, 72 insertions(+), 20 deletions(-) diff --git a/.github/workflows/database-athena-integration-test.yml b/.github/workflows/database-athena-integration-test.yml index ae3c9f9dd35..e7b8572e761 100644 --- a/.github/workflows/database-athena-integration-test.yml +++ b/.github/workflows/database-athena-integration-test.yml @@ -66,10 +66,11 @@ jobs: run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -am clean install -DskipTests=true - name: Download Athena Driver Jar run: | - wget --output-document=athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar + mkdir lib + wget --output-document=lib/athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar - name: Run Connection Protocol Integration Tests env: MAVEN_OPTS: -Xmx4g AWS_ACCESS_KEY_ID: ${{ secrets.AWS_INTEGRATION_USER1_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_INTEGRATION_USER1_SECRET_ACCESS_KEY }} - run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -Dtest=ExternalIntegration*Athena test + run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -DadditionalClasspathDir=lib -Dtest=ExternalIntegration*Athena test diff --git a/.github/workflows/database-athena-sql-generation-integration-test.yml b/.github/workflows/database-athena-sql-generation-integration-test.yml index 66cb0508198..3c182caf5fb 100644 --- a/.github/workflows/database-athena-sql-generation-integration-test.yml +++ b/.github/workflows/database-athena-sql-generation-integration-test.yml @@ -66,7 +66,8 @@ jobs: run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -am clean install -DskipTests=true - name: Download Athena Driver Jar run: | - wget --output-document=athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar + mkdir lib + wget --output-document=lib/athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar - name: SQL Generation Integration Tests env: MAVEN_OPTS: -Xmx4g @@ -76,7 +77,7 @@ jobs: set -o pipefail echo "| Test Representing Db Feature | Support Status |" >> $GITHUB_STEP_SUMMARY echo "| ---------------------------- | -------------- |" >> $GITHUB_STEP_SUMMARY - mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -Dtest=Test_Relational_DbSpecific_Athena_UsingPureClientTestSuite test | tee >(grep -o "Tests run:[^T]*" | head -1 | tr -d '\n' >> sql_test_summary.txt) | tee >(echo "Ignored tests deviating from standard: $(grep -c deviating-from-standard)" >> sql_test_summary.txt) | tee >(grep -o "[|] [*][*].*" >> $GITHUB_STEP_SUMMARY) + mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -DadditionalClasspathDir=lib -Dtest=Test_Relational_DbSpecific_Athena_UsingPureClientTestSuite test | tee >(grep -o "Tests run:[^T]*" | head -1 | tr -d '\n' >> sql_test_summary.txt) | tee >(echo "Ignored tests deviating from standard: $(grep -c deviating-from-standard)" >> sql_test_summary.txt) | tee >(grep -o "[|] [*][*].*" >> $GITHUB_STEP_SUMMARY) - name: Write Summary if: always() run: | diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure index 7d22b4cc77c..773e864413a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tdsSchema.pure @@ -169,8 +169,8 @@ function meta::pure::tds::schema::resolveSchemaImpl(vs : ValueSpecification[1], t:TabularDataSet[1]|createSchemaState($t.columns); ]), v:VariableExpression[1]| $openVars->get($v.name).values->evaluateAndDeactivate()->match([ - t:TabularDataSet[1]|createSchemaState($t.columns), - vs2:ValueSpecification[1]|resolveSchemaImpl($vs2, $openVars, $extensions) + t:TabularDataSet[1]| createSchemaState($t.columns), + vs2:ValueSpecification[1]| resolveSchemaImpl($vs2, $openVars, $extensions) ]);, fe:FunctionExpression[1]|resolveSchemaImpl($fe, $openVars, $extensions); ]); @@ -324,9 +324,13 @@ function <> meta::pure::tds::schema::resolveSchemaImpl(fe : Func | //this allows us to handle calls to custom functions that return TDS. let zip = $fe.func.classifierGenericType.typeArguments.rawType->cast(@FunctionType).parameters->evaluateAndDeactivate()->zip($fe.parametersValues); let vars = $zip->map(p | - let resolve = $openVars->get($p.first.name); - let vars = if ($resolve->isEmpty(), | list($p.second), | $resolve->toOne()); - pair($p.first.name, $vars); + let resolve = $p.second->match([ + v:VariableExpression[1] | $openVars->get($v.name), + v:ValueSpecification[1] | [] + ]); + + let var = if ($resolve->isEmpty(), | list($p.second), | $resolve->toOne()); + pair($p.first.name, $var); )->newMap(); $fe.func->cast(@FunctionDefinition)->resolveSchemaImpl($vars, $extensions);, diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure index 2b7d84c307a..3076951e935 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/testTdsSchema.pure @@ -35,6 +35,11 @@ function <> meta::pure::tds::schema::tests::addFullName(objects: ) } +function <> meta::pure::tds::schema::tests::filter(objects: meta::pure::tds::TabularDataSet[1], name:String[1]): meta::pure::tds::TabularDataSet[1] +{ + $objects->filter(r | $r.getString('fullName') == $name); +} + function <> meta::pure::tds::schema::tests::addFullNameAndFilter(objects: meta::pure::tds::TabularDataSet[1], name:String[1]): meta::pure::tds::TabularDataSet[1] { $objects->addFullName()->filter(r | $r.getString('fullName') == $name); @@ -66,7 +71,7 @@ function <> meta::pure::tds::schema::tests::resolveSchemaTest() : Bo col(p|$p.firstName,'firstName') , col(p|$p.lastName,'lastName') ]) - ->meta::pure::tds::schema::tests::addFullNameAndFilter('john doe') + ->meta::pure::tds::schema::tests::addFullNameAndFilter('john doe')->filter('john doe') }); assertSchemaRoundTripEquality( 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 446ef0314a2..d5ddbf55d97 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 @@ -96,17 +96,17 @@ function <> meta::relational::functions::sqlQueryToString::spann dynaFnToSql('exp', $allStates, ^ToSql(format='exp(%s::float)')), dynaFnToSql('in', $allStates, ^ToSql(format='%s in %s', transform={p:String[2] | if($p->at(1)->startsWith('(') && $p->at(1)->endsWith(')'), | $p, | [$p->at(0), ('(' + $p->at(1) + ')')])})), dynaFnToSql('indexOf', $allStates, ^ToSql(format='strpos(%s, %s)')), - dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, month))')), - dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, quarter))')), + dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='date(timestamp_trunc(%s, month))')), + dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='date(timestamp_trunc(%s, quarter))')), dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='date_trunc(current_date, month)%s', transform={p:String[*] | ''})), dynaFnToSql('firstDayOfThisQuarter', $allStates, ^ToSql(format='date_trunc(current_date, quarter)%s', transform={p:String[*] | ''})), dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='date_trunc(current_date, year)%s', transform={p:String[*] | ''})), - dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date(timestamp_trunc(timestamp %s, week)')), - dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, year)')), - dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, day)')), - dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, second)')), - dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='timestamp_trunctimestamp %s, hour)')), - dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='timestamp_trunc(timestamp %s, minute)')), + dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='date(timestamp_trunc(%s, week)')), + dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='timestamp_trunc(%s, year)')), + dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='timestamp_trunc(%s, day)')), + dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='timestamp_trunc(%s, second)')), + dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='timestamp_trunc(%s, hour)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='timestamp_trunc(%s, minute)')), // dynaFnToSql('isNotEmpty', $allStates, ^ToSql(format='%s is not null')), // dynaFnToSql('isNull', $allStates, ^ToSql(format='%s is null')), dynaFnToSql('hour', $allStates, ^ToSql(format='extract(hour from %s)')), @@ -130,6 +130,7 @@ function <> meta::relational::functions::sqlQueryToString::spann dynaFnToSql('round', $allStates, ^ToSql(format='round(%s::float)')), dynaFnToSql('second', $allStates, ^ToSql(format='extract(second from %s)')), dynaFnToSql('size', $allStates, ^ToSql(format='count(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), + dynaFnToSql('splitPart', $allStates, ^ToSql(format='split(%s, %s)[ORDINAL(%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')), dynaFnToSql('sqlTrue', $allStates, ^ToSql(format='%s', transform={p:String[*]|processLiteralValue(true, [], $literalProcessor)})), 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 bae78d62bd3..aaf0acdb4f2 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 @@ -393,7 +393,11 @@ function <> meta::external::query::sql::transformation::queryToP pair($s, if ($si != $eis, | ^$alias(realias = $ealias.actual), | $alias));, a:AllColumns[1] | - let contexts = if ($a.prefix->isEmpty(), | $context.contexts->concatenate($context), | $context.context($a.prefix)); + let contexts = if ($a.prefix->isEmpty(), + | if ($context.aliases->isEmpty(), //if there are no aliases that means we have a select * from a select * + | $context.contexts->concatenate($context), + | $context), + | $context.context($a.prefix)); $contexts.aliases->map(a | pair(^SingleColumn(expression = ^QualifiedNameReference(name=^QualifiedName(parts = $a.expected))), $a)); ]); ); @@ -1147,7 +1151,7 @@ function <> meta::external::query::sql::transformation::queryToP f:FunctionExpression[1] | if ($f.func == letFunction_String_1__T_m__T_m_, | let name = $f.parametersValues->at(0)->cast(@InstanceValue).values->at(0)->cast(@String); - ^$f(parametersValues = [iv($name + if (!$ignore->contains($name), | '_' + $suffix, | '')), $f.parametersValues->at(1)]);, + ^$f(parametersValues = [iv($name + if (!$ignore->contains($name), | '_' + $suffix, | '')), $f.parametersValues->at(1)->realias($suffix, $ignore)]);, | ^$f(parametersValues = $f->evaluateAndDeactivate().parametersValues->map(pv | $pv->realias($suffix, $ignore)))); ]); } 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 40e6cb6a92c..07ec7ff5cd9 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 @@ -1367,6 +1367,42 @@ function <> meta::external::query::sql::transformation::queryToPure:: ])}, false) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testMultiJoinSelectStarFromLimited():Boolean[1] +{ + test( + 'select * from ( SELECT table1.String as T1String , table2.String as T2String FROM service."/service/service1" AS table1 LEFT OUTER JOIN service."/service/service1" AS table2 ON table1.String = table2.String )', + + {|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_table1'), + pair('Integer', 'Integer_table1'), + pair('Float', 'Float_table1'), + pair('Decimal', 'Decimal_table1'), + pair('StrictDate', 'StrictDate_table1'), + pair('DateTime', 'DateTime_table1'), + pair('String', 'String_table1') + ]) + ->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']) + ->renameColumns([ + pair('Boolean', 'Boolean_table2'), + pair('Integer', 'Integer_table2'), + pair('Float', 'Float_table2'), + pair('Decimal', 'Decimal_table2'), + pair('StrictDate', 'StrictDate_table2'), + pair('DateTime', 'DateTime_table2'), + pair('String', 'String_table2') + ]), + meta::relational::metamodel::join::JoinType.LEFT_OUTER, + {row1, row2|$row1.getString('String_table1') == $row2.getString('String_table2')}) + ->project([ + col(row:TDSRow[1] | $row.getString('String_table1'), 'T1String'), + col(row:TDSRow[1] | $row.getString('String_table2'), 'T2String') + ]) + }, false) +} + function <> meta::external::query::sql::transformation::queryToPure::tests::testJoinWithAliasRenamingInSubQueries():Boolean[1] { test(