Skip to content

fix(plugin-iceberg): Fix duplicate view creation in Hive catalog#27835

Merged
tdcmeehan merged 1 commit into
prestodb:masterfrom
tdcmeehan:worktree-hive-mv-property-lock
May 26, 2026
Merged

fix(plugin-iceberg): Fix duplicate view creation in Hive catalog#27835
tdcmeehan merged 1 commit into
prestodb:masterfrom
tdcmeehan:worktree-hive-mv-property-lock

Conversation

@tdcmeehan

@tdcmeehan tdcmeehan commented May 18, 2026

Copy link
Copy Markdown
Contributor

Description

IcebergHiveMetadata.updateIcebergViewProperties did read-merge-replaceTable with no lock held, so concurrent REFRESH MATERIALIZED VIEW on a Hive-backed Iceberg MV could lose a watermark update. Wrapped it in the same per-object JVM mutex + HMS lock HiveTableOperations.commit uses, extracted to a shared HiveMetastoreLock.

Motivation and Context

Two concurrent REFRESH MATERIALIZED VIEW invocations on the same Hive-backed Iceberg MV can lose a watermark update — the later writer's replaceTable overwrites the earlier one's snapshot pointer. This change will prevent potential corruption if two REFRESH statements are issued concurrently.

Impact

Hive-backed deployments with iceberg.engine.hive.lock-enabled (default true) only.

Test Plan

  • New TestHiveMetastoreLock (5 tests)
  • TestIcebergMaterializedViews

Contributor checklist

  • Please make sure your submission complies with our contributing guide, in particular code style and commit standards.
  • PR description addresses the issue accurately and concisely. If the change is non-trivial, a GitHub Issue is referenced.
  • Documented new properties (with its default value), SQL syntax, functions, or other functionality.
  • If release notes are required, they follow the release notes guidelines.
  • Adequate tests were added if applicable.
  • CI passed.
  • If adding new dependencies, verified they have an OpenSSF Scorecard score of 5.0 or higher (or obtained explicit TSC approval for lower scores).

Release Notes

== RELEASE NOTES ==
Hive Connector Changes
* Fix race where concurrent ``REFRESH MATERIALIZED VIEW`` on the same Hive-backed Iceberg materialized view could lose a watermark update.

Summary by Sourcery

Introduce a reusable metastore lock abstraction and apply it to Iceberg Hive operations to ensure serialized metadata updates without duplicate view creation.

Bug Fixes:

  • Prevent duplicate or inconsistent updates when modifying Iceberg materialized view properties by guarding the operation with a metastore lock.

Enhancements:

  • Refactor HiveTableOperations commit locking to use a shared HiveMetastoreLock that combines a JVM-level mutex with optional Hive Metastore locks for cross-process coordination.

Build:

  • Add presto-hive-metastore test-jar as a test dependency for Iceberg module locking tests.

Tests:

  • Add unit tests covering HiveMetastoreLock behavior for JVM-level serialization, optional HMS lock acquisition and release, and robustness in the face of exceptions and lock acquisition failures.

@prestodb-ci prestodb-ci added the from:IBM PR from IBM label May 18, 2026
@sourcery-ai

sourcery-ai Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Refactors Iceberg’s Hive table and materialized view operations to use a shared HiveMetastoreLock abstraction that combines a per-process JVM mutex and optional Hive Metastore (HMS) locks, and applies it to prevent duplicate/conflicting MV property updates, while adding targeted tests and a test dependency.

Sequence diagram for HiveTableOperations commit using HiveMetastoreLock

sequenceDiagram
    participant Client
    participant HiveTableOperations
    participant HiveMetastoreLock
    participant ExtendedHiveMetastore

    Client->>HiveTableOperations: commit(base, metadata)
    HiveTableOperations->>HiveTableOperations: writeNewMetadata(metadata, version+1)
    HiveTableOperations->>HiveTableOperations: useHMSLock = TableProperties.HIVE_LOCK_ENABLED
    HiveTableOperations->>HiveMetastoreLock: acquire(metastore, metastoreContext, useHMSLock, database, tableName)
    activate HiveMetastoreLock
    HiveMetastoreLock->>HiveMetastoreLock: initJvmLockCache()
    HiveMetastoreLock->>HiveMetastoreLock: jvmMutex.lock()
    opt [useHMSLock]
        HiveMetastoreLock->>ExtendedHiveMetastore: lock(metastoreContext, database, tableName)
        ExtendedHiveMetastore-->>HiveMetastoreLock: lockId
    end
    HiveMetastoreLock-->>HiveTableOperations: HiveMetastoreLock
    deactivate HiveMetastoreLock

    alt [base == null]
        HiveTableOperations->>ExtendedHiveMetastore: createTable(metastoreContext, database, tableName, table, privileges)
    else [base != null]
        HiveTableOperations->>ExtendedHiveMetastore: replaceTable(metastoreContext, database, tableName, table, privileges)
    end

    HiveTableOperations-->>Client: commit completed

    HiveTableOperations->>HiveMetastoreLock: close()
    activate HiveMetastoreLock
    opt [hmsLockId present]
        HiveMetastoreLock->>ExtendedHiveMetastore: unlock(metastoreContext, lockId)
    end
    HiveMetastoreLock->>HiveMetastoreLock: jvmMutex.unlock()
    deactivate HiveMetastoreLock
Loading

File-Level Changes

Change Details Files
Introduce reusable HiveMetastoreLock utility encapsulating JVM-level mutexes and optional Hive Metastore locks for table/view operations.
  • Add HiveMetastoreLock class that acquires a per-object ReentrantLock from a Guava LoadingCache and optionally acquires an HMS lock via ExtendedHiveMetastore.lock
  • Ensure JVM mutex is always released if HMS lock acquisition fails, and HMS locks are released on close with error logging on failures
  • Expose a static acquire() factory returning an AutoCloseable lock usable in try-with-resources blocks for database+object pairs
presto-iceberg/src/main/java/com/facebook/presto/iceberg/HiveMetastoreLock.java
Apply HiveMetastoreLock to Iceberg Hive table commits to simplify and harden locking logic.
  • Remove static commitLockCache and its initialization from HiveTableOperations in favor of HiveMetastoreLock
  • Replace manual ReentrantLock and Optional lockId handling in commit() with try-with-resources using HiveMetastoreLock.acquire(...) driven by table property or config
  • Keep existing behavior where HMS locking is enabled via table property hive.lock-enabled or the HiveTableOperationsConfig default
presto-iceberg/src/main/java/com/facebook/presto/iceberg/HiveTableOperations.java
Protect Iceberg materialized view property updates in IcebergHiveMetadata with HiveMetastoreLock to avoid duplicate or conflicting Hive catalog updates.
  • Wrap updateIcebergViewProperties body in a try-with-resources block using HiveMetastoreLock.acquire(...) for the view’s schema/table name
  • Retain existing validation that the underlying Hive table exists and is an Iceberg materialized view before updating parameters
  • Continue to replace the Hive table and invalidate the table cache inside the protected critical section
presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHiveMetadata.java
Add focused tests for HiveMetastoreLock behavior and wire in the required metastore test dependency.
  • Add a test-scoped dependency on presto-hive-metastore test-jar to the Iceberg module pom for test utilities and UnimplementedHiveMetastore
  • Introduce TestHiveMetastoreLock verifying JVM-level serialization, HMS lock acquisition/release when enabled, no HMS calls when disabled, exception safety, and correct behavior when HMS lock acquisition fails
  • Use synthetic metastore implementations and concurrency primitives (ExecutorService, CountDownLatch) to validate locking semantics and absence of leaked mutexes
presto-iceberg/pom.xml
presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestHiveMetastoreLock.java

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@tdcmeehan tdcmeehan force-pushed the worktree-hive-mv-property-lock branch from 7e178df to d22021b Compare May 21, 2026 16:41
@tdcmeehan tdcmeehan marked this pull request as ready for review May 21, 2026 16:42
@tdcmeehan tdcmeehan requested review from a team, ZacBlanco and hantangwangd as code owners May 21, 2026 16:42
@prestodb-ci prestodb-ci requested review from a team, anandamideShakyan and pdabre12 and removed request for a team May 21, 2026 16:42

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 3 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestHiveMetastoreLock.java" line_range="69" />
<code_context>
+                        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
+                            int current = inFlight.incrementAndGet();
+                            maxInFlight.updateAndGet(previous -> Math.max(previous, current));
+                            Thread.sleep(2);
+                            inFlight.decrementAndGet();
+                        }
</code_context>
<issue_to_address>
**suggestion (testing):** Replace `Thread.sleep` with coordination via latches to make the concurrency test less timing‑sensitive

Relying on `Thread.sleep(2)` to force overlapping critical sections makes this test fragile in slow or overloaded CI environments. Instead, use additional `CountDownLatch` instances (e.g., one signaling entry into the critical section and one signaling exit) so threads explicitly coordinate when they attempt to enter and ensure only one is inside at a time, without depending on timing assumptions.

Suggested implementation:

```java
        UnimplementedHiveMetastore metastore = new UnimplementedHiveMetastore();

```

```java
        // Latch used to signal that a thread has entered the critical section
        CountDownLatch criticalSectionEntered = new CountDownLatch(threadCount * iterationsPerThread);
        // Latch used to coordinate when threads are allowed to exit the critical section
        CountDownLatch criticalSectionExit = new CountDownLatch(1);

        try {

```

```java
                executor.submit(() -> {
                    try {
                        start.await();
                        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
                            int current = inFlight.incrementAndGet();
                            maxInFlight.updateAndGet(previous -> Math.max(previous, current));

                            // Signal that this thread has entered the critical section
                            criticalSectionEntered.countDown();
                            // Wait until the main thread allows all workers to exit
                            criticalSectionExit.await();

                            inFlight.decrementAndGet();
                        }
                    }
                    catch (InterruptedException e) {
                        Thread.currentThread().interrupt();
                    }
                    finally {
                        done.countDown();
                    }
                });
            }

            // Release all threads from the critical section only after they have all entered at least once
            start.countDown();
            criticalSectionEntered.await();
            criticalSectionExit.countDown();

```

These edits assume the surrounding code defines `threadCount`, `iterationsPerThread`, `executor`, `start`, `done`, `inFlight`, and `maxInFlight` as in the visible snippet. If the initialization of `threadCount * iterationsPerThread` happens in a different scope or under different names, adjust the `CountDownLatch` initial counts accordingly.

If there are multiple similar concurrency tests in this file, you may also want to extract the latch pattern into a helper method to avoid duplication and to keep the test logic clearer.
</issue_to_address>

### Comment 2
<location path="presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestHiveMetastoreLock.java" line_range="92" />
<code_context>
+    }
+
+    @Test
+    public void testHmsLockAcquiredAndReleasedWhenEnabled()
+    {
+        AtomicInteger lockCount = new AtomicInteger();
</code_context>
<issue_to_address>
**suggestion (testing):** Add a test for the case where HMS `lock` returns `Optional.empty()` to document and verify the behavior

Currently we only test when HMS locking is enabled (returns a lock id) and when it’s disabled, but not when `metastore.lock(...)` returns `Optional.empty()`. Please add a test that overrides `lock` to return `Optional.empty()` and verifies that:
- `unlock` is never called, and
- the JVM mutex is still released (e.g., a second acquire on the same `(db, obj)` succeeds).
This will clearly define the expected behavior and protect against regressions if `ExtendedHiveMetastore.lock` changes in the future.

Suggested implementation:

```java
    @Test
    public void testHmsLockNotAcquiredWhenLockReturnsEmpty()
    {
        AtomicInteger lockCount = new AtomicInteger();
        AtomicInteger unlockCount = new AtomicInteger();
        UnimplementedHiveMetastore metastore = new UnimplementedHiveMetastore()
        {
            @Override
            public Optional<Long> lock(MetastoreContext metastoreContext, String databaseName, String tableName)
            {
                lockCount.incrementAndGet();
                return Optional.empty();
            }

            @Override
            public void unlock(MetastoreContext metastoreContext, long lockId)
            {
                unlockCount.incrementAndGet();
            }
        };

        HiveMetastoreLock lock = new HiveMetastoreLock(metastore, true, new Duration(1, MINUTES));

        // First acquisition should succeed and release the JVM-level mutex on close
        try (HiveMetastoreLock.HiveMetastoreLockHandle ignored = lock.acquire("db", "table")) {
            // no-op
        }

        // HMS lock() was called but did not return a lock id; unlock() must never be called
        assertEquals(lockCount.get(), 1);
        assertEquals(unlockCount.get(), 0);

        // Second acquisition on the same (db, table) should succeed, proving the JVM mutex was released
        try (HiveMetastoreLock.HiveMetastoreLockHandle ignored = lock.acquire("db", "table")) {
            // no-op
        }
    }
}

```

1. The `<<<<<<< SEARCH` block assumes the class currently ends with a single `}` on its own line. If there is other content after the class closing brace, adjust the search/replace anchor accordingly (e.g., insert this test before the final `}` of the class).
2. This test uses:
   - `HiveMetastoreLock` and `HiveMetastoreLock.HiveMetastoreLockHandle` — if the production lock API or helper factory method is different in this file, adapt the construction and `try`-with-resources to match the existing tests (e.g., some files use a helper like `createLock(metastore, true)` instead of `new HiveMetastoreLock(...)`).
   - `new Duration(1, MINUTES)` — ensure `io.airlift.units.Duration` and `java.util.concurrent.TimeUnit.MINUTES` (or the relevant static import) are already imported, or add them if they are not present.
3. If the other tests in this class use different table/database names or a different locking key abstraction, align `"db"` and `"table"` with that convention to keep tests consistent.
</issue_to_address>

### Comment 3
<location path="presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestHiveMetastoreLock.java" line_range="152" />
<code_context>
+    }
+
+    @Test
+    public void testHmsLockReleasedOnExceptionInProtectedSection()
+    {
+        AtomicInteger lockCount = new AtomicInteger();
</code_context>
<issue_to_address>
**suggestion (testing):** Also assert that the JVM mutex is not leaked when the protected section throws

This currently only proves the HMS lock is released when the body throws. To fully exercise `close()`, please also assert that the JVM mutex is released—for example, by attempting a second acquire on the same `(db, obj)` (possibly from another thread with a latch, similar to `testJvmMutexReleasedWhenHmsLockAcquisitionFails`) and verifying it succeeds. That would catch cases where HMS unlock succeeds but the JVM lock remains held.

Suggested implementation:

```java
    }

    @Test
    public void testHmsLockReleasedOnExceptionInProtectedSection()
    {
        AtomicInteger lockCount = new AtomicInteger();
        AtomicInteger unlockCount = new AtomicInteger();

        UnimplementedHiveMetastore metastore = new UnimplementedHiveMetastore()
        {
            @Override
            public Optional<Long> lock(MetastoreContext metastoreContext, String databaseName, String tableName)
            {
                return Optional.of((long) lockCount.incrementAndGet());
            }

            @Override
            public void unlock(MetastoreContext metastoreContext, long lockId)
            {
                unlockCount.incrementAndGet();
            }
        };

        RuntimeException failure = new RuntimeException("forced failure");

        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
            // simulate failure in the protected section
            throw failure;
        }
        catch (RuntimeException e) {
            assertSame(failure, e);
        }

        // HMS lock is released when the body throws
        assertEquals(lockCount.get(), 1);
        assertEquals(unlockCount.get(), 1);

        // JVM mutex is also released: we can reacquire the same (db, obj)
        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
            // body intentionally empty
        }

        assertEquals(lockCount.get(), 2);
        assertEquals(unlockCount.get(), 2);
    }

```

1. Ensure the static import for `assertSame` is present at the top of the test file, e.g.:
   `import static org.testng.Assert.assertSame;`
   (or the appropriate assertion class used elsewhere in this file).
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
int current = inFlight.incrementAndGet();
maxInFlight.updateAndGet(previous -> Math.max(previous, current));
Thread.sleep(2);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

suggestion (testing): Replace Thread.sleep with coordination via latches to make the concurrency test less timing‑sensitive

Relying on Thread.sleep(2) to force overlapping critical sections makes this test fragile in slow or overloaded CI environments. Instead, use additional CountDownLatch instances (e.g., one signaling entry into the critical section and one signaling exit) so threads explicitly coordinate when they attempt to enter and ensure only one is inside at a time, without depending on timing assumptions.

Suggested implementation:

        UnimplementedHiveMetastore metastore = new UnimplementedHiveMetastore();
        // Latch used to signal that a thread has entered the critical section
        CountDownLatch criticalSectionEntered = new CountDownLatch(threadCount * iterationsPerThread);
        // Latch used to coordinate when threads are allowed to exit the critical section
        CountDownLatch criticalSectionExit = new CountDownLatch(1);

        try {
                executor.submit(() -> {
                    try {
                        start.await();
                        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
                            int current = inFlight.incrementAndGet();
                            maxInFlight.updateAndGet(previous -> Math.max(previous, current));

                            // Signal that this thread has entered the critical section
                            criticalSectionEntered.countDown();
                            // Wait until the main thread allows all workers to exit
                            criticalSectionExit.await();

                            inFlight.decrementAndGet();
                        }
                    }
                    catch (InterruptedException e) {
                        Thread.currentThread().interrupt();
                    }
                    finally {
                        done.countDown();
                    }
                });
            }

            // Release all threads from the critical section only after they have all entered at least once
            start.countDown();
            criticalSectionEntered.await();
            criticalSectionExit.countDown();

These edits assume the surrounding code defines threadCount, iterationsPerThread, executor, start, done, inFlight, and maxInFlight as in the visible snippet. If the initialization of threadCount * iterationsPerThread happens in a different scope or under different names, adjust the CountDownLatch initial counts accordingly.

If there are multiple similar concurrency tests in this file, you may also want to extract the latch pattern into a helper method to avoid duplication and to keep the test logic clearer.

}

@Test
public void testHmsLockAcquiredAndReleasedWhenEnabled()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

suggestion (testing): Add a test for the case where HMS lock returns Optional.empty() to document and verify the behavior

Currently we only test when HMS locking is enabled (returns a lock id) and when it’s disabled, but not when metastore.lock(...) returns Optional.empty(). Please add a test that overrides lock to return Optional.empty() and verifies that:

  • unlock is never called, and
  • the JVM mutex is still released (e.g., a second acquire on the same (db, obj) succeeds).
    This will clearly define the expected behavior and protect against regressions if ExtendedHiveMetastore.lock changes in the future.

Suggested implementation:

    @Test
    public void testHmsLockNotAcquiredWhenLockReturnsEmpty()
    {
        AtomicInteger lockCount = new AtomicInteger();
        AtomicInteger unlockCount = new AtomicInteger();
        UnimplementedHiveMetastore metastore = new UnimplementedHiveMetastore()
        {
            @Override
            public Optional<Long> lock(MetastoreContext metastoreContext, String databaseName, String tableName)
            {
                lockCount.incrementAndGet();
                return Optional.empty();
            }

            @Override
            public void unlock(MetastoreContext metastoreContext, long lockId)
            {
                unlockCount.incrementAndGet();
            }
        };

        HiveMetastoreLock lock = new HiveMetastoreLock(metastore, true, new Duration(1, MINUTES));

        // First acquisition should succeed and release the JVM-level mutex on close
        try (HiveMetastoreLock.HiveMetastoreLockHandle ignored = lock.acquire("db", "table")) {
            // no-op
        }

        // HMS lock() was called but did not return a lock id; unlock() must never be called
        assertEquals(lockCount.get(), 1);
        assertEquals(unlockCount.get(), 0);

        // Second acquisition on the same (db, table) should succeed, proving the JVM mutex was released
        try (HiveMetastoreLock.HiveMetastoreLockHandle ignored = lock.acquire("db", "table")) {
            // no-op
        }
    }
}
  1. The <<<<<<< SEARCH block assumes the class currently ends with a single } on its own line. If there is other content after the class closing brace, adjust the search/replace anchor accordingly (e.g., insert this test before the final } of the class).
  2. This test uses:
    • HiveMetastoreLock and HiveMetastoreLock.HiveMetastoreLockHandle — if the production lock API or helper factory method is different in this file, adapt the construction and try-with-resources to match the existing tests (e.g., some files use a helper like createLock(metastore, true) instead of new HiveMetastoreLock(...)).
    • new Duration(1, MINUTES) — ensure io.airlift.units.Duration and java.util.concurrent.TimeUnit.MINUTES (or the relevant static import) are already imported, or add them if they are not present.
  3. If the other tests in this class use different table/database names or a different locking key abstraction, align "db" and "table" with that convention to keep tests consistent.

}

@Test
public void testHmsLockReleasedOnExceptionInProtectedSection()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

suggestion (testing): Also assert that the JVM mutex is not leaked when the protected section throws

This currently only proves the HMS lock is released when the body throws. To fully exercise close(), please also assert that the JVM mutex is released—for example, by attempting a second acquire on the same (db, obj) (possibly from another thread with a latch, similar to testJvmMutexReleasedWhenHmsLockAcquisitionFails) and verifying it succeeds. That would catch cases where HMS unlock succeeds but the JVM lock remains held.

