3
3
#include < ydb/core/base/path.h>
4
4
#include < ydb/core/kqp/gateway/actors/scheme.h>
5
5
#include < ydb/core/kqp/gateway/utils/scheme_helpers.h>
6
+ #include < ydb/core/kqp/provider/yql_kikimr_provider.h>
6
7
#include < ydb/core/tx/tx_proxy/proxy.h>
7
8
8
9
namespace NKikimr ::NKqp {
@@ -11,13 +12,14 @@ namespace {
11
12
12
13
using TYqlConclusionStatus = TViewManager::TYqlConclusionStatus;
13
14
using TInternalModificationContext = TViewManager::TInternalModificationContext;
15
+ using TExternalModificationContext = TViewManager::TExternalModificationContext;
14
16
15
17
TString GetByKeyOrDefault (const NYql::TCreateObjectSettings& container, const TString& key) {
16
18
const auto value = container.GetFeaturesExtractor ().Extract (key);
17
19
return value ? *value : TString{};
18
20
}
19
21
20
- TYqlConclusionStatus CheckFeatureFlag (TInternalModificationContext& context) {
22
+ TYqlConclusionStatus CheckFeatureFlag (const TInternalModificationContext& context) {
21
23
auto * const actorSystem = context.GetExternalData ().GetActorSystem ();
22
24
if (!actorSystem) {
23
25
ythrow yexception () << " This place needs an actor system. Please contact internal support" ;
@@ -48,15 +50,16 @@ std::pair<TString, TString> SplitPathByObjectId(const TString& objectId) {
48
50
49
51
void FillCreateViewProposal (NKikimrSchemeOp::TModifyScheme& modifyScheme,
50
52
const NYql::TCreateObjectSettings& settings,
51
- const TString& database ) {
53
+ const TExternalModificationContext& context ) {
52
54
53
- const auto pathPair = SplitPathByDb (settings.GetObjectId (), database );
55
+ const auto pathPair = SplitPathByDb (settings.GetObjectId (), context. GetDatabase () );
54
56
modifyScheme.SetWorkingDir (pathPair.first );
55
57
modifyScheme.SetOperationType (NKikimrSchemeOp::ESchemeOpCreateView);
56
58
57
59
auto & viewDesc = *modifyScheme.MutableCreateView ();
58
60
viewDesc.SetName (pathPair.second );
59
61
viewDesc.SetQueryText (GetByKeyOrDefault (settings, " query_text" ));
62
+ NSQLTranslation::Serialize (context.GetTranslationSettings(), *viewDesc.MutableCapturedContext());
60
63
61
64
if (!settings.GetFeaturesExtractor ().IsFinished ()) {
62
65
ythrow TBadArgumentException () << " Unknown property: " << settings.GetFeaturesExtractor ().GetRemainedParamsString ();
@@ -92,20 +95,20 @@ NThreading::TFuture<TYqlConclusionStatus> SendSchemeRequest(TEvTxUserProxy::TEvP
92
95
}
93
96
94
97
NThreading::TFuture<TYqlConclusionStatus> CreateView (const NYql::TCreateObjectSettings& settings,
95
- TInternalModificationContext& context) {
98
+ const TInternalModificationContext& context) {
96
99
auto proposal = MakeHolder<TEvTxUserProxy::TEvProposeTransaction>();
97
100
proposal->Record .SetDatabaseName (context.GetExternalData ().GetDatabase ());
98
101
if (context.GetExternalData ().GetUserToken ()) {
99
102
proposal->Record .SetUserToken (context.GetExternalData ().GetUserToken ()->GetSerializedToken ());
100
103
}
101
104
auto & schemeTx = *proposal->Record .MutableTransaction ()->MutableModifyScheme ();
102
- FillCreateViewProposal (schemeTx, settings, context.GetExternalData (). GetDatabase () );
105
+ FillCreateViewProposal (schemeTx, settings, context.GetExternalData ());
103
106
104
107
return SendSchemeRequest (proposal.Release (), context.GetExternalData ().GetActorSystem (), true );
105
108
}
106
109
107
110
NThreading::TFuture<TYqlConclusionStatus> DropView (const NYql::TDropObjectSettings& settings,
108
- TInternalModificationContext& context) {
111
+ const TInternalModificationContext& context) {
109
112
auto proposal = MakeHolder<TEvTxUserProxy::TEvProposeTransaction>();
110
113
proposal->Record .SetDatabaseName (context.GetExternalData ().GetDatabase ());
111
114
if (context.GetExternalData ().GetUserToken ()) {
@@ -119,8 +122,8 @@ NThreading::TFuture<TYqlConclusionStatus> DropView(const NYql::TDropObjectSettin
119
122
120
123
void PrepareCreateView (NKqpProto::TKqpSchemeOperation& schemeOperation,
121
124
const NYql::TObjectSettingsImpl& settings,
122
- TInternalModificationContext& context) {
123
- FillCreateViewProposal (*schemeOperation.MutableCreateView (), settings, context.GetExternalData (). GetDatabase () );
125
+ const TInternalModificationContext& context) {
126
+ FillCreateViewProposal (*schemeOperation.MutableCreateView (), settings, context.GetExternalData ());
124
127
}
125
128
126
129
void PrepareDropView (NKqpProto::TKqpSchemeOperation& schemeOperation,
0 commit comments