Add songkant-aws as maintainer#5244
Merged
Swiddis merged 1 commit intoopensearch-project:mainfrom Mar 24, 2026
Merged
Conversation
Signed-off-by: Heng Qian <qianheng@amazon.com>
Contributor
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
yuancu
approved these changes
Mar 18, 2026
Collaborator
yuancu
left a comment
There was a problem hiding this comment.
Welcome, @songkant-aws !
LantaoJin
approved these changes
Mar 18, 2026
Member
|
Do not merge this until @peterzhuamazon 's confirming. |
RyanL1997
approved these changes
Mar 18, 2026
ahkcs
approved these changes
Mar 18, 2026
peterzhuamazon
approved these changes
Mar 24, 2026
ahkcs
added a commit
that referenced
this pull request
Mar 30, 2026
* Init CLAUDE.md (#5259) Signed-off-by: Heng Qian <qianheng@amazon.com> * Add label to exempt specific PRs from stalled labeling (#5263) * Implement `reverse` performance optimization (#4775) Co-authored-by: Jialiang Liang <jiallian@amazon.com> * Add songkant-aws as maintainer (#5244) * Move some maintainers from active to Emeritus (#5260) * Move inactive current maintainers to Emeritus Signed-off-by: Lantao Jin <ltjin@amazon.com> * Remove affiliation column for emeritus maintainers Signed-off-by: Lantao Jin <ltjin@amazon.com> * formatted Signed-off-by: Lantao Jin <ltjin@amazon.com> * Fix formatting in MAINTAINERS.md Signed-off-by: Simeon Widdis <sawiddis@gmail.com> Signed-off-by: Simeon Widdis <sawiddis@gmail.com> --------- Signed-off-by: Lantao Jin <ltjin@amazon.com> Signed-off-by: Simeon Widdis <sawiddis@gmail.com> Co-authored-by: Simeon Widdis <sawiddis@gmail.com> * Add query cancellation support via _tasks/_cancel API for PPL queries (#5254) * Add query cancellation support via _tasks/_cancel API for PPL queries Signed-off-by: Sunil Ramchandra Pawar <pawar_sr@apple.com> * Refactor PPL query cancellation to cooperative model and other PR suggestions. Signed-off-by: Sunil Ramchandra Pawar <pawar_sr@apple.com> --------- Signed-off-by: Sunil Ramchandra Pawar <pawar_sr@apple.com> * Add Calcite native SQL planning in UnifiedQueryPlanner (#5257) * feat(api): Add Calcite native SQL planning path in UnifiedQueryPlanner Add SQL support to the unified query API using Calcite's native parser pipeline (SqlParser → SqlValidator → SqlToRelConverter → RelNode), bypassing the ANTLR parser used by PPL. Changes: - UnifiedQueryPlanner: use PlanningStrategy to dispatch CalciteNativeStrategy vs CustomVisitorStrategy - CalciteNativeStrategy: Calcite Planner with try-with-resources for ANSI SQL - CustomVisitorStrategy: ANTLR-based path for PPL (and future SQL V2) - UnifiedQueryContext: SqlParser.Config with Casing.UNCHANGED to preserve lowercase OpenSearch index names Signed-off-by: Chen Dai <daichen@amazon.com> * test(api): Add SQL planner tests and refactor test base for multi-language support - Refactor UnifiedQueryTestBase with queryType() hook for subclass override - Add UnifiedSqlQueryPlannerTest covering SELECT, WHERE, GROUP BY, JOIN, ORDER BY, subquery, case sensitivity, namespaces, and error handling - Update UnifiedQueryContextTest to verify SQL context creation Signed-off-by: Chen Dai <daichen@amazon.com> * perf(benchmarks): Add SQL queries to UnifiedQueryBenchmark Add language (PPL/SQL) and queryPattern param dimensions for side-by-side comparison of equivalent queries across both languages. Remove separate UnifiedSqlQueryBenchmark in favor of unified class. Signed-off-by: Chen Dai <daichen@amazon.com> * docs(api): Update README to reflect SQL support in UnifiedQueryPlanner Signed-off-by: Chen Dai <daichen@amazon.com> * fix(api): Normalize trailing whitespace in assertPlan comparison RelOptUtil.toString() appends a trailing newline after the last plan node, which doesn't match Java text block expectations. Also add \r\n normalization for Windows CI compatibility, consistent with the existing pattern in core module tests. Signed-off-by: Chen Dai <daichen@amazon.com> --------- Signed-off-by: Chen Dai <daichen@amazon.com> * [Feature] Support graphLookup with literal value as its start (#5253) * [Feature] Support graphLookup as top-level PPL command (#5243) Add support for graphLookup as the first command in a PPL query with literal start values, instead of requiring piped input from source=. Syntax: graphLookup table start="value" edge=from-->to as output graphLookup table start=("v1", "v2") edge=from-->to as output Signed-off-by: Heng Qian <qianheng@amazon.com> * Spotless check Signed-off-by: Heng Qian <qianheng@amazon.com> * Ignore child pipe if using start value Signed-off-by: Heng Qian <qianheng@amazon.com> * Add graphLookup integration tests per PPL command checklist - Add explain plan tests in CalciteExplainIT with YAML assertions - Add v2-unsupported tests in NewAddedCommandsIT - Add CalcitePPLGraphLookupIT to CalciteNoPushdownIT suite - Skip graphLookup tests when pushdown is disabled (required by impl) - Add expected plan YAML files for piped and top-level graphLookup Signed-off-by: Heng Qian <qianheng@amazon.com> * Remove brace of start value list Signed-off-by: Heng Qian <qianheng@amazon.com> --------- Signed-off-by: Heng Qian <qianheng@amazon.com> * Apply docs website feedback to ppl functions (#5207) * apply doc website feedback to ppl functions Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> * take out comments Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> * fix json_append example Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> * fix json_append example Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> * fix links Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> --------- Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> Signed-off-by: ritvibhatt <53196324+ritvibhatt@users.noreply.github.com> * feat(api): Add profiling support to unified query API (#5268) Add query profiling infrastructure that measures time spent in each query phase (analyze, optimize, execute, format). Profiling is opt-in via UnifiedQueryContext.builder().profiling(true) and uses thread-local context to avoid passing profiling state through every method. Key changes: - QueryProfiling/ProfileContext for thread-local profiling lifecycle - UnifiedQueryContext.measure() API for timing arbitrary phases - Auto-profiling in UnifiedQueryPlanner (analyze) and compiler (optimize) - UnifiedQueryTestBase shared test fixture for unified query tests - Comprehensive profiling tests with non-flaky >= 0 timing assertions Signed-off-by: Chen Dai <daichen@amazon.com> * Add UnifiedQueryParser with language-specific implementations (#5274) Extract parsing logic from UnifiedQueryPlanner into a UnifiedQueryParser interface with language-specific implementations: PPLQueryParser (returns UnresolvedPlan) and CalciteSqlQueryParser (returns SqlNode). UnifiedQueryContext owns the parser instance, created eagerly by the builder which has direct access to query type and future SQL config. Each implementation receives only its required dependencies: PPLQueryParser takes Settings, CalciteSqlQueryParser takes CalcitePlanContext. UnifiedQueryPlanner.CustomVisitorStrategy now obtains the parser from the context via the interface type. Signed-off-by: Chen Dai <daichen@amazon.com> * Fix flaky TPC-H Q1 test due to bugs in `MatcherUtils.closeTo()` (#5283) * Fix the flaky tpch Q1 Signed-off-by: Lantao Jin <ltjin@amazon.com> * Change to ULP-aware to handle floating-point precision differences Signed-off-by: Lantao Jin <ltjin@amazon.com> --------- Signed-off-by: Lantao Jin <ltjin@amazon.com> --------- Signed-off-by: Heng Qian <qianheng@amazon.com> Signed-off-by: Lantao Jin <ltjin@amazon.com> Signed-off-by: Simeon Widdis <sawiddis@gmail.com> Signed-off-by: Sunil Ramchandra Pawar <pawar_sr@apple.com> Signed-off-by: Chen Dai <daichen@amazon.com> Signed-off-by: Ritvi Bhatt <ribhatt@amazon.com> Signed-off-by: ritvibhatt <53196324+ritvibhatt@users.noreply.github.com> Signed-off-by: Kai Huang <ahkcs@amazon.com> Co-authored-by: qianheng <qianheng@amazon.com> Co-authored-by: Simeon Widdis <sawiddis@gmail.com> Co-authored-by: Jialiang Liang <jiallian@amazon.com> Co-authored-by: Lantao Jin <ltjin@amazon.com> Co-authored-by: Sunil Ramchandra Pawar <pawar_sr@apple.com> Co-authored-by: Chen Dai <daichen@amazon.com> Co-authored-by: ritvibhatt <53196324+ritvibhatt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Welcoming new maintainer SongKan Tang (@songkant-aws ).
Songkan has been a consistent and impactful contributor to the project, with 33 merged PRs to date (and additional work in flight), 15 issues filed (feature proposals, RFCs, and bug reports) and 24+ PRs commented on (beyond his own). https://github.com/opensearch-project/sql/pulls?q=is%3Apr+author%3Asongkant-aws+
Here is a summary of his key contributions:
Calcite Engine Migration & Command Support
Songkan has supported multiple PPL commands in the new engine:
Patterns command with SIMPLE_PATTERN and BRAIN algorithm methods (Revert stream pattern method in V2 and implement SIMPLE_PATTERN in Calcite #3553, Calcite patterns command brain pattern method #3570)
Grok command (Support Grok command in Calcite engine #3678)
Trendline command (Support trendline command in Calcite #3741)
Append command (Implement
Appendcommand with Calcite #4123)Group by span over time-based columns with Span UDF (Support group by span over time based column with Span UDF #3421)
Query Pushdown Optimization
Songkan has made significant contributions to query performance related to pushdown:
Relevance query function pushdown in Calcite (Support relevance query functions pushdown implementation in Calcite #3834)
Filter script pushdown with RelJson serialization (Filter script pushdown with RelJson serialization in Calcite #3859)
LIKE function to wildcard query conversion for filter pushdown (Convert like function call to wildcard query for Calcite filter pushdown #3915)
Sort pushdown for simple and complex expressions (Support pushdown sort by simple expressions #4071, Pushdown sort by complex expressions to scan #4750)
Sort expression pushdown for SortMergeJoin (Support sort expression pushdown for SortMergeJoin #4830)
Optimized pushdown script size by including only necessary fields per expression (Optimize pushdown script size with necessary fields per expression #4615)
General UDAF pushdown as scripts (in progress, General UDAF pushdown as scripts #5064)
Patterns Command Enhancement
Songkan authored the RFC to improve the patterns command with more advanced log pattern algorithms ([RFC] Improve patterns command with more advanced log pattern algorithms #3251) and led the end-to-end implementation:
Introduced improved pattern algorithm (Improved patterns command with new algorithm #3263)
Added sample_logs output field for better observability ([Feature][Enhancement] Enhance patterns command with additional sample_logs output field #4155)
Fixed numbered token handling and made it optional (Fix numbered token bug and make it optional output in patterns command #4402)
Bug Fixes & Reliability
Songkan has consistently addressed bugs across the codebase, demonstrating deep understanding of the query engine internals:
Fixed relevance query function over-optimization in ReduceExpressionsRule ([BugFix] Fix relevance query function over optimization issue in ReduceExpressionsRule #3851)
Fixed parse-related functions NULL input handling (Fix parse related functions return behavior in case of NULL input #4381)
Fixed makeNullLiteral for UDT fields in append/multisearch (Fix the bug of explicit makeNullLiteral for UDT fields #4475)
Fixed boolean comparison condition simplification bug ([BugFix] Fix the bug when boolean comparison condition is simplifed to field #5071)
Fixed PushDownContext shallow copy bug ([BugFix] Fix PushDownContext shallow copy bug #5199, in progress)
Fixed LogPatternAggFunction parameter and return result logic (Fix wrong parameter and return result logic for LogPatternAggFunction #4868)
Changes
Added Songkan Tang | songkant-aws | Amazon to MAINTAINERS.md
Added @songkant-aws to .github/CODEOWNERS