Skip to content

Nightly upstream merge - #165

Merged
fuziontech merged 27 commits into
masterfrom
upstream-merge-nightly
Oct 29, 2026
Merged

fuziontech merged 27 commits into
masterfrom
upstream-merge-nightly

Conversation

@fuziontech

Copy link
Copy Markdown
Member

Automated nightly merge of upstream trinodb/trino master into PostHog/trino master.

Resolved conflicts:

  • .github/workflows/ci.yml: adopted upstream's newline-at-EOF check and kept the fork's nosemgrep suppression on the setup action.
  • plugin/trino-hive/.../BaseHiveConnectorTest.java: kept the fork's direct writer-task-count assertion and adopted upstream's flakiness fix (partitioned scaled-writer expectation 3..4 files).

Local sanity builds passed:

  • plugin/trino-ducklake (with dependencies)
  • plugin/trino-posthog-catalogstore (with dependencies)

SPI note: upstream's new function-preimage APIs are additive; fork SPI additions (DelegatedCatalogStore, RevisionedCatalogStore, LoadedConfiguration, ROW_LEVEL_DELETE_ONLY, finishMerge(MemoryContext)) are preserved.

dependabot Bot and others added 26 commits October 28, 2026 06:53
Bumps [io.airlift:aircompressor-v3](https://github.com/airlift/aircompressor) from 3.13 to 3.14.
- [Release notes](https://github.com/airlift/aircompressor/releases)
- [Commits](airlift/aircompressor@3.13...3.14)

---
updated-dependencies:
- dependency-name: io.airlift:aircompressor-v3
  dependency-version: '3.14'
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the web-ui-dependencies group in /core/trino-web-ui/src/main/resources/webapp with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |
| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |
| [sass](https://github.com/sass/dart-sass) | `1.105.1` | `1.105.2` |
| [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) | `2.11.29` | `2.11.34` |
| [browserslist](https://github.com/browserslist/browserslist) | `4.29.3` | `4.29.5` |
| [caniuse-lite](https://github.com/browserslist/caniuse-lite) | `1.0.30001816` | `1.0.30001819` |
| [electron-to-chromium](https://github.com/Kilian/electron-to-chromium) | `1.5.456` | `1.5.467` |
| [node-releases](https://github.com/chicoxyzzy/node-releases) | `2.0.59` | `2.0.60` |


Updates `react` from 19.3.0 to 19.3.1
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.3.1/packages/react)

Updates `react-dom` from 19.3.0 to 19.3.1
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.3.1/packages/react-dom)

Updates `sass` from 1.105.1 to 1.105.2
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](sass/dart-sass@1.105.1...1.105.2)

Updates `baseline-browser-mapping` from 2.11.29 to 2.11.34
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.11.29...v2.11.34)

Updates `browserslist` from 4.29.3 to 4.29.5
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](browserslist/browserslist@4.29.3...4.29.5)

Updates `caniuse-lite` from 1.0.30001816 to 1.0.30001819
- [Commits](browserslist/caniuse-lite@1.0.30001816...1.0.30001819)

Updates `electron-to-chromium` from 1.5.456 to 1.5.467
- [Changelog](https://github.com/Kilian/electron-to-chromium/blob/main/CHANGELOG.md)
- [Commits](Kilian/electron-to-chromium@v1.5.456...v1.5.467)

Updates `node-releases` from 2.0.59 to 2.0.60
- [Commits](chicoxyzzy/node-releases@v2.0.59...v2.0.60)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: react-dom
  dependency-version: 19.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: sass
  dependency-version: 1.105.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: baseline-browser-mapping
  dependency-version: 2.11.34
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: browserslist
  dependency-version: 4.29.5
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: caniuse-lite
  dependency-version: 1.0.30001819
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: electron-to-chromium
  dependency-version: 1.5.467
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
- dependency-name: node-releases
  dependency-version: 2.0.60
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: web-ui-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
The test set query.client.timeout to 1s. The server holds a results
request for up to 1s (MAX_WAIT_TIME) before recording a heartbeat, and
CI shows major GC pauses of 0.6-0.8s, so a client actively reading rows
could go more than 1s without a recorded heartbeat and be failed with
ABANDONED_QUERY.

Raise the client timeout to 3s and the per-row delay to 200ms, so
reading the 25 rows still takes longer than the timeout and the test
keeps verifying that row heartbeats keep the query alive.
testInsertWriteBulkiness counts LOP_INSERT_ROWS records with fn_dblog,
which only sees the active portion of the transaction log. The test
database is in the FULL recovery model but was never backed up, so a
checkpoint truncates the log. When one landed between the INSERT and
the count, the fully logged cases saw fewer than 1500 records, and the
minimally logged cases could pass for the wrong reason.

Hold an open transaction that has written a log record for the
duration of the INSERT and the count: the log cannot be truncated past
the oldest active transaction.
Each source task rebalances on its own, so one or both partitions can
scale to the second writer task.
Handle non-null arrays without aborting JSON output with an ObjectCodec
error. Preserve the existing formatting of scalar and binary values.
A node answers internal requests with 503 "Trino server is still
initializing" until its startup completes. The remote-task clients
treat 503 as retryable, but HttpPageBufferClient turned it into a
TrinoException, for both the results fetch and the results-cleanup
DELETE. A TrinoException bypasses the backoff and fails the client,
and with it the query, e.g. when a worker restarted on the same
address while a query's exchange was still reading from it.

Handle 503 as a transient error on both requests, retried within the
exchange's error budget like other transport failures.
Preserve NaN membership when pushing down floating-point predicates.
Predicate rewrites and domain extraction need the same SQL rendering
semantics. Extract the value-set renderer from DomainTranslator for
reuse while preserving its normalization and null handling.
Functions need a common way to describe the inputs producing a requested
output domain. Add provider contracts, registration, dependency binding,
and result validation, with tests for invalid registrations and provider
results.
Comparison inversion needs consistent candidate admission, null
semantics, and evaluation guarantees. Add shared analysis and rendering
with provider-selected candidates and coverage for synthetic providers
and conservative projections.
Scalar casts need domain inversion that preserves successful results
across rounding, truncation, and time zone boundaries.
Temporal comparisons need calendar-aware inverse domains. Add year,
date_trunc, and at_timezone providers with boundary, admission, and
single-evaluation coverage.
Comparisons over structural casts need safe mappings of native
constants. Add array, row, and map providers that admit lossless element
mappings and preserve evaluation and null behavior.
Function-specific comparison rules duplicate inverse semantics across
the optimizer. Use registered function preimages to derive input
constraints and simplify comparisons, including predicates exposed
by projection inlining.
Keep the legacy domain extractor available for fallback and
same-revision performance comparisons.
Keep legacy coercion available for fallback and performance comparisons.
Check that a new connection has no roles before the test changes the
session authorization. The later assertions that roles are empty after
SET SESSION AUTHORIZATION or RESET SESSION AUTHORIZATION could not tell
a cleared role set from one that was never set, so pin the starting
state first.
Writing deletion vectors read every data manifest of the base snapshot
to find the record counts of the touched data files.
PostgreSQL backends write directly to stderr and concurrent backends can
interleave long statement log lines. The logging collector writes to the
container's stderr so Docker logs retain complete lines for event parsing
and the startup wait strategy.
mvn airstyle:check enforces consistent EOL-at-EOF for Java files.
Add a similar check for all other text files.
This prevents git diff churn when some tools strip the final EOL
unintentionally.
…ghtly

Co-authored-by: Shelley <shelley@exe.dev>

# Conflicts:
#	.github/workflows/ci.yml
#	plugin/trino-hive/src/test/java/io/trino/plugin/hive/BaseHiveConnectorTest.java

@bill-ph bill-ph left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Reviewed the PR description, diff, and existing discussion at fd48eea311d600b6a737a68928a5a778d422bcc7. Checked the merge conflict resolutions, function preimage and floating-point predicate handling, connector compatibility, Iceberg delete metadata, and regression test coverage, including scope and overengineering concerns. No tests, builds, linters, or dependency installs were run, as requested.

No issues found.

— Robo Bill v2 (gpt-6.1-sol, high reasoning)

@benben benben left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Automated review generated on behalf of @benben.

Approve. This merge pulls in upstream's function-preimage work, NaN-aware floating-point domains, and a CI check that text files end with a newline. Both conflict resolutions look right, and the fork's DuckLake min/max pruning was already safe with the new NaN domains: it skips real/double stats unless the file says it has no NaN. One problem: a fork-only file has no trailing newline, so the new CI check will fail.

  • major lib/trino-parquet/src/test/resources/variant/shredded/parquet-testing/cases.json:826 Fork-only fixture lacks trailing newline, failing the newly merged CI check. The 'Check text files end with a newline' step in ci.yml fails on this file, which was added in fork commit b3877ba and does not exist upstream.

Model: us.anthropic.claude-opus-5-5.

Co-authored-by: Shelley <shelley@exe.dev>
@fuziontech
fuziontech merged commit 7d5e657 into master Oct 29, 2026
72 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants