-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add Trino 478 release note #26726
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Trino 478 release note #26726
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,79 @@ | ||||||
| # Release 478 (22 Oct 2025) | ||||||
|
|
||||||
| ## General | ||||||
|
|
||||||
| * Add support for column lineage in `UNNEST` clauses. ({issue}`16946`) | ||||||
| * Add `retry-policy.allowed` configuration property to specify which retry | ||||||
| policies can be selected by the user. ({issue}`26628`) | ||||||
| * Add support for loading plugins from multiple directories. ({issue}`26855`) | ||||||
| * Add the `/v1/integrations/gateway` endpoint for integration with Trino Gateway. ({issue}`26548`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. BTW I am not convinced we should have added that. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We've discussed that already and settled on the decision that it's ok to have a client specific endpoint (like we have for the UI). We can revisit this decision but if it blocks the release we should just revert the change and move on There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
UI is not the best example, because it's maintained within this repo. The UI endpoints can change as the UI needs evolve. This new endpoint is different. It's meant for the Trino Gateway, so in theory it should not be used by any other software. Any other query routing software will needs its own endpoint, which is quite undesirable. All this while the information exposed is no way trino gateway specific and could be exposed in a more reusable manner.
Agreed! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree with you that it's undesirable to have an endpoint for each service and it should be in a reusable manner IMO, the coupling between Trino Gateway and Trino is inevitable. If Trino changes, Trino Gateway will need to change. For example, in this PR because Trino 477 removed some of the jmx stats, which caused Trino Gateway to fail, we had to pin Trino version to 476 and look for workarounds. For this endpoint specifically, yes the data it returns can be useful for other software as well and should be gateway-agnostic. But I think the point is that each software should deserve its own dedicated endpoint so that they are not affected by unintentional changes. Other software owners are welcome, of course, to use this endpoint, but it is their responsibility to make sure their software doesn't break at all times, even after we roll out new changes to this endpoint. It's another way of saying there's no SLA on this endpoint if they use it, whereas if we create a generic endpoint, there's implied SLA At the end of the day, if other query routing logic software needs similar data to be returned, they will likely end up with similar code in their endpoint. Yes this results in duplicate code. But we can look into how to extract common logic to a helper function. At that point, maybe we will find some discrepancies in these seemingly-similar looking endpoints. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I appreciate the openness but I doubt that would be want we would actually want to maintain in the project. BTW trino already exports tons of metrics in standard format (that's why jmx became obsolete), so i don't quite yet understand why we need dedicated endpoints just for selected metrics useful for selected use case |
||||||
| * Allow dropping an uninitialized catalog that failed to load. ({issue}`26918`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do we want to quantify this with "When using dynamic catalogs" or similar? |
||||||
| * Improve performance of queries with an `ORDER BY` clause. ({issue}`26725`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| * Improve performance of `MERGE` statements involving a `NOT MATCHED` case. ({issue}`26759`) | ||||||
| * Improve performance of queries with joins which spill to disk. ({issue}`26076`) | ||||||
| * Fix potential incorrect results when reading `row` type. ({issue}`26806`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
findepi marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| * Return all catalogs, including uninitialized ones, for queries from `metadata.catalogs`. ({issue}`26918`) | ||||||
| * Ensure that queries with and without `EXPLAIN ANALYZE` are planned identically. | ||||||
| way. ({issue}`26938`) | ||||||
sourcery-ai[bot] marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
| * In row pattern matching, restrict logical navigations to current match in running semantics. ({issue}`26981`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is also a bug fix, maybe
Suggested change
findepi marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| ## Security | ||||||
|
|
||||||
| * Propagate `queryId` to the [Open Policy Agent](/security/opa-access-control) | ||||||
| authorizer. ({issue}`26851`) | ||||||
|
|
||||||
| ## Web UI | ||||||
findepi marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| * Add support for filtering queries by `X-Trino-Trace-Token` value in the [](/admin/preview-web-interface). ({issue}`26447`) | ||||||
| * Improve rendering performance of large query JSON in the [](/admin/preview-web-interface). ({issue}`26807`) | ||||||
| * Fix rendering of large query plans in the [](/admin/preview-web-interface). ({issue}`26749`) | ||||||
| * Fix rendering of the splits timeline for queued queries in the [](/admin/preview-web-interface) to prevent | ||||||
| blank screen ({issue}`26920`) | ||||||
|
|
||||||
| ## Docker image | ||||||
|
|
||||||
| * Run Trino on JDK 25.0.0 (build 36). ({issue}`26693`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. FYI: This will change to 25.0.1 soon There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why are we treating this as user visible? Because we support attaching external plugins to Trino run from official docker image? |
||||||
|
|
||||||
| ## Delta Lake connector | ||||||
|
|
||||||
| * Fix failure when reading `map` type with value type is `json` and value is `NULL`. ({issue}`26700`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| * Deprecate the `gcs.use-access-token` configuration property. Use `gcs.auth-type` instead. ({issue}`26681`) | ||||||
|
|
||||||
| ## Google Sheets connector | ||||||
|
|
||||||
| * Fix potential query failure when the `gsheets.delegated-user-email` configuration property | ||||||
| is used. ({issue}`26501`) | ||||||
|
|
||||||
| ## Hive connector | ||||||
|
|
||||||
| * Add support for reading encrypted Parquet files. ({issue}`24517`, {issue}`9383`) | ||||||
| * Deprecate the `gcs.use-access-token` configuration property. Use `gcs.auth-type` instead. ({issue}`26681`) | ||||||
| * Improve performance of queries using complex predicates on `$path` column. ({issue}`27000`) | ||||||
| * Prevent writing invalid dates and timestamps before `1582-10-15` by the ORC writer. ({issue}`26507`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is a bug fix
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @marcinsbd @raunaqmorarka does this apply to Iceberg connector too? |
||||||
|
|
||||||
| ## Hudi connector | ||||||
|
|
||||||
| * Deprecate the `gcs.use-access-token` configuration property. Use `gcs.auth-type` instead. ({issue}`26681`) | ||||||
|
|
||||||
| ## Iceberg connector | ||||||
|
|
||||||
| * Improve performance when writing sorted tables and `iceberg.sorted-writing.local-staging-path` | ||||||
| is set. ({issue}`24376`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| * Return execution metrics while running the `remove_orphan_files` procedure. ({issue}`26661`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it's not "procedure". The code calls this "table procedure"
Suggested change
|
||||||
| * Deprecate the `gcs.use-access-token` configuration property. Use `gcs.auth-type` instead. ({issue}`26681`) | ||||||
| * Collect distinct values count on all columns when replacing tables. ({issue}`26983`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| * Fix failure due to column count mismatch when executing the `add_files_from_table` | ||||||
| procedure. ({issue}`26774`) | ||||||
| * Fix failure when executing `optimize_manifests` on tables without a snapshot. ({issue}`26970`) | ||||||
| * Fix incorrect results when reading Avro files migrated from Hive. ({issue}`26863`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| * Fix failure when executing `SHOW CREATE SCHEMA` on a schema with unsupported properties | ||||||
| with REST, Glue or Nessie catalog. ({issue}`24744`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| ## Kafka connector | ||||||
|
|
||||||
| * Fix failure when filtering partitions by timestamp offset. ({issue}`26787`) | ||||||
ebyhr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| ## SPI | ||||||
|
|
||||||
| * Require `shutdown` to be implemented by the `Connector`. ({issue}`26718`) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| * Deprecate `io.trino.spi.type.Type#appendTo` method. ({issue}`26922`) | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.