|
| 1 | + |
| 2 | +## Version 3.4.0 Release Notes |
| 3 | + |
| 4 | +Compatible with OpenSearch and OpenSearch Dashboards version 3.4.0 |
| 5 | + |
| 6 | +### Features |
| 7 | +* Support `chart` command in PPL ([#4579](https://github.com/opensearch-project/sql/pull/4579)) |
| 8 | +* Support `Streamstats` command with calcite ([#4297](https://github.com/opensearch-project/sql/pull/4297)) |
| 9 | +* Support `multisearch` command in calcite ([#4332](https://github.com/opensearch-project/sql/pull/4332)) |
| 10 | +* Add replace command with Calcite ([#4451](https://github.com/opensearch-project/sql/pull/4451)) |
| 11 | + |
| 12 | +### Enhancements |
| 13 | +* Add `bucket_nullable` argument for `Streamstats` command ([#4831](https://github.com/opensearch-project/sql/pull/4831)) |
| 14 | +* Add `regexp_replace()` function as alias of `replace()` ([#4765](https://github.com/opensearch-project/sql/pull/4765)) |
| 15 | +* Convert `dedup` pushdown to composite + top_hits ([#4844](https://github.com/opensearch-project/sql/pull/4844)) |
| 16 | +* Merge group fields for aggregate if having dependent group fields ([#4703](https://github.com/opensearch-project/sql/pull/4703)) |
| 17 | +* Merge the implementation of `timechart` and `chart` ([#4755](https://github.com/opensearch-project/sql/pull/4755)) |
| 18 | +* PPL tostring() implementation issue #4492 ([#4497](https://github.com/opensearch-project/sql/pull/4497)) |
| 19 | +* Perform RexNode expression standardization for script push down ([#4795](https://github.com/opensearch-project/sql/pull/4795)) |
| 20 | +* Pushdown sort by complex expressions to scan ([#4750](https://github.com/opensearch-project/sql/pull/4750)) |
| 21 | +* Pushdown the `top` `rare` commands to nested aggregation ([#4707](https://github.com/opensearch-project/sql/pull/4707)) |
| 22 | +* Refactor alias type field by adding another project with alias ([#4881](https://github.com/opensearch-project/sql/pull/4881)) |
| 23 | +* Remove count aggregation for sort on aggregate measure ([#4867](https://github.com/opensearch-project/sql/pull/4867)) |
| 24 | +* Remove redundant push-down-filters derived for bucket-non-null agg ([#4843](https://github.com/opensearch-project/sql/pull/4843)) |
| 25 | +* Remove unnecessary filter for DateHistogram aggregation ([#4877](https://github.com/opensearch-project/sql/pull/4877)) |
| 26 | +* Specify timestamp field with `timefield` in timechart command ([#4784](https://github.com/opensearch-project/sql/pull/4784)) |
| 27 | +* Support `appendpipe` command in PPL ([#4602](https://github.com/opensearch-project/sql/pull/4602)) |
| 28 | +* Support `mvdedup` eval function ([#4828](https://github.com/opensearch-project/sql/pull/4828)) |
| 29 | +* Support `mvindex` eval function ([#4794](https://github.com/opensearch-project/sql/pull/4794)) |
| 30 | +* Support push down sort on aggregation measure for more than one agg call ([#4759](https://github.com/opensearch-project/sql/pull/4759)) |
| 31 | +* Support wildcard for replace command ([#4698](https://github.com/opensearch-project/sql/pull/4698)) |
| 32 | +* Add `bucket_nullable` argument for `Eventstats` ([#4817](https://github.com/opensearch-project/sql/pull/4817)) |
| 33 | +* Bin command error message enhancement ([#4690](https://github.com/opensearch-project/sql/pull/4690)) |
| 34 | +* Update clickbench queries with parameter bucket_nullable=false ([#4732](https://github.com/opensearch-project/sql/pull/4732)) |
| 35 | +* Support 'usenull' option in PPL `top` and `rare` commands ([#4696](https://github.com/opensearch-project/sql/pull/4696)) |
| 36 | +* Support millisecond span ([#4672](https://github.com/opensearch-project/sql/pull/4672)) |
| 37 | +* Enhance dynamic source clause to support only metadata filters ([#4554](https://github.com/opensearch-project/sql/pull/4554)) |
| 38 | +* Support push down sort after limit ([#4657](https://github.com/opensearch-project/sql/pull/4657)) |
| 39 | +* Add `per_minute`, `per_hour`, `per_day` function support ([#4531](https://github.com/opensearch-project/sql/pull/4531)) |
| 40 | +* Pushdown sort aggregate metrics ([#4603](https://github.com/opensearch-project/sql/pull/4603)) |
| 41 | +* Allow renaming group-by fields to existing field names ([#4586](https://github.com/opensearch-project/sql/pull/4586)) |
| 42 | +* Support Automatic Type Conversion for REX/SPATH/PARSE Command Extractions ([#4599](https://github.com/opensearch-project/sql/pull/4599)) |
| 43 | +* Pushdown case function in aggregations as range queries ([#4400](https://github.com/opensearch-project/sql/pull/4400)) |
| 44 | +* Update GEOIP function to support IP types as input ([#4613](https://github.com/opensearch-project/sql/pull/4613)) |
| 45 | +* Pushdown distinct count approx ([#4614](https://github.com/opensearch-project/sql/pull/4614)) |
| 46 | +* Optimize pushdown script size with necessary fields per expression ([#4615](https://github.com/opensearch-project/sql/pull/4615)) |
| 47 | +* Support referring to implicit `@timestamp` field in span ([#4138](https://github.com/opensearch-project/sql/pull/4138)) |
| 48 | +* Make composite bucket size configurable ([#4544](https://github.com/opensearch-project/sql/pull/4544)) |
| 49 | +* Add internal MAP_REMOVE function for Calcite PPL ([#4511](https://github.com/opensearch-project/sql/pull/4511)) |
| 50 | +* Add MAP_APPEND internal function to Calcite PPL ([#4515](https://github.com/opensearch-project/sql/pull/4515)) |
| 51 | +* Use `_doc` + `_shard_doc` as sort tiebreaker to get better performance ([#4569](https://github.com/opensearch-project/sql/pull/4569)) |
| 52 | +* [Enhancement] Error handling for illegal character usage in java regex named capture group ([#4434](https://github.com/opensearch-project/sql/pull/4434)) |
| 53 | +* Add JSON_EXTRACT_ALL internal function for Calcite PPL ([#4489](https://github.com/opensearch-project/sql/pull/4489)) |
| 54 | +* Set 0 and negative value of subsearch.maxout as unlimited ([#4534](https://github.com/opensearch-project/sql/pull/4534)) |
| 55 | +* Add configurable system limitations for `subsearch` and `join` command ([#4501](https://github.com/opensearch-project/sql/pull/4501)) |
| 56 | +* Add `per_second` function support for `timechart` command ([#4464](https://github.com/opensearch-project/sql/pull/4464)) |
| 57 | +* Add MAP_CONCAT internal function ([#4477](https://github.com/opensearch-project/sql/pull/4477)) |
| 58 | +* Support Regex for replace eval function ([#4456](https://github.com/opensearch-project/sql/pull/4456)) |
| 59 | +* Add data anonymizer for spath command ([#4479](https://github.com/opensearch-project/sql/pull/4479)) |
| 60 | +* Support eval returns decimal division result instead of integer ([#4440](https://github.com/opensearch-project/sql/pull/4440)) |
| 61 | +* Add mvappend function for Calcite PPL ([#4438](https://github.com/opensearch-project/sql/pull/4438)) |
| 62 | +* PPL `fillnull` command enhancement ([#4421](https://github.com/opensearch-project/sql/pull/4421)) |
| 63 | +* Support format=yaml in Explain API ([#4446](https://github.com/opensearch-project/sql/pull/4446)) |
| 64 | +### Bug Fixes |
| 65 | +* Add hashCode() and equals() to the value class of ExprJavaType ([#4885](https://github.com/opensearch-project/sql/pull/4885)) |
| 66 | +* BucketAggretationParser should handle more non-composite bucket types ([#4706](https://github.com/opensearch-project/sql/pull/4706)) |
| 67 | +* Do not remove nested fields in resolving AllFieldsExcludeMeta ([#4708](https://github.com/opensearch-project/sql/pull/4708)) |
| 68 | +* Fix binning udf resolution / Add type coercion support for binning UDFs ([#4742](https://github.com/opensearch-project/sql/pull/4742)) |
| 69 | +* Fix bug that `Streamstats` command incorrectly treats null as a valid group ([#4777](https://github.com/opensearch-project/sql/pull/4777)) |
| 70 | +* Fix filter push down producing redundant filter queries ([#4744](https://github.com/opensearch-project/sql/pull/4744)) |
| 71 | +* Fix function identify problem in converting to sql dialect ([#4793](https://github.com/opensearch-project/sql/pull/4793)) |
| 72 | +* Fix search anonymizer only ([#4783](https://github.com/opensearch-project/sql/pull/4783)) |
| 73 | +* Fix sub-fields accessing of generated structs ([#4683](https://github.com/opensearch-project/sql/pull/4683)) |
| 74 | +* Fix wrong parameter and return result logic for LogPatternAggFunction ([#4868](https://github.com/opensearch-project/sql/pull/4868)) |
| 75 | +* Grouping key field type can only be overwritten when the `ExprCoreType`s are different ([#4850](https://github.com/opensearch-project/sql/pull/4850)) |
| 76 | +* Fix eval on grouped fields after timechart ([#4758](https://github.com/opensearch-project/sql/pull/4758)) |
| 77 | +* Support access to nested field of struct after fields command ([#4719](https://github.com/opensearch-project/sql/pull/4719)) |
| 78 | +* Support escaped field names in SPath parsing ([#4813](https://github.com/opensearch-project/sql/pull/4813)) |
| 79 | +* Support script pushdown in sort-on-measure pushdown rewriting ([#4749](https://github.com/opensearch-project/sql/pull/4749)) |
| 80 | +* Support serializing external OpenSearch UDFs at pushdown time ([#4618](https://github.com/opensearch-project/sql/pull/4618)) |
| 81 | +* Support using decimal as span literals ([#4717](https://github.com/opensearch-project/sql/pull/4717)) |
| 82 | +* Translate `SAFE_CAST` to `TRY_CAST` in Spark SQL ([#4788](https://github.com/opensearch-project/sql/pull/4788)) |
| 83 | +* Update syntax: like(string, PATTERN[, case_sensitive]) ([#4837](https://github.com/opensearch-project/sql/pull/4837)) |
| 84 | +* [BugFix] Fix Memory Exhaustion for Multiple Filtering Operations in PPL ([#4841](https://github.com/opensearch-project/sql/pull/4841)) |
| 85 | +* Fix CVE-2025-48924 ([#4665](https://github.com/opensearch-project/sql/pull/4665)) |
| 86 | +* [BugFix] Fix unexpected shift of extraction for `rex` with nested capture groups in named groups ([#4641](https://github.com/opensearch-project/sql/pull/4641)) |
| 87 | +* Fix asc/desc keyword behavior for sort command ([#4651](https://github.com/opensearch-project/sql/pull/4651)) |
| 88 | +* Fixes for `Multisearch` and `Append` command ([#4512](https://github.com/opensearch-project/sql/pull/4512)) |
| 89 | +* Make nested alias type support referring to outer context ([#4673](https://github.com/opensearch-project/sql/pull/4673)) |
| 90 | +* Use table scan rowType in filter pushdown to fix rename issue ([#4670](https://github.com/opensearch-project/sql/pull/4670)) |
| 91 | +* Fix: Support Alias Fields in MIN, MAX, FIRST, LAST, and TAKE Aggregations ([#4621](https://github.com/opensearch-project/sql/pull/4621)) |
| 92 | +* Fix bin nested fields issue ([#4606](https://github.com/opensearch-project/sql/pull/4606)) |
| 93 | +* Change ComparableLinkedHashMap to compare Key than Value ([#4648](https://github.com/opensearch-project/sql/pull/4648)) |
| 94 | +* Replace all dots in fields of table scan's PhysType ([#4633](https://github.com/opensearch-project/sql/pull/4633)) |
| 95 | +* Return comparable LinkedHashMap in `valueForCalcite()` of ExprTupleValue ([#4629](https://github.com/opensearch-project/sql/pull/4629)) |
| 96 | +* Fix filter parsing failure on date fields with non-default format ([#4616](https://github.com/opensearch-project/sql/pull/4616)) |
| 97 | +* Fix compile issue in main ([#4608](https://github.com/opensearch-project/sql/pull/4608)) |
| 98 | +* Fix push down failure for min/max on derived field ([#4572](https://github.com/opensearch-project/sql/pull/4572)) |
| 99 | +* Add value type hint for derived aggregate group by field ([#4583](https://github.com/opensearch-project/sql/pull/4583)) |
| 100 | +* Fix sort push down into agg after project already pushed ([#4546](https://github.com/opensearch-project/sql/pull/4546)) |
| 101 | +* Update request builder after pushdown sort into agg buckets ([#4541](https://github.com/opensearch-project/sql/pull/4541)) |
| 102 | +* Including metadata fields type when doing agg/filter script push down ([#4522](https://github.com/opensearch-project/sql/pull/4522)) |
| 103 | +* Fix percentile bug ([#4539](https://github.com/opensearch-project/sql/pull/4539)) |
| 104 | +* Fix mapping after aggregation push down ([#4500](https://github.com/opensearch-project/sql/pull/4500)) |
| 105 | +* Throw an error when the conditions of case are not boolean values ([#4520](https://github.com/opensearch-project/sql/pull/4520)) |
| 106 | +* Fallback to sub-aggregation if composite aggregation doesn't support ([#4413](https://github.com/opensearch-project/sql/pull/4413)) |
| 107 | +* Fix the bug of explicit makeNullLiteral for UDT fields ([#4475](https://github.com/opensearch-project/sql/pull/4475)) |
| 108 | +* Fix missing keywordsCanBeId ([#4491](https://github.com/opensearch-project/sql/pull/4491)) |
| 109 | +* Fix issue 4441 ([#4449](https://github.com/opensearch-project/sql/pull/4449)) |
| 110 | +* Fix join type ambiguous issue when specify the join type with sql-like join criteria ([#4474](https://github.com/opensearch-project/sql/pull/4474)) |
| 111 | +* Remove shared mutable optimizer field that caused race condition ([#4454](https://github.com/opensearch-project/sql/pull/4454)) |
| 112 | +* Reverting to _doc + _id ([#4435](https://github.com/opensearch-project/sql/pull/4435)) |
| 113 | + |
| 114 | +### Infrastructure |
| 115 | +* Add config for CodeRabbit review ([#4890](https://github.com/opensearch-project/sql/pull/4890)) |
| 116 | +* Split bwc-tests to bwc-rolling-upgrade and bwc-full-restart ([#4716](https://github.com/opensearch-project/sql/pull/4716)) |
| 117 | +* Update github workflows to move from macos-13 to 14 ([#4779](https://github.com/opensearch-project/sql/pull/4779)) |
| 118 | +* Fix the flaky CalcitePPLTcphIT ([#4846](https://github.com/opensearch-project/sql/pull/4846)) |
| 119 | +* Fix UT failure and Linkchecker failure ([#4809](https://github.com/opensearch-project/sql/pull/4809)) |
| 120 | +* Adding IT suite for PPL-based dashboards in Neo for CloudWatch Lake ([#4695](https://github.com/opensearch-project/sql/pull/4695)) |
| 121 | +* Add allowed_warnings in yaml restful tests ([#4731](https://github.com/opensearch-project/sql/pull/4731)) |
| 122 | +* Mitigate the CI failure caused by 500 Internal Server Error ([#4646](https://github.com/opensearch-project/sql/pull/4646)) |
| 123 | +* Publish internal modules separately for downstream reuse ([#4484](https://github.com/opensearch-project/sql/pull/4484)) |
| 124 | +* Refactor JsonExtractAllFunctionIT and MapConcatFunctionIT ([#4623](https://github.com/opensearch-project/sql/pull/4623)) |
| 125 | +* Onboarding async query core and grammar files to maven snapshots ([#4598](https://github.com/opensearch-project/sql/pull/4598)) |
| 126 | +* Onboarding new maven snapshots publishing to s3 (sql) ([#4588](https://github.com/opensearch-project/sql/pull/4588)) |
| 127 | +* Fix JsonExtractAllFunctionIT failure ([#4556](https://github.com/opensearch-project/sql/pull/4556)) |
| 128 | +* Check server status before starting Prometheus ([#4537](https://github.com/opensearch-project/sql/pull/4537)) |
| 129 | +* Update stalled action ([#4485](https://github.com/opensearch-project/sql/pull/4485)) |
| 130 | +* Switch to Guice#createInjector and add concurrent SQL/PPL regression ITs ([#4462](https://github.com/opensearch-project/sql/pull/4462)) |
| 131 | +* Update delete_backport_branch workflow to include release-chores branches ([#4025](https://github.com/opensearch-project/sql/pull/4025)) |
| 132 | +* Add ignorePrometheus Flag for integTest and docTest ([#4442](https://github.com/opensearch-project/sql/pull/4442)) |
| 133 | + |
| 134 | +### Documentation |
| 135 | +* Update PPL Command Documentation ([#4562](https://github.com/opensearch-project/sql/pull/4562)) |
| 136 | +* Doc update for `json_valid` ([#4803](https://github.com/opensearch-project/sql/pull/4803)) |
| 137 | +* Enhance tests and doc for eval isnull/isnotnull functions ([#4724](https://github.com/opensearch-project/sql/pull/4724)) |
| 138 | +* Update search.rst documentation ([#4686](https://github.com/opensearch-project/sql/pull/4686)) |
| 139 | +* Add more examples to the `where` command doc ([#4457](https://github.com/opensearch-project/sql/pull/4457)) |
| 140 | +* Update eventstats.rst ([#4447](https://github.com/opensearch-project/sql/pull/4447)) |
| 141 | + |
| 142 | +### Maintenance |
| 143 | +* Bump Calcite to 1.41.0 ([#4714](https://github.com/opensearch-project/sql/pull/4714)) |
| 144 | +* Execute yamlRestTest in integration job ([#4838](https://github.com/opensearch-project/sql/pull/4838)) |
| 145 | +* Fix test failures due to version in mapping ([#4748](https://github.com/opensearch-project/sql/pull/4748)) |
| 146 | +* Support timeouts for Calcite queries ([#4857](https://github.com/opensearch-project/sql/pull/4857)) |
| 147 | +* [Maintenance] Enforce PR label of 'bugFix' instead of 'bug' ([#4773](https://github.com/opensearch-project/sql/pull/4773)) |
| 148 | +* [3.4.0] Bump Gradle to 9.2.0 and GitHub Action JDK to 25 ([#4824](https://github.com/opensearch-project/sql/pull/4824)) |
| 149 | +* Fix clickbench query 43 ([#4861](https://github.com/opensearch-project/sql/pull/4861)) |
| 150 | +* Update big5 ppl queries and check plans ([#4668](https://github.com/opensearch-project/sql/pull/4668)) |
| 151 | +* Revert "Update grammar files and developer guide (#4301)" ([#4643](https://github.com/opensearch-project/sql/pull/4643)) |
| 152 | +* Increment version to 3.4.0-SNAPSHOT ([#4452](https://github.com/opensearch-project/sql/pull/4452)) |
| 153 | +* Revert partial of #4401 ([#4503](https://github.com/opensearch-project/sql/pull/4503)) |
| 154 | +* Implement one-batch lookahead for index enumerators ([#4345](https://github.com/opensearch-project/sql/pull/4345)) |
| 155 | +* Refactor name resolution in Calcite PPL ([#4393](https://github.com/opensearch-project/sql/pull/4393)) |
0 commit comments