Skip to content

Commit fb050bd

Browse files
antonioxrvu1024
authored andcommitted
Fix parameter substitution in Package pragma (#11055)
1 parent 2bdd9e6 commit fb050bd

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

ydb/library/yql/providers/yt/lib/yt_url_lister/yt_url_lister.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,29 @@ class TYtUrlLister: public IUrlLister {
2323
TYtUrlLister() = default;
2424

2525
public:
26-
bool Accept(const THttpURL& url) const override {
27-
auto rawScheme = url.GetField(NUri::TField::FieldScheme);
26+
bool Accept(const TString& url) const override {
27+
auto httpUrl = ParseURL(url);
28+
auto rawScheme = httpUrl.GetField(NUri::TField::FieldScheme);
2829
return NUri::EqualNoCase(rawScheme, Scheme);
2930
}
3031

31-
TVector<TUrlListEntry> ListUrl(const THttpURL& url, const TString& token) const override {
32+
TVector<TUrlListEntry> ListUrl(const TString& url, const TString& token) const override {
3233
InitYtApiOnce();
3334

34-
TCgiParameters params(url.GetField(NUri::TField::FieldQuery));
35+
auto httpUrl = ParseURL(url);
36+
37+
TCgiParameters params(httpUrl.GetField(NUri::TField::FieldQuery));
3538

3639
NYT::TCreateClientOptions createOpts;
3740
if (token) {
3841
createOpts.Token(token);
3942
}
4043

41-
auto host = url.PrintS(NUri::TField::FlagHostPort);
44+
auto host = httpUrl.PrintS(NUri::TField::FlagHostPort);
4245

4346
auto path = params.Has("path")
4447
? params.Get("path")
45-
: TString(TStringBuf(url.GetField(NUri::TField::FieldPath)).Skip(1));
48+
: TString(TStringBuf(httpUrl.GetField(NUri::TField::FieldPath)).Skip(1));
4649

4750
auto client = NYT::CreateClient(host, createOpts);
4851
NYT::IClientBasePtr tx = client;
@@ -67,7 +70,7 @@ class TYtUrlLister: public IUrlLister {
6770
url.Set(NUri::TField::FieldQuery, TStringBuilder() << "transaction_id=" << txId);
6871
}
6972

70-
return url;
73+
return url.PrintS();
7174
};
7275

7376
NYT::TListOptions listOpts;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"plato"

ydb/library/yql/tests/sql/suites/library/package.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ providers yt
22
yt_file yt://plato/package/total.sql package_total.sql.txt
33
yt_file yt://plato/package/detail/foo.sql package_foo.sql.txt
44
yt_file yt://plato/package/detail/bar.sql package_bar.sql.txt
5+
param $cluster p_package_cluster.json

ydb/library/yql/tests/sql/suites/library/package.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/* ytfile can not */
22

3-
pragma package("project.package", "yt://plato/package");
3+
declare $cluster as String;
4+
5+
pragma package("project.package", "yt://{$cluster}/package");
46

57
import pkg.project.package.total symbols $do_total;
68

0 commit comments

Comments
 (0)