summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_query.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'yql/essentials/sql/v1/sql_query.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index 4983e961f60..45d2b5b79c2 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -2565,7 +2565,9 @@ bool TSqlQuery::AlterTableAction(const TRule_alter_table_action& node, TAlterTab
case TRule_alter_table_action::kAltAlterTableAction10: {
// DROP INDEX
const auto& dropIndex = node.GetAlt_alter_table_action10().GetRule_alter_table_drop_index1();
- AlterTableDropIndex(dropIndex, params);
+ if (!AlterTableDropIndex(dropIndex, params)) {
+ return false;
+ }
break;
}
case TRule_alter_table_action::kAltAlterTableAction11: {
@@ -2692,6 +2694,22 @@ bool TSqlQuery::AlterTableAction(const TRule_alter_table_action& node, TAlterTab
break;
}
+ case TRule_alter_table_action::kAltAlterTableAction24: {
+ // ADD STATISTICS
+ const auto& addStatistics = node.GetAlt_alter_table_action24().GetRule_alter_table_add_statistics1();
+ if (!AlterTableAddStatistics(addStatistics, params)) {
+ return false;
+ }
+ break;
+ }
+ case TRule_alter_table_action::kAltAlterTableAction25: {
+ // DROP STATISTICS
+ const auto& dropStatistics = node.GetAlt_alter_table_action25().GetRule_alter_table_drop_statistics1();
+ if (!AlterTableDropStatistics(dropStatistics, params)) {
+ return false;
+ }
+ break;
+ }
case TRule_alter_table_action::ALT_NOT_SET:
YQL_ENSURE(false, "Unreachable");
}
@@ -3025,8 +3043,18 @@ bool TSqlQuery::AlterTableAddIndex(const TRule_alter_table_add_index& node, TAlt
return CreateTableIndex(node.GetRule_table_index2(), params.AddIndexes);
}
-void TSqlQuery::AlterTableDropIndex(const TRule_alter_table_drop_index& node, TAlterTableParameters& params) {
+bool TSqlQuery::AlterTableDropIndex(const TRule_alter_table_drop_index& node, TAlterTableParameters& params) {
params.DropIndexes.emplace_back(IdEx(node.GetRule_an_id3(), *this));
+ return !Ctx_.HasPendingErrors;
+}
+
+bool TSqlQuery::AlterTableAddStatistics(const TRule_alter_table_add_statistics& node, TAlterTableParameters& params) {
+ return CreateTableStatistics(node.GetRule_table_statistics2(), params.AddStatistics);
+}
+
+bool TSqlQuery::AlterTableDropStatistics(const TRule_alter_table_drop_statistics& node, TAlterTableParameters& params) {
+ params.DropStatistics.emplace_back(IdEx(node.GetRule_an_id3(), *this));
+ return !Ctx_.HasPendingErrors;
}
void TSqlQuery::AlterTableRenameTo(const TRule_alter_table_rename_to& node, TAlterTableParameters& params) {