Suggested implementation:

    }

    @Test
    public void testHmsLockReleasedOnExceptionInProtectedSection()
    {
        AtomicInteger lockCount = new AtomicInteger();
        AtomicInteger unlockCount = new AtomicInteger();

        UnimplementedHiveMetastore metastore = new UnimplementedHiveMetastore()
        {
            @Override
            public Optional<Long> lock(MetastoreContext metastoreContext, String databaseName, String tableName)
            {
                return Optional.of((long) lockCount.incrementAndGet());
            }

            @Override
            public void unlock(MetastoreContext metastoreContext, long lockId)
            {
                unlockCount.incrementAndGet();
            }
        };

        RuntimeException failure = new RuntimeException("forced failure");

        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
            // simulate failure in the protected section
            throw failure;
        }
        catch (RuntimeException e) {
            assertSame(failure, e);
        }

        // HMS lock is released when the body throws
        assertEquals(lockCount.get(), 1);
        assertEquals(unlockCount.get(), 1);

        // JVM mutex is also released: we can reacquire the same (db, obj)
        try (HiveMetastoreLock ignored = HiveMetastoreLock.acquire(metastore, METASTORE_CONTEXT, false, "db", "obj")) {
            // body intentionally empty
        }

        assertEquals(lockCount.get(), 2);
        assertEquals(unlockCount.get(), 2);
    }
  1. Ensure the static import for assertSame is present at the top of the test file, e.g.:
    import static org.testng.Assert.assertSame;
    (or the appropriate assertion class used elsewhere in this file).

@hantangwangd hantangwangd 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.

Thank you for this change—the refactor looks great to me. Just out of genuine curiosity: what exactly happens when two concurrent REFRESH MATERIALIZED VIEW operations cause one watermark update to be lost? Would appreciate a quick note in the PR description/issue if you have time. Thanks a lot!

@tdcmeehan

Copy link
Copy Markdown
Contributor Author

Thank you @hantangwangd, I have updated the PR description.

@tdcmeehan tdcmeehan merged commit 46cc031 into prestodb:master May 26, 2026
120 of 127 checks passed
msmygit pushed a commit to msmygit/presto that referenced this pull request Jun 3, 2026
…stodb#27835)

## Description
`IcebergHiveMetadata.updateIcebergViewProperties` did
read-merge-`replaceTable` with no lock held, so concurrent `REFRESH
MATERIALIZED VIEW` on a Hive-backed Iceberg MV could lose a watermark
update. Wrapped it in the same per-object JVM mutex + HMS lock
`HiveTableOperations.commit` uses, extracted to a shared
`HiveMetastoreLock`.

## Motivation and Context
Two concurrent `REFRESH MATERIALIZED VIEW` invocations on the same
Hive-backed Iceberg MV can lose a watermark update — the later writer's
`replaceTable` overwrites the earlier one's snapshot pointer. This
change will prevent potential corruption if two REFRESH statements are
issued concurrently.

## Impact
Hive-backed deployments with `iceberg.engine.hive.lock-enabled` (default
`true`) only.

## Test Plan
- New `TestHiveMetastoreLock` (5 tests)
- `TestIcebergMaterializedViews`

## Contributor checklist

