3
3
#include " yql_kikimr_provider_impl.h"
4
4
5
5
#include < ydb/core/kqp/common/simple/services.h>
6
+ #include < ydb/core/kqp/host/kqp_translate.h>
6
7
#include < ydb/library/yql/providers/common/provider/yql_data_provider_impl.h>
7
8
#include < ydb/library/yql/providers/common/config/yql_configuration_transformer.h>
8
9
@@ -472,12 +473,14 @@ class TKikimrDataSource : public TDataProviderBase {
472
473
TIntrusivePtr<IKikimrGateway> gateway,
473
474
TIntrusivePtr<TKikimrSessionContext> sessionCtx,
474
475
const NExternalSource::IExternalSourceFactory::TPtr& externalSourceFactory,
475
- bool isInternalCall)
476
+ bool isInternalCall,
477
+ TGUCSettings::TPtr gucSettings)
476
478
: FunctionRegistry(functionRegistry)
477
479
, Types(types)
478
480
, Gateway(gateway)
479
481
, SessionCtx(sessionCtx)
480
482
, ExternalSourceFactory(externalSourceFactory)
483
+ , GUCSettings(gucSettings)
481
484
, ConfigurationTransformer(new TKikimrConfigurationTransformer(sessionCtx, types))
482
485
, IntentDeterminationTransformer(new TKiSourceIntentDeterminationTransformer(sessionCtx))
483
486
, LoadTableMetadataTransformer(CreateKiSourceLoadTableMetadataTransformer(gateway, sessionCtx, types, externalSourceFactory, isInternalCall))
@@ -760,6 +763,7 @@ class TKikimrDataSource : public TDataProviderBase {
760
763
}
761
764
762
765
ctx.Step
766
+ .Repeat (TExprStep::ExpandApplyForLambdas)
763
767
.Repeat (TExprStep::ExprEval)
764
768
.Repeat (TExprStep::DiscoveryIO)
765
769
.Repeat (TExprStep::Epochs)
@@ -768,7 +772,15 @@ class TKikimrDataSource : public TDataProviderBase {
768
772
.Repeat (TExprStep::RewriteIO);
769
773
770
774
const auto & query = tableDesc.Metadata ->ViewPersistedData .QueryText ;
771
- return RewriteReadFromView (node, ctx, query, cluster);
775
+ NKqp::TKqpTranslationSettingsBuilder settingsBuilder (
776
+ SessionCtx->Query ().Type ,
777
+ SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (),
778
+ cluster,
779
+ query,
780
+ SessionCtx->Config ().BindingsMode ,
781
+ GUCSettings
782
+ );
783
+ return RewriteReadFromView (node, ctx, query, settingsBuilder, Types.Modules );
772
784
}
773
785
}
774
786
@@ -881,6 +893,7 @@ class TKikimrDataSource : public TDataProviderBase {
881
893
TIntrusivePtr<IKikimrGateway> Gateway;
882
894
TIntrusivePtr<TKikimrSessionContext> SessionCtx;
883
895
NExternalSource::IExternalSourceFactory::TPtr ExternalSourceFactory;
896
+ TGUCSettings::TPtr GUCSettings;
884
897
885
898
TAutoPtr<IGraphTransformer> ConfigurationTransformer;
886
899
TAutoPtr<IGraphTransformer> IntentDeterminationTransformer;
@@ -920,9 +933,10 @@ TIntrusivePtr<IDataProvider> CreateKikimrDataSource(
920
933
TIntrusivePtr<IKikimrGateway> gateway,
921
934
TIntrusivePtr<TKikimrSessionContext> sessionCtx,
922
935
const NExternalSource::IExternalSourceFactory::TPtr& externalSourceFactory,
923
- bool isInternalCall)
936
+ bool isInternalCall,
937
+ TGUCSettings::TPtr gucSettings)
924
938
{
925
- return new TKikimrDataSource (functionRegistry, types, gateway, sessionCtx, externalSourceFactory, isInternalCall);
939
+ return new TKikimrDataSource (functionRegistry, types, gateway, sessionCtx, externalSourceFactory, isInternalCall, gucSettings );
926
940
}
927
941
928
942
TAutoPtr<IGraphTransformer> CreateKiSourceLoadTableMetadataTransformer (TIntrusivePtr<IKikimrGateway> gateway,
0 commit comments