Skip to content

Add songkant-aws as maintainer#5244

Merged
Swiddis merged 1 commit intoopensearch-project:mainfrom
qianheng-aws:maintaince
Mar 24, 2026
Merged

Add songkant-aws as maintainer#5244
Swiddis merged 1 commit intoopensearch-project:mainfrom
qianheng-aws:maintaince

Conversation

@qianheng-aws
Copy link
Copy Markdown
Collaborator

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:

  1. 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 Append command 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)

  2. 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)

  3. 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)

  4. 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

Signed-off-by: Heng Qian <qianheng@amazon.com>
@github-actions
Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🧪 No relevant tests
🔒 No security concerns identified
✅ No TODO sections
🔀 No multiple PR themes
⚡ No major issues detected

Copy link
Copy Markdown
Collaborator

@yuancu yuancu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome, @songkant-aws !

@LantaoJin
Copy link
Copy Markdown
Member

Do not merge this until @peterzhuamazon 's confirming.

@Swiddis Swiddis merged commit 104f4de into opensearch-project:main Mar 24, 2026
38 of 39 checks passed
@qianheng-aws qianheng-aws deleted the maintaince branch March 26, 2026 10:07
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Improves code quality, but not the product

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants