Skip to content

Commit 5523f7c

Browse files
authored
Extract prefix and entries in backup-related sql (#10807)
1 parent 68f8cc3 commit 5523f7c

File tree

5 files changed

+109
-55
lines changed

5 files changed

+109
-55
lines changed

ydb/library/yql/sql/v1/node.h

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1534,20 +1534,35 @@ namespace NSQLTranslationV1 {
15341534
TNodePtr BuildDropTopic(TPosition pos, const TTopicRef& topic, const TDropTopicParameters& params,
15351535
TScopedStatePtr scoped);
15361536

1537-
TNodePtr BuildCreateBackupCollection(TPosition pos, const TString& id,
1537+
TNodePtr BuildCreateBackupCollection(
1538+
TPosition pos,
1539+
const TString& prefix,
1540+
const TString& id,
15381541
const TCreateBackupCollectionParameters& params,
15391542
const TObjectOperatorContext& context);
1540-
TNodePtr BuildAlterBackupCollection(TPosition pos, const TString& id,
1543+
TNodePtr BuildAlterBackupCollection(
1544+
TPosition pos,
1545+
const TString& prefix,
1546+
const TString& id,
15411547
const TAlterBackupCollectionParameters& params,
15421548
const TObjectOperatorContext& context);
1543-
TNodePtr BuildDropBackupCollection(TPosition pos, const TString& id,
1549+
TNodePtr BuildDropBackupCollection(
1550+
TPosition pos,
1551+
const TString& prefix,
1552+
const TString& id,
15441553
const TDropBackupCollectionParameters& params,
15451554
const TObjectOperatorContext& context);
15461555

1547-
TNodePtr BuildBackup(TPosition pos, const TString& id,
1556+
TNodePtr BuildBackup(
1557+
TPosition pos,
1558+
const TString& prefix,
1559+
const TString& id,
15481560
const TBackupParameters& params,
15491561
const TObjectOperatorContext& context);
1550-
TNodePtr BuildRestore(TPosition pos, const TString& id,
1562+
TNodePtr BuildRestore(
1563+
TPosition pos,
1564+
const TString& prefix,
1565+
const TString& id,
15511566
const TRestoreParameters& params,
15521567
const TObjectOperatorContext& context);
15531568

ydb/library/yql/sql/v1/query.cpp

Lines changed: 53 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3286,16 +3286,18 @@ class TBaseBackupCollectionNode
32863286
public:
32873287
TBaseBackupCollectionNode(
32883288
TPosition pos,
3289+
const TString& prefix,
32893290
const TString& objectId,
32903291
const TObjectOperatorContext& context)
32913292
: TBase(pos)
32923293
, TObjectOperatorContext(context)
3294+
, Prefix(prefix)
32933295
, Id(objectId)
32943296
{}
32953297

32963298
bool DoInit(TContext& ctx, ISource* src) final {
32973299
auto keys = Y("Key");
3298-
keys = L(keys, Q(Y(Q("backupCollection"), Y("String", BuildQuotedAtom(Pos, Id)))));
3300+
keys = L(keys, Q(Y(Q("backupCollection"), Y("String", BuildQuotedAtom(Pos, Id)), Y("String", BuildQuotedAtom(Pos, Prefix)))));
32993301
auto options = this->FillOptions(ctx, Y());
33003302

33013303
Add("block", Q(Y(
@@ -3310,6 +3312,7 @@ class TBaseBackupCollectionNode
33103312
virtual INode::TPtr FillOptions(TContext& ctx, INode::TPtr options) const = 0;
33113313

33123314
protected:
3315+
TString Prefix;
33133316
TString Id;
33143317
};
33153318

@@ -3320,10 +3323,11 @@ class TCreateBackupCollectionNode
33203323
public:
33213324
TCreateBackupCollectionNode(
33223325
TPosition pos,
3326+
const TString& prefix,
33233327
const TString& objectId,
33243328
const TCreateBackupCollectionParameters& params,
33253329
const TObjectOperatorContext& context)
3326-
: TBase(pos, objectId, context)
3330+
: TBase(pos, prefix, objectId, context)
33273331
, Params(params)
33283332
{}
33293333

@@ -3332,7 +3336,7 @@ class TCreateBackupCollectionNode
33323336

33333337
auto settings = Y();
33343338
for (auto& [key, value] : Params.Settings) {
3335-
settings->Add(Q(Y(BuildQuotedAtom(Pos, key), value.Build())));
3339+
settings->Add(Q(Y(BuildQuotedAtom(Pos, key), Y("String", value.Build()))));
33363340
}
33373341
options->Add(Q(Y(Q("settings"), Q(settings))));
33383342

@@ -3350,7 +3354,7 @@ class TCreateBackupCollectionNode
33503354
}
33513355

33523356
TPtr DoClone() const final {
3353-
return new TCreateBackupCollectionNode(GetPos(), Id, Params, *this);
3357+
return new TCreateBackupCollectionNode(GetPos(), Prefix, Id, Params, *this);
33543358
}
33553359

33563360
private:
@@ -3364,10 +3368,11 @@ class TAlterBackupCollectionNode
33643368
public:
33653369
TAlterBackupCollectionNode(
33663370
TPosition pos,
3371+
const TString& prefix,
33673372
const TString& objectId,
33683373
const TAlterBackupCollectionParameters& params,
33693374
const TObjectOperatorContext& context)
3370-
: TBase(pos, objectId, context)
3375+
: TBase(pos, prefix, objectId, context)
33713376
, Params(params)
33723377
{}
33733378

@@ -3376,7 +3381,7 @@ class TAlterBackupCollectionNode
33763381

33773382
auto settings = Y();
33783383
for (auto& [key, value] : Params.Settings) {
3379-
settings->Add(Q(Y(BuildQuotedAtom(Pos, key), value.Build())));
3384+
settings->Add(Q(Y(BuildQuotedAtom(Pos, key), Y("String", value.Build()))));
33803385
}
33813386
options->Add(Q(Y(Q("settings"), Q(settings))));
33823387

@@ -3404,7 +3409,7 @@ class TAlterBackupCollectionNode
34043409
}
34053410

34063411
TPtr DoClone() const final {
3407-
return new TAlterBackupCollectionNode(GetPos(), Id, Params, *this);
3412+
return new TAlterBackupCollectionNode(GetPos(), Prefix, Id, Params, *this);
34083413
}
34093414

34103415
private:
@@ -3418,10 +3423,11 @@ class TDropBackupCollectionNode
34183423
public:
34193424
TDropBackupCollectionNode(
34203425
TPosition pos,
3426+
const TString& prefix,
34213427
const TString& objectId,
34223428
const TDropBackupCollectionParameters&,
34233429
const TObjectOperatorContext& context)
3424-
: TBase(pos, objectId, context)
3430+
: TBase(pos, prefix, objectId, context)
34253431
{}
34263432

34273433
virtual INode::TPtr FillOptions(TContext&, INode::TPtr options) const final {
@@ -3432,29 +3438,38 @@ class TDropBackupCollectionNode
34323438

34333439
TPtr DoClone() const final {
34343440
TDropBackupCollectionParameters params;
3435-
return new TDropBackupCollectionNode(GetPos(), Id, params, *this);
3441+
return new TDropBackupCollectionNode(GetPos(), Prefix, Id, params, *this);
34363442
}
34373443
};
34383444

3439-
TNodePtr BuildCreateBackupCollection(TPosition pos, const TString& id,
3445+
TNodePtr BuildCreateBackupCollection(
3446+
TPosition pos,
3447+
const TString& prefix,
3448+
const TString& id,
34403449
const TCreateBackupCollectionParameters& params,
34413450
const TObjectOperatorContext& context)
34423451
{
3443-
return new TCreateBackupCollectionNode(pos, id, params, context);
3452+
return new TCreateBackupCollectionNode(pos, prefix, id, params, context);
34443453
}
34453454

3446-
TNodePtr BuildAlterBackupCollection(TPosition pos, const TString& id,
3455+
TNodePtr BuildAlterBackupCollection(
3456+
TPosition pos,
3457+
const TString& prefix,
3458+
const TString& id,
34473459
const TAlterBackupCollectionParameters& params,
34483460
const TObjectOperatorContext& context)
34493461
{
3450-
return new TAlterBackupCollectionNode(pos, id, params, context);
3462+
return new TAlterBackupCollectionNode(pos, prefix, id, params, context);
34513463
}
34523464

3453-
TNodePtr BuildDropBackupCollection(TPosition pos, const TString& id,
3465+
TNodePtr BuildDropBackupCollection(
3466+
TPosition pos,
3467+
const TString& prefix,
3468+
const TString& id,
34543469
const TDropBackupCollectionParameters& params,
34553470
const TObjectOperatorContext& context)
34563471
{
3457-
return new TDropBackupCollectionNode(pos, id, params, context);
3472+
return new TDropBackupCollectionNode(pos, prefix, id, params, context);
34583473
}
34593474

34603475
class TBackupNode final
@@ -3465,11 +3480,13 @@ class TBackupNode final
34653480
public:
34663481
TBackupNode(
34673482
TPosition pos,
3483+
const TString& prefix,
34683484
const TString& id,
34693485
const TBackupParameters& params,
34703486
const TObjectOperatorContext& context)
34713487
: TBase(pos)
34723488
, TObjectOperatorContext(context)
3489+
, Prefix(prefix)
34733490
, Id(id)
34743491
, Params(params)
34753492
{
@@ -3478,13 +3495,14 @@ class TBackupNode final
34783495

34793496
bool DoInit(TContext& ctx, ISource* src) override {
34803497
auto keys = Y("Key");
3481-
keys = L(keys, Q(Y(Q("backup"), Y("String", BuildQuotedAtom(Pos, Id)))));
3498+
keys = L(keys, Q(Y(Q("backup"), Y("String", BuildQuotedAtom(Pos, Id)), Y("String", BuildQuotedAtom(Pos, Prefix)))));
34823499

34833500
auto opts = Y();
3484-
opts->Add(Q(Y(Q("mode"), Q("backup"))));
34853501

34863502
if (Params.Incremental) {
3487-
opts->Add(Q(Y(Q("incremental"))));
3503+
opts->Add(Q(Y(Q("mode"), Q("backupIncremental"))));
3504+
} else {
3505+
opts->Add(Q(Y(Q("mode"), Q("backup"))));
34883506
}
34893507

34903508
Add("block", Q(Y(
@@ -3497,18 +3515,22 @@ class TBackupNode final
34973515
}
34983516

34993517
TPtr DoClone() const final {
3500-
return new TBackupNode(GetPos(), Id, Params, *this);
3518+
return new TBackupNode(GetPos(), Prefix, Id, Params, *this);
35013519
}
35023520
private:
3521+
TString Prefix;
35033522
TString Id;
35043523
TBackupParameters Params;
35053524
};
35063525

3507-
TNodePtr BuildBackup(TPosition pos, const TString& id,
3526+
TNodePtr BuildBackup(
3527+
TPosition pos,
3528+
const TString& prefix,
3529+
const TString& id,
35083530
const TBackupParameters& params,
35093531
const TObjectOperatorContext& context)
35103532
{
3511-
return new TBackupNode(pos, id, params, context);
3533+
return new TBackupNode(pos, prefix, id, params, context);
35123534
}
35133535

35143536
class TRestoreNode final
@@ -3519,11 +3541,13 @@ class TRestoreNode final
35193541
public:
35203542
TRestoreNode(
35213543
TPosition pos,
3544+
const TString& prefix,
35223545
const TString& id,
35233546
const TRestoreParameters& params,
35243547
const TObjectOperatorContext& context)
35253548
: TBase(pos)
35263549
, TObjectOperatorContext(context)
3550+
, Prefix(prefix)
35273551
, Id(id)
35283552
, Params(params)
35293553
{
@@ -3532,7 +3556,7 @@ class TRestoreNode final
35323556

35333557
bool DoInit(TContext& ctx, ISource* src) override {
35343558
auto keys = Y("Key");
3535-
keys = L(keys, Q(Y(Q("restore"), Y("String", BuildQuotedAtom(Pos, Id)))));
3559+
keys = L(keys, Q(Y(Q("restore"), Y("String", BuildQuotedAtom(Pos, Id)), Y("String", BuildQuotedAtom(Pos, Prefix)))));
35363560

35373561
auto opts = Y();
35383562
opts->Add(Q(Y(Q("mode"), Q("restore"))));
@@ -3551,18 +3575,22 @@ class TRestoreNode final
35513575
}
35523576

35533577
TPtr DoClone() const final {
3554-
return new TRestoreNode(GetPos(), Id, Params, *this);
3578+
return new TRestoreNode(GetPos(), Prefix, Id, Params, *this);
35553579
}
35563580
private:
3581+
TString Prefix;
35573582
TString Id;
35583583
TRestoreParameters Params;
35593584
};
35603585

3561-
TNodePtr BuildRestore(TPosition pos, const TString& id,
3586+
TNodePtr BuildRestore(
3587+
TPosition pos,
3588+
const TString& prefix,
3589+
const TString& id,
35623590
const TRestoreParameters& params,
35633591
const TObjectOperatorContext& context)
35643592
{
3565-
return new TRestoreNode(pos, id, params, context);
3593+
return new TRestoreNode(pos, prefix, id, params, context);
35663594
}
35673595

35683596
} // namespace NSQLTranslationV1

ydb/library/yql/sql/v1/sql_query.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,7 +1414,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
14141414
const TString& objectId = Id(node.GetRule_backup_collection2().GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
14151415
AddStatementToBlocks(blocks,
14161416
BuildCreateBackupCollection(Ctx.Pos(),
1417-
BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
1417+
TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
1418+
objectId,
14181419
TCreateBackupCollectionParameters {
14191420
.Settings = std::move(kv),
14201421
.Database = database,
@@ -1476,7 +1477,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
14761477
const TString& objectId = Id(node.GetRule_backup_collection2().GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
14771478
AddStatementToBlocks(blocks,
14781479
BuildAlterBackupCollection(Ctx.Pos(),
1479-
BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
1480+
TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
1481+
objectId,
14801482
TAlterBackupCollectionParameters {
14811483
.Settings = std::move(kv),
14821484
.SettingsToReset = std::move(toReset),
@@ -1504,7 +1506,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
15041506
const TString& objectId = Id(node.GetRule_backup_collection2().GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
15051507
AddStatementToBlocks(blocks,
15061508
BuildDropBackupCollection(Ctx.Pos(),
1507-
BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
1509+
TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
1510+
objectId,
15081511
TDropBackupCollectionParameters {
15091512
.MissingOk = false,
15101513
},
@@ -1624,7 +1627,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
16241627
AddStatementToBlocks(blocks,
16251628
BuildBackup(
16261629
Ctx.Pos(),
1627-
BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
1630+
TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
1631+
objectId,
16281632
TBackupParameters{
16291633
.Incremental = incremental,
16301634
},
@@ -1656,7 +1660,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
16561660
AddStatementToBlocks(blocks,
16571661
BuildRestore(
16581662
Ctx.Pos(),
1659-
BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
1663+
TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
1664+
objectId,
16601665
TRestoreParameters{
16611666
.At = at,
16621667
},

0 commit comments

Comments
 (0)