@@ -1259,8 +1259,13 @@ class TKqpHost : public IKqpHost {
1259
1259
YQL_CLOG (INFO, ProviderKqp) << " Compiled query:\n " << KqpExprToPrettyString (*queryExpr, ctx);
1260
1260
1261
1261
if (Config->EnableCreateTableAs ) {
1262
- result.QueryExprs = RewriteExpression (queryExpr, ctx, *TypesCtx, SessionCtx, Cluster);
1262
+ auto [rewriteResults, rewriteIssues] = RewriteExpression (queryExpr, ctx, *TypesCtx, SessionCtx, Cluster);
1263
+ ctx.IssueManager .AddIssues (rewriteIssues);
1264
+ if (!rewriteIssues.Empty ()) {
1265
+ return result;
1266
+ }
1263
1267
1268
+ result.QueryExprs = rewriteResults;
1264
1269
for (const auto & resultPart : result.QueryExprs ) {
1265
1270
YQL_CLOG (INFO, ProviderKqp) << " Splitted Compiled query part:\n " << KqpExprToPrettyString (*resultPart, ctx);
1266
1271
}
@@ -1280,7 +1285,7 @@ class TKqpHost : public IKqpHost {
1280
1285
settingsBuilder
1281
1286
.SetSqlAutoCommit (false )
1282
1287
.SetUsePgParser (settings.UsePgParser );
1283
- auto compileResult = CompileYqlQuery (query, /* isSql */ true , *ExprCtx, sqlVersion, settingsBuilder, settings. PerStatementResult );
1288
+ auto compileResult = CompileYqlQuery (query, /* isSql */ true , *ExprCtx, sqlVersion, settingsBuilder);
1284
1289
1285
1290
return TSplitResult{
1286
1291
.Ctx = std::move (ExprCtxStorage),
@@ -1290,7 +1295,7 @@ class TKqpHost : public IKqpHost {
1290
1295
}
1291
1296
1292
1297
TCompileExprResult CompileYqlQuery (const TKqpQueryRef& query, bool isSql, TExprContext& ctx, TMaybe<TSqlVersion>& sqlVersion,
1293
- TKqpTranslationSettingsBuilder& settingsBuilder, bool perStatementResult ) const
1298
+ TKqpTranslationSettingsBuilder& settingsBuilder) const
1294
1299
{
1295
1300
auto compileResult = CompileQuery (query, isSql, ctx, sqlVersion, settingsBuilder);
1296
1301
if (!compileResult.QueryExprs ) {
@@ -1302,12 +1307,7 @@ class TKqpHost : public IKqpHost {
1302
1307
}
1303
1308
1304
1309
// Currently used only for create table as
1305
- if (!perStatementResult && compileResult.QueryExprs .size () > 1 ) {
1306
- ctx.AddError (YqlIssue (TPosition (), TIssuesIds::KIKIMR_BAD_REQUEST,
1307
- " Query can be executed only in per-statement mode (NoTx)" ));
1308
- compileResult.QueryExprs = {};
1309
- return compileResult;
1310
- } else if (compileResult.QueryExprs .size () > 1 ) {
1310
+ if (compileResult.QueryExprs .size () > 1 ) {
1311
1311
return compileResult;
1312
1312
}
1313
1313
@@ -1379,7 +1379,7 @@ class TKqpHost : public IKqpHost {
1379
1379
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, query.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1380
1380
settingsBuilder.SetSqlAutoCommit (false )
1381
1381
.SetUsePgParser (settings.UsePgParser );
1382
- auto compileResult = CompileYqlQuery (query, isSql, ctx, sqlVersion, settingsBuilder, false );
1382
+ auto compileResult = CompileYqlQuery (query, isSql, ctx, sqlVersion, settingsBuilder);
1383
1383
if (compileResult.QueryExprs .empty ()) {
1384
1384
return nullptr ;
1385
1385
}
@@ -1439,7 +1439,7 @@ class TKqpHost : public IKqpHost {
1439
1439
TMaybe<TSqlVersion> sqlVersion;
1440
1440
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, query.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1441
1441
settingsBuilder.SetSqlAutoCommit (false );
1442
- auto compileResult = CompileYqlQuery (query, /* isSql */ true , ctx, sqlVersion, settingsBuilder, false );
1442
+ auto compileResult = CompileYqlQuery (query, /* isSql */ true , ctx, sqlVersion, settingsBuilder);
1443
1443
if (compileResult.QueryExprs .empty ()) {
1444
1444
return nullptr ;
1445
1445
}
@@ -1467,7 +1467,7 @@ class TKqpHost : public IKqpHost {
1467
1467
TMaybe<TSqlVersion> sqlVersion;
1468
1468
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, queryAst.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1469
1469
settingsBuilder.SetSqlAutoCommit (false );
1470
- auto compileResult = CompileYqlQuery (queryAst, false , ctx, sqlVersion, settingsBuilder, false );
1470
+ auto compileResult = CompileYqlQuery (queryAst, false , ctx, sqlVersion, settingsBuilder);
1471
1471
if (compileResult.QueryExprs .empty ()) {
1472
1472
return nullptr ;
1473
1473
}
@@ -1513,7 +1513,7 @@ class TKqpHost : public IKqpHost {
1513
1513
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, query.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1514
1514
settingsBuilder.SetSqlAutoCommit (false )
1515
1515
.SetUsePgParser (settings.UsePgParser );
1516
- auto compileResult = CompileYqlQuery (query, /* isSql */ true , ctx, sqlVersion, settingsBuilder, settings. PerStatementResult );
1516
+ auto compileResult = CompileYqlQuery (query, /* isSql */ true , ctx, sqlVersion, settingsBuilder);
1517
1517
if (compileResult.QueryExprs .empty ()) {
1518
1518
return nullptr ;
1519
1519
}
@@ -1550,7 +1550,7 @@ class TKqpHost : public IKqpHost {
1550
1550
TMaybe<TSqlVersion> sqlVersion = 1 ;
1551
1551
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, query.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1552
1552
settingsBuilder.SetSqlAutoCommit (false );
1553
- auto compileResult = CompileYqlQuery (query, true , ctx, sqlVersion, settingsBuilder, false );
1553
+ auto compileResult = CompileYqlQuery (query, true , ctx, sqlVersion, settingsBuilder);
1554
1554
if (compileResult.QueryExprs .empty ()) {
1555
1555
return nullptr ;
1556
1556
}
@@ -1571,7 +1571,7 @@ class TKqpHost : public IKqpHost {
1571
1571
TMaybe<TSqlVersion> sqlVersion;
1572
1572
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, queryAst.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1573
1573
settingsBuilder.SetSqlAutoCommit (false );
1574
- auto compileResult = CompileYqlQuery (queryAst, false , ctx, sqlVersion, settingsBuilder, false );
1574
+ auto compileResult = CompileYqlQuery (queryAst, false , ctx, sqlVersion, settingsBuilder);
1575
1575
if (compileResult.QueryExprs .empty ()) {
1576
1576
return nullptr ;
1577
1577
}
@@ -1598,7 +1598,7 @@ class TKqpHost : public IKqpHost {
1598
1598
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, script.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1599
1599
settingsBuilder.SetSqlAutoCommit (true )
1600
1600
.SetUsePgParser (settings.UsePgParser );
1601
- auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder, false );
1601
+ auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder);
1602
1602
if (compileResult.QueryExprs .empty ()) {
1603
1603
return nullptr ;
1604
1604
}
@@ -1627,7 +1627,7 @@ class TKqpHost : public IKqpHost {
1627
1627
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, script.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1628
1628
settingsBuilder.SetSqlAutoCommit (true )
1629
1629
.SetUsePgParser (settings.UsePgParser );
1630
- auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder, false );
1630
+ auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder);
1631
1631
if (compileResult.QueryExprs .empty ()) {
1632
1632
return nullptr ;
1633
1633
}
@@ -1651,7 +1651,7 @@ class TKqpHost : public IKqpHost {
1651
1651
TMaybe<TSqlVersion> sqlVersion;
1652
1652
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, script.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1653
1653
settingsBuilder.SetSqlAutoCommit (true );
1654
- auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder, false );
1654
+ auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder);
1655
1655
if (compileResult.QueryExprs .empty ()) {
1656
1656
return nullptr ;
1657
1657
}
@@ -1679,7 +1679,7 @@ class TKqpHost : public IKqpHost {
1679
1679
TMaybe<TSqlVersion> sqlVersion;
1680
1680
TKqpTranslationSettingsBuilder settingsBuilder (SessionCtx->Query ().Type , SessionCtx->Config ()._KqpYqlSyntaxVersion .Get ().GetRef (), Cluster, script.Text , SessionCtx->Config ().BindingsMode , GUCSettings);
1681
1681
settingsBuilder.SetSqlAutoCommit (true );
1682
- auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder, false );
1682
+ auto compileResult = CompileYqlQuery (script, true , ctx, sqlVersion, settingsBuilder);
1683
1683
if (compileResult.QueryExprs .empty ()) {
1684
1684
return nullptr ;
1685
1685
}
0 commit comments