From 532e90a892c3fc52916f7857488925a8ef6b8137 Mon Sep 17 00:00:00 2001 From: Siri Teja Gaddameedi Date: Tue, 28 Jan 2025 10:05:29 +0530 Subject: [PATCH] Add SQLQuery Utils support for Vaccum queries Signed-off-by: Siri Teja Gaddameedi Add UTs Signed-off-by: Siri Teja Gaddameedi Fix build Signed-off-by: Siri Teja Gaddameedi Fix code style Signed-off-by: Siri Teja Gaddameedi --- .../sql/spark/utils/SQLQueryUtils.java | 25 +++++++++++++++++++ .../sql/spark/utils/SQLQueryUtilsTest.java | 4 ++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/async-query-core/src/main/java/org/opensearch/sql/spark/utils/SQLQueryUtils.java b/async-query-core/src/main/java/org/opensearch/sql/spark/utils/SQLQueryUtils.java index bd7060b7768..4a6278dbb64 100644 --- a/async-query-core/src/main/java/org/opensearch/sql/spark/utils/SQLQueryUtils.java +++ b/async-query-core/src/main/java/org/opensearch/sql/spark/utils/SQLQueryUtils.java @@ -316,6 +316,31 @@ public Void visitAlterMaterializedViewStatement( return super.visitAlterMaterializedViewStatement(ctx); } + @Override + public Void visitVacuumCoveringIndexStatement( + FlintSparkSqlExtensionsParser.VacuumCoveringIndexStatementContext ctx) { + indexQueryDetailsBuilder.indexQueryActionType(IndexQueryActionType.VACUUM); + indexQueryDetailsBuilder.indexType(FlintIndexType.COVERING); + return super.visitVacuumCoveringIndexStatement(ctx); + } + + @Override + public Void visitVacuumSkippingIndexStatement( + FlintSparkSqlExtensionsParser.VacuumSkippingIndexStatementContext ctx) { + indexQueryDetailsBuilder.indexQueryActionType(IndexQueryActionType.VACUUM); + indexQueryDetailsBuilder.indexType(FlintIndexType.SKIPPING); + return super.visitVacuumSkippingIndexStatement(ctx); + } + + @Override + public Void visitVacuumMaterializedViewStatement( + FlintSparkSqlExtensionsParser.VacuumMaterializedViewStatementContext ctx) { + indexQueryDetailsBuilder.indexQueryActionType(IndexQueryActionType.VACUUM); + indexQueryDetailsBuilder.indexType(FlintIndexType.MATERIALIZED_VIEW); + indexQueryDetailsBuilder.mvName(ctx.mvName.getText()); + return super.visitVacuumMaterializedViewStatement(ctx); + } + @Override public Void visitMaterializedViewQuery(MaterializedViewQueryContext ctx) { int a = ctx.start.getStartIndex(); diff --git a/async-query-core/src/test/java/org/opensearch/sql/spark/utils/SQLQueryUtilsTest.java b/async-query-core/src/test/java/org/opensearch/sql/spark/utils/SQLQueryUtilsTest.java index 276bce3b916..f860c6a3bc9 100644 --- a/async-query-core/src/test/java/org/opensearch/sql/spark/utils/SQLQueryUtilsTest.java +++ b/async-query-core/src/test/java/org/opensearch/sql/spark/utils/SQLQueryUtilsTest.java @@ -140,7 +140,8 @@ void testExtractionFromFlintSkippingIndexQueries() { + " WHERE elb_status_code = 500 " + " WITH (auto_refresh = true)", "DROP SKIPPING INDEX ON myS3.default.alb_logs", - "ALTER SKIPPING INDEX ON myS3.default.alb_logs WITH (auto_refresh = false)" + "ALTER SKIPPING INDEX ON myS3.default.alb_logs WITH (auto_refresh = false)", + "VACUUM SKIPPING INDEX ON myS3.default.alb_logs", }; for (String query : createSkippingIndexQueries) { @@ -170,6 +171,7 @@ void testExtractionFromFlintCoveringIndexQueries() { + " WHERE elb_status_code = 500 " + " WITH (auto_refresh = true)", "DROP INDEX elb_and_requestUri ON myS3.default.alb_logs", + "VACUUM INDEX elb_and_requestUri ON myS3.default.alb_logs", "ALTER INDEX elb_and_requestUri ON myS3.default.alb_logs WITH (auto_refresh = false)" };