- [ ] Please make sure your submission complies with our [contributing
guide](https://github.com/prestodb/presto/blob/master/CONTRIBUTING.md),
in particular [code
style](https://github.com/prestodb/presto/blob/master/CONTRIBUTING.md#code-style)
and [commit
standards](https://github.com/prestodb/presto/blob/master/CONTRIBUTING.md#commit-standards).
- [ ] PR description addresses the issue accurately and concisely. If
the change is non-trivial, a GitHub Issue is referenced.
- [ ] Documented new properties (with its default value), SQL syntax,
functions, or other functionality.
- [ ] If release notes are required, they follow the [release notes
guidelines](https://github.com/prestodb/presto/wiki/Release-Notes-Guidelines).
- [ ] Adequate tests were added if applicable.
- [ ] CI passed.
- [ ] If adding new dependencies, verified they have an [OpenSSF
Scorecard](https://securityscorecards.dev/#the-checks) score of 5.0 or
higher (or obtained explicit TSC approval for lower scores).

## Release Notes

```
== RELEASE NOTES ==
Hive Connector Changes
* Fix race where concurrent ``REFRESH MATERIALIZED VIEW`` on the same Hive-backed Iceberg materialized view could lose a watermark update.
```

## Summary by Sourcery

Introduce a reusable metastore lock abstraction and apply it to Iceberg
Hive operations to ensure serialized metadata updates without duplicate
view creation.

Bug Fixes:
- Prevent duplicate or inconsistent updates when modifying Iceberg
materialized view properties by guarding the operation with a metastore
lock.

Enhancements:
- Refactor HiveTableOperations commit locking to use a shared
HiveMetastoreLock that combines a JVM-level mutex with optional Hive
Metastore locks for cross-process coordination.

Build:
- Add presto-hive-metastore test-jar as a test dependency for Iceberg
module locking tests.

Tests:
- Add unit tests covering HiveMetastoreLock behavior for JVM-level
serialization, optional HMS lock acquisition and release, and robustness
in the face of exceptions and lock acquisition failures.
tdcmeehan added a commit that referenced this pull request Jun 10, 2026
# Missing Release Notes
## Apurva Kumar
- [x] https://github.com/prestodb/presto/pull/27616 feat: Add PUFFIN
file format enum to FileFormat wrapper [presto][iceberg] (#27616)
(Merged by: Han Yan)
- [x] https://github.com/prestodb/presto/pull/27614 feat: Bump Iceberg
[presto][iceberg] dependency from 1.10.0 to 1.10.1 (#27614) (Merged by:
Dong Wang)
- [x] https://github.com/prestodb/presto/pull/27421 feat: Prism <>
Iceberg [prism] Support SQL-standard time travel syntax (FOR TIMESTAMP
AS OF) (#27421) (Merged by: Kevin Tang)

## Arjun Gupta
- [x] https://github.com/prestodb/presto/pull/27642 feat(scheduler):
Allow configured resource groups to bypass cluster-overload throttling
(#27642) (Merged by: Arjun Gupta)

## Chandrakant Vankayalapati
- [x] https://github.com/prestodb/presto/pull/27706 fix(analyzer): Skip
unmapped derived columns in MV partition filtering (Merged by:
Chandrakant Vankayalapati)

## Deepak Mehra
- [x] https://github.com/prestodb/presto/pull/25107 feat(connector): Add
Azure Blob Storage and ADLS Gen2 support (Merged by: Jalpreet Singh
Nanda)

## Dilli Babu Godari
- [x] https://github.com/prestodb/presto/pull/26260
feat(plugin-prometheus): Enable case-sensitive identifier support for
Prometheus connector (Merged by: Dilli Babu Godari)
- [x] https://github.com/prestodb/presto/pull/27671 feat: Add TLS/SSL
configuration support for Oracle connector (Merged by: Dilli Babu
Godari)
- [x] https://github.com/prestodb/presto/pull/27670 feat: Add Oracle
i18n character set support (Merged by: Dilli Babu Godari)
- [x] https://github.com/prestodb/presto/pull/27669 feat: Add
configurable JDBC fetch size support (Merged by: Dilli Babu Godari)

## Gary Helmling
- [x] https://github.com/prestodb/presto/pull/27703 feat: Support
extending verifier QueryRewriter (#27703) (Merged by: Jianjian Xie)

## Henry Dikeman
- [x] https://github.com/prestodb/presto/pull/27683 feat(native): Add
native_min_shuffle_compression_page_size_bytes session property (#27683)
(Merged by: Henry Dikeman)
- [x] https://github.com/prestodb/presto/pull/27525 feat(native): Pass
storage parameters to HiveInsertTableHandle in write path (#27525)
(Merged by: Aditi Pandit)

## Kevin Tang
- [x] https://github.com/prestodb/presto/pull/27697 misc(native): Target
Java 8 for presto-on-spark compatibility (#27697) (Merged by: Kevin
Tang)
- [x] https://github.com/prestodb/presto/pull/27696 misc(native-pos):
Extract AbstractNativeProcess from NativeExecutionProcess (#27696)
(Merged by: Kevin Tang)

## Nivin C S
- [x] https://github.com/prestodb/presto/pull/27828 fix(security):
Upgrade redshift-jdbc42 to 2.2.7 to address CVE-2026-8178 (Merged by:
Jalpreet Singh Nanda)
- [x] https://github.com/prestodb/presto/pull/25418
feat(plugin-iceberg): Add support for ALTER COLUMN SET DATA TYPE in the
Iceberg connector (Merged by: Nivin C S)

## Rebecca Schlussel
- [x] https://github.com/prestodb/presto/pull/27830 chore(analyzer):
Remove warn-on-common-nan-patterns config and NaN warning behavior
(Merged by: Rebecca Schlussel)

## Shrinidhi Joshi
- [x] https://github.com/prestodb/presto/pull/27873
refactor(native-pos): Add State enum and lifecycle state machine to
MaterializedOutputBuffer (#27873) (Merged by: Xiaoxuan)
- [x] https://github.com/prestodb/presto/pull/27833 fix(native-pos): Fix
MaterializedOutput correctness and crash bugs in close/finish lifecycle
(Merged by: Shrinidhi Joshi)

## Sreeni Viswanadha
- [x] https://github.com/prestodb/presto/pull/27708 feat(optimizer): Add
per-column predicates for ROW IN/NOT IN (Merged by: Sreeni Viswanadha)
- [x] https://github.com/prestodb/presto/pull/27712 feat(optimizer):
Push HAVING filter through MAX/MIN/ARBITRARY aggregations (Merged by:
Sreeni Viswanadha)
- [x] https://github.com/prestodb/presto/pull/27680 perf(optimizer):
Remove partition key restriction from ROW IN to disjunction rewrite
(Merged by: feilong-liu)
- [x] https://github.com/prestodb/presto/pull/27641 feat(optimizer): Add
TopN late materialization using $row_id (Merged by: Sreeni Viswanadha)
- [x] https://github.com/prestodb/presto/pull/27664 fix(planner):
Propagate streamPropertiesFromUniqueColumn through TopN (Merged by:
Sreeni Viswanadha)

## feilong-liu
- [x] https://github.com/prestodb/presto/pull/27773 fix(planner): Fix
ConstantExpression type mismatch in PropertyDerivations.visitProject
(Merged by: feilong-liu)

## join-theory-de
- [x] https://github.com/prestodb/presto/pull/27480 feat: Add
split_part_reverse as a global Presto SQL inline function (#27480)
(Merged by: Sreeni Viswanadha)

## peterenescu
- [x] https://github.com/prestodb/presto/pull/27600 fix: Integer
overflow in range filter boundary conversion (#27600) (Merged by: Amit
Dutta)

## shelton408
- [x] https://github.com/prestodb/presto/pull/27673 fix(server): Fix
FutureStateChange listener leak in
HttpRemoteTaskWithEventLoop.whenSplitQueueHasSpace() (Merged by:
shelton408)

## sumi-mathew
- [x] https://github.com/prestodb/presto/pull/27865 fix(security):
Upgrade opentelemetry-api to 1.62.0 to address CVE-2026-45292 (Merged
by: nishithakbhaskaran)

## zhichenxu-meta
- [x] https://github.com/prestodb/presto/pull/27603 feat(optimizer): Add
distributed execution for RPCNode via rpc_function_parallelism session
property (Merged by: feilong-liu)

# Extracted Release Notes
- #25424 (Author: Shahim Sharafudeen): fix(security): Upgrade gcs
version to 2.2.28
- Upgrade google-oauth-client version to 1.34.1 to address
`CVE-2020-7692 <https://github.com/advisories/GHSA-f263-c949-w85g>`_ and
`CVE-2021-22573 <https://github.com/advisories/GHSA-hw42-3568-wj87>`_.
- #26195 (Author: Gary Helmling): fix: Allow DELETE queries to run on
Presto on Spark
  - Fix a gap in query commit for DELETE queries when running on Spark.
- #26369 (Author: Bryan Cutler): feat: Adding Apache Arrow FlightShim
for connector federation in C++ workers
  - Adding presto-flight-shim server module for connector federation.
- #26833 (Author: Yabin Ma): chore(analyzer)!: Change
fieldNamesInJsonCastEnabled default value to true
- Update the default behavior of ``field_names_in_json_cast_enabled``
from false to true. When ``field_names_in_json_cast_enabled = true``,
JSON fields are assigned to ROW fields by matching field names
regardless of their order in the JSON object. Queries that rely on JSON
field order when casting to ROW may return different results after
upgrading. If your workload depends on the previous positional behavior,
restore it by setting: ``SET SESSION field_names_in_json_cast_enabled =
false;``.
- #26959 (Author: Timothy Meehan): feat(optimizer): Support incremental
refresh of materialized views
  - Add incremental refresh for materialized views.
- Add incremental refresh for materialized views in the Iceberg
connector.
- #26995 (Author: Auden Woolfson): fix: Allow view querying with Mongo
connector
  - Add view querying capabilities in the Mongo connector.
- #27002 (Author: Sayari Mukherjee): feat(client): Add connection
validation feature to enhance connection reliability
- Add connection validation feature to enhance connection reliability.
This can be enabled with the ``validateConnection`` connection property
to execute a validation query immediately after establishing the
connection.
- #27085 (Author: Dong Wang): feat(plugin-iceberg): Push down
min/max/count based on file stats
- Add support for ``min/max/count`` aggregation push down based on file
stats. This can be toggled with the ``aggregate_push_down_enabled``
session property or the ``iceberg.aggregate-push-down-enabled``
configuration property.
- #27129 (Author: Miguel Blanco Godón): fix(plugin-delta): Creating
Delta table to unaccesible location makes the metastore inconsistent
- Fix a bug that made the metastore inconsistent if created a Delta Lake
table to an inaccessible location.
- #27200 (Author: Pratyaksh Sharma): revert: Add metastore cache
invalidation in iceberg
  - Add metastore cache invalidation procedure for Iceberg connector.
- #27240 (Author: Joe Abraham): feat: Add read support for row lineage
columns in Iceberg connector
- Add read support for Iceberg V3 row lineage hidden columns `_row_id`
and `_last_updated_sequence_number`.
- #27282 (Author: Pratyaksh Sharma): feat(connector): Add support for
`execute` procedure in JDBC connectors
  - Add support for `execute` procedure in JDBC connectors.
- #27293 (Author: Sayari Mukherjee): chore(deps): Update jackson version
to 2.18.6
- Upgrade jackson dependency from 2.15.4 to version 2.18.6 to address
`GHSA-72hv-8253-57qq
<https://github.com/advisories/GHSA-72hv-8253-57qq>`_.
- #27294 (Author: Shahim Sharafudeen): chore(deps): Bump jetty from
12.0.29 to 12.0.34
- Upgrade jetty dependency from 0.27 to version 2.0.2 to address
`CVE-2025-11143 <https://github.com/advisories/GHSA-wjpw-4j6x-6rwh>` and
`CVE-2026-1605 <https://github.com/advisories/GHSA-xxh7-fcf3-rj7f>`_.
- #27325 (Author: Jianjian Xie): feat(connector): Add caching for Lance
connector
- Add configurable index and metadata cache sizes via
lance.index-cache-size and lance.metadata-cache-size.
- Add version-aware dataset caching with snapshot isolation for
consistent query reads.
- #27357 (Author: Prashant Sharma): feat(plugin-iceberg): Add min max
stats for varchar/char column and display as low and high values
  - Add low and high values for varchar/char columns of Iceberg tables.
- #27422 (Author: Chandrakant Vankayalapati): feat(planner): Support
GROUP BY and ORDER BY ordinals in MV query rewriting (#27422)
- Add support for ``GROUP BY`` and ``ORDER BY`` ordinal references in
materialized view query rewriting. Previously, queries like ``SELECT a,
SUM(b) FROM t GROUP BY 1`` would silently skip materialized view
optimization.
- #27430 (Author: Jianjian Xie): feat(connector): Add filter pushdown
for Lance connector
- Add SQL filter pushdown to reduce data read from disk for selective
queries. Supports equality, comparisons, IN lists, IS NULL, and range
predicates on Boolean, Integer, Bigint, Real, Double, Varchar, Date, and
Timestamp types.
- #27483 (Author: Miguel Blanco Godón): feat(plugin-delta): Support
reading tables with column mapping enabled
- Add support for reading Delta Lake tables with column mapping enabled.
- #27486 (Author: Jamille Shao-Ni): feat(protocol): Update annotations
for consistent Thrift serialization support to all TaskResource
endpoints
- Add support for Thrift serialization (`application/x-thrift-binary`,
`application/x-thrift-compact`, `application/x-thrift-fb-compact`) to
all TaskResource endpoints for consistent internal communication
protocol.
- Improve efficiency of coordinator-to-worker communication with 20-40%
smaller payload sizes and 2-3x faster serialization compared to JSON.
- #27491 (Author: Sreeni Viswanadha): feat(optimizer): Rewrite
map_from_entries(ARRAY[ROW(...)]) to MAP(ARRAY[], ARRAY[])
- Optimize `map_from_entries(ARRAY[ROW(...), ...])` by rewriting to
`MAP(ARRAY[keys], ARRAY[values])` at plan time, avoiding intermediate
ROW construction.
- #27493 (Author: Sreeni Viswanadha): fix(planner): Use LinkedHashMap in
optimizer rules to fix type mismatch
- Fix runtime type mismatch crashes in Velox native execution caused by
non-deterministic HashMap iteration order in PreAggregateBeforeGroupId,
PushPartialAggregationThroughExchange, and
MultipleDistinctAggregationToMarkDistinct optimizer rules. Replace
HashMap with LinkedHashMap to preserve aggregation output variable
ordering.
- #27496 (Author: dependabot[bot]): chore(deps): Bump lodash-es from
4.17.23 to 4.18.1 in /presto-ui/src
- Upgrade lodash-es from 4.17.23 to 4.18.1 to address `CVE-2026-4800
<https://nvd.nist.gov/vuln/detail/CVE-2026-4800>`_. This dependency is
used for local development only and does not affect production runtime.
- #27497 (Author: dependabot[bot]): chore(deps): Bump lodash from
4.17.23 to 4.18.1 in /presto-ui/src
- Upgrade lodash from 4.17.23 to 4.18.1 to address multiple security
vulnerabilities: - `CVE-2026-4800
<https://nvd.nist.gov/vuln/detail/CVE-2026-4800>`_. This dependency is
used for local development only and does not affect production runtime.
- #27500 (Author: Sreeni Viswanadha): feat(optimizer): Rewrite ROW
constructor IN to disjunction for partition pruning
- Add optimizer rule RewriteRowConstructorInToDisjunction that rewrites
ROW IN ROW predicates into OR of AND equality chains when all ROW fields
are partition keys, enabling per-column TupleDomain extraction for
partition pruning. Gated behind session property
rewrite_row_constructor_in_to_disjunction (default disabled).
- #27504 (Author: Kevin Tang): feat(analyzer): Add session property to
gate CTAS IF NOT EXISTS query analysis
- Add session property
:ref:`admin/properties-session:\`\`always_analyze_create_table_query_enabled\`\``
to enable analyzing inner queries on ``CREATE TABLE AS SELECT IF NOT
EXISTS`` statements when the target table already exists.
- #27510 (Author: Sreeni Viswanadha): feat(optimizer): Rewrite bucketed
semi-join to join
- Add optimizer rule RewriteBucketedSemiJoinToJoin that rewrites
semi-joins into left joins with distinct aggregation when both sides are
bucketed on the join key, avoiding data shuffle. Gated behind session
property rewrite_bucketed_semi_join_to_join (default disabled).
- #27538 (Author: Chandrakant Vankayalapati): feat(planner): Support
CUBE/ROLLUP/GROUPING SETS column rewriting in MV optimizer (#27538)
- Fix materialized view query rewriting for ``CUBE``, ``ROLLUP``, and
``GROUPING SETS`` clauses. Column references inside these grouping
elements are now correctly rewritten to materialized view columns.
- #27547 (Author: feilong-liu): perf(planner): Optimize query planning
for wide-column projections
- Improve query planning performance for wide-column projections by
adding fast paths that skip unnecessary processing for variable
references, constants, and identity assignments across multiple
optimizer rules.
- #27549 (Author: Chandrakant Vankayalapati): feat(planner): Support
scalar functions in MV query rewriting (#27549)
- Add support for scalar functions in materialized view query rewriting.
Queries using functions like ``CONCAT``, ``ABS``, ``JSON_EXTRACT``,
``CAST``, ``IF``, ``COALESCE``, and ``CASE`` expressions now correctly
rewrite to scan the materialized view.
- #27553 (Author: feilong-liu): perf(analyzer): Index
RelationType.resolveFields() for O(1) field lookup
- Improve logical planner performance for wide-column queries by
indexing RelationType.resolveFields() for O(1) field lookup instead of
O(N) linear scan.
- #27568 (Author: Sreeni Viswanadha): fix(optimizer): Fix cascading
projection pass-through in PushProjectionThroughCrossJoin
- Fix a bug in PushProjectionThroughCrossJoin optimizer rule where
cascading projections above a cross join could cause validation errors
by dropping pushed variables from intermediate residual projects.
- #27574 (Author: dependabot[bot]): chore(deps): Bump
org.apache.kafka:kafka-clients from 3.9.1 to 3.9.2
- Upgrade org.apache.kafka:kafka-clients from 3.9.1 to 3.9.2 inorder to
address `CVE-2026-35554
<https://github.com/advisories/GHSA-5qcv-4rpc-jp93>`_.
- #27583 (Author: Nandakumar Balagopal): chore(deps): Bump
org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4
- Upgrade org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4
inorder to address `CVE-2026-34480
<https://nvd.nist.gov/vuln/detail/CVE-2026-34480>`_.
- #27597 (Author: Swapnil): fix: Fix race condition in
pruneFinishedQueryInfo causing task memory leak
- Fix race condition in pruneFinishedQueryInfo causing task memory leak.
- #27598 (Author: Sreeni Viswanadha): feat(optimizer): Extend
JoinPrefilter to support complex probe-side patterns
- Add new session property
`join_prefilter_build_side_with_complex_probe_side` (default false) to
extend join prefilter optimization to support complex probe-side
patterns including UNION ALL, cross join, unnest, and aggregation.
- #27606 (Author: dependabot[bot]): chore(deps): Bump
org.bouncycastle:bcprov-jdk18on from 1.81 to 1.84 in /presto-tests
- Upgrade org.bouncycastle:bcprov-jdk18on from 1.81 to 1.84 to resolve
`CVE-2026-0636 <https://nvd.nist.gov/vuln/detail/CVE-2026-0636>`_.
- #27613 (Author: Shahim Sharafudeen): fix(security): Upgrade
async-http-client to 3.0.9 to address CVE-2026-40490
- Upgrade async-http-client to version 3.0.9 to address `CVE-2026-40490
<https://github.com/advisories/GHSA-cmxv-58fp-fm3g>`_.
- #27639 (Author: Chandrakant Vankayalapati): feat: Add
authorizedPrincipal to AuthorizedIdentity for gateway identity
propagation (#27639)
- Add optional authorizedPrincipal to AuthorizedIdentity to support
gateway identity propagation, allowing the session principal to reflect
the original client instead of the gateway.
- #27645 (Author: Nivin C S): fix: Fix failure when inserting into
Iceberg tables partitioned by day(timestamp with time zone)
- Fix failure during INSERT into Iceberg tables partitioned by day()
when using timestamp with time zone columns.
- #27659 (Author: Reetika Agrawal): feat(plugin-iceberg): Add changes
for passing iceberg V3 initialDefaultValue while read
  - Add changes for passing iceberg V3 initialDefaultValue while read.
- #27663 (Author: feilong-liu): feat: Add partition-aware grouped
execution for bucketed tables
- Add `partition_aware_grouped_execution` session property to schedule
each (bucket, partition) as a separate lifespan in grouped execution,
reducing per-lifespan data volumes for bucketed tables. Disabled by
default.
- Add support for partition-aware grouped execution in the Hive
connector, creating per-(bucket, partition) split queues and compound
partition handles.
- #27677 (Author: Timothy Meehan): feat(analyzer): Allow HAVING in
materialized view query rewrite
- Allow HAVING in queries that are transparently rewritten onto a
materialized view.
- #27678 (Author: Sreeni Viswanadha): perf(optimizer): Clean up
prefilter distinct limit
- Improve PrefilterForLimitingAggregation optimizer to exclude partition
keys from the DistinctLimit, improving convergence speed for GROUP BY +
LIMIT queries on partitioned tables.
- Add N <= 1000 limit guard to PrefilterForLimitingAggregation to
restrict the optimization to small limits.
- #27685 (Author: Glerin Pinhero): chore(deps): Upgrading mongodb driver
to mongodb driver sync
  - Upgrade mongo-java-driver to mongodb-driver-sync.
- #27691 (Author: Sergey Pershin): fix: Take 'finishingTime' and
'planningTime' out of 'executionTime' (#27691)
- Fix 'planningTime' and 'finishingTime' are no longer added to the
'executionTime'. 'executionTime' is now a true execution time - how long
it took the query to run the compute. It can be used to measure the
efficiency of the workers w/o added planning time or the time spent on
final steps, like partition registration.
- #27700 (Author: feilong-liu): feat(optimizer): Add session properties
for RPC streaming mode and batch dispatch size
- Add ``rpc_streaming_mode`` session property to control RPC function
execution mode (``PER_ROW`` or ``BATCH``). Default: ``PER_ROW``.
- Add ``rpc_dispatch_batch_size`` session property to control batch size
for RPC dispatch in ``BATCH`` mode. Default: ``128``. A value of ``0``
collects all rows before dispatching.
- Fix RPC options argument parsing to use the last argument instead of
hardcoding index 3.
- #27714 (Author: feilong-liu): fix: UnsupportedOperationException for
UnionNode in AddExchanges fixed parallelism path
- Fix UnsupportedOperationException when using
`remote_function_names_for_fixed_parallelism` with queries containing
UNION ALL below the remote function projection.
- #27715 (Author: nishithakbhaskaran): chore(deps): Bump
http-proxy-middleware from 2.0.7 to 2.0.9 in /presto-ui/src to resolve
CVE-2025-32996
- Upgrade http-proxy-middleware from 2.0.7 to 2.0.9 in /presto-ui/src to
resolve `CVE-2025-32996
<https://nvd.nist.gov/vuln/detail/CVE-2025-32996>`_.
- #27722 (Author: dependabot[bot]): chore(deps): Bump
org.postgresql:postgresql from 42.7.9 to 42.7.11
- Upgrade org.postgresql:postgresql from 42.7.9 to 42.7.11 to resolve
`CVE-2026-42198 <https://nvd.nist.gov/vuln/detail/CVE-2026-42198>`_.
- #27728 (Author: Timothy Meehan): fix(plugin-iceberg): Do not check
access control for MV data table
- Fix access control for materialized view storage tables when
``legacy_materialized_views=false``: storage-table access control is
bypassed during MV expansion, while direct queries by name still go
through access control.
- Add ``iceberg.materialized-view-default-storage-schema`` config to
route storage tables into a single schema. Defaults to the materialized
view's own schema; per-MV ``storage_schema`` overrides.
- #27748 (Author: Pratik Joseph Dabre): feat(plugin-native-sidecar): Add
support for adding plugin loaded types in sidecar plugin
  - Add support for adding plugin loaded types in sidecar plugin.
- #27764 (Author: Sreeni Viswanadha): feat(optimizer): Push aggregation
through UNION ALL with disjoint group keys
- Add ``push_aggregation_through_disjoint_union`` session property
(default off) that pushes a ``GROUP BY`` aggregation completely below
``UNION ALL`` when at least one grouping key has constant values that
are pairwise distinct across the union branches, eliminating the final
aggregation.
- #27765 (Author: Sreeni Viswanadha): fix(planner): Prune empty inputs
through local exchanges in SimplifyPlanWithEmptyInput
- Improve ``SimplifyPlanWithEmptyInput`` to prune empty subtrees that
the connector PHYSICAL stage produces under local exchanges.
Multi-source exchanges with mixed empty / non-empty children now drop
the empty branches, eliminating idle no-op operators at runtime for wide
``UNION ALL`` queries where some branches are pruned to empty by
partition / snapshot filtering. Single-source exchanges and write-side
subtrees (``TableWriter`` / ``TableFinish``) are preserved.
- #27766 (Author: Timothy Meehan): feat(plugin-iceberg): Push down
`_last_updated_sequence_number` predicates
- Add predicate push down on ``_last_updated_sequence_number`` for
file-level pruning.
- #27767 (Author: Reetika Agrawal): feat(native): Iceberg V3
initialDefaultValue
  - Add support for iceberg V3 initialDefaultValue.
- #27769 (Author: Shahim Sharafudeen): fix(security): Upgrade Netty to
4.2.13.Final to address CVE-2026-42584
- Upgrade Netty to 4.2.13.Final in response to `CVE-2026-41417
<https://github.com/advisories/GHSA-fghv-69vj-qj49>` , `CVE-2026-44248
<https://github.com/advisories/GHSA-jfg9-48mv-9qgx>` , `CVE-2026-42577
<https://github.com/advisories/GHSA-rwm7-x88c-3g2p>` , `CVE-2026-42578
<https://github.com/advisories/GHSA-45q3-82m4-75jr>` , `CVE-2026-42579
<https://github.com/advisories/GHSA-cm33-6792-r9fm>` , `CVE-2026-42580
<https://github.com/advisories/GHSA-m4cv-j2px-7723>`, `CVE-2026-42581
<https://github.com/advisories/GHSA-xxqh-mfjm-7mv9>` , `CVE-2026-42582
<https://github.com/advisories/GHSA-2c5c-chwr-9hqw>` , `CVE-2026-42583
<https://github.com/advisories/GHSA-mj4r-2hfc-f8p6>` , `CVE-2026-42584
<https://github.com/advisories/GHSA-57rv-r2g8-2cj3>` , `CVE-2026-42585
<https://github.com/advisories/GHSA-38f8-5428-x5cv>` , `CVE-2026-42586
<https://github.com/advisories/GHSA-rgrr-p7gp-5xj7>` and `CVE-2026-42587
<https://github.com/advisories/GHSA-f6hv-jmp6-3vwv>`_.
- #27774 (Author: Timothy Meehan): feat(plugin-iceberg): Bound MV
refresh
- Add ``max_snapshots_per_refresh`` materialized view property to bound
how far each base table advances per ``REFRESH MATERIALIZED VIEW``.
Defaults to ``0`` (unbounded). Requires Iceberg V3 row lineage; V2
tables fall back to unbounded refresh.
- Add ``iceberg.materialized-view-default-max-snapshots-per-refresh``
config property and matching session property to set the default bound.
- #27777 (Author: sumi-mathew): fix(security): Upgrade libthrift to
address CVE-2026-41604
- Upgrade libthrift 0.23.0 in response to `CVE-2026-41604
<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-41604>`_.
- #27778 (Author: Chandrakant Vankayalapati): fix(analyzer): Prevent
incorrect materialized view query rewrite when base query lacks GROUP BY
- Fix data correctness bugs in ``MaterializedViewQueryOptimizer`` where
queries without ``GROUP BY`` could be incorrectly rewritten to use
materialized views with ``GROUP BY``, producing fewer rows than
expected. Alias mismatches and scalar expression bypasses allowed
invalid rewrites that silently collapsed duplicate rows.
- #27790 (Author: Chandrakant Vankayalapati): fix(plugin-singlestore):
Fix type mapping for SingleStore JDBC client 1.2.11
- Fix TINYINT type mapping to preserve TINYINT semantics instead of
incorrectly mapping to BOOLEAN after JDBC driver upgrade.
- Fix varchar type mapping for TEXT types to use byte-based thresholds
matching the JDBC driver's COLUMN_SIZE reporting.
- #27797 (Author: Ben Hu): chore(deps): Update BigQuery Storage API SDK
from v1beta1 to v1
  - Update Google BigQuery Storage API SDK from v1beta1 to v1.
- #27803 (Author: Sayari Mukherjee): chore(deps): Upgrade
parquet-jackson to 1.17.1 in Iceberg connector
- Upgrade parquet-jackson to 1.17.1 in response to `GHSA-72hv-8253-57qq
<https://github.com/advisories/GHSA-72hv-8253-57qq>`_.
- #27806 (Author: Timothy Meehan): feat(plugin-iceberg): Add `ALTER
MATERIALIZED VIEW SET PROPERTIES`
- Add ``ALTER MATERIALIZED VIEW <name> SET PROPERTIES (...)`` SQL
statement to update materialized view properties after creation.
:pr:`27806`.
- Allow updating ``stale_read_behavior``, ``staleness_window``, and
``refresh_type`` on existing materialized views via ``ALTER MATERIALIZED
VIEW ... SET PROPERTIES`` (requires
``legacy_materialized_views=false``). :pr:`27806`.
- #27810 (Author: Reetika Agrawal): feat: Add support for ALTER TABLE
SET DEFAULT for Iceberg write-default
- Add support for `ALTER TABLE ... ALTER COLUMN ... SET DEFAULT` syntax
to update Iceberg column write-default values.
- Add support for updating column write-default values using `ALTER
TABLE ... SET DEFAULT` (requires Iceberg format version 3+).
- Update write-default operations to preserve existing initial-default
values as metadata-only changes.
- #27816 (Author: Timothy Meehan): fix(plugin-iceberg): Add warnings for
stitching and refresh fallback
- Add warning when predicate stitching or incremental refresh falls back
to full recompute.
- #27819 (Author: Sreeni Viswanadha): feat(optimizer): Replace timeout
with scan limiting for predictable prefilter performance
- Improve PrefilterForLimitingAggregation to use scan limiting instead
of timeouts for more predictable performance. The optimization now
limits the source scan to 1000 * LIMIT rows before applying DISTINCT
LIMIT.
- #27820 (Author: Timothy Meehan): feat(plugin-iceberg): Make MV
stitching and incremental refresh cost-based
- Add `materialized_view_stitching_strategy` and
`materialized_view_incremental_refresh_strategy` session properties
(values: `ALWAYS`, `NEVER`, `AUTOMATIC`; default: `ALWAYS`). Under
`AUTOMATIC`, the optimizer selects between the rewrite and the full
alternative based on cost; when stats are unavailable it falls back to
row-count comparison.
- #27829 (Author: Rebecca Schlussel): chore: Remove old NaN definition
and mark config as defunct
  - Remove configuration property `use-new-nan-definition`.
- #27835 (Author: Timothy Meehan): fix(plugin-iceberg): Fix duplicate
view creation in Hive catalog
- Fix race where concurrent ``REFRESH MATERIALIZED VIEW`` on the same
Hive-backed Iceberg materialized view could lose a watermark update.

# All Commits
- 4f8be7c2dcb7def7c113503da91b6f726b23ab3c fix(security): Upgrade
redshift-jdbc42 to 2.2.7 to address CVE-2026-8178 (#27828) (Nivin C S)
- 54cabf9207d654dc8b42ea3c6a2ca3cb4de2f736 chore(ci): Advance velox
(#27886) (Amit Dutta)
- 39e9ec63aae2bc6342e90d96c3d1f2f5ffe5df79 fix(security): Upgrade
opentelemetry-api to 1.62.0 to address CVE-2026-45292 (#27865)
(sumi-mathew)
- e78428e6303bd1aeadf2190daeb2672caf1a9a5b refactor(native-pos): Add
State enum and lifecycle state machine to MaterializedOutputBuffer
(#27873) (#27873) (Shrinidhi Joshi)
- 3ed75c8d7a84328335ed121adba2c03d3d459257 fix(native-pos): Move
ShuffleWriter and pool creation inside MaterializedOutputBuffer (#27872)
(#27872) (Shrinidhi Joshi)
- c3946f3325806101255c996a7b79c473183e068e test: Add end to end tests
for string functions (#26950) (Allen Shen)
- 869548bd2558d856b37a80762313b237312a9c46 refactor(native): Migrate to
PrestoQueryConfig for array_agg.ignore_nulls (#27876) (Maria Basmanova)
- 3f8e87638b102a1d3d93a57e9f16e24de28447be fix(native-pos): Add typed
units to MaterializedOutputBuffer runtime stats (#27870) (Shrinidhi
Joshi)
- 86ab4a4a6df0c5984f8add15caaf9fe1a93a7977 refactor(native-pos): Remove
cooperative backpressure and `useSystemMemory` config (#27869)
(Shrinidhi Joshi)
- a31f69f64d856574529ed5a6b104cf8c564f1c32 chore(deps): Update jackson
version to 2.18.6 (#27293) (Sayari Mukherjee)
- 871f92d45a81c580384681437891908e01506b92 chore: Force modernizer use
for all modules up to presto-main-base (#27867) (Zac Blanco)
- a51fe41c87a2ff77c7c5297b144288f6e04b4997 test(native-pos): Reduce
`kLocalShuffleMaxPartitionBytes` default to 64KB (#27868) (Shrinidhi
Joshi)
- 4617d4685a9fe2262240dc1c44cda2e1be37d747 feat: Adding Apache Arrow
FlightShim for connector federation in C++ workers (#26369) (Bryan
Cutler)
- 6185c1b22293f3d5c1bd0abed891224426ddb363 chore: Bump webpack-cli from
5.1.4 to 7.0.2 in /presto-ui/src (#27852) (sumi-mathew)
- a658c94f2b81f5c7abe400c192deeb84a8346d7a feat(plugin-iceberg): Make MV
stitching and incremental refresh cost-based (#27820) (Timothy Meehan)
- 46cc03138b034839bc05468be6ad801e4f665cba fix(plugin-iceberg): Fix
duplicate view creation in Hive catalog (#27835) (Timothy Meehan)
- 3df2afa1769509be19279c9433367ae36c0df300 chore(analyzer)!: Change
fieldNamesInJsonCastEnabled default value to true (#26833) (Yabin Ma)
- 381e181176178892dbf73a6422dd2bcafbbfa1c6 chore(deps): Bump jetty from
12.0.29 to 12.0.34 (#27294) (Shahim Sharafudeen)
- ee7c8a567ffb3e5cf40a31fcbe5904eb5109265f fix(native): Fix CMake link
order for presto_server_lib (#27847) (Tirumala Saiteja Goruganthu)
- 679d5342881d1021b9a3d038ebec0cd98bb2b4ac docs: Fix formatting of table
in connector/iceberg.rst (#27859) (Steve Burnett)
- dc48d4a399b800d20d9cff1c26beaa15720e3b04 chore(ci): Advance velox
(#27802) (Amit Dutta)
- b22bb99a7f950980c4b1f04a72c373740e5e92dc docs: Fix prestocpp setup
config file (#27857) (Reetika Agrawal)
- 5608831355838f839b4a428550c50e45ef435360 fix(plugin-iceberg): Disable
equality delete as join for DELETE/UPDATE (#27854) (Naveen Mahadevuni)
- 71088a83203252340f49fcbfe3e7f9c5832342aa chore(deps): Upgrade protobuf
to 4.34.1 (#27844) (bibith4)
- 241c94ac60996f5dfeeb85a3e872e3dfd1b5e251 chore(deps): Upgrade
parquet-jackson to 1.17.1 in Iceberg connector (#27803) (Sayari
Mukherjee)
- 73aa19fda74895b62ebe545b1e500813d00a258d fix(testing): Fix TPC-H
native-execution tests to use the right storage format and standard
queries (#27581) (Pramod Satya)
- f7c0ab9e2b7230829372cf24b4c640f44be31e5a feat(optimizer): Add
per-column predicates for ROW IN/NOT IN (#27708) (Sreeni Viswanadha)
- 41a66fc0fe2fd7707fd84062cf075a9a683803b1 fix(native): Allow UTC
timezone (key=0) in session config (#27309) (Shakyan Kushwaha)
- 77e782ce8de12518155cfb30d472e7f3d75afa21 chore(deps): Upgrade
eslint-plugin-react-hooks to version 7.1.1 (#27845) (bibith4)
- 7ee85da37a4d09182392b8c05a9e0622e453acfd fix(native): Possible segv in
system data source creation (#27807) (Christian Zentgraf)
- b7f8f05a286a1f611e48a04babf2cf99b8688507 fix(plugin-iceberg): Add
warnings for stitching and refresh fallback (#27816) (Timothy Meehan)
- b30db0a9a01ee92673327ec7df909eeee7203cb3 chore(deps): Upgrade
datasketches-java to version 6.2.0 (#27839) (Sayari Mukherjee)
- be01a17a06c16cb8004736e0b1f2dc5488805300 refactor(planner): Extract
shared expression rewriter for MV query optimizer (#27732) (#27732)
(Chandrakant Vankayalapati)
- 10d55723b93ccd907a1bba2736428271abc53bcf fix: Disallow
rewrite_data_files in Iceberg if filter pushdown enabled (#27838) (Dong
Wang)
- 5aa4abed4085cadd7ef5a0b8f47673486245c9b1 feat(optimizer): Push HAVING
filter through MAX/MIN/ARBITRARY aggregations (#27712) (Sreeni
Viswanadha)
- 2301c14aa4def417f7766b2d542ce8191d4c2050 fix(ci): Update release notes
check to use raw markdown body (#27842) (Rebecca Schlussel)
- 917cf4cd78d32ca72ef6b7b45c77c3d44a7b3b26 chore(deps): Update BigQuery
Storage API SDK from v1beta1 to v1 (#27797) (Ben Hu)
- 7faea8429c9b23d67f577f42543796d6a57e0253 feat(protocol): Update
annotations for consistent Thrift serialization support to all
TaskResource endpoints (#27486) (Jamille Shao-Ni)
- a95cb3ef06310b98b43da290d03fd8c8ee82f35c feat(plugin-iceberg): Push
down min/max/count based on file stats (#27085) (Dong Wang)
- 92046f2512be60dd0cb2a5f95377629733fd92e0 fix(analyzer): Relax stale
view validation for compatible string types (#27776) (Reetika Agrawal)
- 6ba9b3a2291d469f384f260451f1b2f776709255 chore(deps): Upgrade
commons-logging dependency from 1.3.5 to 1.3.6 (#27811) (Nivin C S)
- c6505360c4fb31bc5aabbc4e0e41fe285b638912 feat(plugin-iceberg): Bound
MV refresh (#27774) (Timothy Meehan)
- d8a2b53fa42fa41ca5025f9d7640c8eebc9ff15b feat(optimizer): Replace
timeout with scan limiting for predictable prefilter performance
(#27819) (Sreeni Viswanadha)
- 6823d9c9b135e6781bc9f4a30c658eb805b6518a chore(deps): Bump
webpack-dev-server from 5.2.1 to 5.2.4 in /presto-ui/src (#27840)
(dependabot[bot])
- 888991dc8b1a07424aba33f3c8bb440820479f0c chore: Bump commons.codec
from 1.17.2 to 1.21.0 (#27756) (sumi-mathew)
- 1da69a6e246fdeecc7302e8385b7ec4580e27821 fix(optimizer): Handle RPC
functions inside TRY expressions (#27818) (feilong-liu)
- 3233fe18835b38c1f7399f97a937bc79f1208dbf chore(analyzer): Remove
warn-on-common-nan-patterns config and NaN warning behavior (#27830)
(Rebecca Schlussel)
- c11fbf9f5f5415a3e28ea2d677acea27754788ee chore(deps): Upgrading
mongodb driver to mongodb driver sync (#27685) (Glerin Pinhero)
- 79cc9cb5c5bb586c9bde73c362912eef1b1188db refactor: Remove duplicate
check of iceberg v3 validation (#27837) (Reetika Agrawal)
- 3161b74a9d8b201487835db397aefe60178fea0d refactor: Add missing getter
methods and fix ordering in MetadataManagerStats (#27825) (Reetika
Agrawal)
- 3332fa796f9724aed783d4f3f5af81578961b336 feat: Add support for ALTER
TABLE SET DEFAULT for Iceberg write-default (#27810) (Reetika Agrawal)
- b294d8bf029c78a1afbabf3cae66d1b4f305dafa fix(native-pos): Fix
MaterializedOutput correctness and crash bugs in close/finish lifecycle
(#27833) (Shrinidhi Joshi)
- 0da3bb839ea7085c1dd6ca365627ecc107f50973 feat(optimizer): Extend
JoinPrefilter to support complex probe-side patterns (#27598) (Sreeni
Viswanadha)
- da0f63f907f8993b56e9dddf5eedd100a77022f3 feat(plugin-iceberg): Add
`ALTER MATERIALIZED VIEW SET PROPERTIES` (#27806) (Timothy Meehan)
- 9b2559f2138b9e31d5a198b1261d23dee2a15111 chore: Remove old NaN
definition and mark config as defunct (#27829) (Rebecca Schlussel)
- 34d459d66c03e4a866ee2332a28826c90e105222 feat(plugin-iceberg): Add
support for ALTER COLUMN SET DATA TYPE in the Iceberg connector (#25418)
(Nivin C S)
- f12815ce648cfcfdd3721f4cd54a12e56ecdb4b2 chore(deps): Upgrade
openlineage-java to 1.47.1 to fix CVE-2026-40542 (#27812) (Dilli Babu
Godari)
- fd67186b43f87362df58e8ab1cbe79e7f507ffa1 feat: Wire up IndexSource
splits to Spark task sources (#27817) (Zac)
- 65547f47ad87d4ccc1e7576d7cc864f717490893 feat(native): Iceberg V3
initialDefaultValue (#27767) (Reetika Agrawal)
- c2f37fc3ec49e3455e91afaef31dfb034e617bc8 fix: Enable partition-aware
grouped execution for index joins (#27701) (Zac)
- 4509fb24ec79df4093a83ffb50e6d688ee0f0854 chore(deps): Upgrade ratis
dependencies from 3.1.3 to 3.2.2 (#27787) (Nivin C S)
- 1d6737a6624fa048e2db721b905861f9958ee092 fix(planner): Prune empty
inputs through local exchanges in SimplifyPlanWithEmptyInput (#27765)
(Sreeni Viswanadha)
- d7f0f924c30e79238d20113afbc2977536ef35b7 misc(native): Target Java 8
for presto-on-spark compatibility (#27697) (#27697) (Kevin Tang)
- b4ce8d0d82797243153502c17769c0cfde8e6c5c misc(native-pos): Extract
AbstractNativeProcess from NativeExecutionProcess (#27696) (#27696)
(Kevin Tang)
- 18e730b1da26f301fe7362f514252f370671d623 docs: Fix errors in doc build
(#27805) (Steve Burnett)
- 81d4bde174f8e7dbdd1c9dbae1ecf3330b16267c feat(client): Add connection
validation feature to enhance connection reliability (#27002) (Sayari
Mukherjee)
- f0d744296a0ba0f3c4031fde5cd9eaa370d1e397 feat(optimizer): Push
aggregation through UNION ALL with disjoint group keys (#27764) (Sreeni
Viswanadha)
- bf30efcd530b9b181ec21672b8140ec0ebf6231a feat(plugin-prometheus):
Enable case-sensitive identifier support for Prometheus connector
(#26260) (Dilli Babu Godari)
- 9bacdef43077268ca4abefd24718cfc8caef2b1c perf(native-pos): Fix OOM due
to excessive memory usage in BroadcastFileReader (#27798) (Shrinidhi
Joshi)
- 95db1c86b6098026c48167dfa751393359ebdab5 feat(plugin-iceberg): Push
down `_last_updated_sequence_number` predicates (#27766) (Timothy
Meehan)
- 76d8bf2f42476c36e429e7515797f452ca79aef3 fix(plugin-iceberg): Handle
deprecated Iceberg write.object-storage.path property (#27758) (Reetika
Agrawal)
- 52f8f99b36a43d89f448a54b5220ad659fd3a5e0 fix(security): Upgrade Netty
to 4.2.13.Final to address CVE-2026-42584 (#27769) (Shahim Sharafudeen)
- 7056bdb10dafdcdd36649535c27e652ab843ebbd feat(plugin-native-sidecar):
Add support for adding plugin loaded types in sidecar plugin (#27748)
(Pratik Joseph Dabre)
- 21a6092869bf9e7f0832e15879e5a023164b6723 feat(native-pos): Make
MaterializedOutputBuffer size configurable with dynamic drain threshold
(#27795) (#27795) (Shrinidhi Joshi)
- 770df6161cd196d61f9fdedd9595e453ea621a0b fix(native-pos): Add flow
control logging to MaterializedOutputBuffer (#27794) (#27794) (Shrinidhi
Joshi)
- c237df17e5c216ee75913d28f5f9244dca904070 chore(ci): Advance velox
(#27786) (Joe Abraham)
- 18fec98bdd3485e64d03bc36bcd7c05f96c555c1 chore(deps): Upgrade jest
version to 30.3.0 (#27657) (Sayari Mukherjee)
- ace806dd47e337d85a74ef814ccae4d530057db1 test: Add end to end test for
jaccard_index (#27591) (jkhaliqi)
- e2c083acc87b705657c832dbec1c4f66f90825f2 fix(plugin-singlestore): Fix
type mapping for SingleStore JDBC client 1.2.11 (#27790) (Chandrakant
Vankayalapati)
- 3449d457efacef3697c832b87d4657522cd9a9d2 chore(deps): Upgrade gson
dependencies from 2.12.1 to 2.14.0 (#27779) (Nivin C S)
- c45405dfc8cf2017f62e5e27c3c860d9c697cdc8 fix(security): Upgrade
libthrift to address CVE-2026-41604 (#27777) (sumi-mathew)
- d7c8658c654a27caf28e36caf87dba5e170dbde9 docs: Document optimizer and
Iceberg properties (#27775) (Asish Kumar)
- 2acd947be65af53ed13f6651aca0586801575e98 fix(analyzer): Prevent
incorrect materialized view query rewrite when base query lacks GROUP BY
(#27778) (Chandrakant Vankayalapati)
- bb46550550e257affc78ac7ea111f548acd83239 feat: Add partition-aware
grouped execution for bucketed tables (#27663) (feilong-liu)
- f65259c38cf23e1e8b1c5942fb57f069c60c5bcf chore(deps): Upgrade React
and ReactDOM to version 19.2.4 (#27740) (Sayari Mukherjee)
- e1eb82f978ab72e92c79b51b88bb3eb0a152b80c fix: Allow DELETE queries to
run on Presto on Spark (#26195) (Gary Helmling)
- 8982f133809140a3c94595414b1d82518463e3f8 chore(deps): Upgrade
react-simple-code-editor from 0.13.1 to 0.14.1 (#27739) (Sayari
Mukherjee)
- efaf47f42aa9651a4c818c8f9c1eb5af38f90037 feat(plugin-delta): Support
reading tables with column mapping enabled (#27483) (Miguel Blanco
Godón)
- 7a9a2872c084815393063fed6e80a5b39642200a fix(native-pos): Fix
PartitionAndSerialize ROUND_ROBIN sending all rows to partition 0
(#27770) (Shrinidhi Joshi)
- ad09e9bd5ac631c82202985f19207e943dbe4290 fix: Load coordinator plugins
before standard plugins across bundles (#27729) (Pratik Joseph Dabre)
- 426dd7c1b19979788d1300b39d81139620988fcc fix(planner): Fix
ConstantExpression type mismatch in PropertyDerivations.visitProject
(#27773) (feilong-liu)
- 6aed02700ca94defa04d427854e6492119a7ccbe feat(analyzer): Allow HAVING
in materialized view query rewrite (#27677) (Timothy Meehan)
- f1c7b7d3df6736e46e2ac0651d4b44e18c5e4ea0 chore: Bump commons-dbcp2
from 2.12.0 to 2.14.0 (#27754) (sumi-mathew)
- 39513c10a1f0b02195a08f78691b0e4059dace6f chore(deps): Bump
@babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in
/presto-ui/src (#27763) (dependabot[bot])
- 5191b72fb4e7b680c0c36e2e0a5411f251e3b10d fix(plugin-iceberg): Do not
check access control for MV data table (#27728) (Timothy Meehan)
- 00acf72fa459e525d22c37c6abbfa22a3d401497 chore(deps): Bump SingleStore
JDBC client to 1.2.11 (#27759) (Dilli Babu Godari)
- d5b68df83e73e7a2269dd90ce6073d9d2ae3a31d chore(deps): Bump Apache
Lucene 8.11.3 to 9.12.3 (#27757) (Dilli Babu Godari)
- bb26a1ecf9f0badaa655d73a967f5b9426a58a8c test: Add end-to-end tests
for numeric_histogram function (#26968) (Allen Shen)
- 434758f0738d0cee949ce531b3afb82dd095f43b fix: Honor channels parameter
in RestSqlFunctionExecutor (#27684) (Joe Abraham)
- c169c153008d9de15f1848a6d80affd8a40e6ead chore(ci): Advance velox
(#27716) (Amit Dutta)
- 9e8ba1c8cc4b98551ec27935be4b112777b9bb62 fix: Populate session fields
when query fails before Session is authenticated (#27752) (Kevin Tang)
- a3516e21602fcd7cf5bae8ba24ea022232069f5e fix(ui): Fix timeline legend
layout with gaps between colored bars (#27731) (Yihong Wang)
- 89ceb1618bd3ba2338c6a7014720e221d4157714 feat(native): Add
native_min_shuffle_compression_page_size_bytes session property (#27683)
(#27683) (Henry Dikeman)
- 296ee91d3c5bd3b93b898aabca0f29a27ba0878f feat(native-pos):
MaterializedOutput: support replicateNullsAndAny (#27753) (Shrinidhi
Joshi)
- abed99b86b4961672cc569422c30de677377c7a4 chore(deps): Upgrade
html-webpack-plugin from 5.6.0 to 5.6.6 (#27737) (Sayari Mukherjee)
- d93dc465a9859fadfaa7086d7fac3429edd1aafe fix(deps): Bump
presto-spark-classloader-spark3 parent version to 0.298-SNAPSHOT
(#27747) (Kevin Tang)
- d94276a3e66c25a6b67f243fcb148968b8004b98 feat(connector): Add support
for `execute` procedure in JDBC connectors (#27282) (Pratyaksh Sharma)
- d7d029abfb2e92c8d0f549863d846d2f38ba17cd chore(deps): Upgrade
vis-timeline from 7.7.3 to 8.5.0 (#27721) (Sayari Mukherjee)
- c0f9cd4cb13b8d12ab40d67b8d97516776102cf6 fix(security): Upgrade
fast-uri from 3.0.6 to 3.1.2 in /presto-ui/src to resolve CVE-2026-6321
(#27736) (nishithakbhaskaran)
- c2f09fb5eebdbbb5bef5ac6fc9c38d3ac688bc67 chore(deps): Upgrade
@babel/core to version 7.29.0 (#27741) (Sayari Mukherjee)
- 1dcec7b47b2d29d931a7d2e38d391bc10b9c68ed chore: Bump
com.tdunning:t-digest from 3.2 to 3.3 (#27718) (sumi-mathew)
- 4443e880bf4e7317544cb036370f84fd3b9aaf70 chore(deps): Bump
org.postgresql:postgresql from 42.7.9 to 42.7.11 (#27722)
(dependabot[bot])
- cecd415e63bc8810a8833b4155fe754451c3ce36 fix:
UnsupportedOperationException for UnionNode in AddExchanges fixed
parallelism path (#27714) (feilong-liu)
- 09d70672cfab613f4ed12345e517738c6b811e54 chore(deps): Upgrade jQuery
from 3.7.1 to 4.0.0 (#27720) (Sayari Mukherjee)
- 30776976bfc9d67c1807ed68378f0a00f30da5d2 chore(deps): Upgrade
babel-loader:9.1.3 to 10.1.1 (#27656) (Sayari Mukherjee)
- b8d7610a7242d0c9f808e82894349ad15da2aed4 feat(native-pos):
MaterializeExchange: [1/n] Add MaterializedExchange operators and plan
wiring support (#27573) (#27573) (Shrinidhi Joshi)
- d3ad72cea746a0e6de1c3d86cab5a7b5e4b947d8 feat: MetadataExtractor:
prefetch source table for CREATE VECTOR INDEX (#27713) (XiaoDu)
- d9be702264414185ec27deb24571195698185f22 feat: Support extending
verifier QueryRewriter (#27703) (#27703) (Gary Helmling)
- 669219f6c9ad01f371a44d254523f49382346878 feat(scheduler): Allow
configured resource groups to bypass cluster-overload throttling
(#27642) (Arjun Gupta)
- 140e5093ae8cf6f096b29ea5def5b1356a844106 chore(deps): Bump
http-proxy-middleware from 2.0.7 to 2.0.9 in /presto-ui/src to resolve
CVE-2025-32996 (#27715) (nishithakbhaskaran)
- 1e1cc916868eb8bae0efc302c0a2a0e0d10b642e fix(analyzer): Skip unmapped
derived columns in MV partition filtering (#27706) (Chandrakant
Vankayalapati)
- e743edc134fca7e6e0013f717a28f7f0f1775973 docs(security): Improve
authentication docs (#27692) (Pratyaksh Sharma)
- be18151a766a01e0deb227e1830afbf08d9c3ef5 chore(deps): Bump
commons-pool2 from 2.11.1 to 2.13.1 (#27648) (sumi-mathew)
- a78a231330f9baf756bfcb5691042caeab4ebf9c fix(native): Fix BIND
expression loss for captured lambdas in NativeExpressionOptimizer
(#27593) (Pramod Satya)
- 8d334451742d620e3221993756ac9c665093a5ca fix: Integer overflow in
range filter boundary conversion (#27600) (#27600) (peterenescu)
- 09de245ab5b7a1a9d010170cc63605d3592b5201 feat(planner): Support scalar
functions in MV query rewriting (#27549) (#27549) (Chandrakant
Vankayalapati)
- ad7acf8059a873c4c5913863941e384b81e6f8d6 fix: Change error tagging
from internal error to user error (#27686) (Konjac Huang)
- bcb7b22d4ec9aef4c205c02efe3af499460645e8 chore(deps): Bump css-loader
from 7.1.2 to 7.1.4 in /presto-ui/src (#27667) (nishithakbhaskaran)
- 3aefe857faeb551d84e42e3c60d7581ddb8ac84d feat(optimizer): Add session
properties for RPC streaming mode and batch dispatch size (#27700)
(feilong-liu)
- 3c081e145ba23012e87199ce3a1552088f2424de refactor(native): Clean up
the saturate cast of count metric (#27676) (Rui Mo)
- 3334738474b994fadc76139b3066af1e45081b57 feat(plugin-iceberg): Add
changes for passing iceberg V3 initialDefaultValue while read (#27659)
(Reetika Agrawal)
- b3aa1274d232cfdc2729cc240e6676096355b11d perf(optimizer): Clean up
prefilter distinct limit (#27678) (Sreeni Viswanadha)
- decea18211557286b50e2259a11256c0f0146e2f fix: Take 'finishingTime' and
'planningTime' out of 'executionTime' (#27691) (#27691) (Sergey Pershin)
- 2b74be7c29cfc2b69053aad10ae03f6d527e9a7d chore(deps): Bump ts-jest
from 29.4.6 to 29.4.9 in /presto-ui/src (#27660) (nishithakbhaskaran)
- 46167847b821e2b7a3b1d1ce4c723d1b0d4b5863 feat(connector): Add caching
for Lance connector (#27325) (Jianjian Xie)
- 0ea6b49d7d237633583cb434dfff0022f273a20b fix: Replace Optional.or with
ternary for Java 8 compatibility (#27693) (Kevin Tang)
- 298a125e2614b6056cfeaf04f653427487f11a3f chore(deps): Upgrade
styled-components version to 6.4.1 (#27675) (bibith4)
- 2bc8fc58a8c008f2a906f3fd3204ec738fb12b39 feat(native): Upgrade the
nlohman json dependency to 3.12.0 (#27161) (Christian Zentgraf)
- 87f92f669805c16d8e44a8962dd372dcb87e72ad perf(optimizer): Remove
partition key restriction from ROW IN to disjunction rewrite (#27680)
(Sreeni Viswanadha)
- 240d1426878f196224228e49b59ff1e272e7d337 docs(security): Add more
details in docs (#27681) (Pratyaksh Sharma)
- 8319359fd5be8d23955359ff16dfd40b3c6d6a9d docs: Fix phrasing in
connector/lance.rst (#27640) (Steve Burnett)
- c2abc247f313c7d121e2da8f26d23d057681a5de feat: Add authorizedPrincipal
to AuthorizedIdentity for gateway identity propagation (#27639) (#27639)
(Chandrakant Vankayalapati)
- e4a3b89366187f0ed00584f8e2e1f37a87fe71ad revert: Add metastore cache
invalidation in iceberg (#27200) (Pratyaksh Sharma)
- 1604b1e62ea0e6d253d9be303b4c0cba9a89ddae fix: Union of TVF leaf
operators results in multiple split sources (#26980) (mohsaka)
- 9d6e9bafb84f719489b2c7a22ccf309cf690b7b2 feat(plugin-iceberg): Add
zorder to rewrite_data_files (#27561) (mohsaka)
- 579fbea8171c7595cc1175c493e569735dde8153 feat(optimizer): Add TopN
late materialization using $row_id (#27641) (Sreeni Viswanadha)
- cdc69ccba481e0f1f5621c63dc93351c3abb5c51 feat: Add TLS/SSL
configuration support for Oracle connector (#27671) (Dilli Babu Godari)
- e024dd71949156876c6b7e28cbbd437af82731c8 feat: Add Oracle i18n
character set support (#27670) (Dilli Babu Godari)
- 21c9bc66509630fbbad2583489b8fd448b6f370c feat: Add configurable JDBC
fetch size support (#27669) (Dilli Babu Godari)
- 03eed7a800d298ab9505ad04e0b6e80531ec6310 fix: Fix failure when
inserting into Iceberg tables partitioned by day(timestamp with time
zone) (#27645) (Nivin C S)
- c7da91bd852cbad929c5af9a317bbeed0848c8ce fix(server): Fix
FutureStateChange listener leak in
HttpRemoteTaskWithEventLoop.whenSplitQueueHasSpace() (#27673)
(shelton408)
- fc6e087f31a4a72c6deee0efdd1c0ff7f5a92e88 feat(plugin-iceberg): Support
creating branches on empty tables (#27270) (Dong Wang)
- 515241636649b768a06793b9704d6fd3f5f3e003 test: Extend Iceberg schema
evolution tests to cover PARQUET format (#27174) (Dong Wang)
- 2f81bd37b6f989ee61417c9b90d2c31f5b42eb66 feat: Add PUFFIN file format
enum to FileFormat wrapper [presto][iceberg] (#27616) (#27616) (Apurva
Kumar)
- 60d7de71f1ec54dffb09d82ed21efa41ee5c3ca8 chore(deps): Upgrade
testing-library/user-event version to 14.6.1 (#27623) (bibith4)
- f318aaa25583b1450cfde087e0549d648ae5c951 fix(planner): Propagate
streamPropertiesFromUniqueColumn through TopN (#27664) (Sreeni
Viswanadha)
- 5bda1283378de2869ff5d7de3fa45346361fb4d9 chore(ci): Advance Velox
(#27650) (Christian Zentgraf)
- 18388dc797444722d9e83215c707851e0d7df208 feat(plugin-iceberg): Add
rewrite-all option and default value for min-input-files (#27633)
(mohsaka)
- fd2a22b4fc5da6dfc7b1465c5ebda56eb254a1dc docs: Add missing
authentication and advanced configs for Druid connector (#27611)
(Saurabh Mahawar)
- d11ffdbfd04aac7384a45ea5a099a4eb6c624120 chore(deps): Upgrade
react-data-table-component version to 7.7.1 (#27647) (bibith4)
- 39f71665bcdb2483b91ec490aeb25ce0831fcc95 chore(deps): Upgrade
testing-library/jest-dom version to 6.9.1 (#27624) (bibith4)
- d06018be9004b5d5c9991c2df5bc901534667f0d feat: Add split_part_reverse
as a global Presto SQL inline function (#27480) (#27480)
(join-theory-de)
- 5e21de8354972c88b45b2df56b3ce20829bc5619 chore(deps): Upgrade
testing-library/react version to 16.3.2 (#27625) (bibith4)
- e2bca0766913e60ffd537b72e7ea4a4dba532748 fix(security): Upgrade
async-http-client to 3.0.9 to address CVE-2026-40490 (#27613) (Shahim
Sharafudeen)
- 995dbad434ef0ee2faa4edd1710716dfe32f55ec feat(optimizer): Support
incremental refresh of materialized views (#26959) (Timothy Meehan)
- 993cef3ee9a321a8a507314d03091ced8ac0ab83 feat(connector): Add filter
pushdown for Lance connector (#27430) (jja725)
- 82889cd61264e0013b6a0113f3d82ca8ab3193e1 fix: Avoid int64 overflow in
PlanNodeStatsSummarizer (#27632) (#27632) (Sergey Pershin)
- b2569e841d958ee92950c80818c3408308cc3c57 chore(deps): Bump
org.bouncycastle:bcprov-jdk18on from 1.81 to 1.84 in /presto-tests
(#27606) (dependabot[bot])
- dae4091c7105d1370544bfcb11baf8f8a79256bc fix(plugin-iceberg): Reduce
max history queries to avoid OOM in CI test (#27519) (Dong Wang)
- 91e9132db5abcbfb0d7ab2232602784c5f02d5b4 feat(plugin-native-sidecar):
Add operational metrics to sidecar (#27595) (Pratik Joseph Dabre)
- 4d8da3fa5ec064b13fd658f1fb6802b687ded6de feat(planner): Support
CUBE/ROLLUP/GROUPING SETS column rewriting in MV optimizer (#27538)
(#27538) (Chandrakant Vankayalapati)
- 6f8ecdbd848ee092dc34a162a5073955c840e703 chore(deps): Bump
org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4 (#27583)
(Nandakumar Balagopal)
- 09e522f66c0e716d9b150d708a5fa8de4f762554 fix(security): Upgrade gcs
version to 2.2.28 (#25424) (Shahim Sharafudeen)
- 668ae1086c90f15581549519e49170a5ca864e63 feat: Bump Iceberg
[presto][iceberg] dependency from 1.10.0 to 1.10.1 (#27614) (#27614)
(Apurva Kumar)
- ced25b8965b98cf4a1d660ce7108f5bb39539302 feat(optimizer): Add
distributed execution for RPCNode via rpc_function_parallelism session
property (#27603) (zhichenxu-meta)
- bb615b3890dd3fa61b1d8f3bbafbcc8e71e827a8 fix(plugin-delta): Creating
Delta table to unaccesible location makes the metastore inconsistent
(#27129) (Miguel Blanco Godón)
- dce6efdab414b583632dea0fc20543ae3d8ccd3e fix(plugin-native-sidecar):
Pass session start time as a header in native expression optimizer
(#27545) (Pratik Joseph Dabre)
- 469a6965155e4cf25884c311d4f94d458c034981 feat(native): Add index
source plan conversion with connector extensibility (#27596) (#27596)
(Zac)
- 94a11f78597d12e6246e60ed7c383f597ad90eff chore(deps): Bump
org.codehaus.plexus:plexus-utils from 3.6.0 to 3.6.1 (#27471) (Sayari
Mukherjee)
- 231fd12dcc7025d5724b0cd1ffa25f5a7ce7cdd1 chore(deps): Bump
org.apache.kafka:kafka-clients from 3.9.1 to 3.9.2 (#27574)
(dependabot[bot])
- a8355398f9ad980e2f5ecde9abfac99e18261a76 chore(connector): Upgrade
clickhouse-jdbc to 0.3.2 (#26990) (sumi-mathew)
- 90910c7fe8f6be850a83aa031d5a93559958116b misc(planner): Move
RpcFunctionOptimizer after RewriteRowExpressions (#27594) (feilong-liu)
- 86f564b900c8277a463d5ec77dae08c06401f08d fix: Fix race condition in
pruneFinishedQueryInfo causing task memory leak (#27597) (Swapnil)
- ef8eea0ac3bbba102a98ce7a52992d4d48812124 fix(plugin-native-sidecar):
Add additional CAST for mismatching array constructor args (#27556)
(Pratik Joseph Dabre)
- 47f6dfa53bd3da3ef536aefe45b34263849df9bb chore(deps): Bump
follow-redirects from 1.15.9 to 1.16.0 in /presto-ui/src (#27587)
(dependabot[bot])
- b4a645ad4413900a6f676b72405b418ae96310b8 feat(native): Distributed
Procedure Support (#26375) (Dong Wang)
- 177d6ff7f57064e68b02993611bc4240942d1f4c feat(native): Add
IndexSourceNode planner support and split scheduling (#27296) (#27296)
(Zac)
- 7b2e370a1e61304fc5da17b95186f729a6cd0f0b feat: Reject duplicate
columns in CREATE VECTOR INDEX (#27588) (Ke Wang)
- b2dfddc52733ce66aa7fec66a06d6c8c8d968bec feat: Validate embedding
column type in CREATE VECTOR INDEX (#27589) (Ke Wang)
- 3c36e504600c80364a59f6cb2bdaae004eb1e9b9 refactor(plugin-iceberg):
Defer the start of transaction for procedure (#27586) (Dong Wang)
- 4b775d743ef52b107d04e40b733e244827c709b9 chore(ci): Advance Velox
(#27503) (Christian Zentgraf)
- a82063a0985dc1b54777c6e6354cd5999f4b396d fix(optimizer): Fix cascading
projection pass-through in PushProjectionThroughCrossJoin (#27568)
(Sreeni Viswanadha)
- a2dc569e6cc6b04c4a1012ea5e9fc648b36c0110 fix(plugin-druid): Add
version for lz4-java to fix maven deployment (#27584) (Li)
- 0d7cd9501a0ab75df5dd2b6aac848c7978f0ad75 fix(native): Fix TRY
expression handling in NativeExpressionOptimizer (#27122) (Pramod Satya)
- 5d26fb35bc7f78419156cda64a6f238e92099016 misc: Fix code style issues,
copy-paste bug, and UB in presto-native-execution (#27572) (#27572)
(Amit Dutta)
- 31f7f3c5b6165c118c58db88d12aae9d54b34d83 fix(native): Handle NULL ROWs
when returning from native expression optimizer (#27528) (Pratik Joseph
Dabre)
- 459286a0f0c4ff972e876d5c3d45327fb8499444 fix(native): Fix worker
shutdown sequence (#27566) (#27566) (Sergey Pershin)
- 5bd6ca88673ba2c6b44ec3370d0fd464ab923270 fix: Remove duplicate
checkQueryIntegrity call in CreateMaterializedViewTask (#27567) (Kevin
Tang)
- 913a4285a2817555b70e84f11d82fdb33484d9a7 feat(optimizer): Rewrite
bucketed semi-join to join (#27510) (Sreeni Viswanadha)
- 09400b98c7a46925210ad09ade111536422ed1a6 feat: Add pmod (positive
modulo) scalar function (#27543) (#27543) (Natasha Sehgal)
- dd6606c9d786099e0fb58b232e19654adad25a9c feat(plugin-iceberg): Add
min-input-files, min-file-size-bytes, max-file-size-bytes options to
rewrite_data_files procedure (#27515) (mohsaka)
- 23e35ab6993d62e97f9f180802ac7c55df627ee8 docs: Fix formatting of code
blocks in develop/table-functions.rst (#27502) (Steve Burnett)
- a4f8f58ef4d84c1847b52b30a2643257f0951bca fix(plugin-native-sidecar):
Fix flattened AND/OR expressions by the native expression optimizer
(#27517) (Pratik Joseph Dabre)
- 4c72d5cc1ed99ab1acd13ae92f94d31ef2336637 test: Add e2e tests for
binary functions (#26970) (Allen Shen)
- 4b6d9c9e9f88df699308549064615fada467cca5 feat(native): Pass storage
parameters to HiveInsertTableHandle in write path (#27525) (#27525)
(Henry Dikeman)
- b25bb12435d53d6aaa1b3460c86db908e8983fc3 feat(native): Add Java
planner integration, protocol, and dynamic RPC function detection
(#27555) (abhinavmuk04)
- 62d690b279c0899bc5105f5412ef74a240b96c2e fix(build): Use explicit
optional constructor (#27513) (Christian Zentgraf)
- cc294de45fb8deea40dabf1bbe85321a7dedfdd4 fix(native): Do not discard
all tasks in maybeStartNextQueuedTask() (#27548) (#27548) (Sergey
Pershin)
- 151c3373b1998f0e006a0dec439142d7733c36bc perf(analyzer): Index
RelationType.resolveFields() for O(1) field lookup (#27553)
(feilong-liu)
- 05f8e4404f117c66c1eebd40d1be364ddfe702c3 perf(planner): Optimize query
planning for wide-column projections (#27547) (feilong-liu)
- a3a1d3cdc1d556985f314de0af35a30e1adad0d3 test: Add E2E tests for geo
functions (#26969) (jkhaliqi)
- 6af43bb021706dbaabb55dbff151cf22aaac6bbb feat(analyzer): Add session
property to gate CTAS IF NOT EXISTS query analysis (#27504) (Kevin Tang)
- d488205f1fdedddee6a537e25b704799d3b5e5b8 chore: Update error message
in Iceberg table row deletions (#27495) (nishithakbhaskaran)
- ed41ee81e2377d1944f7ae47f1512f7833549730 feat(optimizer): Rewrite ROW
constructor IN to disjunction for partition pruning (#27500) (Sreeni
Viswanadha)
- b9b15ae4a8b639f4f926695c7e0694d8cf2010de fix(planner): Use
LinkedHashMap in optimizer rules to fix type mismatch (#27493) (Sreeni
Viswanadha)
- dd82b57d2da28e7297b4ef99534da7a74eff6d4f feat(optimizer): Rewrite
map_from_entries(ARRAY[ROW(...)]) to MAP(ARRAY[], ARRAY[]) (#27491)
(Sreeni Viswanadha)
- 65cf3e94214284946710cc21fc7330c0c56e41db chore(deps): Upgrade
testing-library/dom version to 10.4.1 (#27520) (bibith4)
- 40c1c4e2101ec359770f45c5c15f183add900a5a docs(native): Add missing
native session properties (#27506) (Saurabh Mahawar)
- 0b313de489c0ed1b19a1543bab9f23cdb027db2c feat(plugin-iceberg): Add min
max stats for varchar/char column and display as low and high values
(#27357) (Prashant Sharma)
- 1968770e91a1206aaa176148f60b11f7e8178364 test(native): Add E2E tests
for array functions (#26937) (jkhaliqi)
- a92fa12dd45173cf54dee0089887810a9f585fba feat: Prism <> Iceberg
[prism] Support SQL-standard time travel syntax (FOR TIMESTAMP AS OF)
(#27421) (#27421) (Apurva Kumar)
- 7f76c833f5551a8fa4e9e86090c5f3fa135da829 docs(optimizer): Add more
details to the materialized view documentation (#27465) (bibith4)
- 175143b4bf9d0fe5e8246cedbf38614d1c3e113a chore(deps): Upgrade
commons-text version to 1.15.0 (#27494) (bibith4)
- 29ed629bf60c4a508a4a1d1a5c3e730a53491f05 fix: Use namespaced GTest
targets in arrow_flight tests (#27137) (jkhaliqi)
- 291f2048f3bf3b5afe275f0589d547eac3f687a9 feat: Add exchange transport
type (HTTP/ANY) to plan fragments (#27355) (Daniel Bauer)
- ee0eec7b5b12aef7feb1ea6d6dd7411387003caa feat(planner): Support GROUP
BY and ORDER BY ordinals in MV query rewriting (#27422) (#27422)
(Chandrakant Vankayalapati)
- 7655f36483b5074d0394bc1a34ae48c25612b872 feat: Add read support for
row lineage columns in Iceberg connector (#27240) (Joe Abraham)
- 2af1e04aad8d28b7b806f44905abeb7812cc3354 feat: Remove index table
existence check (#27509) (#27509) (Ke Wang)
- 74a3458ab835a8af25aa40f458ac16c0d598a94d feat: Add observability for
query state transitions in Presto (#26418) (#26418) (abhinavmuk04)
- fc3669795814668bd1d90da27bc72ed51ee81eb8 misc: Show stage completion
state in query plan (#27388) (#27388) (feilong-liu)
- 232429917efbbbf3c7d30a3c62f7996fc5b3126f feat(planner): Extract remote
functions from $internal$try lambda in PlanRemoteProjections (#27451)
(feilong-liu)
- 28bb9006e70e7bdfaa1141ee7797e208934a6491 feat: Add number of total
driver threads (#27501) (#27501) (XiaoDu)
- 926e2cdad1cb715542272f634458c9524dff32ea fix: Revised the principal
field retrieval (#27014) (Yihong Wang)
- cc4ec4a173679cfbd8e36893907435e88b5e0bd0 fix: Allow view querying with
Mongo connector (#26995) (Auden Woolfson)
- 52ad58aae1ec9744161af78416b0274fd90de2bb feat(connector): Add Azure
Blob Storage and ADLS Gen2 support (#25107) (Deepak Mehra)
- ec92f2a3ad06bca5375e28b74e1b35eea78be658 chore(deps): Bump lodash from
4.17.23 to 4.18.1 in /presto-ui/src (#27497) (dependabot[bot])
- c1603bd2a9b5e37617d96597ba11a7e22007de79 feat: Add
MergeSumsToVectorSum optimizer rule (#27335) (#27335) (abhinavmuk04)
- cd6ee833414c1bc9e9c910637bcd3eaa7e1e53b0 test(native): Enable cuDF in
native tests (#27369) (Pramod Satya)
- aae3971105e4fa3680e37cf3f392fb04b0b071c2 chore(deps): Bump lodash-es
from 4.17.23 to 4.18.1 in /presto-ui/src (#27496) (dependabot[bot])
- 27edc1b7354bcf762025fdfa30465706285260ad docs: Add missing doc for
ldap.cache-ttl (#27477) (Saurabh Mahawar)
- b051f496dfbd697f4e0cf5c51fdac10c53976531 misc: Use folly
FunctionScheduler from folly/executors (#27482) (Amit Dutta)

## Release Notes
```
== NO RELEASE NOTE ==
```

## Summary by Sourcery

Documentation:
- Document the 0.298 Presto release, including its features, fixes, and
other notable changes in a new release notes page.

---------

Co-authored-by: Steve Burnett <burnett@pobox.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Zac Blanco <zachary.blanco@bytedance.com>
Co-authored-by: Timothy Meehan <tim@timdmeehan.com>
prestodb-ci added a commit that referenced this pull request Jun 12, 2026
# Missing Release Notes
## Apurva Kumar
- [x] https://github.com/prestodb/presto/pull/27616 feat: Add PUFFIN
file format enum to FileFormat wrapper [presto][iceberg] (#27616)
(Merged by: Han Yan)
- [x] https://github.com/prestodb/presto/pull/27614 feat: Bump Iceberg
[presto][iceberg] dependency from 1.10.0 to 1.10.1 (#27614) (Merged by:
Dong Wang)
- [x] https://github.com/prestodb/presto/pull/27421 feat: Prism <>
Iceberg [prism] Support SQL-standard time travel syntax (FOR TIMESTAMP
AS OF) (#27421) (Merged by: Kevin Tang)

## Arjun Gupta
- [x] https://github.com/prestodb/presto/pull/27642 feat(scheduler):
Allow configured resource groups to bypass cluster-overload throttling
(#27642) (Merged by: Arjun Gupta)

## Chandrakant Vankayalapati
- [x] https://github.com/prestodb/presto/pull/27706 fix(analyzer): Skip
unmapped derived columns in MV partition filtering (Merged by:
Chandrakant Vankayalapati)

## Deepak Mehra
- [x] https://github.com/prestodb/presto/pull/25107 feat(connector): Add
Azure Blob Storage and ADLS Gen2 support (Merged by: Jalpreet Singh
Nanda)

## Dilli Babu Godari
- [x] https://github.com/prestodb/presto/pull/26260
feat(plugin-prometheus): Enable case-sensitive identifier support for
Prometheus connector (Merged by: Dilli Babu Godari)
- [x] https://github.com/prestodb/presto/pull/27671 feat: Add TLS/SSL
configuration support for Oracle connector (Merged by: Dilli Babu
Godari)
- [x] https://github.com/prestodb/presto/pull/27670 feat: Add Oracle
i18n character set support (Merged by: Dilli Babu Godari)
- [x] https://github.com/prestodb/presto/pull/27669 feat: Add
configurable JDBC fetch size support (Merged by: Dilli Babu Godari)

## Gary Helmling
- [x] https://github.com/prestodb/presto/pull/27703 feat: Support
extending verifier QueryRewriter (#27703) (Merged by: Jianjian Xie)

## Henry Dikeman
- [x] https://github.com/prestodb/presto/pull/27683 feat(native): Add
native_min_shuffle_compression_page_size_bytes session property (#27683)
(Merged by: Henry Dikeman)
- [x] https://github.com/prestodb/presto/pull/27525 feat(native): Pass
storage parameters to HiveInsertTableHandle in write path (#27525)
(Merged by: Aditi Pandit)

## Kevin Tang
- [x] https://github.com/prestodb/presto/pull/27697 misc(native): Target
Java 8 for presto-on-spark compatibility (#27697) (Merged by: Kevin
Tang)
- [x] https://github.com/prestodb/presto/pull/27696 misc(native-pos):
Extract AbstractNativeProcess from NativeExecutionProcess (#27696)
(Merged by: Kevin Tang)

## Nivin C S
- [x] https://github.com/prestodb/presto/pull/27828 fix(security):
Upgrade redshift-jdbc42 to 2.2.7 to address CVE-2026-8178 (Merged by:
Jalpreet Singh Nanda)
- [x] https://github.com/prestodb/presto/pull/25418
feat(plugin-iceberg): Add support for ALTER COLUMN SET DATA TYPE in the
Iceberg connector (Merged by: Nivin C S)

## Rebecca Schlussel
- [x] https://github.com/prestodb/presto/pull/27830 chore(analyzer):
Remove warn-on-common-nan-patterns config and NaN warning behavior
(Merged by: Rebecca Schlussel)

## Shrinidhi Joshi
- [x] https://github.com/prestodb/presto/pull/27873
refactor(native-pos): Add State enum and lifecycle state machine to
MaterializedOutputBuffer (#27873) (Merged by: Xiaoxuan)
- [x] https://github.com/prestodb/presto/pull/27833 fix(native-pos): Fix
MaterializedOutput correctness and crash bugs in close/finish lifecycle
(Merged by: Shrinidhi Joshi)

## Sreeni Viswanadha
- [x] https://github.com/prestodb/presto/pull/27708 feat(optimizer): Add
per-column predicates for ROW IN/NOT IN (Merged by: Sreeni Viswanadha)
- [x] https://github.com/prestodb/presto/pull/27712 feat(optimizer):
Push HAVING filter through MAX/MIN/ARBITRARY aggregations (Merged by:
Sreeni Viswanadha)
- [x] https://github.com/prestodb/presto/pull/27680 perf(optimizer):
Remove partition key restriction from ROW IN to disjunction rewrite
(Merged by: feilong-liu)
- [x] https://github.com/prestodb/presto/pull/27641 feat(optimizer): Add
TopN late materialization using $row_id (Merged by: Sreeni Viswanadha)
- [x] https://github.com/prestodb/presto/pull/27664 fix(planner):
Propagate streamPropertiesFromUniqueColumn through TopN (Merged by:
Sreeni Viswanadha)

## feilong-liu
- [x] https://github.com/prestodb/presto/pull/27773 fix(planner): Fix
ConstantExpression type mismatch in PropertyDerivations.visitProject
(Merged by: feilong-liu)

## join-theory-de
- [x] https://github.com/prestodb/presto/pull/27480 feat: Add
split_part_reverse as a global Presto SQL inline function (#27480)
(Merged by: Sreeni Viswanadha)

## peterenescu
- [x] https://github.com/prestodb/presto/pull/27600 fix: Integer
overflow in range filter boundary conversion (#27600) (Merged by: Amit
Dutta)

## shelton408
- [x] https://github.com/prestodb/presto/pull/27673 fix(server): Fix
FutureStateChange listener leak in
HttpRemoteTaskWithEventLoop.whenSplitQueueHasSpace() (Merged by:
shelton408)

## sumi-mathew
- [x] https://github.com/prestodb/presto/pull/27865 fix(security):
Upgrade opentelemetry-api to 1.62.0 to address CVE-2026-45292 (Merged
by: nishithakbhaskaran)

## zhichenxu-meta
- [x] https://github.com/prestodb/presto/pull/27603 feat(optimizer): Add
distributed execution for RPCNode via rpc_function_parallelism session
property (Merged by: feilong-liu)

# Extracted Release Notes
- #25424 (Author: Shahim Sharafudeen): fix(security): Upgrade gcs
version to 2.2.28
- Upgrade google-oauth-client version to 1.34.1 to address
`CVE-2020-7692 <https://github.com/advisories/GHSA-f263-c949-w85g>`_ and
`CVE-2021-22573 <https://github.com/advisories/GHSA-hw42-3568-wj87>`_.
- #26195 (Author: Gary Helmling): fix: Allow DELETE queries to run on
Presto on Spark
  - Fix a gap in query commit for DELETE queries when running on Spark.
- #26369 (Author: Bryan Cutler): feat: Adding Apache Arrow FlightShim
for connector federation in C++ workers
  - Adding presto-flight-shim server module for connector federation.
- #26833 (Author: Yabin Ma): chore(analyzer)!: Change
fieldNamesInJsonCastEnabled default value to true
- Update the default behavior of ``field_names_in_json_cast_enabled``
from false to true. When ``field_names_in_json_cast_enabled = true``,
JSON fields are assigned to ROW fields by matching field names
regardless of their order in the JSON object. Queries that rely on JSON
field order when casting to ROW may return different results after
upgrading. If your workload depends on the previous positional behavior,
restore it by setting: ``SET SESSION field_names_in_json_cast_enabled =
false;``.
- #26959 (Author: Timothy Meehan): feat(optimizer): Support incremental
refresh of materialized views
  - Add incremental refresh for materialized views.
- Add incremental refresh for materialized views in the Iceberg
connector.
- #26995 (Author: Auden Woolfson): fix: Allow view querying with Mongo
connector
  - Add view querying capabilities in the Mongo connector.
- #27002 (Author: Sayari Mukherjee): feat(client): Add connection
validation feature to enhance connection reliability
- Add connection validation feature to enhance connection reliability.
This can be enabled with the ``validateConnection`` connection property
to execute a validation query immediately after establishing the
connection.
- #27085 (Author: Dong Wang): feat(plugin-iceberg): Push down
min/max/count based on file stats
- Add support for ``min/max/count`` aggregation push down based on file
stats. This can be toggled with the ``aggregate_push_down_enabled``
session property or the ``iceberg.aggregate-push-down-enabled``
configuration property.
- #27129 (Author: Miguel Blanco Godón): fix(plugin-delta): Creating
Delta table to unaccesible location makes the metastore inconsistent
- Fix a bug that made the metastore inconsistent if created a Delta Lake
table to an inaccessible location.
- #27200 (Author: Pratyaksh Sharma): revert: Add metastore cache
invalidation in iceberg
  - Add metastore cache invalidation procedure for Iceberg connector.
- #27240 (Author: Joe Abraham): feat: Add read support for row lineage
columns in Iceberg connector
- Add read support for Iceberg V3 row lineage hidden columns `_row_id`
and `_last_updated_sequence_number`.
- #27282 (Author: Pratyaksh Sharma): feat(connector): Add support for
`execute` procedure in JDBC connectors
  - Add support for `execute` procedure in JDBC connectors.
- #27293 (Author: Sayari Mukherjee): chore(deps): Update jackson version
to 2.18.6
- Upgrade jackson dependency from 2.15.4 to version 2.18.6 to address
`GHSA-72hv-8253-57qq
<https://github.com/advisories/GHSA-72hv-8253-57qq>`_.
- #27294 (Author: Shahim Sharafudeen): chore(deps): Bump jetty from
12.0.29 to 12.0.34
- Upgrade jetty dependency from 0.27 to version 2.0.2 to address
`CVE-2025-11143 <https://github.com/advisories/GHSA-wjpw-4j6x-6rwh>` and
`CVE-2026-1605 <https://github.com/advisories/GHSA-xxh7-fcf3-rj7f>`_.
- #27325 (Author: Jianjian Xie): feat(connector): Add caching for Lance
connector
- Add configurable index and metadata cache sizes via
lance.index-cache-size and lance.metadata-cache-size.
- Add version-aware dataset caching with snapshot isolation for
consistent query reads.
- #27357 (Author: Prashant Sharma): feat(plugin-iceberg): Add min max
stats for varchar/char column and display as low and high values
  - Add low and high values for varchar/char columns of Iceberg tables.
- #27422 (Author: Chandrakant Vankayalapati): feat(planner): Support
GROUP BY and ORDER BY ordinals in MV query rewriting (#27422)
- Add support for ``GROUP BY`` and ``ORDER BY`` ordinal references in
materialized view query rewriting. Previously, queries like ``SELECT a,
SUM(b) FROM t GROUP BY 1`` would silently skip materialized view
optimization.
- #27430 (Author: Jianjian Xie): feat(connector): Add filter pushdown
for Lance connector
- Add SQL filter pushdown to reduce data read from disk for selective
queries. Supports equality, comparisons, IN lists, IS NULL, and range
predicates on Boolean, Integer, Bigint, Real, Double, Varchar, Date, and
Timestamp types.
- #27483 (Author: Miguel Blanco Godón): feat(plugin-delta): Support
reading tables with column mapping enabled
- Add support for reading Delta Lake tables with column mapping enabled.
- #27486 (Author: Jamille Shao-Ni): feat(protocol): Update annotations
for consistent Thrift serialization support to all TaskResource
endpoints
- Add support for Thrift serialization (`application/x-thrift-binary`,
`application/x-thrift-compact`, `application/x-thrift-fb-compact`) to
all TaskResource endpoints for consistent internal communication
protocol.
- Improve efficiency of coordinator-to-worker communication with 20-40%
smaller payload sizes and 2-3x faster serialization compared to JSON.
- #27491 (Author: Sreeni Viswanadha): feat(optimizer): Rewrite
map_from_entries(ARRAY[ROW(...)]) to MAP(ARRAY[], ARRAY[])
- Optimize `map_from_entries(ARRAY[ROW(...), ...])` by rewriting to
`MAP(ARRAY[keys], ARRAY[values])` at plan time, avoiding intermediate
ROW construction.
- #27493 (Author: Sreeni Viswanadha): fix(planner): Use LinkedHashMap in
optimizer rules to fix type mismatch
- Fix runtime type mismatch crashes in Velox native execution caused by
non-deterministic HashMap iteration order in PreAggregateBeforeGroupId,
PushPartialAggregationThroughExchange, and
MultipleDistinctAggregationToMarkDistinct optimizer rules. Replace
HashMap with LinkedHashMap to preserve aggregation output variable
ordering.
- #27496 (Author: dependabot[bot]): chore(deps): Bump lodash-es from
4.17.23 to 4.18.1 in /presto-ui/src
- Upgrade lodash-es from 4.17.23 to 4.18.1 to address `CVE-2026-4800
<https://nvd.nist.gov/vuln/detail/CVE-2026-4800>`_. This dependency is
used for local development only and does not affect production runtime.
- #27497 (Author: dependabot[bot]): chore(deps): Bump lodash from
4.17.23 to 4.18.1 in /presto-ui/src
- Upgrade lodash from 4.17.23 to 4.18.1 to address multiple security
vulnerabilities: - `CVE-2026-4800
<https://nvd.nist.gov/vuln/detail/CVE-2026-4800>`_. This dependency is
used for local development only and does not affect production runtime.
- #27500 (Author: Sreeni Viswanadha): feat(optimizer): Rewrite ROW
constructor IN to disjunction for partition pruning
- Add optimizer rule RewriteRowConstructorInToDisjunction that rewrites
ROW IN ROW predicates into OR of AND equality chains when all ROW fields
are partition keys, enabling per-column TupleDomain extraction for
partition pruning. Gated behind session property
rewrite_row_constructor_in_to_disjunction (default disabled).
- #27504 (Author: Kevin Tang): feat(analyzer): Add session property to
gate CTAS IF NOT EXISTS query analysis
- Add session property
:ref:`admin/properties-session:\`\`always_analyze_create_table_query_enabled\`\``
to enable analyzing inner queries on ``CREATE TABLE AS SELECT IF NOT
EXISTS`` statements when the target table already exists.
- #27510 (Author: Sreeni Viswanadha): feat(optimizer): Rewrite bucketed
semi-join to join
- Add optimizer rule RewriteBucketedSemiJoinToJoin that rewrites
semi-joins into left joins with distinct aggregation when both sides are
bucketed on the join key, avoiding data shuffle. Gated behind session
property rewrite_bucketed_semi_join_to_join (default disabled).
- #27538 (Author: Chandrakant Vankayalapati): feat(planner): Support
CUBE/ROLLUP/GROUPING SETS column rewriting in MV optimizer (#27538)
- Fix materialized view query rewriting for ``CUBE``, ``ROLLUP``, and
``GROUPING SETS`` clauses. Column references inside these grouping
elements are now correctly rewritten to materialized view columns.
- #27547 (Author: feilong-liu): perf(planner): Optimize query planning
for wide-column projections
- Improve query planning performance for wide-column projections by
adding fast paths that skip unnecessary processing for variable
references, constants, and identity assignments across multiple
optimizer rules.
- #27549 (Author: Chandrakant Vankayalapati): feat(planner): Support
scalar functions in MV query rewriting (#27549)
- Add support for scalar functions in materialized view query rewriting.
Queries using functions like ``CONCAT``, ``ABS``, ``JSON_EXTRACT``,
``CAST``, ``IF``, ``COALESCE``, and ``CASE`` expressions now correctly
rewrite to scan the materialized view.
- #27553 (Author: feilong-liu): perf(analyzer): Index
RelationType.resolveFields() for O(1) field lookup
- Improve logical planner performance for wide-column queries by
indexing RelationType.resolveFields() for O(1) field lookup instead of
O(N) linear scan.
- #27568 (Author: Sreeni Viswanadha): fix(optimizer): Fix cascading
projection pass-through in PushProjectionThroughCrossJoin
- Fix a bug in PushProjectionThroughCrossJoin optimizer rule where
cascading projections above a cross join could cause validation errors
by dropping pushed variables from intermediate residual projects.
- #27574 (Author: dependabot[bot]): chore(deps): Bump
org.apache.kafka:kafka-clients from 3.9.1 to 3.9.2
- Upgrade org.apache.kafka:kafka-clients from 3.9.1 to 3.9.2 inorder to
address `CVE-2026-35554
<https://github.com/advisories/GHSA-5qcv-4rpc-jp93>`_.
- #27583 (Author: Nandakumar Balagopal): chore(deps): Bump
org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4
- Upgrade org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4
inorder to address `CVE-2026-34480
<https://nvd.nist.gov/vuln/detail/CVE-2026-34480>`_.
- #27597 (Author: Swapnil): fix: Fix race condition in
pruneFinishedQueryInfo causing task memory leak
- Fix race condition in pruneFinishedQueryInfo causing task memory leak.
- #27598 (Author: Sreeni Viswanadha): feat(optimizer): Extend
JoinPrefilter to support complex probe-side patterns
- Add new session property
`join_prefilter_build_side_with_complex_probe_side` (default false) to
extend join prefilter optimization to support complex probe-side
patterns including UNION ALL, cross join, unnest, and aggregation.
- #27606 (Author: dependabot[bot]): chore(deps): Bump
org.bouncycastle:bcprov-jdk18on from 1.81 to 1.84 in /presto-tests
- Upgrade org.bouncycastle:bcprov-jdk18on from 1.81 to 1.84 to resolve
`CVE-2026-0636 <https://nvd.nist.gov/vuln/detail/CVE-2026-0636>`_.
- #27613 (Author: Shahim Sharafudeen): fix(security): Upgrade
async-http-client to 3.0.9 to address CVE-2026-40490
- Upgrade async-http-client to version 3.0.9 to address `CVE-2026-40490
<https://github.com/advisories/GHSA-cmxv-58fp-fm3g>`_.
- #27639 (Author: Chandrakant Vankayalapati): feat: Add
authorizedPrincipal to AuthorizedIdentity for gateway identity
propagation (#27639)
- Add optional authorizedPrincipal to AuthorizedIdentity to support
gateway identity propagation, allowing the session principal to reflect
the original client instead of the gateway.
- #27645 (Author: Nivin C S): fix: Fix failure when inserting into
Iceberg tables partitioned by day(timestamp with time zone)
- Fix failure during INSERT into Iceberg tables partitioned by day()
when using timestamp with time zone columns.
- #27659 (Author: Reetika Agrawal): feat(plugin-iceberg): Add changes
for passing iceberg V3 initialDefaultValue while read
  - Add changes for passing iceberg V3 initialDefaultValue while read.
- #27663 (Author: feilong-liu): feat: Add partition-aware grouped
execution for bucketed tables
- Add `partition_aware_grouped_execution` session property to schedule
each (bucket, partition) as a separate lifespan in grouped execution,
reducing per-lifespan data volumes for bucketed tables. Disabled by
default.
- Add support for partition-aware grouped execution in the Hive
connector, creating per-(bucket, partition) split queues and compound
partition handles.
- #27677 (Author: Timothy Meehan): feat(analyzer): Allow HAVING in
materialized view query rewrite
- Allow HAVING in queries that are transparently rewritten onto a
materialized view.
- #27678 (Author: Sreeni Viswanadha): perf(optimizer): Clean up
prefilter distinct limit
- Improve PrefilterForLimitingAggregation optimizer to exclude partition
keys from the DistinctLimit, improving convergence speed for GROUP BY +
LIMIT queries on partitioned tables.
- Add N <= 1000 limit guard to PrefilterForLimitingAggregation to
restrict the optimization to small limits.
- #27685 (Author: Glerin Pinhero): chore(deps): Upgrading mongodb driver
to mongodb driver sync
  - Upgrade mongo-java-driver to mongodb-driver-sync.
- #27691 (Author: Sergey Pershin): fix: Take 'finishingTime' and
'planningTime' out of 'executionTime' (#27691)
- Fix 'planningTime' and 'finishingTime' are no longer added to the
'executionTime'. 'executionTime' is now a true execution time - how long
it took the query to run the compute. It can be used to measure the
efficiency of the workers w/o added planning time or the time spent on
final steps, like partition registration.
- #27700 (Author: feilong-liu): feat(optimizer): Add session properties
for RPC streaming mode and batch dispatch size
- Add ``rpc_streaming_mode`` session property to control RPC function
execution mode (``PER_ROW`` or ``BATCH``). Default: ``PER_ROW``.
- Add ``rpc_dispatch_batch_size`` session property to control batch size
for RPC dispatch in ``BATCH`` mode. Default: ``128``. A value of ``0``
collects all rows before dispatching.
- Fix RPC options argument parsing to use the last argument instead of
hardcoding index 3.
- #27714 (Author: feilong-liu): fix: UnsupportedOperationException for
UnionNode in AddExchanges fixed parallelism path
- Fix UnsupportedOperationException when using
`remote_function_names_for_fixed_parallelism` with queries containing
UNION ALL below the remote function projection.
- #27715 (Author: nishithakbhaskaran): chore(deps): Bump
http-proxy-middleware from 2.0.7 to 2.0.9 in /presto-ui/src to resolve
CVE-2025-32996
- Upgrade http-proxy-middleware from 2.0.7 to 2.0.9 in /presto-ui/src to
resolve `CVE-2025-32996
<https://nvd.nist.gov/vuln/detail/CVE-2025-32996>`_.
- #27722 (Author: dependabot[bot]): chore(deps): Bump
org.postgresql:postgresql from 42.7.9 to 42.7.11
- Upgrade org.postgresql:postgresql from 42.7.9 to 42.7.11 to resolve
`CVE-2026-42198 <https://nvd.nist.gov/vuln/detail/CVE-2026-42198>`_.
- #27728 (Author: Timothy Meehan): fix(plugin-iceberg): Do not check
access control for MV data table
- Fix access control for materialized view storage tables when
``legacy_materialized_views=false``: storage-table access control is
bypassed during MV expansion, while direct queries by name still go
through access control.
- Add ``iceberg.materialized-view-default-storage-schema`` config to
route storage tables into a single schema. Defaults to the materialized
view's own schema; per-MV ``storage_schema`` overrides.
- #27748 (Author: Pratik Joseph Dabre): feat(plugin-native-sidecar): Add
support for adding plugin loaded types in sidecar plugin
  - Add support for adding plugin loaded types in sidecar plugin.
- #27764 (Author: Sreeni Viswanadha): feat(optimizer): Push aggregation
through UNION ALL with disjoint group keys
- Add ``push_aggregation_through_disjoint_union`` session property
(default off) that pushes a ``GROUP BY`` aggregation completely below
``UNION ALL`` when at least one grouping key has constant values that
are pairwise distinct across the union branches, eliminating the final
aggregation.
- #27765 (Author: Sreeni Viswanadha): fix(planner): Prune empty inputs
through local exchanges in SimplifyPlanWithEmptyInput
- Improve ``SimplifyPlanWithEmptyInput`` to prune empty subtrees that
the connector PHYSICAL stage produces under local exchanges.
Multi-source exchanges with mixed empty / non-empty children now drop
the empty branches, eliminating idle no-op operators at runtime for wide
``UNION ALL`` queries where some branches are pruned to empty by
partition / snapshot filtering. Single-source exchanges and write-side
subtrees (``TableWriter`` / ``TableFinish``) are preserved.
- #27766 (Author: Timothy Meehan): feat(plugin-iceberg): Push down
`_last_updated_sequence_number` predicates
- Add predicate push down on ``_last_updated_sequence_number`` for
file-level pruning.
- #27767 (Author: Reetika Agrawal): feat(native): Iceberg V3
initialDefaultValue
  - Add support for iceberg V3 initialDefaultValue.
- #27769 (Author: Shahim Sharafudeen): fix(security): Upgrade Netty to
4.2.13.Final to address CVE-2026-42584
- Upgrade Netty to 4.2.13.Final in response to `CVE-2026-41417
<https://github.com/advisories/GHSA-fghv-69vj-qj49>` , `CVE-2026-44248
<https://github.com/advisories/GHSA-jfg9-48mv-9qgx>` , `CVE-2026-42577
<https://github.com/advisories/GHSA-rwm7-x88c-3g2p>` , `CVE-2026-42578
<https://github.com/advisories/GHSA-45q3-82m4-75jr>` , `CVE-2026-42579
<https://github.com/advisories/GHSA-cm33-6792-r9fm>` , `CVE-2026-42580
<https://github.com/advisories/GHSA-m4cv-j2px-7723>`, `CVE-2026-42581
<https://github.com/advisories/GHSA-xxqh-mfjm-7mv9>` , `CVE-2026-42582
<https://github.com/advisories/GHSA-2c5c-chwr-9hqw>` , `CVE-2026-42583
<https://github.com/advisories/GHSA-mj4r-2hfc-f8p6>` , `CVE-2026-42584
<https://github.com/advisories/GHSA-57rv-r2g8-2cj3>` , `CVE-2026-42585
<https://github.com/advisories/GHSA-38f8-5428-x5cv>` , `CVE-2026-42586
<https://github.com/advisories/GHSA-rgrr-p7gp-5xj7>` and `CVE-2026-42587
<https://github.com/advisories/GHSA-f6hv-jmp6-3vwv>`_.
- #27774 (Author: Timothy Meehan): feat(plugin-iceberg): Bound MV
refresh
- Add ``max_snapshots_per_refresh`` materialized view property to bound
how far each base table advances per ``REFRESH MATERIALIZED VIEW``.
Defaults to ``0`` (unbounded). Requires Iceberg V3 row lineage; V2
tables fall back to unbounded refresh.
- Add ``iceberg.materialized-view-default-max-snapshots-per-refresh``
config property and matching session property to set the default bound.
- #27777 (Author: sumi-mathew): fix(security): Upgrade libthrift to
address CVE-2026-41604
- Upgrade libthrift 0.23.0 in response to `CVE-2026-41604
<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-41604>`_.
- #27778 (Author: Chandrakant Vankayalapati): fix(analyzer): Prevent
incorrect materialized view query rewrite when base query lacks GROUP BY
- Fix data correctness bugs in ``MaterializedViewQueryOptimizer`` where
queries without ``GROUP BY`` could be incorrectly rewritten to use
materialized views with ``GROUP BY``, producing fewer rows than
expected. Alias mismatches and scalar expression bypasses allowed
invalid rewrites that silently collapsed duplicate rows.
- #27790 (Author: Chandrakant Vankayalapati): fix(plugin-singlestore):
Fix type mapping for SingleStore JDBC client 1.2.11
- Fix TINYINT type mapping to preserve TINYINT semantics instead of
incorrectly mapping to BOOLEAN after JDBC driver upgrade.
- Fix varchar type mapping for TEXT types to use byte-based thresholds
matching the JDBC driver's COLUMN_SIZE reporting.
- #27797 (Author: Ben Hu): chore(deps): Update BigQuery Storage API SDK
from v1beta1 to v1
  - Update Google BigQuery Storage API SDK from v1beta1 to v1.
- #27803 (Author: Sayari Mukherjee): chore(deps): Upgrade
parquet-jackson to 1.17.1 in Iceberg connector
- Upgrade parquet-jackson to 1.17.1 in response to `GHSA-72hv-8253-57qq
<https://github.com/advisories/GHSA-72hv-8253-57qq>`_.
- #27806 (Author: Timothy Meehan): feat(plugin-iceberg): Add `ALTER
MATERIALIZED VIEW SET PROPERTIES`
- Add ``ALTER MATERIALIZED VIEW <name> SET PROPERTIES (...)`` SQL
statement to update materialized view properties after creation.
:pr:`27806`.
- Allow updating ``stale_read_behavior``, ``staleness_window``, and
``refresh_type`` on existing materialized views via ``ALTER MATERIALIZED
VIEW ... SET PROPERTIES`` (requires
``legacy_materialized_views=false``). :pr:`27806`.
- #27810 (Author: Reetika Agrawal): feat: Add support for ALTER TABLE
SET DEFAULT for Iceberg write-default
- Add support for `ALTER TABLE ... ALTER COLUMN ... SET DEFAULT` syntax
to update Iceberg column write-default values.
- Add support for updating column write-default values using `ALTER
TABLE ... SET DEFAULT` (requires Iceberg format version 3+).
- Update write-default operations to preserve existing initial-default
values as metadata-only changes.
- #27816 (Author: Timothy Meehan): fix(plugin-iceberg): Add warnings for
stitching and refresh fallback
- Add warning when predicate stitching or incremental refresh falls back
to full recompute.
- #27819 (Author: Sreeni Viswanadha): feat(optimizer): Replace timeout
with scan limiting for predictable prefilter performance
- Improve PrefilterForLimitingAggregation to use scan limiting instead
of timeouts for more predictable performance. The optimization now
limits the source scan to 1000 * LIMIT rows before applying DISTINCT
LIMIT.
- #27820 (Author: Timothy Meehan): feat(plugin-iceberg): Make MV
stitching and incremental refresh cost-based
- Add `materialized_view_stitching_strategy` and
`materialized_view_incremental_refresh_strategy` session properties
(values: `ALWAYS`, `NEVER`, `AUTOMATIC`; default: `ALWAYS`). Under
`AUTOMATIC`, the optimizer selects between the rewrite and the full
alternative based on cost; when stats are unavailable it falls back to
row-count comparison.
- #27829 (Author: Rebecca Schlussel): chore: Remove old NaN definition
and mark config as defunct
  - Remove configuration property `use-new-nan-definition`.
- #27835 (Author: Timothy Meehan): fix(plugin-iceberg): Fix duplicate
view creation in Hive catalog
- Fix race where concurrent ``REFRESH MATERIALIZED VIEW`` on the same
Hive-backed Iceberg materialized view could lose a watermark update.

# All Commits
- 4f8be7c2dcb7def7c113503da91b6f726b23ab3c fix(security): Upgrade
redshift-jdbc42 to 2.2.7 to address CVE-2026-8178 (#27828) (Nivin C S)
- 54cabf9207d654dc8b42ea3c6a2ca3cb4de2f736 chore(ci): Advance velox
(#27886) (Amit Dutta)
- 39e9ec63aae2bc6342e90d96c3d1f2f5ffe5df79 fix(security): Upgrade
opentelemetry-api to 1.62.0 to address CVE-2026-45292 (#27865)
(sumi-mathew)
- e78428e6303bd1aeadf2190daeb2672caf1a9a5b refactor(native-pos): Add
State enum and lifecycle state machine to MaterializedOutputBuffer
(#27873) (#27873) (Shrinidhi Joshi)
- 3ed75c8d7a84328335ed121adba2c03d3d459257 fix(native-pos): Move
ShuffleWriter and pool creation inside MaterializedOutputBuffer (#27872)
(#27872) (Shrinidhi Joshi)
- c3946f3325806101255c996a7b79c473183e068e test: Add end to end tests
for string functions (#26950) (Allen Shen)
- 869548bd2558d856b37a80762313b237312a9c46 refactor(native): Migrate to
PrestoQueryConfig for array_agg.ignore_nulls (#27876) (Maria Basmanova)
- 3f8e87638b102a1d3d93a57e9f16e24de28447be fix(native-pos): Add typed
units to MaterializedOutputBuffer runtime stats (#27870) (Shrinidhi
Joshi)
- 86ab4a4a6df0c5984f8add15caaf9fe1a93a7977 refactor(native-pos): Remove
cooperative backpressure and `useSystemMemory` config (#27869)
(Shrinidhi Joshi)
- a31f69f64d856574529ed5a6b104cf8c564f1c32 chore(deps): Update jackson
version to 2.18.6 (#27293) (Sayari Mukherjee)
- 871f92d45a81c580384681437891908e01506b92 chore: Force modernizer use
for all modules up to presto-main-base (#27867) (Zac Blanco)
- a51fe41c87a2ff77c7c5297b144288f6e04b4997 test(native-pos): Reduce
`kLocalShuffleMaxPartitionBytes` default to 64KB (#27868) (Shrinidhi
Joshi)
- 4617d4685a9fe2262240dc1c44cda2e1be37d747 feat: Adding Apache Arrow
FlightShim for connector federation in C++ workers (#26369) (Bryan
Cutler)
- 6185c1b22293f3d5c1bd0abed891224426ddb363 chore: Bump webpack-cli from
5.1.4 to 7.0.2 in /presto-ui/src (#27852) (sumi-mathew)
- a658c94f2b81f5c7abe400c192deeb84a8346d7a feat(plugin-iceberg): Make MV
stitching and incremental refresh cost-based (#27820) (Timothy Meehan)
- 46cc03138b034839bc05468be6ad801e4f665cba fix(plugin-iceberg): Fix
duplicate view creation in Hive catalog (#27835) (Timothy Meehan)
- 3df2afa1769509be19279c9433367ae36c0df300 chore(analyzer)!: Change
fieldNamesInJsonCastEnabled default value to true (#26833) (Yabin Ma)
- 381e181176178892dbf73a6422dd2bcafbbfa1c6 chore(deps): Bump jetty from
12.0.29 to 12.0.34 (#27294) (Shahim Sharafudeen)
- ee7c8a567ffb3e5cf40a31fcbe5904eb5109265f fix(native): Fix CMake link
order for presto_server_lib (#27847) (Tirumala Saiteja Goruganthu)
- 679d5342881d1021b9a3d038ebec0cd98bb2b4ac docs: Fix formatting of table
in connector/iceberg.rst (#27859) (Steve Burnett)
- dc48d4a399b800d20d9cff1c26beaa15720e3b04 chore(ci): Advance velox
(#27802) (Amit Dutta)
- b22bb99a7f950980c4b1f04a72c373740e5e92dc docs: Fix prestocpp setup
config file (#27857) (Reetika Agrawal)
- 5608831355838f839b4a428550c50e45ef435360 fix(plugin-iceberg): Disable
equality delete as join for DELETE/UPDATE (#27854) (Naveen Mahadevuni)
- 71088a83203252340f49fcbfe3e7f9c5832342aa chore(deps): Upgrade protobuf
to 4.34.1 (#27844) (bibith4)
- 241c94ac60996f5dfeeb85a3e872e3dfd1b5e251 chore(deps): Upgrade
parquet-jackson to 1.17.1 in Iceberg connector (#27803) (Sayari
Mukherjee)
- 73aa19fda74895b62ebe545b1e500813d00a258d fix(testing): Fix TPC-H
native-execution tests to use the right storage format and standard
queries (#27581) (Pramod Satya)
- f7c0ab9e2b7230829372cf24b4c640f44be31e5a feat(optimizer): Add
per-column predicates for ROW IN/NOT IN (#27708) (Sreeni Viswanadha)
- 41a66fc0fe2fd7707fd84062cf075a9a683803b1 fix(native): Allow UTC
timezone (key=0) in session config (#27309) (Shakyan Kushwaha)
- 77e782ce8de12518155cfb30d472e7f3d75afa21 chore(deps): Upgrade
eslint-plugin-react-hooks to version 7.1.1 (#27845) (bibith4)
- 7ee85da37a4d09182392b8c05a9e0622e453acfd fix(native): Possible segv in
system data source creation (#27807) (Christian Zentgraf)
- b7f8f05a286a1f611e48a04babf2cf99b8688507 fix(plugin-iceberg): Add
warnings for stitching and refresh fallback (#27816) (Timothy Meehan)
- b30db0a9a01ee92673327ec7df909eeee7203cb3 chore(deps): Upgrade
datasketches-java to version 6.2.0 (#27839) (Sayari Mukherjee)
- be01a17a06c16cb8004736e0b1f2dc5488805300 refactor(planner): Extract
shared expression rewriter for MV query optimizer (#27732) (#27732)
(Chandrakant Vankayalapati)
- 10d55723b93ccd907a1bba2736428271abc53bcf fix: Disallow
rewrite_data_files in Iceberg if filter pushdown enabled (#27838) (Dong
Wang)
- 5aa4abed4085cadd7ef5a0b8f47673486245c9b1 feat(optimizer): Push HAVING
filter through MAX/MIN/ARBITRARY aggregations (#27712) (Sreeni
Viswanadha)
- 2301c14aa4def417f7766b2d542ce8191d4c2050 fix(ci): Update release notes
check to use raw markdown body (#27842) (Rebecca Schlussel)
- 917cf4cd78d32ca72ef6b7b45c77c3d44a7b3b26 chore(deps): Update BigQuery
Storage API SDK from v1beta1 to v1 (#27797) (Ben Hu)
- 7faea8429c9b23d67f577f42543796d6a57e0253 feat(protocol): Update
annotations for consistent Thrift serialization support to all
TaskResource endpoints (#27486) (Jamille Shao-Ni)
- a95cb3ef06310b98b43da290d03fd8c8ee82f35c feat(plugin-iceberg): Push
down min/max/count based on file stats (#27085) (Dong Wang)
- 92046f2512be60dd0cb2a5f95377629733fd92e0 fix(analyzer): Relax stale
view validation for compatible string types (#27776) (Reetika Agrawal)
- 6ba9b3a2291d469f384f260451f1b2f776709255 chore(deps): Upgrade
commons-logging dependency from 1.3.5 to 1.3.6 (#27811) (Nivin C S)
- c6505360c4fb31bc5aabbc4e0e41fe285b638912 feat(plugin-iceberg): Bound
MV refresh (#27774) (Timothy Meehan)
- d8a2b53fa42fa41ca5025f9d7640c8eebc9ff15b feat(optimizer): Replace
timeout with scan limiting for predictable prefilter performance
(#27819) (Sreeni Viswanadha)
- 6823d9c9b135e6781bc9f4a30c658eb805b6518a chore(deps): Bump
webpack-dev-server from 5.2.1 to 5.2.4 in /presto-ui/src (#27840)
(dependabot[bot])
- 888991dc8b1a07424aba33f3c8bb440820479f0c chore: Bump commons.codec
from 1.17.2 to 1.21.0 (#27756) (sumi-mathew)
- 1da69a6e246fdeecc7302e8385b7ec4580e27821 fix(optimizer): Handle RPC
functions inside TRY expressions (#27818) (feilong-liu)
- 3233fe18835b38c1f7399f97a937bc79f1208dbf chore(analyzer): Remove
warn-on-common-nan-patterns config and NaN warning behavior (#27830)
(Rebecca Schlussel)
- c11fbf9f5f5415a3e28ea2d677acea27754788ee chore(deps): Upgrading
mongodb driver to mongodb driver sync (#27685) (Glerin Pinhero)
- 79cc9cb5c5bb586c9bde73c362912eef1b1188db refactor: Remove duplicate
check of iceberg v3 validation (#27837) (Reetika Agrawal)
- 3161b74a9d8b201487835db397aefe60178fea0d refactor: Add missing getter
methods and fix ordering in MetadataManagerStats (#27825) (Reetika
Agrawal)
- 3332fa796f9724aed783d4f3f5af81578961b336 feat: Add support for ALTER
TABLE SET DEFAULT for Iceberg write-default (#27810) (Reetika Agrawal)
- b294d8bf029c78a1afbabf3cae66d1b4f305dafa fix(native-pos): Fix
MaterializedOutput correctness and crash bugs in close/finish lifecycle
(#27833) (Shrinidhi Joshi)
- 0da3bb839ea7085c1dd6ca365627ecc107f50973 feat(optimizer): Extend
JoinPrefilter to support complex probe-side patterns (#27598) (Sreeni
Viswanadha)
- da0f63f907f8993b56e9dddf5eedd100a77022f3 feat(plugin-iceberg): Add
`ALTER MATERIALIZED VIEW SET PROPERTIES` (#27806) (Timothy Meehan)
- 9b2559f2138b9e31d5a198b1261d23dee2a15111 chore: Remove old NaN
definition and mark config as defunct (#27829) (Rebecca Schlussel)
- 34d459d66c03e4a866ee2332a28826c90e105222 feat(plugin-iceberg): Add
support for ALTER COLUMN SET DATA TYPE in the Iceberg connector (#25418)
(Nivin C S)
- f12815ce648cfcfdd3721f4cd54a12e56ecdb4b2 chore(deps): Upgrade
openlineage-java to 1.47.1 to fix CVE-2026-40542 (#27812) (Dilli Babu
Godari)
- fd67186b43f87362df58e8ab1cbe79e7f507ffa1 feat: Wire up IndexSource
splits to Spark task sources (#27817) (Zac)
- 65547f47ad87d4ccc1e7576d7cc864f717490893 feat(native): Iceberg V3
initialDefaultValue (#27767) (Reetika Agrawal)
- c2f37fc3ec49e3455e91afaef31dfb034e617bc8 fix: Enable partition-aware
grouped execution for index joins (#27701) (Zac)
- 4509fb24ec79df4093a83ffb50e6d688ee0f0854 chore(deps): Upgrade ratis
dependencies from 3.1.3 to 3.2.2 (#27787) (Nivin C S)
- 1d6737a6624fa048e2db721b905861f9958ee092 fix(planner): Prune empty
inputs through local exchanges in SimplifyPlanWithEmptyInput (#27765)
(Sreeni Viswanadha)
- d7f0f924c30e79238d20113afbc2977536ef35b7 misc(native): Target Java 8
for presto-on-spark compatibility (#27697) (#27697) (Kevin Tang)
- b4ce8d0d82797243153502c17769c0cfde8e6c5c misc(native-pos): Extract
AbstractNativeProcess from NativeExecutionProcess (#27696) (#27696)
(Kevin Tang)
- 18e730b1da26f301fe7362f514252f370671d623 docs: Fix errors in doc build
(#27805) (Steve Burnett)
- 81d4bde174f8e7dbdd1c9dbae1ecf3330b16267c feat(client): Add connection
validation feature to enhance connection reliability (#27002) (Sayari
Mukherjee)
- f0d744296a0ba0f3c4031fde5cd9eaa370d1e397 feat(optimizer): Push
aggregation through UNION ALL with disjoint group keys (#27764) (Sreeni
Viswanadha)
- bf30efcd530b9b181ec21672b8140ec0ebf6231a feat(plugin-prometheus):
Enable case-sensitive identifier support for Prometheus connector
(#26260) (Dilli Babu Godari)
- 9bacdef43077268ca4abefd24718cfc8caef2b1c perf(native-pos): Fix OOM due
to excessive memory usage in BroadcastFileReader (#27798) (Shrinidhi
Joshi)
- 95db1c86b6098026c48167dfa751393359ebdab5 feat(plugin-iceberg): Push
down `_last_updated_sequence_number` predicates (#27766) (Timothy
Meehan)
- 76d8bf2f42476c36e429e7515797f452ca79aef3 fix(plugin-iceberg): Handle
deprecated Iceberg write.object-storage.path property (#27758) (Reetika
Agrawal)
- 52f8f99b36a43d89f448a54b5220ad659fd3a5e0 fix(security): Upgrade Netty
to 4.2.13.Final to address CVE-2026-42584 (#27769) (Shahim Sharafudeen)
- 7056bdb10dafdcdd36649535c27e652ab843ebbd feat(plugin-native-sidecar):
Add support for adding plugin loaded types in sidecar plugin (#27748)
(Pratik Joseph Dabre)
- 21a6092869bf9e7f0832e15879e5a023164b6723 feat(native-pos): Make
MaterializedOutputBuffer size configurable with dynamic drain threshold
(#27795) (#27795) (Shrinidhi Joshi)
- 770df6161cd196d61f9fdedd9595e453ea621a0b fix(native-pos): Add flow
control logging to MaterializedOutputBuffer (#27794) (#27794) (Shrinidhi
Joshi)
- c237df17e5c216ee75913d28f5f9244dca904070 chore(ci): Advance velox
(#27786) (Joe Abraham)
- 18fec98bdd3485e64d03bc36bcd7c05f96c555c1 chore(deps): Upgrade jest
version to 30.3.0 (#27657) (Sayari Mukherjee)
- ace806dd47e337d85a74ef814ccae4d530057db1 test: Add end to end test for
jaccard_index (#27591) (jkhaliqi)
- e2c083acc87b705657c832dbec1c4f66f90825f2 fix(plugin-singlestore): Fix
type mapping for SingleStore JDBC client 1.2.11 (#27790) (Chandrakant
Vankayalapati)
- 3449d457efacef3697c832b87d4657522cd9a9d2 chore(deps): Upgrade gson
dependencies from 2.12.1 to 2.14.0 (#27779) (Nivin C S)
- c45405dfc8cf2017f62e5e27c3c860d9c697cdc8 fix(security): Upgrade
libthrift to address CVE-2026-41604 (#27777) (sumi-mathew)
- d7c8658c654a27caf28e36caf87dba5e170dbde9 docs: Document optimizer and
Iceberg properties (#27775) (Asish Kumar)
- 2acd947be65af53ed13f6651aca0586801575e98 fix(analyzer): Prevent
incorrect materialized view query rewrite when base query lacks GROUP BY
(#27778) (Chandrakant Vankayalapati)
- bb46550550e257affc78ac7ea111f548acd83239 feat: Add partition-aware
grouped execution for bucketed tables (#27663) (feilong-liu)
- f65259c38cf23e1e8b1c5942fb57f069c60c5bcf chore(deps): Upgrade React
and ReactDOM to version 19.2.4 (#27740) (Sayari Mukherjee)
- e1eb82f978ab72e92c79b51b88bb3eb0a152b80c fix: Allow DELETE queries to
run on Presto on Spark (#26195) (Gary Helmling)
- 8982f133809140a3c94595414b1d82518463e3f8 chore(deps): Upgrade
react-simple-code-editor from 0.13.1 to 0.14.1 (#27739) (Sayari
Mukherjee)
- efaf47f42aa9651a4c818c8f9c1eb5af38f90037 feat(plugin-delta): Support
reading tables with column mapping enabled (#27483) (Miguel Blanco
Godón)
- 7a9a2872c084815393063fed6e80a5b39642200a fix(native-pos): Fix
PartitionAndSerialize ROUND_ROBIN sending all rows to partition 0
(#27770) (Shrinidhi Joshi)
- ad09e9bd5ac631c82202985f19207e943dbe4290 fix: Load coordinator plugins
before standard plugins across bundles (#27729) (Pratik Joseph Dabre)
- 426dd7c1b19979788d1300b39d81139620988fcc fix(planner): Fix
ConstantExpression type mismatch in PropertyDerivations.visitProject
(#27773) (feilong-liu)
- 6aed02700ca94defa04d427854e6492119a7ccbe feat(analyzer): Allow HAVING
in materialized view query rewrite (#27677) (Timothy Meehan)
- f1c7b7d3df6736e46e2ac0651d4b44e18c5e4ea0 chore: Bump commons-dbcp2
from 2.12.0 to 2.14.0 (#27754) (sumi-mathew)
- 39513c10a1f0b02195a08f78691b0e4059dace6f chore(deps): Bump
@babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in
/presto-ui/src (#27763) (dependabot[bot])
- 5191b72fb4e7b680c0c36e2e0a5411f251e3b10d fix(plugin-iceberg): Do not
check access control for MV data table (#27728) (Timothy Meehan)
- 00acf72fa459e525d22c37c6abbfa22a3d401497 chore(deps): Bump SingleStore
JDBC client to 1.2.11 (#27759) (Dilli Babu Godari)
- d5b68df83e73e7a2269dd90ce6073d9d2ae3a31d chore(deps): Bump Apache
Lucene 8.11.3 to 9.12.3 (#27757) (Dilli Babu Godari)
- bb26a1ecf9f0badaa655d73a967f5b9426a58a8c test: Add end-to-end tests
for numeric_histogram function (#26968) (Allen Shen)
- 434758f0738d0cee949ce531b3afb82dd095f43b fix: Honor channels parameter
in RestSqlFunctionExecutor (#27684) (Joe Abraham)
- c169c153008d9de15f1848a6d80affd8a40e6ead chore(ci): Advance velox
(#27716) (Amit Dutta)
- 9e8ba1c8cc4b98551ec27935be4b112777b9bb62 fix: Populate session fields
when query fails before Session is authenticated (#27752) (Kevin Tang)
- a3516e21602fcd7cf5bae8ba24ea022232069f5e fix(ui): Fix timeline legend
layout with gaps between colored bars (#27731) (Yihong Wang)
- 89ceb1618bd3ba2338c6a7014720e221d4157714 feat(native): Add
native_min_shuffle_compression_page_size_bytes session property (#27683)
(#27683) (Henry Dikeman)
- 296ee91d3c5bd3b93b898aabca0f29a27ba0878f feat(native-pos):
MaterializedOutput: support replicateNullsAndAny (#27753) (Shrinidhi
Joshi)
- abed99b86b4961672cc569422c30de677377c7a4 chore(deps): Upgrade
html-webpack-plugin from 5.6.0 to 5.6.6 (#27737) (Sayari Mukherjee)
- d93dc465a9859fadfaa7086d7fac3429edd1aafe fix(deps): Bump
presto-spark-classloader-spark3 parent version to 0.298-SNAPSHOT
(#27747) (Kevin Tang)
- d94276a3e66c25a6b67f243fcb148968b8004b98 feat(connector): Add support
for `execute` procedure in JDBC connectors (#27282) (Pratyaksh Sharma)
- d7d029abfb2e92c8d0f549863d846d2f38ba17cd chore(deps): Upgrade
vis-timeline from 7.7.3 to 8.5.0 (#27721) (Sayari Mukherjee)
- c0f9cd4cb13b8d12ab40d67b8d97516776102cf6 fix(security): Upgrade
fast-uri from 3.0.6 to 3.1.2 in /presto-ui/src to resolve CVE-2026-6321
(#27736) (nishithakbhaskaran)
- c2f09fb5eebdbbb5bef5ac6fc9c38d3ac688bc67 chore(deps): Upgrade
@babel/core to version 7.29.0 (#27741) (Sayari Mukherjee)
- 1dcec7b47b2d29d931a7d2e38d391bc10b9c68ed chore: Bump
com.tdunning:t-digest from 3.2 to 3.3 (#27718) (sumi-mathew)
- 4443e880bf4e7317544cb036370f84fd3b9aaf70 chore(deps): Bump
org.postgresql:postgresql from 42.7.9 to 42.7.11 (#27722)
(dependabot[bot])
- cecd415e63bc8810a8833b4155fe754451c3ce36 fix:
UnsupportedOperationException for UnionNode in AddExchanges fixed
parallelism path (#27714) (feilong-liu)
- 09d70672cfab613f4ed12345e517738c6b811e54 chore(deps): Upgrade jQuery
from 3.7.1 to 4.0.0 (#27720) (Sayari Mukherjee)
- 30776976bfc9d67c1807ed68378f0a00f30da5d2 chore(deps): Upgrade
babel-loader:9.1.3 to 10.1.1 (#27656) (Sayari Mukherjee)
- b8d7610a7242d0c9f808e82894349ad15da2aed4 feat(native-pos):
MaterializeExchange: [1/n] Add MaterializedExchange operators and plan
wiring support (#27573) (#27573) (Shrinidhi Joshi)
- d3ad72cea746a0e6de1c3d86cab5a7b5e4b947d8 feat: MetadataExtractor:
prefetch source table for CREATE VECTOR INDEX (#27713) (XiaoDu)
- d9be702264414185ec27deb24571195698185f22 feat: Support extending
verifier QueryRewriter (#27703) (#27703) (Gary Helmling)
- 669219f6c9ad01f371a44d254523f49382346878 feat(scheduler): Allow
configured resource groups to bypass cluster-overload throttling
(#27642) (Arjun Gupta)
- 140e5093ae8cf6f096b29ea5def5b1356a844106 chore(deps): Bump
http-proxy-middleware from 2.0.7 to 2.0.9 in /presto-ui/src to resolve
CVE-2025-32996 (#27715) (nishithakbhaskaran)
- 1e1cc916868eb8bae0efc302c0a2a0e0d10b642e fix(analyzer): Skip unmapped
derived columns in MV partition filtering (#27706) (Chandrakant
Vankayalapati)
- e743edc134fca7e6e0013f717a28f7f0f1775973 docs(security): Improve
authentication docs (#27692) (Pratyaksh Sharma)
- be18151a766a01e0deb227e1830afbf08d9c3ef5 chore(deps): Bump
commons-pool2 from 2.11.1 to 2.13.1 (#27648) (sumi-mathew)
- a78a231330f9baf756bfcb5691042caeab4ebf9c fix(native): Fix BIND
expression loss for captured lambdas in NativeExpressionOptimizer
(#27593) (Pramod Satya)
- 8d334451742d620e3221993756ac9c665093a5ca fix: Integer overflow in
range filter boundary conversion (#27600) (#27600) (peterenescu)
- 09de245ab5b7a1a9d010170cc63605d3592b5201 feat(planner): Support scalar
functions in MV query rewriting (#27549) (#27549) (Chandrakant
Vankayalapati)
- ad7acf8059a873c4c5913863941e384b81e6f8d6 fix: Change error tagging
from internal error to user error (#27686) (Konjac Huang)
- bcb7b22d4ec9aef4c205c02efe3af499460645e8 chore(deps): Bump css-loader
from 7.1.2 to 7.1.4 in /presto-ui/src (#27667) (nishithakbhaskaran)
- 3aefe857faeb551d84e42e3c60d7581ddb8ac84d feat(optimizer): Add session
properties for RPC streaming mode and batch dispatch size (#27700)
(feilong-liu)
- 3c081e145ba23012e87199ce3a1552088f2424de refactor(native): Clean up
the saturate cast of count metric (#27676) (Rui Mo)
- 3334738474b994fadc76139b3066af1e45081b57 feat(plugin-iceberg): Add
changes for passing iceberg V3 initialDefaultValue while read (#27659)
(Reetika Agrawal)
- b3aa1274d232cfdc2729cc240e6676096355b11d perf(optimizer): Clean up
prefilter distinct limit (#27678) (Sreeni Viswanadha)
- decea18211557286b50e2259a11256c0f0146e2f fix: Take 'finishingTime' and
'planningTime' out of 'executionTime' (#27691) (#27691) (Sergey Pershin)
- 2b74be7c29cfc2b69053aad10ae03f6d527e9a7d chore(deps): Bump ts-jest
from 29.4.6 to 29.4.9 in /presto-ui/src (#27660) (nishithakbhaskaran)
- 46167847b821e2b7a3b1d1ce4c723d1b0d4b5863 feat(connector): Add caching
for Lance connector (#27325) (Jianjian Xie)
- 0ea6b49d7d237633583cb434dfff0022f273a20b fix: Replace Optional.or with
ternary for Java 8 compatibility (#27693) (Kevin Tang)
- 298a125e2614b6056cfeaf04f653427487f11a3f chore(deps): Upgrade
styled-components version to 6.4.1 (#27675) (bibith4)
- 2bc8fc58a8c008f2a906f3fd3204ec738fb12b39 feat(native): Upgrade the
nlohman json dependency to 3.12.0 (#27161) (Christian Zentgraf)
- 87f92f669805c16d8e44a8962dd372dcb87e72ad perf(optimizer): Remove
partition key restriction from ROW IN to disjunction rewrite (#27680)
(Sreeni Viswanadha)
- 240d1426878f196224228e49b59ff1e272e7d337 docs(security): Add more
details in docs (#27681) (Pratyaksh Sharma)
- 8319359fd5be8d23955359ff16dfd40b3c6d6a9d docs: Fix phrasing in
connector/lance.rst (#27640) (Steve Burnett)
- c2abc247f313c7d121e2da8f26d23d057681a5de feat: Add authorizedPrincipal
to AuthorizedIdentity for gateway identity propagation (#27639) (#27639)
(Chandrakant Vankayalapati)
- e4a3b89366187f0ed00584f8e2e1f37a87fe71ad revert: Add metastore cache
invalidation in iceberg (#27200) (Pratyaksh Sharma)
- 1604b1e62ea0e6d253d9be303b4c0cba9a89ddae fix: Union of TVF leaf
operators results in multiple split sources (#26980) (mohsaka)
- 9d6e9bafb84f719489b2c7a22ccf309cf690b7b2 feat(plugin-iceberg): Add
zorder to rewrite_data_files (#27561) (mohsaka)
- 579fbea8171c7595cc1175c493e569735dde8153 feat(optimizer): Add TopN
late materialization using $row_id (#27641) (Sreeni Viswanadha)
- cdc69ccba481e0f1f5621c63dc93351c3abb5c51 feat: Add TLS/SSL
configuration support for Oracle connector (#27671) (Dilli Babu Godari)
- e024dd71949156876c6b7e28cbbd437af82731c8 feat: Add Oracle i18n
character set support (#27670) (Dilli Babu Godari)
- 21c9bc66509630fbbad2583489b8fd448b6f370c feat: Add configurable JDBC
fetch size support (#27669) (Dilli Babu Godari)
- 03eed7a800d298ab9505ad04e0b6e80531ec6310 fix: Fix failure when
inserting into Iceberg tables partitioned by day(timestamp with time
zone) (#27645) (Nivin C S)
- c7da91bd852cbad929c5af9a317bbeed0848c8ce fix(server): Fix
FutureStateChange listener leak in
HttpRemoteTaskWithEventLoop.whenSplitQueueHasSpace() (#27673)
(shelton408)
- fc6e087f31a4a72c6deee0efdd1c0ff7f5a92e88 feat(plugin-iceberg): Support
creating branches on empty tables (#27270) (Dong Wang)
- 515241636649b768a06793b9704d6fd3f5f3e003 test: Extend Iceberg schema
evolution tests to cover PARQUET format (#27174) (Dong Wang)
- 2f81bd37b6f989ee61417c9b90d2c31f5b42eb66 feat: Add PUFFIN file format
enum to FileFormat wrapper [presto][iceberg] (#27616) (#27616) (Apurva
Kumar)
- 60d7de71f1ec54dffb09d82ed21efa41ee5c3ca8 chore(deps): Upgrade
testing-library/user-event version to 14.6.1 (#27623) (bibith4)
- f318aaa25583b1450cfde087e0549d648ae5c951 fix(planner): Propagate
streamPropertiesFromUniqueColumn through TopN (#27664) (Sreeni
Viswanadha)
- 5bda1283378de2869ff5d7de3fa45346361fb4d9 chore(ci): Advance Velox
(#27650) (Christian Zentgraf)
- 18388dc797444722d9e83215c707851e0d7df208 feat(plugin-iceberg): Add
rewrite-all option and default value for min-input-files (#27633)
(mohsaka)
- fd2a22b4fc5da6dfc7b1465c5ebda56eb254a1dc docs: Add missing
authentication and advanced configs for Druid connector (#27611)
(Saurabh Mahawar)
- d11ffdbfd04aac7384a45ea5a099a4eb6c624120 chore(deps): Upgrade
react-data-table-component version to 7.7.1 (#27647) (bibith4)
- 39f71665bcdb2483b91ec490aeb25ce0831fcc95 chore(deps): Upgrade
testing-library/jest-dom version to 6.9.1 (#27624) (bibith4)
- d06018be9004b5d5c9991c2df5bc901534667f0d feat: Add split_part_reverse
as a global Presto SQL inline function (#27480) (#27480)
(join-theory-de)
- 5e21de8354972c88b45b2df56b3ce20829bc5619 chore(deps): Upgrade
testing-library/react version to 16.3.2 (#27625) (bibith4)
- e2bca0766913e60ffd537b72e7ea4a4dba532748 fix(security): Upgrade
async-http-client to 3.0.9 to address CVE-2026-40490 (#27613) (Shahim
Sharafudeen)
- 995dbad434ef0ee2faa4edd1710716dfe32f55ec feat(optimizer): Support
incremental refresh of materialized views (#26959) (Timothy Meehan)
- 993cef3ee9a321a8a507314d03091ced8ac0ab83 feat(connector): Add filter
pushdown for Lance connector (#27430) (jja725)
- 82889cd61264e0013b6a0113f3d82ca8ab3193e1 fix: Avoid int64 overflow in
PlanNodeStatsSummarizer (#27632) (#27632) (Sergey Pershin)
- b2569e841d958ee92950c80818c3408308cc3c57 chore(deps): Bump
org.bouncycastle:bcprov-jdk18on from 1.81 to 1.84 in /presto-tests
(#27606) (dependabot[bot])
- dae4091c7105d1370544bfcb11baf8f8a79256bc fix(plugin-iceberg): Reduce
max history queries to avoid OOM in CI test (#27519) (Dong Wang)
- 91e9132db5abcbfb0d7ab2232602784c5f02d5b4 feat(plugin-native-sidecar):
Add operational metrics to sidecar (#27595) (Pratik Joseph Dabre)
- 4d8da3fa5ec064b13fd658f1fb6802b687ded6de feat(planner): Support
CUBE/ROLLUP/GROUPING SETS column rewriting in MV optimizer (#27538)
(#27538) (Chandrakant Vankayalapati)
- 6f8ecdbd848ee092dc34a162a5073955c840e703 chore(deps): Bump
org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4 (#27583)
(Nandakumar Balagopal)
- 09e522f66c0e716d9b150d708a5fa8de4f762554 fix(security): Upgrade gcs
version to 2.2.28 (#25424) (Shahim Sharafudeen)
- 668ae1086c90f15581549519e49170a5ca864e63 feat: Bump Iceberg
[presto][iceberg] dependency from 1.10.0 to 1.10.1 (#27614) (#27614)
(Apurva Kumar)
- ced25b8965b98cf4a1d660ce7108f5bb39539302 feat(optimizer): Add
distributed execution for RPCNode via rpc_function_parallelism session
property (#27603) (zhichenxu-meta)
- bb615b3890dd3fa61b1d8f3bbafbcc8e71e827a8 fix(plugin-delta): Creating
Delta table to unaccesible location makes the metastore inconsistent
(#27129) (Miguel Blanco Godón)
- dce6efdab414b583632dea0fc20543ae3d8ccd3e fix(plugin-native-sidecar):
Pass session start time as a header in native expression optimizer
(#27545) (Pratik Joseph Dabre)
- 469a6965155e4cf25884c311d4f94d458c034981 feat(native): Add index
source plan conversion with connector extensibility (#27596) (#27596)
(Zac)
- 94a11f78597d12e6246e60ed7c383f597ad90eff chore(deps): Bump
org.codehaus.plexus:plexus-utils from 3.6.0 to 3.6.1 (#27471) (Sayari
Mukherjee)
- 231fd12dcc7025d5724b0cd1ffa25f5a7ce7cdd1 chore(deps): Bump
org.apache.kafka:kafka-clients from 3.9.1 to 3.9.2 (#27574)
(dependabot[bot])
- a8355398f9ad980e2f5ecde9abfac99e18261a76 chore(connector): Upgrade
clickhouse-jdbc to 0.3.2 (#26990) (sumi-mathew)
- 90910c7fe8f6be850a83aa031d5a93559958116b misc(planner): Move
RpcFunctionOptimizer after RewriteRowExpressions (#27594) (feilong-liu)
- 86f564b900c8277a463d5ec77dae08c06401f08d fix: Fix race condition in
pruneFinishedQueryInfo causing task memory leak (#27597) (Swapnil)
- ef8eea0ac3bbba102a98ce7a52992d4d48812124 fix(plugin-native-sidecar):
Add additional CAST for mismatching array constructor args (#27556)
(Pratik Joseph Dabre)
- 47f6dfa53bd3da3ef536aefe45b34263849df9bb chore(deps): Bump
follow-redirects from 1.15.9 to 1.16.0 in /presto-ui/src (#27587)
(dependabot[bot])
- b4a645ad4413900a6f676b72405b418ae96310b8 feat(native): Distributed
Procedure Support (#26375) (Dong Wang)
- 177d6ff7f57064e68b02993611bc4240942d1f4c feat(native): Add
IndexSourceNode planner support and split scheduling (#27296) (#27296)
(Zac)
- 7b2e370a1e61304fc5da17b95186f729a6cd0f0b feat: Reject duplicate
columns in CREATE VECTOR INDEX (#27588) (Ke Wang)
- b2dfddc52733ce66aa7fec66a06d6c8c8d968bec feat: Validate embedding
column type in CREATE VECTOR INDEX (#27589) (Ke Wang)
- 3c36e504600c80364a59f6cb2bdaae004eb1e9b9 refactor(plugin-iceberg):
Defer the start of transaction for procedure (#27586) (Dong Wang)
- 4b775d743ef52b107d04e40b733e244827c709b9 chore(ci): Advance Velox
(#27503) (Christian Zentgraf)
- a82063a0985dc1b54777c6e6354cd5999f4b396d fix(optimizer): Fix cascading
projection pass-through in PushProjectionThroughCrossJoin (#27568)
(Sreeni Viswanadha)
- a2dc569e6cc6b04c4a1012ea5e9fc648b36c0110 fix(plugin-druid): Add
version for lz4-java to fix maven deployment (#27584) (Li)
- 0d7cd9501a0ab75df5dd2b6aac848c7978f0ad75 fix(native): Fix TRY
expression handling in NativeExpressionOptimizer (#27122) (Pramod Satya)
- 5d26fb35bc7f78419156cda64a6f238e92099016 misc: Fix code style issues,
copy-paste bug, and UB in presto-native-execution (#27572) (#27572)
(Amit Dutta)
- 31f7f3c5b6165c118c58db88d12aae9d54b34d83 fix(native): Handle NULL ROWs
when returning from native expression optimizer (#27528) (Pratik Joseph
Dabre)
- 459286a0f0c4ff972e876d5c3d45327fb8499444 fix(native): Fix worker
shutdown sequence (#27566) (#27566) (Sergey Pershin)
- 5bd6ca88673ba2c6b44ec3370d0fd464ab923270 fix: Remove duplicate
checkQueryIntegrity call in CreateMaterializedViewTask (#27567) (Kevin
Tang)
- 913a4285a2817555b70e84f11d82fdb33484d9a7 feat(optimizer): Rewrite
bucketed semi-join to join (#27510) (Sreeni Viswanadha)
- 09400b98c7a46925210ad09ade111536422ed1a6 feat: Add pmod (positive
modulo) scalar function (#27543) (#27543) (Natasha Sehgal)
- dd6606c9d786099e0fb58b232e19654adad25a9c feat(plugin-iceberg): Add
min-input-files, min-file-size-bytes, max-file-size-bytes options to
rewrite_data_files procedure (#27515) (mohsaka)
- 23e35ab6993d62e97f9f180802ac7c55df627ee8 docs: Fix formatting of code
blocks in develop/table-functions.rst (#27502) (Steve Burnett)
- a4f8f58ef4d84c1847b52b30a2643257f0951bca fix(plugin-native-sidecar):
Fix flattened AND/OR expressions by the native expression optimizer
(#27517) (Pratik Joseph Dabre)
- 4c72d5cc1ed99ab1acd13ae92f94d31ef2336637 test: Add e2e tests for
binary functions (#26970) (Allen Shen)
- 4b6d9c9e9f88df699308549064615fada467cca5 feat(native): Pass storage
parameters to HiveInsertTableHandle in write path (#27525) (#27525)
(Henry Dikeman)
- b25bb12435d53d6aaa1b3460c86db908e8983fc3 feat(native): Add Java
planner integration, protocol, and dynamic RPC function detection
(#27555) (abhinavmuk04)
- 62d690b279c0899bc5105f5412ef74a240b96c2e fix(build): Use explicit
optional constructor (#27513) (Christian Zentgraf)
- cc294de45fb8deea40dabf1bbe85321a7dedfdd4 fix(native): Do not discard
all tasks in maybeStartNextQueuedTask() (#27548) (#27548) (Sergey
Pershin)
- 151c3373b1998f0e006a0dec439142d7733c36bc perf(analyzer): Index
RelationType.resolveFields() for O(1) field lookup (#27553)
(feilong-liu)
- 05f8e4404f117c66c1eebd40d1be364ddfe702c3 perf(planner): Optimize query
planning for wide-column projections (#27547) (feilong-liu)
- a3a1d3cdc1d556985f314de0af35a30e1adad0d3 test: Add E2E tests for geo
functions (#26969) (jkhaliqi)
- 6af43bb021706dbaabb55dbff151cf22aaac6bbb feat(analyzer): Add session
property to gate CTAS IF NOT EXISTS query analysis (#27504) (Kevin Tang)
- d488205f1fdedddee6a537e25b704799d3b5e5b8 chore: Update error message
in Iceberg table row deletions (#27495) (nishithakbhaskaran)
- ed41ee81e2377d1944f7ae47f1512f7833549730 feat(optimizer): Rewrite ROW
constructor IN to disjunction for partition pruning (#27500) (Sreeni
Viswanadha)
- b9b15ae4a8b639f4f926695c7e0694d8cf2010de fix(planner): Use
LinkedHashMap in optimizer rules to fix type mismatch (#27493) (Sreeni
Viswanadha)
- dd82b57d2da28e7297b4ef99534da7a74eff6d4f feat(optimizer): Rewrite
map_from_entries(ARRAY[ROW(...)]) to MAP(ARRAY[], ARRAY[]) (#27491)
(Sreeni Viswanadha)
- 65cf3e94214284946710cc21fc7330c0c56e41db chore(deps): Upgrade
testing-library/dom version to 10.4.1 (#27520) (bibith4)
- 40c1c4e2101ec359770f45c5c15f183add900a5a docs(native): Add missing
native session properties (#27506) (Saurabh Mahawar)
- 0b313de489c0ed1b19a1543bab9f23cdb027db2c feat(plugin-iceberg): Add min
max stats for varchar/char column and display as low and high values
(#27357) (Prashant Sharma)
- 1968770e91a1206aaa176148f60b11f7e8178364 test(native): Add E2E tests
for array functions (#26937) (jkhaliqi)
- a92fa12dd45173cf54dee0089887810a9f585fba feat: Prism <> Iceberg
[prism] Support SQL-standard time travel syntax (FOR TIMESTAMP AS OF)
(#27421) (#27421) (Apurva Kumar)
- 7f76c833f5551a8fa4e9e86090c5f3fa135da829 docs(optimizer): Add more
details to the materialized view documentation (#27465) (bibith4)
- 175143b4bf9d0fe5e8246cedbf38614d1c3e113a chore(deps): Upgrade
commons-text version to 1.15.0 (#27494) (bibith4)
- 29ed629bf60c4a508a4a1d1a5c3e730a53491f05 fix: Use namespaced GTest
targets in arrow_flight tests (#27137) (jkhaliqi)
- 291f2048f3bf3b5afe275f0589d547eac3f687a9 feat: Add exchange transport
type (HTTP/ANY) to plan fragments (#27355) (Daniel Bauer)
- ee0eec7b5b12aef7feb1ea6d6dd7411387003caa feat(planner): Support GROUP
BY and ORDER BY ordinals in MV query rewriting (#27422) (#27422)
(Chandrakant Vankayalapati)
- 7655f36483b5074d0394bc1a34ae48c25612b872 feat: Add read support for
row lineage columns in Iceberg connector (#27240) (Joe Abraham)
- 2af1e04aad8d28b7b806f44905abeb7812cc3354 feat: Remove index table
existence check (#27509) (#27509) (Ke Wang)
- 74a3458ab835a8af25aa40f458ac16c0d598a94d feat: Add observability for
query state transitions in Presto (#26418) (#26418) (abhinavmuk04)
- fc3669795814668bd1d90da27bc72ed51ee81eb8 misc: Show stage completion
state in query plan (#27388) (#27388) (feilong-liu)
- 232429917efbbbf3c7d30a3c62f7996fc5b3126f feat(planner): Extract remote
functions from $internal$try lambda in PlanRemoteProjections (#27451)
(feilong-liu)
- 28bb9006e70e7bdfaa1141ee7797e208934a6491 feat: Add number of total
driver threads (#27501) (#27501) (XiaoDu)
- 926e2cdad1cb715542272f634458c9524dff32ea fix: Revised the principal
field retrieval (#27014) (Yihong Wang)
- cc4ec4a173679cfbd8e36893907435e88b5e0bd0 fix: Allow view querying with
Mongo connector (#26995) (Auden Woolfson)
- 52ad58aae1ec9744161af78416b0274fd90de2bb feat(connector): Add Azure
Blob Storage and ADLS Gen2 support (#25107) (Deepak Mehra)
- ec92f2a3ad06bca5375e28b74e1b35eea78be658 chore(deps): Bump lodash from
4.17.23 to 4.18.1 in /presto-ui/src (#27497) (dependabot[bot])
- c1603bd2a9b5e37617d96597ba11a7e22007de79 feat: Add
MergeSumsToVectorSum optimizer rule (#27335) (#27335) (abhinavmuk04)
- cd6ee833414c1bc9e9c910637bcd3eaa7e1e53b0 test(native): Enable cuDF in
native tests (#27369) (Pramod Satya)
- aae3971105e4fa3680e37cf3f392fb04b0b071c2 chore(deps): Bump lodash-es
from 4.17.23 to 4.18.1 in /presto-ui/src (#27496) (dependabot[bot])
- 27edc1b7354bcf762025fdfa30465706285260ad docs: Add missing doc for
ldap.cache-ttl (#27477) (Saurabh Mahawar)
- b051f496dfbd697f4e0cf5c51fdac10c53976531 misc: Use folly
FunctionScheduler from folly/executors (#27482) (Amit Dutta)

## Release Notes
```
== NO RELEASE NOTE ==
```

## Summary by Sourcery

Documentation:
- Document the 0.298 Presto release, including its features, fixes, and
other notable changes in a new release notes page.

---------

Co-authored-by: Steve Burnett <burnett@pobox.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Zac Blanco <zachary.blanco@bytedance.com>
Co-authored-by: Timothy Meehan <tim@timdmeehan.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

from:IBM PR from IBM

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants