feat: Add initial support for Iceberg format version 3#27021
Conversation
579fa72 to
0c2ed1b
Compare
Could we consider adding documentation for these? The second point "Add handling of unsupported v3 features by explicitly rejecting them" would just need that statement. The first - creating Iceberg format version 3 tables, upgrading v2 tables to v3, inserting into v3 tables - do any of these need examples added to the Iceberg doc? Doesn't have to be a big thing, something like "Insert into an Iceberg v3 table following this example:" and a code block. |
3b86f68 to
30d1c7a
Compare
7b0c149 to
7dac029
Compare
Reviewer's GuideAdds guarded support for Iceberg table format version 3: allows create/read/insert/partitioning and upgrades from v2 while enforcing strict format/version guardrails, rejecting unsupported v3 features (encryption, column defaults, PUFFIN deletion vectors) and disallowing v3 row-level operations and OPTIMIZE, backed by a dedicated TestIcebergV3 suite. Sequence diagram for Iceberg v3 table insert validationsequenceDiagram
actor User
participant PrestoCoordinator
participant IcebergAbstractMetadata
participant IcebergCatalog
participant BaseTable
User->>PrestoCoordinator: SQL INSERT INTO iceberg_v3_table
PrestoCoordinator->>IcebergAbstractMetadata: beginInsert(session, tableHandle)
IcebergAbstractMetadata->>IcebergCatalog: getIcebergTable(session, schemaTableName)
IcebergCatalog-->>IcebergAbstractMetadata: Table icebergTable
IcebergAbstractMetadata->>IcebergAbstractMetadata: validateTableMode(session, icebergTable)
IcebergAbstractMetadata->>BaseTable: cast icebergTable to BaseTable
IcebergAbstractMetadata->>BaseTable: currentSnapshot()
BaseTable-->>IcebergAbstractMetadata: Snapshot snapshot
IcebergAbstractMetadata->>IcebergAbstractMetadata: validateTableForPresto(baseTable, Optional.of(snapshotId))
alt metadata.formatVersion < 3 or empty table
IcebergAbstractMetadata-->>IcebergAbstractMetadata: Return without extra checks
IcebergAbstractMetadata-->>PrestoCoordinator: beginIcebergTableInsert(...)
PrestoCoordinator-->>User: INSERT succeeds
else metadata.formatVersion >= 3
IcebergAbstractMetadata->>BaseTable: operations().current()
IcebergAbstractMetadata->>BaseTable: schemasById().get(snapshot.schemaId()) or schema()
IcebergAbstractMetadata->>IcebergAbstractMetadata: check columns for default values
alt any column has initialDefault or writeDefault
IcebergAbstractMetadata-->>PrestoCoordinator: PrestoException NOT_SUPPORTED (column defaults)
PrestoCoordinator-->>User: INSERT fails (v3 column defaults not supported)
else no column defaults
IcebergAbstractMetadata->>IcebergAbstractMetadata: check encryptionKeys, snapshot.keyId, properties[encryption.key-id]
alt any encryption present
IcebergAbstractMetadata-->>PrestoCoordinator: PrestoException NOT_SUPPORTED (encryption)
PrestoCoordinator-->>User: INSERT fails (encryption not supported)
else no encryption
IcebergAbstractMetadata-->>PrestoCoordinator: beginIcebergTableInsert(...)
PrestoCoordinator-->>User: INSERT succeeds
end
end
end
Class diagram for Iceberg v3 guardrails and validationclassDiagram
class IcebergUtil {
<<utility>>
+int MIN_FORMAT_VERSION_FOR_DELETE
+int MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS
+int MAX_SUPPORTED_FORMAT_VERSION
+int parseFormatVersion(String formatVersion)
}
class IcebergAbstractMetadata {
+Optional getProcedureContext()
+ConnectorInsertTableHandle beginInsert(ConnectorSession session, ConnectorTableHandle tableHandle)
+IcebergTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName)
+ConnectorMergeTableHandle beginMerge(ConnectorSession session, ConnectorTableHandle tableHandle)
+ConnectorDeleteTableHandle beginDelete(ConnectorSession session, ConnectorTableHandle tableHandle)
+ConnectorTableHandle beginUpdate(ConnectorSession session, ConnectorTableHandle tableHandle)
+void validateTableMode(ConnectorSession session, Table icebergTable)
+static void validateTableForPresto(BaseTable table, Optional tableSnapshotId)
}
class RewriteDataFilesProcedure {
+ConnectorDistributedProcedureHandle beginCallDistributedProcedure(ConnectorSession session, ConnectorTransactionHandle transaction, ConnectorTableHandle layoutHandle)
}
class IcebergSplitSource {
-ConnectorSplit toIcebergSplit(FileScanTask task)
}
class BaseTable {
+TableOperations operations()
+Snapshot currentSnapshot()
+Snapshot snapshot(long snapshotId)
+String name()
}
class TableMetadata {
+int formatVersion()
+Schema schema()
+Map schemasById()
+Map encryptionKeys()
+Map properties()
}
class Snapshot {
+long snapshotId()
+int schemaId()
+String keyId()
}
class FileScanTask {
+PartitionSpec spec()
+DataFile file()
+List deletes()
}
class DeleteFile {
+FileFormat format()
}
class PrestoException {
+PrestoException(ErrorCode errorCode, String message)
}
class ErrorCodes {
<<enumeration>>
NOT_SUPPORTED
ICEBERG_INVALID_FORMAT_VERSION
}
IcebergAbstractMetadata --> IcebergUtil : uses constants
IcebergAbstractMetadata --> BaseTable : casts Table to
IcebergAbstractMetadata --> TableMetadata : reads metadata
IcebergAbstractMetadata --> Snapshot : validates snapshot
RewriteDataFilesProcedure --> IcebergUtil : uses MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS
RewriteDataFilesProcedure --> BaseTable : formatVersion from operations
IcebergSplitSource --> FileScanTask : reads task
IcebergSplitSource --> DeleteFile : iterates deletes
DeleteFile --> PrestoException : throws when format is PUFFIN
IcebergUtil --> PrestoException : throws when version unsupported
IcebergAbstractMetadata --> PrestoException : throws for column defaults
IcebergAbstractMetadata --> PrestoException : throws for encryption
IcebergAbstractMetadata --> PrestoException : throws for invalid format version
IcebergAbstractMetadata --> PrestoException : throws for unsupported row-level ops
RewriteDataFilesProcedure --> PrestoException : throws when OPTIMIZE on unsupported version
IcebergSplitSource --> PrestoException : throws when PUFFIN deletion vectors used
PrestoException --> ErrorCodes : uses error codes
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've found 4 issues, and left some high level feedback:
- The new constant MAX_SUPPORTED_FORMAT_VERSION is introduced but not used anywhere in this change; either wire it into the relevant validation paths or remove it to avoid confusion.
- The validation and error handling for format versions and update/delete modes (e.g., in beginMerge, beginDelete, beginUpdate, and OPTIMIZE) are very similar but use slightly different exception types/messages; consider centralizing this logic in a shared helper to keep behavior consistent and easier to maintain.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The new constant MAX_SUPPORTED_FORMAT_VERSION is introduced but not used anywhere in this change; either wire it into the relevant validation paths or remove it to avoid confusion.
- The validation and error handling for format versions and update/delete modes (e.g., in beginMerge, beginDelete, beginUpdate, and OPTIMIZE) are very similar but use slightly different exception types/messages; consider centralizing this logic in a shared helper to keep behavior consistent and easier to maintain.
## Individual Comments
### Comment 1
<location> `presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergAbstractMetadata.java:874-875` </location>
<code_context>
- !Optional.ofNullable(icebergTable.properties().get(TableProperties.UPDATE_MODE))
- .map(mode -> mode.equals(MERGE_ON_READ.modeName()))
- .orElse(false)) {
+ if (formatVersion < MIN_FORMAT_VERSION_FOR_DELETE) {
+ throw new PrestoException(ICEBERG_INVALID_FORMAT_VERSION,
+ "Iceberg table updates require at least format version 2 and update mode must be merge-on-read");
+ }
</code_context>
<issue_to_address>
**suggestion:** The error message for low format versions mentions update mode before it is validated, which can be misleading.
The exception text currently states both a format version and update mode requirement, but this branch only validates the format version; update mode could still be valid. Consider separating these into distinct errors (one for unsupported format version, one for invalid update mode) so users can see exactly which precondition failed.
Suggested implementation:
```java
Table icebergTable = getIcebergTable(session, icebergTableHandle.getSchemaTableName());
int formatVersion = ((BaseTable) icebergTable).operations().current().formatVersion();
if (formatVersion < MIN_FORMAT_VERSION_FOR_DELETE) {
throw new PrestoException(
ICEBERG_INVALID_FORMAT_VERSION,
"Iceberg table updates require at least format version 2");
}
if (!Optional.ofNullable(icebergTable.properties().get(TableProperties.UPDATE_MODE))
.map(mode -> mode.equals(MERGE_ON_READ.modeName()))
.orElse(false)) {
throw new PrestoException(
ICEBERG_INVALID_METADATA,
format("Iceberg table updates require table property %s to be set to %s",
TableProperties.UPDATE_MODE,
MERGE_ON_READ.modeName()));
}
/**
```
These edits assume:
1. `ICEBERG_INVALID_METADATA` is already defined in this class or imported; if not, you should use the existing error code previously used for invalid update mode (or introduce one consistent with the rest of the Iceberg module).
2. `Optional`, `TableProperties`, and `MERGE_ON_READ` are already imported/available in this file. If any are missing, add the appropriate imports or static imports matching the existing style in the file.
</issue_to_address>
### Comment 2
<location> `presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergV3.java:43` </location>
<code_context>
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.testng.Assert.assertEquals;
+
+public class TestIcebergV3
+ extends AbstractTestQueryFramework
+{
</code_context>
<issue_to_address>
**suggestion (testing):** Add tests for rejecting unsupported v3 schema default values and table encryption introduced in `validateTableForPresto`.
`validateTableForPresto` now rejects v3 column defaults (`initialDefault`/`writeDefault`) and table encryption, but the current tests don’t cover these failure paths. Please add tests that:
1. Use a v3 table with a column default and assert that INSERT/SELECT fail with the expected `NOT_SUPPORTED` error.
2. Use a v3 table with encryption enabled (e.g., via `TableMetadata.encryptionKeys`/`keyId`/related properties) and assert that operations fail with the expected error.
This will exercise the new validation logic end-to-end.
Suggested implementation:
```java
import java.util.OptionalInt;
import org.testng.annotations.Test;
```
```java
private static final String TEST_SCHEMA = "tpch";
private static final String V3_COLUMN_DEFAULT_TABLE = "v3_column_default";
private static final String V3_ENCRYPTED_TABLE = "v3_encrypted";
```
```java
@Test
public void testV3ColumnDefaultsAreRejected()
{
assertQueryFails(
format("SELECT * FROM %s.%s.%s", ICEBERG_CATALOG, TEST_SCHEMA, V3_COLUMN_DEFAULT_TABLE),
".*Iceberg v3 column default values are not supported.*");
assertQueryFails(
format("INSERT INTO %s.%s.%s VALUES (1)", ICEBERG_CATALOG, TEST_SCHEMA, V3_COLUMN_DEFAULT_TABLE),
".*Iceberg v3 column default values are not supported.*");
}
@Test
public void testV3TableEncryptionIsRejected()
{
assertQueryFails(
format("SELECT * FROM %s.%s.%s", ICEBERG_CATALOG, TEST_SCHEMA, V3_ENCRYPTED_TABLE),
".*Iceberg table encryption is not supported.*");
assertQueryFails(
format("INSERT INTO %s.%s.%s VALUES (1)", ICEBERG_CATALOG, TEST_SCHEMA, V3_ENCRYPTED_TABLE),
".*Iceberg table encryption is not supported.*");
}
}
```
To fully exercise `validateTableForPresto` end-to-end, you’ll also need to:
1. **Create the v3 table with column defaults** in the same warehouse used by the Hadoop catalog:
- Use the Iceberg Java APIs (e.g., `HadoopCatalog` or `TableOperations` directly) pointing at `getIcebergDataDirectoryPath(queryRunner, TEST_SCHEMA)` with `TableProperties.FORMAT_VERSION` set to `3`.
- Define at least one column with `initialDefault`/`writeDefault` in the table’s metadata (either via the public API if available in your Iceberg version or by manipulating the metadata JSON to include the appropriate default value fields).
- Ensure the table is created in the `TEST_SCHEMA` namespace with name `V3_COLUMN_DEFAULT_TABLE` so that Presto sees it as `iceberg.tpch.v3_column_default`.
2. **Create the v3 encrypted table** similarly:
- Use a v3 Iceberg table and configure encryption via `TableMetadata.encryptionKeys` / key ID or the relevant table properties used in your Iceberg version so that the metadata contains an encryption spec.
- Create it with table name `V3_ENCRYPTED_TABLE` in schema `TEST_SCHEMA` so it’s visible as `iceberg.tpch.v3_encrypted`.
3. If `assertQueryFails` has overloads that accept an error code, you may want to tighten the assertions by checking the `NOT_SUPPORTED` error code in addition to the message regex.
These setup steps will ensure that when the tests run the Presto connector loads the tables, triggers `validateTableForPresto`, and hits the new NOT_SUPPORTED paths for v3 column defaults and encryption.
</issue_to_address>
### Comment 3
<location> `presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergV3.java:67` </location>
<code_context>
+ }
+
+ @Test
+ public void testCreateV3Table()
+ {
+ String tableName = "test_create_v3_table";
</code_context>
<issue_to_address>
**suggestion (testing):** Consider adding a negative test for creating a table with an unsupported Iceberg format version (e.g., 4).
The new `MAX_SUPPORTED_FORMAT_VERSION = 3` constant means higher versions should be rejected, and `testCreateV3Table` only covers the success path. Please add a test that attempts to create a table with `"format-version" = '4'` (or >3) and asserts that it fails with the expected error message, so we lock in this behavior and ensure users see a clear error when using unsupported versions.
Suggested implementation:
```java
@Test
public void testCreateV3Table()
{
String tableName = "test_create_v3_table";
try {
assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')");
Table table = loadTable(tableName);
assertEquals(((BaseTable) table).operations().current().formatVersion(), 3);
assertQuery("SELECT * FROM " + tableName, "SELECT * WHERE false");
}
finally {
dropTable(tableName);
}
}
@Test
public void testCreateUnsupportedFormatVersion()
{
String tableName = "test_create_v4_table";
// Ensure clean state in case a previous run created the table
dropTable(tableName);
assertQueryFails(
"CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '4')",
".*format version.*4.*not supported.*");
}
```
The exact error message pattern in the `assertQueryFails` assertion may need to be adjusted to match the actual exception text thrown when `MAX_SUPPORTED_FORMAT_VERSION = 3` is exceeded. After running the test suite once, update the regex string to align precisely with the real error message if it differs.
</issue_to_address>
### Comment 4
<location> `presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergV3.java:107` </location>
<code_context>
+ }
+
+ @Test
+ public void testInsertIntoV3Table()
+ {
+ String tableName = "test_insert_v3_table";
</code_context>
<issue_to_address>
**suggestion (testing):** Add a test to cover rejection of PUFFIN deletion vectors in scan planning.
The new logic throws a `PrestoException` when a `FileScanTask` has PUFFIN deletion vectors (`deleteFile.format() == PUFFIN`), but this scenario isn’t exercised by the current tests. If the Iceberg test stack allows it, please add a test that creates a v3 table with a PUFFIN delete file and runs a SELECT, asserting the expected `NOT_SUPPORTED` error from `IcebergSplitSource`.
Suggested implementation:
```java
finally {
dropTable(tableName);
}
}
@Test
public void testPuffinDeletionVectorsNotSupported()
{
String tableName = "test_puffin_deletion_vectors_not_supported";
try {
assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')");
assertUpdate("INSERT INTO " + tableName + " VALUES (1, 'one'), (2, 'two')", 2);
Table table = loadTable(tableName);
// Attach a PUFFIN delete vector to an existing data file in the v3 table
try (CloseableIterable<FileScanTask> tasks = table.newScan().planFiles()) {
FileScanTask task = tasks.iterator().next();
DeleteFile puffinDeleteFile = FileMetadata.deleteFileBuilder(task.spec())
.ofPositionDeletes()
.withPath(task.file().path().toString() + ".puffin")
.withFileSizeInBytes(16)
.withFormat(FileFormat.PUFFIN)
.build();
table.newRowDelta()
.addDeletes(puffinDeleteFile)
.commit();
}
assertQueryFails(
"SELECT * FROM " + tableName,
"PUFFIN deletion vectors.*not supported");
}
finally {
dropTable(tableName);
}
```
To make this compile and integrate cleanly you will likely need to:
1. Add the following imports at the top of `TestIcebergV3.java` if they are not already present:
```java
import org.apache.iceberg.DeleteFile;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.FileScanTask;
import org.apache.iceberg.Table;
import org.apache.iceberg.io.CloseableIterable;
import org.apache.iceberg.FileMetadata;
```
2. If `loadTable` is not already accessible in this class (it appears earlier in your snippet, but if it is a helper in a superclass or utility class, ensure it is imported or used correctly), adjust the call accordingly.
3. If your existing assertion helpers differ (e.g., `assertQueryFailsEventually` or a different regex for the NOT_SUPPORTED error), update the `assertQueryFails` call to match the local convention and actual error message thrown by `IcebergSplitSource`. The key behaviour to assert is that planning a SELECT fails when there is a PUFFIN deletion-vector `DeleteFile` in the planned `FileScanTask`.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| import static org.assertj.core.api.Assertions.assertThatThrownBy; | ||
| import static org.testng.Assert.assertEquals; | ||
|
|
||
| public class TestIcebergV3 |
There was a problem hiding this comment.
suggestion (testing): Add tests for rejecting unsupported v3 schema default values and table encryption introduced in validateTableForPresto.
validateTableForPresto now rejects v3 column defaults (initialDefault/writeDefault) and table encryption, but the current tests don’t cover these failure paths. Please add tests that:
- Use a v3 table with a column default and assert that INSERT/SELECT fail with the expected
NOT_SUPPORTEDerror. - Use a v3 table with encryption enabled (e.g., via
TableMetadata.encryptionKeys/keyId/related properties) and assert that operations fail with the expected error.
This will exercise the new validation logic end-to-end.
Suggested implementation:
import java.util.OptionalInt;
import org.testng.annotations.Test; private static final String TEST_SCHEMA = "tpch";
private static final String V3_COLUMN_DEFAULT_TABLE = "v3_column_default";
private static final String V3_ENCRYPTED_TABLE = "v3_encrypted"; @Test
public void testV3ColumnDefaultsAreRejected()
{
assertQueryFails(
format("SELECT * FROM %s.%s.%s", ICEBERG_CATALOG, TEST_SCHEMA, V3_COLUMN_DEFAULT_TABLE),
".*Iceberg v3 column default values are not supported.*");
assertQueryFails(
format("INSERT INTO %s.%s.%s VALUES (1)", ICEBERG_CATALOG, TEST_SCHEMA, V3_COLUMN_DEFAULT_TABLE),
".*Iceberg v3 column default values are not supported.*");
}
@Test
public void testV3TableEncryptionIsRejected()
{
assertQueryFails(
format("SELECT * FROM %s.%s.%s", ICEBERG_CATALOG, TEST_SCHEMA, V3_ENCRYPTED_TABLE),
".*Iceberg table encryption is not supported.*");
assertQueryFails(
format("INSERT INTO %s.%s.%s VALUES (1)", ICEBERG_CATALOG, TEST_SCHEMA, V3_ENCRYPTED_TABLE),
".*Iceberg table encryption is not supported.*");
}
}To fully exercise validateTableForPresto end-to-end, you’ll also need to:
-
Create the v3 table with column defaults in the same warehouse used by the Hadoop catalog:
- Use the Iceberg Java APIs (e.g.,
HadoopCatalogorTableOperationsdirectly) pointing atgetIcebergDataDirectoryPath(queryRunner, TEST_SCHEMA)withTableProperties.FORMAT_VERSIONset to3. - Define at least one column with
initialDefault/writeDefaultin the table’s metadata (either via the public API if available in your Iceberg version or by manipulating the metadata JSON to include the appropriate default value fields). - Ensure the table is created in the
TEST_SCHEMAnamespace with nameV3_COLUMN_DEFAULT_TABLEso that Presto sees it asiceberg.tpch.v3_column_default.
- Use the Iceberg Java APIs (e.g.,
-
Create the v3 encrypted table similarly:
- Use a v3 Iceberg table and configure encryption via
TableMetadata.encryptionKeys/ key ID or the relevant table properties used in your Iceberg version so that the metadata contains an encryption spec. - Create it with table name
V3_ENCRYPTED_TABLEin schemaTEST_SCHEMAso it’s visible asiceberg.tpch.v3_encrypted.
- Use a v3 Iceberg table and configure encryption via
-
If
assertQueryFailshas overloads that accept an error code, you may want to tighten the assertions by checking theNOT_SUPPORTEDerror code in addition to the message regex.
These setup steps will ensure that when the tests run the Presto connector loads the tables, triggers validateTableForPresto, and hits the new NOT_SUPPORTED paths for v3 column defaults and encryption.
| } | ||
|
|
||
| @Test | ||
| public void testCreateV3Table() |
There was a problem hiding this comment.
suggestion (testing): Consider adding a negative test for creating a table with an unsupported Iceberg format version (e.g., 4).
The new MAX_SUPPORTED_FORMAT_VERSION = 3 constant means higher versions should be rejected, and testCreateV3Table only covers the success path. Please add a test that attempts to create a table with "format-version" = '4' (or >3) and asserts that it fails with the expected error message, so we lock in this behavior and ensure users see a clear error when using unsupported versions.
Suggested implementation:
@Test
public void testCreateV3Table()
{
String tableName = "test_create_v3_table";
try {
assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')");
Table table = loadTable(tableName);
assertEquals(((BaseTable) table).operations().current().formatVersion(), 3);
assertQuery("SELECT * FROM " + tableName, "SELECT * WHERE false");
}
finally {
dropTable(tableName);
}
}
@Test
public void testCreateUnsupportedFormatVersion()
{
String tableName = "test_create_v4_table";
// Ensure clean state in case a previous run created the table
dropTable(tableName);
assertQueryFails(
"CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '4')",
".*format version.*4.*not supported.*");
}The exact error message pattern in the assertQueryFails assertion may need to be adjusted to match the actual exception text thrown when MAX_SUPPORTED_FORMAT_VERSION = 3 is exceeded. After running the test suite once, update the regex string to align precisely with the real error message if it differs.
| } | ||
|
|
||
| @Test | ||
| public void testInsertIntoV3Table() |
There was a problem hiding this comment.
suggestion (testing): Add a test to cover rejection of PUFFIN deletion vectors in scan planning.
The new logic throws a PrestoException when a FileScanTask has PUFFIN deletion vectors (deleteFile.format() == PUFFIN), but this scenario isn’t exercised by the current tests. If the Iceberg test stack allows it, please add a test that creates a v3 table with a PUFFIN delete file and runs a SELECT, asserting the expected NOT_SUPPORTED error from IcebergSplitSource.
Suggested implementation:
finally {
dropTable(tableName);
}
}
@Test
public void testPuffinDeletionVectorsNotSupported()
{
String tableName = "test_puffin_deletion_vectors_not_supported";
try {
assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')");
assertUpdate("INSERT INTO " + tableName + " VALUES (1, 'one'), (2, 'two')", 2);
Table table = loadTable(tableName);
// Attach a PUFFIN delete vector to an existing data file in the v3 table
try (CloseableIterable<FileScanTask> tasks = table.newScan().planFiles()) {
FileScanTask task = tasks.iterator().next();
DeleteFile puffinDeleteFile = FileMetadata.deleteFileBuilder(task.spec())
.ofPositionDeletes()
.withPath(task.file().path().toString() + ".puffin")
.withFileSizeInBytes(16)
.withFormat(FileFormat.PUFFIN)
.build();
table.newRowDelta()
.addDeletes(puffinDeleteFile)
.commit();
}
assertQueryFails(
"SELECT * FROM " + tableName,
"PUFFIN deletion vectors.*not supported");
}
finally {
dropTable(tableName);
}To make this compile and integrate cleanly you will likely need to:
- Add the following imports at the top of
TestIcebergV3.javaif they are not already present:
import org.apache.iceberg.DeleteFile;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.FileScanTask;
import org.apache.iceberg.Table;
import org.apache.iceberg.io.CloseableIterable;
import org.apache.iceberg.FileMetadata;-
If
loadTableis not already accessible in this class (it appears earlier in your snippet, but if it is a helper in a superclass or utility class, ensure it is imported or used correctly), adjust the call accordingly. -
If your existing assertion helpers differ (e.g.,
assertQueryFailsEventuallyor a different regex for the NOT_SUPPORTED error), update theassertQueryFailscall to match the local convention and actual error message thrown byIcebergSplitSource. The key behaviour to assert is that planning a SELECT fails when there is a PUFFIN deletion-vectorDeleteFilein the plannedFileScanTask.
7dac029 to
223382b
Compare
There was a problem hiding this comment.
Hey - I've found 3 issues, and left some high level feedback:
- The newly introduced MAX_SUPPORTED_FORMAT_VERSION constant is not used anywhere in the changes; either enforce it (e.g., in table creation / loading paths) or remove it to avoid dead configuration that can drift from actual behavior.
- The format-version guardrails for row-level operations use different exception types and messages between beginMerge, beginUpdate, beginDelete, and OPTIMIZE (e.g., ICEBERG_INVALID_FORMAT_VERSION vs NOT_SUPPORTED and slightly different texts); consider standardizing the error codes and wording so users see consistent behavior across all operations.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The newly introduced MAX_SUPPORTED_FORMAT_VERSION constant is not used anywhere in the changes; either enforce it (e.g., in table creation / loading paths) or remove it to avoid dead configuration that can drift from actual behavior.
- The format-version guardrails for row-level operations use different exception types and messages between beginMerge, beginUpdate, beginDelete, and OPTIMIZE (e.g., ICEBERG_INVALID_FORMAT_VERSION vs NOT_SUPPORTED and slightly different texts); consider standardizing the error codes and wording so users see consistent behavior across all operations.
## Individual Comments
### Comment 1
<location> `presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergAbstractMetadata.java:382-383` </location>
<code_context>
+ schema = metadata.schema();
+ }
+
+ // Reject schema default values (initial-default / write-default)
+ for (Types.NestedField field : schema.columns()) {
+ if (field.initialDefault() != null || field.writeDefault() != null) {
+ throw new PrestoException(NOT_SUPPORTED, "Iceberg v3 column default values are not supported");
</code_context>
<issue_to_address>
**suggestion:** Column default validation only considers top-level columns and may miss nested fields
`schema.columns()` only iterates top-level fields, so defaults on nested struct fields (if Iceberg permits `initialDefault` / `writeDefault` there) would bypass this check. Either traverse the full schema recursively to validate nested `Types.NestedField`s, or explicitly confirm/document that defaults are only allowed on top-level fields.
</issue_to_address>
### Comment 2
<location> `presto-iceberg/src/main/java/com/facebook/presto/iceberg/procedure/RewriteDataFilesProcedure.java:129-131` </location>
<code_context>
Table icebergTable = procedureContext.getTable();
IcebergTableHandle tableHandle = layoutHandle.getTable();
+ // Validate format version for OPTIMIZE operation
+ int formatVersion = ((BaseTable) icebergTable).operations().current().formatVersion();
+ if (formatVersion > MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS) {
+ throw new PrestoException(NOT_SUPPORTED,
+ format("OPTIMIZE is not supported for Iceberg table format version > %d. Table %s format version is %s.",
</code_context>
<issue_to_address>
**suggestion:** Reusing MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS for OPTIMIZE may conflate different capability boundaries
Since OPTIMIZE/rewrite-data-files is not actually a row-level operation, tying it to `MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS` couples two unrelated capability checks. If the restriction on OPTIMIZE is driven by other concerns (e.g., manifest/delete semantics), consider introducing a separate constant or helper so future changes to row-level support don’t inadvertently change OPTIMIZE behavior.
Suggested implementation:
```java
```
```java
// Validate format version for OPTIMIZE operation
int formatVersion = ((BaseTable) icebergTable).operations().current().formatVersion();
if (formatVersion > MAX_FORMAT_VERSION_FOR_OPTIMIZE) {
throw new PrestoException(NOT_SUPPORTED,
format("OPTIMIZE is not supported for Iceberg table format version > %d. Table %s format version is %s.",
MAX_FORMAT_VERSION_FOR_OPTIMIZE,
icebergTable.name(),
formatVersion));
}
```
1. Inside the `RewriteDataFilesProcedure` class, add a dedicated constant for OPTIMIZE, for example near the top of the class:
```java
// Separate from MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS to allow independent evolution
private static final int MAX_FORMAT_VERSION_FOR_OPTIMIZE = 2;
```
Place this inside the class body (after the opening `{`), not at the top-level.
2. If you want to avoid hardcoding `2`, you can initialize it from `IcebergUtil.MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS` today:
```java
private static final int MAX_FORMAT_VERSION_FOR_OPTIMIZE = MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS;
```
but in that case keep the `MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS` import and add a comment explaining that OPTIMIZE is conceptually separate and may diverge in the future.
</issue_to_address>
### Comment 3
<location> `presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergV3.java:71-80` </location>
<code_context>
+ }
+ }
+
+ @Test
+ public void testV3TableEncryptionNotSupported()
+ {
+ String tableName = "test_v3_encrypted";
</code_context>
<issue_to_address>
**suggestion (testing):** Add tests that validate rejection of v3 column default values (initialDefault/writeDefault) on both read and write paths
`validateTableForPresto` now rejects `initialDefault` and `writeDefault` for v3 schemas, but this behavior isn’t covered by tests. Please add a test similar to `testV3TableEncryptionNotSupported` that:
1. Creates a v3 table and alters a column to set `initialDefault` and/or `writeDefault` via the Iceberg API.
2. Asserts that `SELECT` fails with the expected `NOT_SUPPORTED` message.
3. Asserts that `INSERT` also fails with the same message.
This will confirm both `getTableHandle` (read) and `beginInsert` (write) correctly enforce the restriction.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| // Reject schema default values (initial-default / write-default) | ||
| for (Types.NestedField field : schema.columns()) { |
There was a problem hiding this comment.
suggestion: Column default validation only considers top-level columns and may miss nested fields
schema.columns() only iterates top-level fields, so defaults on nested struct fields (if Iceberg permits initialDefault / writeDefault there) would bypass this check. Either traverse the full schema recursively to validate nested Types.NestedFields, or explicitly confirm/document that defaults are only allowed on top-level fields.
| @Test | ||
| public void testCreateV3Table() | ||
| { | ||
| String tableName = "test_create_v3_table"; | ||
| try { | ||
| assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')"); | ||
| Table table = loadTable(tableName); | ||
| assertEquals(((BaseTable) table).operations().current().formatVersion(), 3); | ||
| assertQuery("SELECT * FROM " + tableName, "SELECT * WHERE false"); | ||
| } |
There was a problem hiding this comment.
suggestion (testing): Add tests that validate rejection of v3 column default values (initialDefault/writeDefault) on both read and write paths
validateTableForPresto now rejects initialDefault and writeDefault for v3 schemas, but this behavior isn’t covered by tests. Please add a test similar to testV3TableEncryptionNotSupported that:
- Creates a v3 table and alters a column to set
initialDefaultand/orwriteDefaultvia the Iceberg API. - Asserts that
SELECTfails with the expectedNOT_SUPPORTEDmessage. - Asserts that
INSERTalso fails with the same message.
This will confirm both getTableHandle (read) and beginInsert (write) correctly enforce the restriction.
|
Revise the release note entry to follow the Release Notes Guidelines to pass the not required for merge but failing test. For example, the Order of Changes requires entries to start with a listed keyword. Maybe something like this: Most of the rest of the release note entry I've removed from this suggested draft should be added to the Iceberg documentation, along with doc for these items remaining here. The release note entry can link to the documentation. Examples of linking are in Formatting in the Release Notes Guidelines. |
|
@steveburnett, I have updated release notes. Thanks a lot for your feedback. |
Happy to help! tl;dr: Part of why I spend time on this topic is that in every Presto release we have a PR that automatically collects the release note entries from all merged PRs in the release. The release note doc PR is a release blocker because it must be finished and merged into the docs for the Presto release to happen, so the better the release note entries are when the PR is created, the less work needs to be done on them and the Presto release process goes faster. |
There was a problem hiding this comment.
Hey - I've found 3 issues, and left some high level feedback:
- The format-version guardrails (min/max checks and update-mode validation) are now duplicated across beginMerge, beginUpdate, beginDelete, and the OPTIMIZE procedure; consider extracting a shared helper (e.g.,
validateRowLevelOperationSupported(Table)/validateFormatVersionForRowLevelOperations(int)) to centralize this logic and keep the behavior/messages consistent as support evolves. - In
validateTableForPresto, the column default check only inspects top-levelschema.columns(); if Iceberg can express defaults on nested fields, you may want to recurse into nested types so that unsupported defaults are rejected consistently.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The format-version guardrails (min/max checks and update-mode validation) are now duplicated across beginMerge, beginUpdate, beginDelete, and the OPTIMIZE procedure; consider extracting a shared helper (e.g., `validateRowLevelOperationSupported(Table)` / `validateFormatVersionForRowLevelOperations(int)`) to centralize this logic and keep the behavior/messages consistent as support evolves.
- In `validateTableForPresto`, the column default check only inspects top-level `schema.columns()`; if Iceberg can express defaults on nested fields, you may want to recurse into nested types so that unsupported defaults are rejected consistently.
## Individual Comments
### Comment 1
<location> `presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergAbstractMetadata.java:370-371` </location>
<code_context>
+ .map(table::snapshot)
+ .orElse(table.currentSnapshot());
+ }
+ catch (RuntimeException e) {
+ // If the snapshot cannot be retrieved (e.g. metadata is missing), we cannot validate the table.
+ // Returning here allows operations that do not strictly require the snapshot (like DROP TABLE) to proceed.
+ return;
</code_context>
<issue_to_address>
**issue (bug_risk):** Catching RuntimeException broadly here may hide unexpected failures during snapshot retrieval.
Swallowing all RuntimeExceptions here will also hide programming/configuration errors that should surface or at least be observable. Consider catching a narrower, Iceberg-specific exception for the expected failure mode, or at minimum log the exception before returning so operational debugging remains possible.
</issue_to_address>
### Comment 2
<location> `presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergAbstractMetadata.java:879-888` </location>
<code_context>
- !Optional.ofNullable(icebergTable.properties().get(TableProperties.UPDATE_MODE))
- .map(mode -> mode.equals(MERGE_ON_READ.modeName()))
- .orElse(false)) {
+ if (formatVersion < MIN_FORMAT_VERSION_FOR_DELETE) {
+ throw new PrestoException(ICEBERG_INVALID_FORMAT_VERSION,
+ "Iceberg table updates require at least format version 2 and update mode must be merge-on-read");
</code_context>
<issue_to_address>
**suggestion:** Error codes/messages for unsupported format versions are inconsistent between beginMerge and beginUpdate.
`beginMerge` uses `ICEBERG_INVALID_FORMAT_VERSION` for format versions < 2, while this path uses `NOT_SUPPORTED`, and the messages differ in whether they mention update mode. Please align the exception type and message with the other row-level operations (merge/update/delete) for consistent, predictable behavior and easier programmatic handling.
Suggested implementation:
```java
if (formatVersion < MIN_FORMAT_VERSION_FOR_DELETE) {
throw new PrestoException(
ICEBERG_INVALID_FORMAT_VERSION,
format(
"Iceberg row-level operations are only supported for table format versions in range [%s, %s]. Found: %s",
MIN_FORMAT_VERSION_FOR_DELETE,
MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS,
formatVersion));
}
if (formatVersion > MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS) {
throw new PrestoException(
ICEBERG_INVALID_FORMAT_VERSION,
format(
"Iceberg row-level operations are only supported for table format versions in range [%s, %s]. Found: %s",
MIN_FORMAT_VERSION_FOR_DELETE,
MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS,
formatVersion));
}
```
To fully align messages and error codes across all row-level operations (merge/update/delete), you should:
1. Locate the corresponding format-version checks in `beginMerge`, `beginDelete`, and any other row-level operation helpers in `IcebergAbstractMetadata` (or related classes).
2. Update their `PrestoException` construction to use:
- The same `ICEBERG_INVALID_FORMAT_VERSION` error code.
- The same message template:
`"Iceberg row-level operations are only supported for table format versions in range [%s, %s]. Found: %s"`.
- The same arguments: `MIN_FORMAT_VERSION_FOR_DELETE`, `MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS`, `formatVersion`.
This will ensure consistent, predictable behavior and make programmatic handling of unsupported format versions easier across all operations.
</issue_to_address>
### Comment 3
<location> `presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestIcebergV3.java:71-72` </location>
<code_context>
+ assertQuerySucceeds("DROP TABLE IF EXISTS " + tableName);
+ }
+
+ @Test
+ public void testCreateV3Table()
+ {
+ String tableName = "test_create_v3_table";
</code_context>
<issue_to_address>
**suggestion (testing):** Add a test that verifies v3 column default values are rejected
The new `validateTableForPresto` logic that rejects v3 fields with `initialDefault` or `writeDefault` isn’t covered by tests. Please add a test that creates a v3 table, evolves the schema via `Table.updateSchema()` to add an `initialDefault`/`writeDefault`, commits it, and then verifies that both `SELECT` and `INSERT` in Presto fail with the expected NOT_SUPPORTED error, confirming the guardrail works end-to-end.
Suggested implementation:
```java
@Test
public void testCreateV3Table()
{
String tableName = "test_create_v3_table";
try {
assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')");
Table table = loadTable(tableName);
assertEquals(((BaseTable) table).operations().current().formatVersion(), 3);
assertQuery("SELECT * FROM " + tableName, "SELECT * WHERE false");
}
finally {
dropTable(tableName);
}
}
@Test
public void testV3ColumnDefaultValuesRejected()
{
String tableName = "test_v3_column_default_values_rejected";
try {
// Create a v3 table
assertUpdate("CREATE TABLE " + tableName + " (id integer) WITH (\"format-version\" = '3')");
Table table = loadTable(tableName);
assertEquals(((BaseTable) table).operations().current().formatVersion(), 3);
// Evolve the schema to add a column with a v3 default value (initialDefault/writeDefault)
// so that validateTableForPresto should reject it.
table.updateSchema()
.addColumn("v", Types.IntegerType.get(), "value with default", 42)
.commit();
// Both SELECT and INSERT should fail with the NOT_SUPPORTED error due to v3 defaults.
assertQueryFails("SELECT * FROM " + tableName, ".*NOT_SUPPORTED.*");
assertQueryFails("INSERT INTO " + tableName + " (id) VALUES (1)", ".*NOT_SUPPORTED.*");
}
finally {
dropTable(tableName);
}
}
```
Depending on the existing imports and Iceberg version in this module, you may need to:
1. Ensure `org.apache.iceberg.types.Types` is imported at the top of `TestIcebergV3.java`:
- Add `import org.apache.iceberg.types.Types;` if it is not already present.
2. Adjust the `updateSchema()` call if your Iceberg version exposes a different API for setting v3 default values:
- For example, if the signature is `addColumn(String name, Type type)` plus a fluent method like `.withInitialDefault(...)` or `.withDefault(...)`, replace the `addColumn("v", Types.IntegerType.get(), "value with default", 42)` chain with the appropriate sequence that results in a column having `initialDefault` and/or `writeDefault` set in the schema.
3. If your test base class uses a different helper to assert error codes (e.g., `assertQueryFailsWithErrorCodeMatching`), you can tighten the assertions to check specifically for the `NOT_SUPPORTED` error code instead of matching `"NOT_SUPPORTED"` in the failure message.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| catch (RuntimeException e) { | ||
| // If the snapshot cannot be retrieved (e.g. metadata is missing), we cannot validate the table. |
There was a problem hiding this comment.
issue (bug_risk): Catching RuntimeException broadly here may hide unexpected failures during snapshot retrieval.
Swallowing all RuntimeExceptions here will also hide programming/configuration errors that should surface or at least be observable. Consider catching a narrower, Iceberg-specific exception for the expected failure mode, or at minimum log the exception before returning so operational debugging remains possible.
| if (formatVersion < MIN_FORMAT_VERSION_FOR_DELETE) { | ||
| throw new PrestoException(ICEBERG_INVALID_FORMAT_VERSION, | ||
| "Iceberg table updates require at least format version 2 and update mode must be merge-on-read"); | ||
| } | ||
| if (formatVersion > MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS) { | ||
| throw new PrestoException(NOT_SUPPORTED, | ||
| format("Iceberg table updates for format version %s are not supported yet", formatVersion)); | ||
| } | ||
| if (!Optional.ofNullable(icebergTable.properties().get(TableProperties.UPDATE_MODE)) | ||
| .map(mode -> mode.equals(MERGE_ON_READ.modeName())) |
There was a problem hiding this comment.
suggestion: Error codes/messages for unsupported format versions are inconsistent between beginMerge and beginUpdate.
beginMerge uses ICEBERG_INVALID_FORMAT_VERSION for format versions < 2, while this path uses NOT_SUPPORTED, and the messages differ in whether they mention update mode. Please align the exception type and message with the other row-level operations (merge/update/delete) for consistent, predictable behavior and easier programmatic handling.
Suggested implementation:
if (formatVersion < MIN_FORMAT_VERSION_FOR_DELETE) {
throw new PrestoException(
ICEBERG_INVALID_FORMAT_VERSION,
format(
"Iceberg row-level operations are only supported for table format versions in range [%s, %s]. Found: %s",
MIN_FORMAT_VERSION_FOR_DELETE,
MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS,
formatVersion));
}
if (formatVersion > MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS) {
throw new PrestoException(
ICEBERG_INVALID_FORMAT_VERSION,
format(
"Iceberg row-level operations are only supported for table format versions in range [%s, %s]. Found: %s",
MIN_FORMAT_VERSION_FOR_DELETE,
MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS,
formatVersion));
}To fully align messages and error codes across all row-level operations (merge/update/delete), you should:
- Locate the corresponding format-version checks in
beginMerge,beginDelete, and any other row-level operation helpers inIcebergAbstractMetadata(or related classes). - Update their
PrestoExceptionconstruction to use:- The same
ICEBERG_INVALID_FORMAT_VERSIONerror code. - The same message template:
"Iceberg row-level operations are only supported for table format versions in range [%s, %s]. Found: %s". - The same arguments:
MIN_FORMAT_VERSION_FOR_DELETE,MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS,formatVersion.
This will ensure consistent, predictable behavior and make programmatic handling of unsupported format versions easier across all operations.
- The same
| @Test | ||
| public void testCreateV3Table() |
There was a problem hiding this comment.
suggestion (testing): Add a test that verifies v3 column default values are rejected
The new validateTableForPresto logic that rejects v3 fields with initialDefault or writeDefault isn’t covered by tests. Please add a test that creates a v3 table, evolves the schema via Table.updateSchema() to add an initialDefault/writeDefault, commits it, and then verifies that both SELECT and INSERT in Presto fail with the expected NOT_SUPPORTED error, confirming the guardrail works end-to-end.
Suggested implementation:
@Test
public void testCreateV3Table()
{
String tableName = "test_create_v3_table";
try {
assertUpdate("CREATE TABLE " + tableName + " (id integer, value varchar) WITH (\"format-version\" = '3')");
Table table = loadTable(tableName);
assertEquals(((BaseTable) table).operations().current().formatVersion(), 3);
assertQuery("SELECT * FROM " + tableName, "SELECT * WHERE false");
}
finally {
dropTable(tableName);
}
}
@Test
public void testV3ColumnDefaultValuesRejected()
{
String tableName = "test_v3_column_default_values_rejected";
try {
// Create a v3 table
assertUpdate("CREATE TABLE " + tableName + " (id integer) WITH (\"format-version\" = '3')");
Table table = loadTable(tableName);
assertEquals(((BaseTable) table).operations().current().formatVersion(), 3);
// Evolve the schema to add a column with a v3 default value (initialDefault/writeDefault)
// so that validateTableForPresto should reject it.
table.updateSchema()
.addColumn("v", Types.IntegerType.get(), "value with default", 42)
.commit();
// Both SELECT and INSERT should fail with the NOT_SUPPORTED error due to v3 defaults.
assertQueryFails("SELECT * FROM " + tableName, ".*NOT_SUPPORTED.*");
assertQueryFails("INSERT INTO " + tableName + " (id) VALUES (1)", ".*NOT_SUPPORTED.*");
}
finally {
dropTable(tableName);
}
}Depending on the existing imports and Iceberg version in this module, you may need to:
- Ensure
org.apache.iceberg.types.Typesis imported at the top ofTestIcebergV3.java:- Add
import org.apache.iceberg.types.Types;if it is not already present.
- Add
- Adjust the
updateSchema()call if your Iceberg version exposes a different API for setting v3 default values:- For example, if the signature is
addColumn(String name, Type type)plus a fluent method like.withInitialDefault(...)or.withDefault(...), replace theaddColumn("v", Types.IntegerType.get(), "value with default", 42)chain with the appropriate sequence that results in a column havinginitialDefaultand/orwriteDefaultset in the schema.
- For example, if the signature is
- If your test base class uses a different helper to assert error codes (e.g.,
assertQueryFailsWithErrorCodeMatching), you can tighten the assertions to check specifically for theNOT_SUPPORTEDerror code instead of matching"NOT_SUPPORTED"in the failure message.
hantangwangd
left a comment
There was a problem hiding this comment.
@Joe-Abraham thanks for this feature. Overall looks good to me. Just a few small things and questions.
| throw new PrestoException(NOT_SUPPORTED, | ||
| format("OPTIMIZE is not supported for Iceberg table format version > %d. Table %s format version is %s.", | ||
| MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS, | ||
| icebergTable.name(), | ||
| formatVersion)); |
There was a problem hiding this comment.
A little curious: could rewtie_data_files support v3 directly as well, since it doesn't involve row-level deletion?
There was a problem hiding this comment.
I tested the feature, and it works. I’ve updated the code accordingly.
There was a problem hiding this comment.
The CI failure seems to be caused by this check. Let's remove it.
8a3afdc to
cd78096
Compare
Joe-Abraham
left a comment
There was a problem hiding this comment.
Thanks @hantangwangd for the feedback, I have made the improvements, can you please have a relook?
| throw new PrestoException(NOT_SUPPORTED, | ||
| format("OPTIMIZE is not supported for Iceberg table format version > %d. Table %s format version is %s.", | ||
| MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS, | ||
| icebergTable.name(), | ||
| formatVersion)); |
There was a problem hiding this comment.
I tested the feature, and it works. I’ve updated the code accordingly.
cd78096 to
9fb3262
Compare
hantangwangd
left a comment
There was a problem hiding this comment.
Thanks @Joe-Abraham for the fix! One last nit left, otherwise looks good to me.
| throw new PrestoException(NOT_SUPPORTED, | ||
| format("OPTIMIZE is not supported for Iceberg table format version > %d. Table %s format version is %s.", | ||
| MAX_FORMAT_VERSION_FOR_ROW_LEVEL_OPERATIONS, | ||
| icebergTable.name(), | ||
| formatVersion)); |
There was a problem hiding this comment.
The CI failure seems to be caused by this check. Let's remove it.
9fb3262 to
8b36284
Compare
|
@hantangwangd @tdcmeehan Should we disable even creation of V3 table in Presto and support it only for Prestissimo ? |
@nmahadevuni not entirely sure about this, but do you foresee a significant overhead in maintaining the v3 Iceberg format within the Java worker? If not, I think supporting v3 tables in Presto would be fine. After all, at this stage, Presto offers more comprehensive support for Iceberg features compared to Prestissimo. And the community contributors might be happy to take on the overhead. This is just my own perspective. I'd love to hear your thoughts. @tdcmeehan @nmahadevuni @Joe-Abraham |
hantangwangd
left a comment
There was a problem hiding this comment.
Thanks for the fix, lgtm!
Cherry pick of trinodb/trino#27786 Co-authored-by: Dain Sundstrom <dain@iq80.com>
|
@hantangwangd Could you please have a relook into the PR? I rebased the master branch due to a merge conflict. |
# Missing Release Notes ## Apurva Kumar - [x] https://github.com/prestodb/presto/pull/27409 feat: Add WHEN MATCHED THEN DELETE support to MERGE INTO statement (#27409) (Merged by: Dong Wang) ## Chandrakant Vankayalapati - [x] https://github.com/prestodb/presto/pull/27302 feat: Enable MV data consistency for CTAS and INSERT (#27302) (Merged by: Chandrakant Vankayalapati) ## Dong Wang - [x] https://github.com/prestodb/presto/pull/26374 feat(plugin-iceberg): Add `rewrite_data_files` procedure (Merged by: Dong Wang) ## Maria Basmanova - [x] https://github.com/prestodb/presto/pull/27476 refactor: Replace getAllConnectors with ConnectorRegistry APIs (Merged by: Maria Basmanova) ## Prabhu Shankar - [x] https://github.com/prestodb/presto/pull/26987 fix(ui): Avoid auto-applying LIMIT to non-SELECT statements (Merged by: Timothy Meehan) ## Pramod Satya - [x] https://github.com/prestodb/presto/pull/26475 feat(native): Add endpoint for expression optimization in sidecar (Merged by: Aditi Pandit) ## Reetika Agrawal - [x] https://github.com/prestodb/presto/pull/27113 feat(plugin-iceberg): Add DDL statements for CREATE TAG (Merged by: Reetika Agrawal) ## Sreeni Viswanadha - [x] https://github.com/prestodb/presto/pull/27404 feat(optimizer): Enhance PayloadJoinOptimizer with null-check skipping, chain flattening, and LOJ reordering (Merged by: feilong-liu) - [x] https://github.com/prestodb/presto/pull/27246 feat(optimizer): Add SimplifyAggregationsOverConstant iterative rule (Merged by: Sreeni Viswanadha) - [x] https://github.com/prestodb/presto/pull/27176 feat(optimizer): Add PushSemiJoinThroughUnion iterative rule (Merged by: feilong-liu) ## XiaoDu - [x] https://github.com/prestodb/presto/pull/26874 feat: Add session properties for aggregation compaction (Merged by: XiaoDu) ## Zac - [x] https://github.com/prestodb/presto/pull/26795 feat: Make SSD cache maxEntries limit configurable (Merged by: Zac) ## adheer-araokar - [x] https://github.com/prestodb/presto/pull/27312 fix: Guard JoinPrefilter against non-deterministic expressions (#27312) (Merged by: Chandrashekhar Kumar Singh) ## tanjialiang - [x] https://github.com/prestodb/presto/pull/27086 feat: Add session property for dynamic merge join output batching (Merged by: tanjialiang) - [x] https://github.com/prestodb/presto/pull/26692 refactor: Change native pos API to return BaseSerializedPage (Merged by: tanjialiang) # Extracted Release Notes - #23614 (Author: Reetika Agrawal): feat(plugin-iceberg): Add DDL statements to drop branches and tags - Add DDL support for dropping a branch from a table. - Add DDL support for dropping a tag from a table. - Add support for dropping a branch from an Iceberg table. - Add support for dropping a tag from an Iceberg table. - #23645 (Author: Dong Wang): feat(plugin-iceberg): Lazy load partitions to avoid unnecessary loading - Improve partition loading for Iceberg tables by making it lazy, preventing unnecessary loading. - #24138 (Author: Aditi Pandit): feat(optimizer): Native TopNRank optimization - Add Window filter pushdown in native engine for rank and dense_rank functions. Use session property `optimizer.optimize-top-n-rank` to enable the rewrite. - #24302 (Author: Reetika Agrawal): feat(plugin-iceberg): Add Iceberg metadata table $metadata_log_entries - Add Iceberg metadata table $metadata_log_entries :pr:`24302`. - #24602 (Author: Pratik Joseph Dabre): feat(plugin-native-sidecar): Add native row expression optimizer - Add a native expression optimizer for optimizing expressions in the sidecar. - #25003 (Author: Dong Wang): feat: Support Iceberg's single-table multi-statement writes transaction - Update SPI method `Connector.beginTransaction` in a backward compatible way to support passing the autocommit context into connector transactions. - Add single-table multi-statement writes transaction on snapshot isolation level. - #25470 (Author: Adrian Carpente (Denodo)): feat(plugin-iceberg): Add support for MERGE INTO - Add support for MERGE command in the Iceberg connector. - #25762 (Author: Namya Sehgal): test(connector): Enable test class for Oracle connector - Update Oracle test classes to re-enable them. - #25995 (Author: Xin Zhang): feat(native): Add TextReader registration - Add TextReader support for tables in TEXTFILE format. - #26151 (Author: Dilli-Babu-Godari): feat(plugin-pinot): Add TLS support for self-signed certificate - Add TLS support for self-signed certificate. - #26275 (Author: dependabot[bot]): chore(deps): Bump webpack-dev-server from 5.2.0 to 5.2.1 in /presto-ui/src - Upgrade webpack-dev-server from 5.2.0 to 5.2.1 to address security vulnerabilities in cross-origin request handling and WebSocket connections. The update enforces proper ``Access-Control-Allow-Origin`` header validation for cross-origin requests and restricts WebSocket connections from IP addresses in the ``Origin`` header unless explicitly configured via ``allowedHosts``. This dependency is used for local development only and does not affect production runtime. - #26446 (Author: Auden Woolfson): feat(plugin-hive): Add support for skip_header_line_count and skip_footer_line_count table properties - Add support for skip_header_line_count and skip_footer_line_count. - #26571 (Author: Mariam AlMesfer): chore(connector): Upgrade surefire-testng to 3.5.4 - Upgrade surefire-testng to version 3.5.4. - #26635 (Author: inf): feat(server): Add http support for internal resource manager communication - Add HTTP support to the resource manager. See :ref:`admin/properties:\`\`resource-manager.http-server-enabled\`\`` and :ref:`admin/properties:\`\`resource-manager.communication-protocol\`\``. - #26639 (Author: Naveen Mahadevuni): fix(native): Change content type of endpoint /v1/info/metrics based on accept header - Fix to modify the Content-Type of endpoint /v1/info/metrics to application/json or text/plain based on the request's ACCEPT header. - #26670 (Author: Jalpreet Singh Nanda): feat(connector): Upgrade AWS Glue to AWS SDK v2 and Migrate to MetricPublisher - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - #26674 (Author: sumi-mathew): fix(security): Upgrade mssql-jdbc version to 13.2.1.jre11 - Upgrade mssql-jdbc to 13.2.1.jre11 in response to `CVE-2025-59250<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-59250>`_. - #26682 (Author: Anant Aneja): feat(server): Add ability to disable the UI - Add ability to disable the UI. - #26684 (Author: Sayari Mukherjee): fix(security): Upgrade pinot to version 1.40 and Override vulnerable lz4-java dependency - Upgrade lz4-java to version 1.10.2 to address `CVE-2025-66566 <https://nvd.nist.gov/vuln/detail/CVE-2025-66566>`_. - Upgrade Apache Pinot to 1.4.0. - #26688 (Author: Timothy Meehan): feat: Add materialized views to information_schema - Add the ``materialized_views`` table to the information schema. - #26723 (Author: Reetika Agrawal): fix(plugin-druid): Add validation for schema names in Druid - Add validation for schema names in Druid connector. - #26725 (Author: Reetika Agrawal): fix(plugin-pinot): Add validation for schema names in Pinot - Add validation for schema names in Pinot connector. - #26728 (Author: Timothy Meehan): feat(optimizer): Support predicate stitching in MaterializedViewRewrite - Add ``USE_STITCHING`` mode for ``materialized_view_stale_read_behavior`` session property to selectively recompute stale data instead of full recomputation. - Add ``materialized_view_staleness_window`` session property to configure acceptable staleness duration. - Add ``materialized_view_force_stale`` session property for testing stale read behavior. - Add ``iceberg.materialized-view-max-changed-partitions`` config property (default: 100) to limit partition tracking for predicate stitching. - Add support for tracking changed partitions in materialized views to enable predicate stitching optimization. - #26739 (Author: Anant Aneja): feat(deps): Upgrade to airlift 0.224 - Add a new ``http-server.https.keystore.scan-interval-seconds`` configuration flag to scan the keystore file periodically for new certs. - Upgrade Jetty to 12.0.29 in response to `CVE-2025-5115 <https://nvd.nist.gov/vuln/detail/CVE-2025-5115>`_. - #26764 (Author: Timothy Meehan): feat(optimizer): Add support for configurable freshness thresholds for materialized views - Add configurable freshness thresholds for materialized views via ``materialized_view_stale_read_behavior`` session property and ``materialized-view-stale-read-behavior`` config property. - Add ``stale_read_behavior`` and ``staleness_window`` table properties for materialized views. - #26768 (Author: nishithakbhaskaran): chore(deps): Upgrade airlft version to 225 - Upgrade com.facebook.airlift version to 225. - #26790 (Author: Ajay Kharat): fix(security): Prestoui restrict img-src wildcard in CSP - Fix CSP by removing `img-src 'http: https:'` in response to `CWE-693 <https://cwe.mitre.org/data/definitions/693.html>`_. :pr:`25910`. - #26794 (Author: Andrii Rosa): feat: Add materialized cte support for single node execution - Add materialized CTE support for single node execution. - #26803 (Author: Dong Wang): feat!: Add access control for procedures - Add support for procedure calls in access control. - Add fine-grained access control for procedure calls in the file-based access control system. - Add a temporary configuration property ``hive.restrict-procedure-call`` for ranger and sql-standard access control. It defaults to ``true``, meaning procedure calls are restricted. To allow procedure calls, set this configuration property to ``false``. - Add support for configuring access control in Iceberg using the ``iceberg.security`` property in the Iceberg catalog properties file. The supported types are ``allow-all`` and ``file``. - #26807 (Author: nishithakbhaskaran): chore(deps): Upgrade airbase version to 108 - Upgrade airbase version to 108. - #26820 (Author: Shahim Sharafudeen): fix(security): Upgrade druid version to 35.0.1 - Upgrade Druid to version 35.0.1 to address `CVE-2024-53990 <https://github.com/advisories/GHSA-mfj5-cf8g-g2fv>`_ and `CVE-2025-12183 <https://github.com/advisories/GHSA-vqf4-7m7x-wgfc>`_. - Upgrade lz4-java to version 1.10.2 to address `CVE-2025-66566 <https://github.com/advisories/GHSA-cmp6-m4wj-q63q>`_. - Upgrade Rhino to version 1.8.1 to address `CVE-2025-66453 <https://github.com/advisories/GHSA-3w8q-xq97-5j7x>`_. - #26825 (Author: Adrian Carpente (Denodo)): feat(ui): Add SQL Support for MERGE INTO In Presto #20578 (presto-ui) - Add support for the MERGE statement in the Presto SQL Client web app. - #26843 (Author: feilong-liu): misc: Add function description in function metadata - Add a description field in function metadata. - #26859 (Author: feilong-liu): feat: Add optimizer to rewrite functions in query plan - Add an optimizer which can do function rewrite. - #26862 (Author: Shahim Sharafudeen): fix(security): Upgrade netty to 4.1.130.Final to address CVE-2025-67735 - Upgrade Netty to version 4.1.130.Final to address `CVE-2025-67735 <https://github.com/advisories/GHSA-84h7-rjj3-6jx4>`_. - #26875 (Author: Reetika Agrawal): feat(connector): Add comprehensive JMX metrics for metadata operations - Add comprehensive JMX metrics for metadata operations. - #26879 (Author: Joe Abraham): chore(deps): Bump iceberg to 1.10.0 - Upgrade Iceberg version to 1.10.0. - Upgrade Parquet version to 1.16.0. - Upgrade Avro version to 1.12.0. - #26885 (Author: nishithakbhaskaran): chore(deps): Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3 - Upgrade org.apache.logging.log4j:log4j-core from from 2.24.3 to 2.25.3 to address `CVE-2025-68161 <https://nvd.nist.gov/vuln/detail/CVE-2025-68161>`_. - #26888 (Author: Reetika Agrawal): feat(plugin-iceberg): Support rewrite_manifests procedure for iceberg - Add rewrite_manifests procedure for iceberg. - #26898 (Author: Reetika Agrawal): feat(plugin-iceberg): Add DDL statements for CREATE BRANCH - Add DDL statements for `CREATE BRANCH`. - Add `CREATE BRANCH` support for Iceberg. - #26902 (Author: Timothy Meehan): fix(analyzer): Check `CREATE_VIEW_WITH_SELECT_COLUMNS` permission for definer rights MVs - Fix Materilized Views with ``DEFINER`` rights to require ``CREATE_VIEW_WITH_SELECT_COLUMNS`` on base tables. - #26906 (Author: nishithakbhaskaran): fix(security): Bump transitive dependency org.apache.logging.log4j:log4j-core to 2.25.3 to fix CVE-2025-68161 - Upgrade transitive dependency org.apache.logging.log4j:log4j-core to 2.25.3 to fix `CVE-2025-68161 <https://nvd.nist.gov/vuln/detail/CVE-2025-68161>`_. - #26907 (Author: Ajay Kharat): fix(security): Upgrade highlight.js version to 10.1.2 - Upgrade highlight version to 10.1.2 to address `CVE-2020-26237 <https://github.com/advisories/GHSA-vfrc-7r7c-w9mx>`_. - #26918 (Author: Jalpreet Singh Nanda): feat(connector): Allow fine-grained enable/disable of hive metastore caches - Add support for fine-grained configuration of Hive metastore caches. - Add support for fine-grained configuration of Hive metastore caches. - #26926 (Author: Pratik Joseph Dabre): build!: Remove implicit bundling of sql invoked function plugins from default Presto server Provisio build - Remove implicit bundling of SQL invoked function plugins from default Presto server Provisio build. - Improve documentation of plugin loaded functions by grouping them in :ref:`functions/plugin-loaded-functions:array functions`. - #26931 (Author: sumi-mathew): fix(security): Override vulnerable lz4-java dependency to address CVE - Upgrade lz4-java to 1.10.2 in response to `CVE-2025-12183 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-12183>`_. - #26941 (Author: feilong-liu): feat(optimizer): Add exchange on table scan when number of files to be scanned is small - Add options to force shuffle table scan input if the number of files to be scanned is small. - #26942 (Author: Timothy Meehan): fix: EXPLAIN IO output to support temporal types (date, timestamp, timestamp with time zone) - Fix EXPLAIN TYPE IO to support columns with temporal types. - #26943 (Author: feilong-liu): feat(optimizer): Add option to not push down remote project below exchange - Add options to skip projection pushdown through exchange rule. - #26948 (Author: Pratik Joseph Dabre): feat(native): Add support for NativeFunctionHandle parsing - Add support for `NativeFunctionHandle` parsing. - #26958 (Author: Timothy Meehan): feat(plugin-iceberg): Add support for materialized views with Hive catalog - Add support for Materialized Views in Iceberg catalog. - #26979 (Author: jja725): feat(native): Create a runtime metric for worker uptime to be used for restart alerts - Add worker uptime metric \`presto_cpp.worker_runtime_uptime_secs\` to track worker process runtime. - #26981 (Author: rdtr): feat: Update timezone data to 2025b - Update timezone data to 2025b by upgrading to Joda-Time 2.14.0. - Add support for America/Coyhaique timezone (Chile's Aysén Region). - #26986 (Author: Adrian Carpente (Denodo)): feat(plugin-delta): Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command - Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command. - #27009 (Author: dependabot[bot]): build(deps): Bump lodash from 4.17.21 to 4.17.23 in /presto-ui/src - Upgrade lodash from 4.17.21 to 4.17.23 to address `CVE-2025-13465 <https://github.com/advisories/GHSA-xxjr-mmjv-4gpg>`_. - #27021 (Author: Joe Abraham): feat: Add initial support for Iceberg format version 3 - Add support for creating Iceberg tables with format-version = '3'. - Add reading from Iceberg V3 tables, including partitioned tables. - Add INSERT operations into Iceberg V3 tables. - Add support for upgrading existing V2 tables to V3 using the Iceberg API. - #27030 (Author: Madhavan): feat(ci): Update maven to 3.9.12 - Update Maven wrapper distribution from version 3.8.8 to 3.9.12. - #27044 (Author: feilong-liu): feat(optimizer): Add option to set task count for remote functions - Add options to control the number of tasks for remote project node. - #27051 (Author: Dilli-Babu-Godari): build(deps): Bump lodash-es from 4.17.21 to 4.17.23 in /presto-ui/src - Upgrade lodash-es from 4.17.21 to 4.17.23 to address `CVE-2025-13465 <https://github.com/advisories/GHSA-xxjr-mmjv-4gpg>`_. - #27054 (Author: PRASHANT GOLASH): feat(plugin-hive): Session property to control file size for presto writer - Add ``native_max_target_file_size`` session property to control the maximum target file size for writers. When a file exceeds this size during writing, the writer will close the current file and start writing to a new file. - #27059 (Author: Chandrakant Vankayalapati): fix: Resolve table names in MV query optimizer for consistent matching - Fix MV query optimizer by correctly resolving table references to schema-qualified names. - #27083 (Author: Auden Woolfson): fix: Add null check to UtilizedColumnAnalyzer - Add warning message on CTAS if not exists. - #27100 (Author: Pratik Joseph Dabre): fix(plugin-cassandra): Drop stale tables if table creation process fails - Drop stale tables if table creation process fails. - #27105 (Author: dependabot[bot]): chore(deps): Bump webpack from 5.97.1 to 5.104.1 in /presto-ui/src - Upgrade ``webpack`` from ``5.97.1`` to ``5.104.1`` to address security vulnerabilities including a user information bypass in HttpUriPlugin and SSRF prevention improvements. This is a development dependency used for building the Presto UI and does not affect production runtime. - #27120 (Author: Steve Burnett): docs: Add to Presto C++ limitations doc - Add documentation for Presto queries to run in Presto C++ to :doc:`/presto_cpp/limitations`. - #27125 (Author: Sreeni Viswanadha): feat(optimizer): Add PushdownThroughUnnest optimizer rule - Add ``PushdownThroughUnnest`` optimizer rule that pushes projections and filter conjuncts not dependent on unnest output variables below the UnnestNode, gated by the ``pushdown_through_unnest`` session property (default enabled). - #27134 (Author: Lithin Purushothaman): chore(deps): Upgrade Arrow to 18.3.0 - Upgrade Apache Arrow to 18.3.0 and protobuf-java to 4.30.2. - #27146 (Author: shelton408): fix(scheduler): Coordinator Task Throttling Bug - Fix a bug where queries could get permanently stuck in resource groups when coordinator task-based throttling (``experimental.max-total-running-task-count-to-not-execute-new-query``) is enabled. - Replace experimental.max-total-running-task-count-to-not-execute-new-query with max-total-running-task-count-to-not-execute-new-query, this is backwards compatible. - #27147 (Author: Reetika Agrawal): feat(plugin-iceberg): Add support for mutating an Iceberg branch - Add support for mutating an Iceberg branch. - #27152 (Author: Dilli-Babu-Godari): chore(deps): Bump aircompressor from 0.27 to 2.0.3 - Update aircompressor dependency from 0.27 to version 2.0.2 to fix `CVE-2025-67721 <https://www.cve.org/CVERecord?id=CVE-2025-67721>`_. - #27154 (Author: sumi-mathew): fix(security): Bump ajv from 8.17.1 to 8.18.0 - Upgrade ajvto 8.18.0 in response to `CVE-2025-69873 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-69873>`_. - #27167 (Author: Xin Zhang): feat: Add TEXTFILE custom serde parameters support - Add support for custom TEXTFILE SerDe parameters ``textfile_field_delim``, ``textfile_escape_delim``, ``textfile_collection_delim``, and ``textfile_mapkey_delim``. - #27185 (Author: jja725): feat(connector): Presto Lance Connector - Add :doc:`/connector/lance` for reading and writing LanceDB datasets. - #27188 (Author: Anant Aneja): fix(planner): Set the size estimate for a ConstantExpression/Literal - Improves size estimates for constant variables. - #27199 (Author: Deepak Mehra): feat(analyzer): Add support for SELECT alias references in HAVING clause - Add support for SELECT alias references in HAVING clause. - #27222 (Author: Chandrakant Vankayalapati): feat: Cost-based MV candidate selection for query rewriting (#27222) - Add cost-based selection for materialized view query rewriting. When multiple materialized views exist for the same base table, the optimizer now evaluates all compatible rewrites and selects the lowest-cost plan. This can be enabled with the ``materialized_view_query_rewrite_cost_based_selection_enabled`` session property. - #27227 (Author: Chandrakant Vankayalapati): feat(analyzer): Allow CTAS and INSERT from materialized views - Add support for CTAS and INSERT from materialized views. - #27249 (Author: jja725): feat(plugin-openlineage-event-listener): Add OpenLineage event listener plugin - Add OpenLineage event listener plugin for emitting query lifecycle events in the OpenLineage format. The plugin supports console and HTTP transports, configurable query type filtering, and column-level lineage tracking. See /develop/openlineage-event-listener for configuration details. #27249. - #27250 (Author: Sreeni Viswanadha): feat(optimizer): Simplify COALESCE over equi-join keys based on join type - Add optimizer rule ``SimplifyCoalesceOverJoinKeys`` that simplifies redundant ``COALESCE`` expressions over equi-join key pairs based on join type, enabling bucketed join optimizations for tool-generated queries. Controlled by the ``simplify_coalesce_over_join_keys`` session property (disabled by default). - #27267 (Author: Sreeni Viswanadha): feat(optimizer): Simplify nested IF expressions with matching else branches - Add expression simplification rule to flatten nested ``IF`` expressions: ``IF(x, IF(y, v, E), E)`` is rewritten to ``IF(x AND y, v, E)`` when the outer and inner else branches are identical. Handles arbitrary nesting depth and both null and non-null else branches. - #27277 (Author: Vyacheslav Andreykiv): chore(deps): Upgrade netty to 4.2.10.Final - Update netty from version 4.1.130.Final to 4.2.10.Final. - #27290 (Author: Sreeni Viswanadha): feat(optimizer): Pre-aggregate before GroupId to reduce row multiplication - Add optimizer rule to pre-aggregate data before GroupId node in grouping sets queries, reducing row multiplication. Enabled via session property ``pre_aggregate_before_grouping_sets``. (:pr:`27290`). - Fix a bug where adaptive partial aggregation could incorrectly bypass INTERMEDIATE aggregation steps. - #27307 (Author: Ke Wang): feat: Add syntax support for CREATE VECTOR INDEX (#27307) - Add support for create-vector-index statement, which creates vector search indexes on table columns with configurable index properties and partition filtering via an ``UPDATING FOR`` clause. - #27311 (Author: Alexey Matskoff): perf: Optimize LIKE '%substring%' rewrite to use STRPOS instead of SPLIT - Improve ``LIKE '%substring%'`` pattern matching by rewriting to ``STRPOS`` instead of ``CARDINALITY(SPLIT(...))``, improving CPU and memory efficiency. :pr:`27311`. - #27319 (Author: Nivin C S): chore(deps): Upgrade zookeeper version from 3.9.4 to 3.9.5 address the CVE-2026-24281 and CVE-2026-24308 - Upgrade zookeeper to version 3.9.5 in response to `CVE-2026-24281 <https://github.com/advisories/GHSA-7xrh-hqfc-g7qr>`,`CVE-2026-24308 <https://github.com/advisories/GHSA-crhr-qqj8-rpxc>`. - #27324 (Author: jja725): fix(connector): Widen Float16 to Float32 for Lance connector reads - Fix ClassCastException when reading Float16 columns by widening to Float32. - #27333 (Author: Steve Burnett): docs: Add TVF documentation in functions/table - Add documentation for :doc:`/functions/table`. - #27353 (Author: Reetika Agrawal): feat(plugin-iceberg): Add support for adding Iceberg V3 default column values - SQL Support for `ADD COLUMN DEFAULT`. - SQL Support for `ADD COLUMN DEFAULT`. - #27360 (Author: shelton408): feat: Preserve selectedUser (identity) in Write Queries (#27360) - Update Session to serialize and deserialize selectedUser and reasonForSelect to SessionRepresentation, allowing INSERT and DELETE query sessions to contain these fields. - #27367 (Author: Steve Burnett): docs: Add TVF documentation in develop/table-functions - Add developer documentation for :doc:`/developer/table-functions`. - #27372 (Author: shelton408): fix: Revert #27199 Select Alias in Having Clause - Fix 2 bugs caused by Select Alias references in Having clause. - #27402 (Author: dependabot[bot]): chore(deps): Bump flatted from 3.3.3 to 3.4.2 in /presto-ui/src - Upgrade ``flatted`` from ``3.3.3`` to ``3.4.2`` in response to `GHSA-rf6f-7fwh-wjgh <https://github.com/WebReflection/flatted/security/advisories/GHSA-rf6f-7fwh-wjgh>`_ addressing a HIGH severity prototype pollution vulnerability (CWE-1321) in the parse() function. This dependency is used by the UI development tooling and does not affect production runtime. - #27428 (Author: Sreeni Viswanadha): fix(optimizer): Fix infinite loop in UnaliasSymbolReferences.canonicalize() - Fix infinite loop in ``UnaliasSymbolReferences`` when alias mapping contains a cycle caused by multiple variables mapped to the same constant expression across different ProjectNodes. - #27447 (Author: dependabot[bot]): chore(deps): Bump handlebars from 4.7.8 to 4.7.9 in /presto-ui/src - Upgrade ``handlebars`` from ``4.7.8`` to ``4.7.9`` in response to multiple security advisories including `GHSA-2w6w-674q-4c4q <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q>`_, `GHSA-3mfm-83xf-c92r <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r>`_, `GHSA-xhpv-hc6g-r9c6 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6>`_, `GHSA-xjpj-3mr7-gcpf <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf>`_, `GHSA-9cx6-37pm-9jff <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff>`_, `GHSA-2qvq-rjwj-gvw9 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9>`_, `GHSA-7rx3-28cr-v5wh <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh>`_, and `GHSA-442j-39wm-28r2 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2>`_. This dependency is used by the ``ts-jest`` testing framework and does not affect production runtime. - #27448 (Author: dependabot[bot]): chore(deps): Bump node-forge from 1.3.1 to 1.4.0 in /presto-ui/src - Upgrade node-forge from 1.3.1 to 1.4.0 in response to multiple security advisories including `CVE-2026-33891 <https://www.cve.org/CVERecord?id=CVE-2026-33891>`_ (DoS in BigInteger.modInverse), `CVE-2026-33894 <https://www.cve.org/CVERecord?id=CVE-2026-33894>`_ (RSA-PKCS signature forgery), `CVE-2026-33895 <https://www.cve.org/CVERecord?id=CVE-2026-33895>`_ (Ed25519 signature forgery), and `CVE-2026-33896 <https://www.cve.org/CVERecord?id=CVE-2026-33896>`_ (basicConstraints bypass in certificate chain verification). This dependency is used by ``webpack-dev-server`` for development and does not affect production runtime. - #27456 (Author: Swapnil): fix(planner): Add filter predicate pushdown to AddExchangesForSingleNodeExecution - Fix DESCRIBE and SHOW COLUMNS queries hanging in PLANNING state on clusters with single-node execution enabled. - #27461 (Author: nishithakbhaskaran): feat(plugin-iceberg): Add support for tinyint and smallint datatypes by mapping them to Iceberg INTEGER type - Add support for SMALLINT and TINYINT columns in presto-iceberg by mapping them to Iceberg INTEGER type. - #27464 (Author: Shahim Sharafudeen): fix(security): Upgrade Netty to 4.2.12.Final to address CVE-2026-33871 - Upgrade Netty to version 4.2.12.Final to address `CVE-2026-33871 <https://github.com/advisories/GHSA-w9fj-cfpg-grvv>`_. # All Commits - 607ebdde66eb2b499f961f0b8c4e33cb214130f5 feat(plugin-iceberg): Add support for tinyint and smallint datatypes by mapping them to Iceberg INTEGER type (#27461) (nishithakbhaskaran) - 824ac11a68036f033bb4d32e4cb4c506a10e34e8 fix: Change default config.properties to instantiate a coordinator (#27472) (inf) - dc6a3699ccc5702556ad8cfd5970681a4088d17d fix(): Fix query failure logging race (#27479) (Sergey Pershin) - 85222765168bbe3307b13a0f681e51f01ccfc64b refactor: Replace getAllConnectors with ConnectorRegistry APIs (#27476) (Maria Basmanova) - 59d2618e3b5f862a82e3f377ac28847bfbadb72e fix(ci): Update release-notes-check and presto-release-prepare actions (#27466) (Li) - 7f97f8d533fb7f92e0a9a10cc5ec0a1db732b178 fix(native): Caps the count metric at int64_t's max value (#27295) (Rui Mo) - b516700cc1b17f866b12cccdc911b269e6926a4e misc: Use folly eventcount from folly/synchronization (#27460) (Amit Dutta) - e56b5d8df45f9d5331cda6fca8f2793e6e1a76c2 chore(connector): Upgrade junit-jupiter from 5.10.2 to 6.0.3 (#27467) (Nivin C S) - 3cec33e59998c04af86168bec86c2535e72f4bd5 fix(security): Upgrade Netty to 4.2.12.Final to address CVE-2026-33871 (#27464) (Shahim Sharafudeen) - 41fab989af633de6d33a5a54306e1a19ea22c55d fix(connector): Delta Lake checkpoint file reading by upgrading Delta Kernel API and updating Snapshot method calls (#27434) (Sayari Mukherjee) - 57025b1c8265b1c33b024ffdaadf58eaf134b88b feat: Add WHEN MATCHED THEN DELETE support to MERGE INTO statement (#27409) (#27409) (Apurva Kumar) - fb302b1c0563b9bd4551a74666101fd4e078bd70 fix(native): Avoid removing valid CASEs in switch expression conversion (#27031) (Pramod Satya) - ccae8253d37c0a329fc87b4e658b29aef4dcf8f5 feat(optimizer): Enhance PayloadJoinOptimizer with null-check skipping, chain flattening, and LOJ reordering (#27404) (Sreeni Viswanadha) - 1967fd1e8a09e1ecf4b8c42a89238cff5dfa2885 fix(planner): Add filter predicate pushdown to AddExchangesForSingleNodeExecution (#27456) (Swapnil) - 650e60c000f1874a4e5012677f99f0966f3cc4c3 fix(security): Upgrade copy-webpack-plugin to 14.0.0 (#27458) (Li) - e2a0a40819cf23bb65dd09cb121bf0d621459e5a feat(plugin-iceberg): Add support for adding Iceberg V3 default column values (#27353) (Reetika Agrawal) - 49de53badeb850c1c490feac93e10f2288ae40ac fix(plugin-native-sidecar): Treat identical lambdas as distinct during expression optimization in NativeExpressionOptimizer (#27315) (Pratik Joseph Dabre) - acba1e1736ee8157e81314513f3c2c037e894a9d feat: Cost-based MV candidate selection for query rewriting (#27222) (#27222) (Chandrakant Vankayalapati) - b0b83a4c4d7bc3fdddc6669e474ac1fb1210e23e feat(server): Add http support for internal resource manager communication (#26635) (inf) - 3020af715e722c845b78116fc4a9876dcf14d695 chore(deps): Bump webpack-dev-server from 5.2.0 to 5.2.1 in /presto-ui/src (#26275) (dependabot[bot]) - 19d008856774e28deb44a4d976973a0b1bb705b9 chore(deps): Bump webpack from 5.97.1 to 5.104.1 in /presto-ui/src (#27105) (dependabot[bot]) - 9ae347c432041203d1159473494ce82dcd24f1c2 refactor(protocol): Add new generic thrift toolkit module for connectors (#26259) (inf) - a0da77720e6f494dbb34fcdf392da0d038e8412a chore(deps): Bump handlebars from 4.7.8 to 4.7.9 in /presto-ui/src (#27447) (dependabot[bot]) - 9cd53cfa5ca0670a24a012b35c614df761d7c0d0 chore(deps): Bump flatted from 3.3.3 to 3.4.2 in /presto-ui/src (#27402) (dependabot[bot]) - 72b3751143f126da3c04f8517356db078b3518e3 chore(deps): Bump node-forge from 1.3.1 to 1.4.0 in /presto-ui/src (#27448) (dependabot[bot]) - 06f6613d5ff97ed5b7a9110e7237c7c7b53674f2 chore(ci): Advance velox (#27390) (Amit Dutta) - 94e4f47b5382e94fb6a79b8b44fbf21bf3953777 feat(optimizer): Push projections through cross joins (#27366) (Sreeni Viswanadha) - 691cb4b0cf2287fb2d2d48247b1c02c3f47c728a feat(plugin-native-sidecar): Pass down session properties in NativeExpressionOptimizer (#27304) (Pratik Joseph Dabre) - 9f2f9bd2a2dea473c87c368cf43d31a18f157aa8 feat(optimizer): Merge multiple max_by/min_by aggregations with same comparison key (#27417) (Sreeni Viswanadha) - 5e415bf564db38c496d1b485ddfff05c448ac252 perf: Add runtime stats for uncaptured metastore and planning operations (#27438) (feilong-liu) - f25c9902b85f78a3318d421ec0d3799353ad1939 test(connector): Enable test class for Oracle connector (#25762) (Namya Sehgal) - 9001170d6e85da682e975cf238c6eb6519131bd6 misc: Rename config key to `nimble.stats.enable_vectorized` for consi… (#27398) (Ke) - e2d8bc9b3484176168c55c62d033088c1ee5e811 perf(native): Avoid `LIKE` rewrites for prefix/suffix patterns in native execution (#27363) (Pramod Satya) - 9fb538c535bd1f57303373fe81b638ad7ae748a9 feat(): Export partition resitration times as runtime metrics (#27437) (Sergey Pershin) - 2c26196ce6b982e2eae7de4057b95f4750fc2da3 fix(optimizer): Fix infinite loop in UnaliasSymbolReferences.canonicalize() (#27428) (Sreeni Viswanadha) - a931d702009dda3d78f54534c6be07ed43cab506 chore(deps): Upgarde commons-io:commons-io to 2.21.0 (#27310) (sumi-mathew) - 481f916a9307af92b9ba165e6ee947200c532948 chore(deps): Upgrade org.ow2.asm to 9.9.1 (#27239) (sumi-mathew) - 70c064b3cc58c71befda24c6350e39b7c2382998 chore(deps): Revert Updated airlift base and checkstyle to work with Java 17 (#27423) (Miguel Blanco Godón) - b1eab1fe6f04d004f31f7b4c12257a6ab725a607 fix(connector): Widen Float16 to Float32 for Lance connector reads (#27324) (jja725) - f4b55fee808a67e3177863dbb38bb02f37255f17 feat(): Adding 'finishingTime' to QueryStatistics (#27420) (Sergey Pershin) - a0f735d4342a4c3b326f5635f648e4dcc3611a89 docs: Add TVF documentation in develop/table-functions (#27367) (Steve Burnett) - fed255175d927165eff25e136fefe052a741e451 docs: Improve documentation for deploying custom plugins (#27407) (Saurabh Mahawar) - 9d6829b4ae663b7568eb0ae646957be29898e0d7 misc: Add alpha prefix for extractNimbleSerdeParameters (#27413) (Ke) - a5e2214fa7b2d216d1ab7e7f2c154ce639134898 refactor: Add JSON serializations to RowType (#27386) (Aditi Pandit) - 28a27fa8a265cc2b63662663cb1d371e5bdbe106 misc: Various Code quality improvements in presto_cpp/main/types/ (#27405) (#27405) (Amit Dutta) - 84767cc46f2ff045131435d370d566365d61d44f feat: Add documentation for CREATE VECTOR INDEX (#27332) (#27332) (Ke Wang) - a9c7c61125bfcce0925a7a864aed52ebf081448e refactor: Rename targetTableName to indexName (#27381) (Ke Wang) - 2ff4adf2d3b1691947b16bcd7c41b3a87ce0bc9f docs: Fix doc build errors (#27376) (Steve Burnett) - 81ea0f14c068d961a12a7114f8291e4178868746 feat: Preserve selectedUser (identity) in Write Queries (#27360) (#27360) (shelton408) - 3633703b163bad19fc9449223ae84c4e0bc9c1a3 fix: Revert #27199 Select Alias in Having Clause (#27372) (shelton408) - ad979393e19a90307e35b5a11ec50ce083a7d94f feat: Support vector search in LogicalPlanner (#27169) (#27169) (Ke Wang) - 180beb15d8ee5ccd09192b8a8e20d5ac3a64275c fix: Guard JoinPrefilter against non-deterministic expressions (#27312) (adheer-araokar) - dd52621432bda9ea03d9940787149d128be07030 docs: Add limitation for spatial_partitioning and spatial_partitions (#27242) (jkhaliqi) - 5022f6bb6305de00dd1d85fd1d2c27f8f6f1ea87 refactor: Prepare TableFunction SPI for C++ (#27365) (Aditi Pandit) - f6f7cfdebc859f17758a1f9012dd22d980971348 feat(client): Log "Running <query_id>..." in Presto cli in non-interactive mode (#27359) (Sergey Pershin) - fe19cb95150dd7edc9a4b16c551e718691cdde08 chore(deps): Upgrade zookeeper version from 3.9.4 to 3.9.5 address the CVE-2026-24281 and CVE-2026-24308 (#27319) (Nivin C S) - 5c5e2ed22206922d42a1514eb5fc7753ce4e0887 fix(testing): Support varbinary literals in row expression verifier (#27107) (Dong Wang) - 7bccb2024bc5c0594d4e9460d35c45adf5858cad fix(testing): Support canonical and check type for null expressions (#27111) (Dong Wang) - f6e05b4844556ac3811fe6e3e79efadf03e03677 fix: Extract serde params from additionalTableParameters in CTAS (#27340) (Ke) - d86e64bf496212a8ebcb2b13f2b967a54ed6b490 feat(optimizer): Pre-aggregate before GroupId to reduce row multiplication (#27290) (Sreeni Viswanadha) - a26d4d8f6c7753ae086e70f9fae04f4f555e2cf7 refactor(native): Abstract session property provider (#27253) (Pramod Satya) - ba0158bd0d1304c071e6c82aa771bc945c1fd1ac feat: Add syntax support for CREATE VECTOR INDEX (#27307) (#27307) (Ke Wang) - 9a3028cb55b6805eac87dc90d3e927d0675a571c docs: Add TVF documentation in functions/table (#27333) (Steve Burnett) - 873b06e9e9559186a395beb8c3382349cc4ec9d2 fix: Fix presto protocol (#27352) (Pratik Joseph Dabre) - d5988a15e42c0a56440a71a28a472712c1b4ee4b feat(testing): Add HiveDistributedBenchmarkRunner for optimizer benchmarks (#27344) (Sreeni Viswanadha) - 1ddef8b8f728cd65b71db7cd0bfb1100b4c70bdc chore(deps): Updated airlift base and checkstyle to work with Java 17 (#27130) (Miguel Blanco Godón) - f47802482f9f69bc3c8474e9953e170515376955 feat: Add session property mark_distinct_spill_enabled (#27247) (#27247) (XiaoDu) - af30a1a8d9e7f600631568a9314d857fc0126dfe refactor: Migrate to folly::available_concurrency (#27326) (Jay Feldblum) - 0eab0acfbe87bd3e3e4f7c92a98f3f7538e5711d refactor(plugin-iceberg): Fix thread safety in Iceberg procedures (#27341) (Reetika Agrawal) - d01dd4677df254d376d23b6ff3565f6857161004 misc: Remove dead code in Iceberg connector (#27336) (Amit Dutta) - a505b5d90b85842086c8a4462d07253901d00afc refactor: Migrate to folly::available_concurrency (#27328) (Jay Feldblum) - d284a7a0485ad4c4ca01414200d75c91b4393a3a perf: Optimize LIKE '%substring%' rewrite to use STRPOS instead of SPLIT (#27311) (Alexey Matskoff) - 816fc417f824c440c793969bb12b9d9e36a5233b chore(ci): Advance velox (#27329) (Amit Dutta) - 0520449d9beabdbebb5595678e15f138168a12ef feat(plugin-native-sidecar): Add internal communication auth layer to sidecar http-clients (#27184) (Pratik Joseph Dabre) - 980f1c80544f5fc4f88b6bccd6ac5df504ec86ca fix(optimizer): Fix PlanRemoteProjections to keep JsonPath arguments inline for local functions (#27323) (feilong-liu) - 78ae08229bbbc22ff26b7d06e6f2c96a8c715d79 docs: Add EXPLAIN CREATE TABLE documentation (#27214) (Garima Uttam) - a4951c9ca41dbc32be4cdb06f3bb3fc7c3d93691 feat: Enable MV data consistency for CTAS and INSERT (#27302) (#27302) (Chandrakant Vankayalapati) - 8e27030c617960e694f77e8b2a9b37a53c5db0a3 feat(connector): Presto Lance Connector (#27185) (jja725) - 7925aff6dc8a29a822ef24ee0a84029698e490ce docs(plugin-iceberg): Supplement documentation for transaction support (#27318) (Dong Wang) - 770176b63a9a631761e4d4c1b109339cf882ab40 fix(docs): Fix merge command docs (#27279) (Pratyaksh Sharma) - e7b539b25d9de85a0990063f7f108c1b43251f2a fix(native): Replace raw assert() with VELOX_CHECK in PrestoToVeloxConnectorUtils (#27306) (tanjialiang) - 4790816db0ba0ee1e826928e5e827ea7dbcedcbd fix(docs): Fix configuration properties docs (#27280) (Pratyaksh Sharma) - c27afbbac58bd26e46c9064ead14b382176d23cc refactor: Replace throw std::invalid_argument with VELOX_USER_FAIL in presto-native-execution (#27308) (tanjialiang) - 2ebf6110e90ca52fc11a378b2c03cf6ee8c3374e fix(ci): Skip OWASP dep check for doc-only changes (#27305) (Yihong Wang) - 06ca23e0f4d3629728a4c3dc3278e2852f022b3b docs: Fix formatting in router/scheduler.rst (#27303) (Steve Burnett) - 31f7d8571d5272dea5f5e9498655624d4dd0f9f7 docs: Remove redundant table of contents (#27235) (Denis Krivenko) - 4a4d1e9d3edc53f7297343e7d95e0e5cc4f03b7c test: Add end to end test for key_sampling_percent (#27025) (jkhaliqi) - 0528912b9db1387cb25b3a419c041983fdcc21b1 fix(security): Override vulnerable lz4-java dependency to address CVE (#26931) (sumi-mathew) - 626c09d030dfda25b538c2c21a6578a964ea8cca feat(analyzer): Add support for SELECT alias references in HAVING clause (#27199) (Deepak Mehra) - b7142a306bd1fbc2bdfc249f096608cf67283953 feat(planner): Update AggregationStatsRule to work for more aggregation shapes (#27215) (Anant Aneja) - b38d89c460bd7093d39e3048f0c1ac5f76e66e7a feat(native): Split IndexLookupJoin stats for IndexSource (#27292) (Zac) - d6a34bcff2aeba4471994626e5d403f73ea3d09d docs: Add documentation for Iceberg transaction support (#27252) (Garima Uttam) - 9970fa342d5f89ebd661a13be93ca2d4d07a0808 fix(planner): Fix failing isDistinct for equivalent variables for logical properties (#27241) (Anant Aneja) - 2a9765664978363d94eea9249c90d77623262a06 feat(optimizer): Support predicate stitching in MaterializedViewRewrite (#26728) (Timothy Meehan) - 1b41219f716e86a3fabb65613e3c2c5fe75b5616 misc: Add aggregation and hash join spill file create configs (#27299) (tanjialiang) - 2c1e95fb65bfd15152bacb185b4c24789e7cbacf fix(docs): Add ANALYZE example to Iceberg connector documentation (#27234) (Garima Uttam) - f9d87a29a20f0966544ab874c235465ca7cfe889 feat(planner): Add feature config for PushPartialAggregationThroughJoin (#27269) (Anant Aneja) - 6993507289380e1272ef7b3a0d38ad62e6226d8f feat(plugin-openlineage-event-listener): Add OpenLineage event listener plugin (#27249) (jja725) - ab53686f8bc759312b1e8242cbf002fc44da9ab5 chore(deps): Upgrade avro to version 1.12.1 (#27153) (bibith4) - 0f5d2778bf91fb9362d2e02b1265ac4a936901a5 test: Add Iceberg branch and tags support related tests in Prestissimo (#27272) (Reetika Agrawal) - 9c230da05ea68c15429ed8e3cfe3d48b3bd9843e chore(ci): Advance velox & Migrate presto-trunk from VectorSerde::Kind to string API (#27262) (Han Yan) - 25d2fb1bb630a59f7721a75e7306b5b9ba254fb3 fix(ci): Skip arrowflight CI for doc-only changes (#27285) (Yihong Wang) - 9ecc7ac9addbe053add8535430b880b590ea1e0a feat(analyzer): Allow CTAS and INSERT from materialized views (#27227) (Chandrakant Vankayalapati) - c02223f5316a182585bc82b8096eb982a81ba4d3 feat(optimizer): Add SimplifyAggregationsOverConstant iterative rule (#27246) (Sreeni Viswanadha) - 4073ecb2052d738b8befbf3cf2e07ea50e9dd6c5 refactor: HivePartitionManager.parsePartition to instance method and remove timeZone argument (#27284) (Ge Gao) - a702f22b5f64f36f3e898a19b0bcc4a3814b76bb feat(optimizer): Simplify nested IF expressions with matching else branches (#27267) (Sreeni Viswanadha) - 44300f7b7c83494f71c461cc9dffe13b91dbc5bf feat(optimizer): Simplify COALESCE over equi-join keys based on join type (#27250) (Sreeni Viswanadha) - 17bd413dabcdbff91e69db9737b5a8fb94434b89 fix(native): Replace lambda body with optimized expression in NativeExpressionOptimizer (#27143) (Pramod Satya) - de008fd208cc0382f516257f132f120f7322f5fd chore(deps): Upgrade netty to 4.2.10.Final (#27277) (Vyacheslav Andreykiv) - 9362b1bd4e7bbd67c4505efe5b0ef18802d62c59 test: Add testing infra for the presto-ui (#27144) (Yihong Wang) - f98d4eb240a7abd65993c3a9237aa128e8e0eba7 chore(deps): Upgarde org.xerial.snappy:snappy-java to 1.1.10.8 (#27205) (sumi-mathew) - f751174e4e020f4c957a9be2e2fad9a70c6759c7 chore(ci): Advance velox (#27271) (Amit Dutta) - 530823e3c3be1afdb2ee3c0ea944a10c3cbe3584 test: Add test for querying iceberg branch (#27268) (Reetika Agrawal) - 894f0d4c74a3719e17d1187a13081a3c759151b2 fix: Add kMaxSpillBytes to system config -> velox query config mapping (#27132) (Han Yan) - aca6ee96edb9a6f329aa6cc6ec940145c11519a2 refactor(plugin-native-sidecar): Replace OkHttpClient with Airlift HttpClient for consistency (#27258) (Pratik Joseph Dabre) - 8a4fae0f8cc96ce30cd27075ebc604ebe855eaf3 misc: Migrate cpp.ref_type and drift.recursive_reference in presto thrift (#27248) (iahs) - e75f5a5933c97ff9baa724e1d80e78f55dbcb801 feat(plugin-iceberg): Add support for mutating an Iceberg branch (#27147) (Reetika Agrawal) - 6dc9dc62cf28ebb5905b6f17b659a8055379d520 fix: Fix update error with pushdownsubfields optimization (#27254) (Jiaqi Zhang) - a9094aee5cb33570f92f9cdce85af376936644ab feat: Add session property aggregation_memory_compaction_reclaim_enabled (#27221) (XiaoDu) - 4c8220e85eaae360986a81b2325c6662d56340c9 refactor: Move RebindSafeMBeanServer to presto-common (#27173) (KNagaVivek) - 86eaf114cadede1b3cec0de598502696be931bdf chore(ci): Advance velox and fix Arrow Flight 18 (#27163) (Christian Zentgraf) - caab1212b78668b2fd79f2d9639bd401d0d11304 misc(native): Clean up SystemConnector: fix fragile statics, macro hygiene, const-correctness, and switch safety (#27251) (Amit Dutta) - ec533ab1882e57cc6068dd75e99720e6a0dff523 chore(deps): Bump aircompressor from 0.27 to 2.0.3 (#27152) (Dilli-Babu-Godari) - 14ef5250a1736c08f8be41be4eefb81debd395b3 fix: Increase max-task-update-size for the test (#27220) (Vyacheslav Andreykiv) - 23696667469d7b14038974b7ed0c7bdb6728b0dd feat: Add initial support for Iceberg format version 3 (#27021) (Joe Abraham) - 176641ab41e8011e0512b58f7075d7e7fbd4f317 fix(native): Fix copy-paste bug in veloxQueryConfigOperation log message and add tests (#27236) (Amit Dutta) - 20b9c536f1fe4c1d842f06fba9c14e32d733bc13 feat(ci): Update maven to 3.9.12 (#27030) (Madhavan) - 9036f92f6ddd908e90236f32bc5d40d04b63c760 fix: Replace regex-based json_parse safety wrapper with AST-level rewriter (#27202) (Han Yan) - 84117572aeb6592579fc4e19411542ba4d5b2e7b misc: Move TopNRowNumberNode to presto-spi for connector optimizer access (#27232) (feilong-liu) - 6e5d260f3faa60c448af44a9c8c725366ada1380 feat: Update timezone data to 2025b (#26981) (rdtr) - bcccfeb639f265296bb3f5c3627f41ec15aa555a feat: Support Iceberg's single-table multi-statement writes transaction (#25003) (Dong Wang) - 8ed0e155561d6498b70374755db56ba367f80359 refactor: Extract helpers to eliminate duplicated HTTP handler boilerplate in TaskResource (#27224) (Amit Dutta) - 26b7228d6b60f1b0b8170133afe0d5bc0628cb43 fix(native): Replace unsafe atol() with folly::to<> in PrestoExchangeSource (#27223) (Amit Dutta) - 4bb9c91f0b587bd53b6348bc015a15f6276ad75d fix: Enable GPU build in CI and replace clang usage (#27160) (Christian Zentgraf) - d39e0629351f385492ee4e5231f243f5564dd254 misc: Make theta_sketch configurable via PRESTO_ENABLE_THETA_SKETCH macro (#27213) (Vyacheslav Andreykiv) - 0d6a4d507a98c70e621c33a90ccd0f7a9f16040f docs: Improve Hive storage format and compression codec documentation (#27216) (Garima Uttam) - 1fc8fad4f56349e2d5a6d48b23bbf2aa8f37d0a8 fix(connector): Enable NDV stats collection for Iceberg in native mode (#27207) (Naveen Mahadevuni) - 4e565039039970f52d913ffc5715b0d3e4ef93eb feat(plugin-iceberg): Add DDL statements for CREATE TAG (#27113) (Reetika Agrawal) - ee7c62adf06ac2e7d734a1ea008faad9faf0cfe3 feat(optimizer): Add PushdownThroughUnnest optimizer rule (#27125) (Sreeni Viswanadha) - 6d7ab531569574801d00f05a68fb3abca42934ff fix: Add null check to UtilizedColumnAnalyzer (#27083) (Auden Woolfson) - 7d35ad2041f00b45612297d6a26f5a9d5214c4a5 fix: Fix isNativeExecutionEnabled to be based on session property (#27123) (adheer-araokar) - 08a8dc16939d581d2508af0deac3171c243f3910 feat(native): Implement Sketch Theta aggregate and scalar functions (#25685) (Naveen Mahadevuni) - a4a4b3dff1ecd9f2b9a0536c76ee0dd8d9ed98fc feat(server): Add ability to disable the UI (#26682) (Anant Aneja) - e72544fa5d54267e222d0253083547b5711826f1 feat(planner): Improve TextRenderer to show input totals (#27189) (Anant Aneja) - ad483359b8dbe08b9a9bc1f634bd5a8195328944 fix(planner): Set the size estimate for a ConstantExpression/Literal (#27188) (Anant Aneja) - a62672886152c8c6b61cf301d246f217d850e357 misc(native): Fix lint issues in presto_cpp types/ directory (#27194) (Amit Dutta) - 920353f4af4066c4250dd235ca012b9946240520 chore: Update airlift to 0.227 version (#27070) (Nikhil Collooru) - ef8463cf5f728a3708d5c0a9bb6ad44831b412a7 feat: Add TEXTFILE custom serde parameters support (#27167) (Xin Zhang) - 25baa62208c1e0e8a35dbed2b94cddfbb4df1248 fix: Do not add redundant exchange over remote function (#27170) (feilong-liu) - 39d1b3d34fb54d3d87593cac947bf32c47b07db0 fix(optimizer): Fix bug in partitioning utils (#27179) (feilong-liu) - f98b61d857a924e2aeaf0b30e0fbb4cff00d2dac fix(build): Remove duplicate BasicPrincipal from presto-main-base (#27187) (Vyacheslav Andreykiv) - 69984325d9536822741676d5ef68bb70ace1a1e5 misc(native): Refactor PrestoServer::run() into smaller methods for readability and testability (#27186) (Amit Dutta) - 67dda4b8d1f0e911bc9fb40af950400a9e480068 fix: Presto spark add X509 certificates to SessionContext (#27183) (Kevin Tang) - 1b49ef90c73156bb7992e00384f6f4c082b0a506 fix(security): Upgrade pinot to version 1.40 and Override vulnerable lz4-java dependency (#26684) (Sayari Mukherjee) - afb5e86e5f04bdb26ca0794df9ea9ab6ca8f0c90 docs: Add CREATE/DROP TABLE docs to sql/explain.rst (#27182) (HeidiHan0000) - 2f4261adde9d74d7c9f91de1dd953e6f4fe491bb feat(optimizer): Add PushSemiJoinThroughUnion iterative rule (#27176) (Sreeni Viswanadha) - c7153139aac6b89d68c810219ead4ff71ea1a0fe fix(build): Add library required for Velox as of 44e10f4 (#27166) (Simon Eves) - a97b826fde5666fda388bcdcc37b5d638cf9a9e8 test(native): Iceberg Materialized Views (#27020) (Timothy Meehan) - 940babe80e60d5023c77c7cca1c6176cceff48a4 chore(deps): Upgrade jakarta.el to 5.0.0-M1 (#27084) (bibith4) - 662a661a474aa7b265f9981cfd1275f91a8116f0 fix(security): Upgrade highlight.js version to 10.1.2 (#26907) (Ajay Kharat) - a5f84ae5359d6e656771a08925248bde2235acad refactor: Extract internal communication authentication in a reusable module (#27165) (Pratik Joseph Dabre) - 151cc8c0a9d3a6974125b63a31c0465ffb77a30c feat(native): Add config for asyc cache flush threshold (#27171) (Ke) - 82a1939c5852862b4d21e6440bf69b2824b99ef9 fix(spi): Typo in the comment of MaterializedViewDefinition.TableColumn (#27172) (Dong Wang) - 2d664921f04391421ee5381e51af57cc756faa4e fix: EXPLAIN CREATE TABLE to show IF NOT EXISTS clause (#27138) (HeidiHan0000) - 8d6d9543556d0227a6d86e4c34aaa94717b62224 fix(security): Bump ajv from 8.17.1 to 8.18.0 (#27154) (sumi-mathew) - 8bfb3f3cc91b36d71014c2cb721e95b40c7b5f23 docs: Add dev container repo to readme (#27089) (Christian Zentgraf) - a5e12fd72b63d587eaf21b8d143bb3a845dc074a fix(security): Upgrade druid version to 35.0.1 (#26820) (Shahim Sharafudeen) - 69b959d88b36ffc80871fbc81e0b00a3c0715fab docs: Add to Presto C++ limitations doc (#27120) (Steve Burnett) - 88b63434a29d2ac7a898282bb2adcc2b83638bfe fix(scheduler): Coordinator Task Throttling Bug (#27146) (shelton408) - 8236897ff8961e2c000c1f2b1c9218c26ac1596a build(native): Add c-ares installation to Mac setup (#27135) (Naveen Mahadevuni) - 7d5b929718dc81861c952b754c45fee63e656439 chore(deps): Upgrade Arrow to 18.3.0 (#27134) (Lithin Purushothaman) - 418e326dc8acfc971dfdd71cc0bde1c01cdb4e93 fix(planner): Fix size estimate used in TextRenderer (#27080) (Anant Aneja) - 3a42841f09114b698d357f5f7c0c3582937a9fe6 chore(ci): Advance velox (#27133) (Amit Dutta) - e42270308b19ec363ff4c06ff5948a5c8295bc43 build!: Remove implicit bundling of sql invoked function plugins from default Presto server Provisio build (#26926) (Pratik Joseph Dabre) - dae492a88d744fac77ea0e69cdf977d333624be9 fix(build): Fix deps container dockerfile (#27145) (Simon Eves) - ef9ef78726f92cb907a3e42b022a4291e1c58ccd fix(build): Upgrade testconatiners to 2.0.3 (#27140) (Yihong Wang) - 2a5a908fbd69fb822cab8bf3080a871d271572f1 build(deps): Install_ucx in centos-dependency image (#27118) (Karthikeyan) - 223b0dab90852298406a8ab9c2604e04daf68f4b docs(native): Add runtime metrics documentation (#27109) (Garima Uttam) - 932f85a39f414fe74da3084e93a21c7e8cf07507 docs: Add scale-writers property documentation (#27110) (Garima Uttam) - 873393fb0123fb8d0621da9fd877b19faf53b831 chore(deps): Update hive-apache version to 3.0.0-11 (#27046) (Joe Abraham) - a023a5bd3a5672a1dc8380dd644536f920b19346 fix(plugin-cassandra): Drop stale tables if table creation process fails (#27100) (Pratik Joseph Dabre) - ff462d8b35c7050a0594bc34c31002297ef15e8a feat(optimizer): Native TopNRank optimization (#24138) (Aditi Pandit) - 45784a9235f09aecac4e41f7547de665ce46969d chore(deps): Upgrade org.apache.httpcomponents.core5:httpcore5 version to 5.3.4 (#27049) (sumi-mathew) - 876babaf2ec205c3c627bb24a685bb3199f1c530 fix(build): Undefined Iceberg* symbols (#27094) (Ping Liu) - fc589a51eadf9e196d74a371a0f28f829eb55c32 fix: Query rewriter truncate (#27115) (Han Yan) - d23b02107dcc3d8c65bfbb2ece5c4f8af0b94ae4 feat(native-pos): Add capability for parallel shuffle checksum (#27078) (Shrinidhi Joshi) - aabe558ea0664e7e627e6ee5c1e5379e3d8030a6 fix(testing): Check both type and data for GenericLiteral in verifier (#27108) (Dong Wang) - ee4cc9b4545e89ae51d6e402784b42b469a5b0c6 chore(native): Advance Velox (#27103) (Aditi Pandit) - 277d03cd67178ad5c6ccaeff8767f707f9c0f9e4 feat: Add session property for dynamic merge join output batching (#27086) (tanjialiang) - f345bc5c947dfc9d93264c8b15ad8103a23c15d0 build(deps): Bump CUDA from 12.8 to 12.9 (#27074) (Simon Eves) - b84574ff87c1aff77530329fae2307ca86f5c500 misc: Fix RemoveCrossJoinWithConstantInput to use unknown locality (#27116) (feilong-liu) - ae63dc28a1b97c203893a55727d2144ae8f31d23 build(deps): Bump lodash-es from 4.17.21 to 4.17.23 in /presto-ui/src (#27051) (Dilli-Babu-Godari) - 63b260023d94838596a86a198a7f6854504a51d5 fix(ci): Fix no space error in arrow flight tests (#27119) (Li Zhou) - 82c83905c19a75709111f2083ce933a53d8393cf fix: Add createBranch method implementation in StatsRecordingMetadataManager (#27114) (Reetika Agrawal) - 5539e9f5fa95acc84f45aac27272cd42699b1350 feat(connector): Add comprehensive JMX metrics for metadata operations (#26875) (Reetika Agrawal) - 907b1afcdff49218775cf09c6d1b7f0dd3bc112a chore(build): Cleanup disk space in arrow-flight-tests (#27106) (Aditi Pandit) - 67304707b442bc120e3402ab270b8e59135755e8 feat(plugin-iceberg): Add DDL statements for CREATE BRANCH (#26898) (Reetika Agrawal) - def6ddf1edeef7591fb636ce9e7cab36b0eac7bd misc(native): Decouple HttpServer and HttpClient from SystemConfig singleton (#27104) (Amit Dutta) - 28f7e58088e7c46bddb280882db73613184651ed feat: Add CUBE limitation in Presto docs (#27098) (Natasha Sehgal) - 1efbb75fa8ed993cedc72f16798eb621b2441e2d misc(native): Minor warning fixes (#27102) (Amit Dutta) - 00da6695c2fb92f3fd5bbdf17435d50fa489e690 chore(ci): Advance velox (#27095) (Amit Dutta) - 11dbbb5f608825782d587bfa10c45f7b8383c775 fix(docs): Update link in Hudi documentation to RFC-44 (#27092) (Joe Abraham) - a6926d1a9b4ed1bb95104d400710e74327d358bf fix(native): Fix Dereference expression index type in VeloxToPrestoExprConverter (#27057) (Pramod Satya) - 6fb40f02af65d48a808697efa7bb1e404418ccec fix(native): Add support for kHyperLogLog type in NativeTypeManager (#26978) (Pramod Satya) - 6c7dd6441d2553bf5336dedcec7b6c14b0a20550 fix(native): Fix Velox to Presto IN expression conversion (#26951) (Pramod Satya) - c3b3eeb6260a44753dd917ec129ff52a248effe6 feat(ci): Expand CVE reporting to med and low (#27081) (Christian Zentgraf) - e1006483a1d6f5470a8d4229b7805cf08301d92e feat(native): Add config for asyc cache numShards (#27073) (Ke) - 93def8b1e31da26374eb8f472ad4ed39ca331209 fix(planner): Fix filter stats estimation corner cases (#26812) (Anant Aneja) - 9ab52f5938bec1107a9c6449a0c57daabed4e4f6 test(native): Add ipprefix and ipaddress tests to native-tests (#26905) (Kyle Wong) - 552553483639893878d9d71f6641bc7f9f633e02 fix: Resolve table names in MV query optimizer for consistent matching (#27059) (Chandrakant Vankayalapati) - e300b7dae542636562c87fbdb3196694a92b271c feat: Add 'native_partitioned_output_eager_flush' session property (#27067) (Sergey Pershin) - 856de263efca39150d88c2dbf1f27f76b5c86849 feat: Adds a new session property to catch remote function errors by TRY() (#26976) (Pradeep Vaka) - 6b9cb831b17a422d785916b9878ae433bf37c5fc perf(native): Fix unnecessary copy in http module (#27063) (Amit Dutta) - 4d1c6d0f5fd98754d0412fcb059aed6307a030d5 chore(ci): Advance velox (#27069) (Amit Dutta) - 49975aa7eef3d45bb4d871800f4b1c2f35c49a49 feat(plugin-hive): Session property to control file size for presto writer (#27054) (PRASHANT GOLASH) - 1adbfdc588b018e7e44645f319e0aea248d9b777 chore(ci): Advance velox and update Iceberg API (#27061) (Amit Dutta) - 0cbcc7419577b9b2d255ae190f75920b71e947e6 feat(plugin-iceberg): Add session prop for max number of partitions per writer (#26989) (Dong Wang) - 9d0ee1159a894ae292908c3ecf9ad41f51bbcc48 fix(docs): Iceberg connector reference in ANALYZE docs (#27041) (Ishaan Bansal) - ced6b6c6ca874f00e7df06cf92e7535812161fb7 refactor: Remove unused code (#27060) (Reetika Agrawal) - 4e8c0baf4da5791afd86460b9743278dc279815a perf(optimizer): Make cost-based strategy of using parent preference in AddLocalExchanges (#26960) (Wei He) - c012600fe6bfd0df69446774fc4c76f357c4a77d fix(plugin-iceberg): Disable metadata deletion on varbinary columns (#27050) (Dong Wang) - 32207b9573ecab181b61eebc4754a7f545554b27 feat(plugin-iceberg): Add support for materialized views with Hive catalog (#26958) (Timothy Meehan) - feb403bd5825a374a3dda7e29fd594d8294243da fix: Fix typo in sidecar docs (#27053) (Pratik Joseph Dabre) - f958bac8c2340e6806230bad0205e04a44476c55 feat(optimizer): Add option to set task count for remote functions (#27044) (feilong-liu) - ed0c4df5c3e68a0c1f8e8de1589c79c30378ff9a feat: Add subfields pushdown for cardinality function (#26834) (maniloya) - 1a67c8eb23ec26eae1cbe38afd92496f0e0ab245 chore: Upgrade io.opentelemetry version to 1.58.0 (#26644) (sumi-mathew) - 4be75f05db0be6b49291593202c21e5edbb034b8 fix(plugin-native-sidecar): Avoid sending aggregate and window functions to sidecar for expression optimization (#27043) (Pratik Joseph Dabre) - 2c7a13f8aded259500221d9643f5abb147e9d50c chore(deps): Upgrade postgresql to version 42.7.9 (#27012) (bibith4) - ec75c58bf7f085c6e536085958ae042edd2f0800 docs(native): Add documentation for Presto C++ Installation (#26718) (Saurabh Mahawar) - 3c1009563553d37af52569291a3cbb74a5dc8f20 build(deps): Bump lodash from 4.17.21 to 4.17.23 in /presto-ui/src (#27009) (dependabot[bot]) - ffa70a325a6a1f865cc74c95163fb5c703db06c2 chore: Upgrade org.locationtech.jts version to 1.20.0 (#26646) (sumi-mathew) - fede6817cba325bc2fcfcbb4a2f52ccd1d56249b feat: Add configurable query admission pacing to prevent worker overload (#26988) (PRASHANT GOLASH) - b11d8570b2bf32a5689c1223eed250123d4f5a30 fix(optimizer): Fix hash function for prefilter groupby limit (#27033) (Sreeni Viswanadha) - 77059c66cdd1258f7e1ef73ccaaed99470e12a46 feat(connector): Allow fine-grained enable/disable of hive metastore caches (#26918) (Jalpreet Singh Nanda) - c57d320c91765efb17e0e21f261951340f49883d misc: Remove unused includes (#27026) (Amit Dutta) - c53e51dd42abfd9349babf2b8318c2a8c3cae766 feat(connector): Upgrade AWS Glue to AWS SDK v2 and Migrate to MetricPublisher (#26670) (Jalpreet Singh Nanda) - b096c6896d9e9166569dd2ac092ec75e1c61d442 chore(native): Remove unused variable in VeloxToPrestoExprConverter (#27018) (Pramod Satya) - 881439c420618e305805185654ee4ad19d5468d3 fix: Add row field names for varchar/map types when registering function signatures (#27016) (Kevin Tang) - 62b670be4b120c26479e6a59cede8208c5270caf test: Add TVF invocation tests with nested table function calls (#27001) (mohsaka) - 2ae4e02391839f66298d9e5b2d5c835f567616b6 fix: Add global tracker for view definitions used in a query (#26927) (Kevin Tang) - 3d8af974b2609de235d2ff9f25977252839a1e1c chore(deps): Upgrade org.glassfish.jaxb:jaxb-runtime version to 4.0.6 (#27003) (bibith4) - 2a248d3f274ec36bab61b893f9412b1f460677ea fix(build): Fully qualify yield call to avoid java 17 compilation error (#27006) (Kiersten Stokes) - 4e91f155d0f4704325552fac3807da0efdba6a35 fix(docs): Added documentation for the comparator version of array_top_n (#27010) (Allen Shen) - 6ac60ce6783700cc1123193e5a740bc5dc7c1025 feat(plugin-delta): Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command (#26986) (Adrian Carpente (Denodo)) - b105046a593f17e5949bec8eda7c06395cc47998 chore(deps): Bump iceberg to 1.10.0 (#26879) (Joe Abraham) - 69c842fc7866108523f906f0430d121d3172ff6c feat(native): Add support for NativeFunctionHandle parsing (#26948) (Pratik Joseph Dabre) - 3b328e76268d4cad29ec2fcc6a87ff277dc0a3b3 fix(plugin-iceberg): Drop data table if the MV fails validation (#26994) (Timothy Meehan) - e3db5a253adfb5d57d85351115bacc4225be885a feat(native): Create a runtime metric for worker uptime to be used for restart alerts (#26979) (jja725) - 688e0a27b3c357ecfe07e7d2c49c3e9de883fe7a fix(native): Incorrect release build and make errors (#26997) (Christian Zentgraf) - f552971aea1471a2b57b26f3f4ea9b1eeabd217c chore: Move permissions checks outside of Analyzer (#26869) (Kevin Tang) - 5a28e1caff68c00ed95f3cf4322a7b5329457722 fix(docs): Fix spilling docs (#26194) (Pratyaksh Sharma) - 57f42d8783adf448b9025c91c4a0ebd52c5cf24a fix(native): Enable TestPrestoNativeAsyncDataCacheCleanupAPI (#26923) (Reetika Agrawal) - e5aed797275425b5ef8ebb357776b4d83d39f43c fix(docs): Fix grammar in iceberg docs (#26991) (Pratyaksh Sharma) - fe2f09e4173f037cea679f61713b0b164e3a475c docs: Refactor the page explaining how to deploy Presto with Docker (#26870) (Denis Krivenko) - 8a219ee5a28289a75d53ee8ded9e42498ac9c3f0 fix(docs): Fix redis-hbo-provider docs (#26190) (Pratyaksh Sharma) - acc0f202bc0f228e8a2d85ac690ac53245894be0 fix(ui): Avoid auto-applying LIMIT to non-SELECT statements (#26987) (Prabhu Shankar) - 3f588e546738182a53318350b64ce194a6fce215 refactor: Deprecate the old cleanup aggregation node ctor APIs (#26973) (Xiaoxuan) - db41f886e40e319a23582d1e5cd8c032f8828386 feat(optimizer): Add option to not push down remote project below exchange (#26943) (feilong-liu) - b3968a064552e1f2af810dad91bcb472bf26d7de feat(plugin-pinot): Add TLS support for self-signed certificate (#26151) (Dilli-Babu-Godari) - 6616215186197d424b6a636ae3845c034de3d941 feat: Add catchableByTry flag to ErrorCode for extensible TRY error handling (#26949) (Pradeep Vaka) - d26ecdc982b7e8c9483cd077a8db5bdc48be46fa feat: Support `sorted_by` for `data_rewrite_files` procedure (#26804) (Dong Wang) - 513092449e3c435f74fed0ba936df15471013d61 feat(optimizer): Add exchange on table scan when number of files to be scanned is small (#26941) (feilong-liu) - b64af1e3a0f34c315a23ba5ffaf65f432872f6cf fix(docs): Khyperloglog uniqueness_distribution default behavior (#26957) (HeidiHan0000) - edc87242eeac1e28a1c1b0f2f48039cf65f28fc3 fix(native): Use GCC14 in runtime image if cudf is enabled (#26967) (Christian Zentgraf) - 18c15e2d82ae35ec856b18e473d91577249c0858 fix(docs): Mismatch for map_keys_by_top_n_values for example block (#26916) (Allen Shen) - 348c842de115295ab1d04aea909bb0fdb35aee11 misc: Add python language in RoutineCharacteristics (#26962) (feilong-liu) - a4a5405f63085a75538f671a7c50d81e3f484208 feat(plugin-iceberg): Add support for MERGE INTO (#25470) (Adrian Carpente (Denodo)) - cf60c368694a124979f7db56cf8d02f3cd2d7e1f feat(plugin-hive): Add support for skip_header_line_count and skip_footer_line_count table properties (#26446) (Auden Woolfson) - 4ddfb2a464e45015863d02e7b0096777dcc04b53 feat(build): Support local maven configs (#26954) (Timothy Meehan) - ac765b9c3929d4837b2e3f1336de4bddbe27bb48 chore(native): Revert castDateToVarchar parameter and add cast based on storageFormat (#26955) (Pramod Satya) - b2255b6aee986ff7f70e9a7abe6793ca3eb98846 fix(native): Fix protocol generation (#26956) (Pratik Joseph Dabre) - 441a3d3e2f382f37a9f082eceb7d68a402af2b49 fix: Pass reasonForSelect to view identity for definer mode (#26724) (Kevin Tang) - 21d861083cfd5881aa5ea088a713882faf90c2c3 fix(ci): Remove deprecated mac 13 runner from build tests (#26952) (Li Zhou) - b200d1fe7a5882d7a178e0636b2684792ee212d7 fix: Register worker functions before system access control (#26945) (Kevin Tang) - 0dfdb99e0627d6da927abf3e370a36dbfdf76772 feat(native): Add counter to track http client connection reuse (#26822) (Ke) - 9535d3a926f37ab670766821416c68a14430393b chore(ci): Advance velox (#26932) (Amit Dutta) - 20f5ca51bddd79202ab712ecdd24b8e7fe1ea6a6 misc: Add method comments and update docs for distributed procedures (#26890) (Dong Wang) - 3037dc96aae8278f91dc6da1d7e7b3ab8c3fad2d feat!: Add access control for procedures (#26803) (Dong Wang) - edeff0352ba6624fcdf4e31820dd277dc777e585 feat(ui): Add SQL Support for MERGE INTO In Presto #20578 (presto-ui) (#26825) (Adrian Carpente (Denodo)) - 39d8e3c94daa6d4c9a2583c7cb3060c13fe5f001 fix: EXPLAIN IO output to support temporal types (date, timestamp, timestamp with time zone) (#26942) (Timothy Meehan) - 04bcfef13649fc0e31fa2848dd98af6ba11dc67a chore(native): Cleanup expression optimizer API (#26925) (Pramod Satya) - 8dece5d6593c1f9217f8562edf80c36bba39a180 fix(native): Enable Velox to Presto lambda expression conversion (#26913) (Pramod Satya) - 89be9060b15038444 ## Release Notes ``` == NO RELEASE NOTE == ``` **Note:** The full release notes summary was too large (76874 characters) for GitHub's PR body limit. The complete summary has been saved to [`release-notes-missing-0.297.md`](../blob/release-notes-0.297/release-notes-missing-0.297.md) in this pull request. **Please delete this file before merging.** ## Summary by Sourcery Documentation: - Document the 0.297 release in the Sphinx docs under release notes. --------- 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: wangd <mingwbd@gmail.com> Co-authored-by: Timothy Meehan <tim@timdmeehan.com>
# Missing Release Notes ## Apurva Kumar - [x] https://github.com/prestodb/presto/pull/27409 feat: Add WHEN MATCHED THEN DELETE support to MERGE INTO statement (#27409) (Merged by: Dong Wang) ## Chandrakant Vankayalapati - [x] https://github.com/prestodb/presto/pull/27302 feat: Enable MV data consistency for CTAS and INSERT (#27302) (Merged by: Chandrakant Vankayalapati) ## Dong Wang - [x] https://github.com/prestodb/presto/pull/26374 feat(plugin-iceberg): Add `rewrite_data_files` procedure (Merged by: Dong Wang) ## Maria Basmanova - [x] https://github.com/prestodb/presto/pull/27476 refactor: Replace getAllConnectors with ConnectorRegistry APIs (Merged by: Maria Basmanova) ## Prabhu Shankar - [x] https://github.com/prestodb/presto/pull/26987 fix(ui): Avoid auto-applying LIMIT to non-SELECT statements (Merged by: Timothy Meehan) ## Pramod Satya - [x] https://github.com/prestodb/presto/pull/26475 feat(native): Add endpoint for expression optimization in sidecar (Merged by: Aditi Pandit) ## Reetika Agrawal - [x] https://github.com/prestodb/presto/pull/27113 feat(plugin-iceberg): Add DDL statements for CREATE TAG (Merged by: Reetika Agrawal) ## Sreeni Viswanadha - [x] https://github.com/prestodb/presto/pull/27404 feat(optimizer): Enhance PayloadJoinOptimizer with null-check skipping, chain flattening, and LOJ reordering (Merged by: feilong-liu) - [x] https://github.com/prestodb/presto/pull/27246 feat(optimizer): Add SimplifyAggregationsOverConstant iterative rule (Merged by: Sreeni Viswanadha) - [x] https://github.com/prestodb/presto/pull/27176 feat(optimizer): Add PushSemiJoinThroughUnion iterative rule (Merged by: feilong-liu) ## XiaoDu - [x] https://github.com/prestodb/presto/pull/26874 feat: Add session properties for aggregation compaction (Merged by: XiaoDu) ## Zac - [x] https://github.com/prestodb/presto/pull/26795 feat: Make SSD cache maxEntries limit configurable (Merged by: Zac) ## adheer-araokar - [x] https://github.com/prestodb/presto/pull/27312 fix: Guard JoinPrefilter against non-deterministic expressions (#27312) (Merged by: Chandrashekhar Kumar Singh) ## tanjialiang - [x] https://github.com/prestodb/presto/pull/27086 feat: Add session property for dynamic merge join output batching (Merged by: tanjialiang) - [x] https://github.com/prestodb/presto/pull/26692 refactor: Change native pos API to return BaseSerializedPage (Merged by: tanjialiang) # Extracted Release Notes - #23614 (Author: Reetika Agrawal): feat(plugin-iceberg): Add DDL statements to drop branches and tags - Add DDL support for dropping a branch from a table. - Add DDL support for dropping a tag from a table. - Add support for dropping a branch from an Iceberg table. - Add support for dropping a tag from an Iceberg table. - #23645 (Author: Dong Wang): feat(plugin-iceberg): Lazy load partitions to avoid unnecessary loading - Improve partition loading for Iceberg tables by making it lazy, preventing unnecessary loading. - #24138 (Author: Aditi Pandit): feat(optimizer): Native TopNRank optimization - Add Window filter pushdown in native engine for rank and dense_rank functions. Use session property `optimizer.optimize-top-n-rank` to enable the rewrite. - #24302 (Author: Reetika Agrawal): feat(plugin-iceberg): Add Iceberg metadata table $metadata_log_entries - Add Iceberg metadata table $metadata_log_entries :pr:`24302`. - #24602 (Author: Pratik Joseph Dabre): feat(plugin-native-sidecar): Add native row expression optimizer - Add a native expression optimizer for optimizing expressions in the sidecar. - #25003 (Author: Dong Wang): feat: Support Iceberg's single-table multi-statement writes transaction - Update SPI method `Connector.beginTransaction` in a backward compatible way to support passing the autocommit context into connector transactions. - Add single-table multi-statement writes transaction on snapshot isolation level. - #25470 (Author: Adrian Carpente (Denodo)): feat(plugin-iceberg): Add support for MERGE INTO - Add support for MERGE command in the Iceberg connector. - #25762 (Author: Namya Sehgal): test(connector): Enable test class for Oracle connector - Update Oracle test classes to re-enable them. - #25995 (Author: Xin Zhang): feat(native): Add TextReader registration - Add TextReader support for tables in TEXTFILE format. - #26151 (Author: Dilli-Babu-Godari): feat(plugin-pinot): Add TLS support for self-signed certificate - Add TLS support for self-signed certificate. - #26275 (Author: dependabot[bot]): chore(deps): Bump webpack-dev-server from 5.2.0 to 5.2.1 in /presto-ui/src - Upgrade webpack-dev-server from 5.2.0 to 5.2.1 to address security vulnerabilities in cross-origin request handling and WebSocket connections. The update enforces proper ``Access-Control-Allow-Origin`` header validation for cross-origin requests and restricts WebSocket connections from IP addresses in the ``Origin`` header unless explicitly configured via ``allowedHosts``. This dependency is used for local development only and does not affect production runtime. - #26446 (Author: Auden Woolfson): feat(plugin-hive): Add support for skip_header_line_count and skip_footer_line_count table properties - Add support for skip_header_line_count and skip_footer_line_count. - #26571 (Author: Mariam AlMesfer): chore(connector): Upgrade surefire-testng to 3.5.4 - Upgrade surefire-testng to version 3.5.4. - #26635 (Author: inf): feat(server): Add http support for internal resource manager communication - Add HTTP support to the resource manager. See :ref:`admin/properties:\`\`resource-manager.http-server-enabled\`\`` and :ref:`admin/properties:\`\`resource-manager.communication-protocol\`\``. - #26639 (Author: Naveen Mahadevuni): fix(native): Change content type of endpoint /v1/info/metrics based on accept header - Fix to modify the Content-Type of endpoint /v1/info/metrics to application/json or text/plain based on the request's ACCEPT header. - #26670 (Author: Jalpreet Singh Nanda): feat(connector): Upgrade AWS Glue to AWS SDK v2 and Migrate to MetricPublisher - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - #26674 (Author: sumi-mathew): fix(security): Upgrade mssql-jdbc version to 13.2.1.jre11 - Upgrade mssql-jdbc to 13.2.1.jre11 in response to `CVE-2025-59250<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-59250>`_. - #26682 (Author: Anant Aneja): feat(server): Add ability to disable the UI - Add ability to disable the UI. - #26684 (Author: Sayari Mukherjee): fix(security): Upgrade pinot to version 1.40 and Override vulnerable lz4-java dependency - Upgrade lz4-java to version 1.10.2 to address `CVE-2025-66566 <https://nvd.nist.gov/vuln/detail/CVE-2025-66566>`_. - Upgrade Apache Pinot to 1.4.0. - #26688 (Author: Timothy Meehan): feat: Add materialized views to information_schema - Add the ``materialized_views`` table to the information schema. - #26723 (Author: Reetika Agrawal): fix(plugin-druid): Add validation for schema names in Druid - Add validation for schema names in Druid connector. - #26725 (Author: Reetika Agrawal): fix(plugin-pinot): Add validation for schema names in Pinot - Add validation for schema names in Pinot connector. - #26728 (Author: Timothy Meehan): feat(optimizer): Support predicate stitching in MaterializedViewRewrite - Add ``USE_STITCHING`` mode for ``materialized_view_stale_read_behavior`` session property to selectively recompute stale data instead of full recomputation. - Add ``materialized_view_staleness_window`` session property to configure acceptable staleness duration. - Add ``materialized_view_force_stale`` session property for testing stale read behavior. - Add ``iceberg.materialized-view-max-changed-partitions`` config property (default: 100) to limit partition tracking for predicate stitching. - Add support for tracking changed partitions in materialized views to enable predicate stitching optimization. - #26739 (Author: Anant Aneja): feat(deps): Upgrade to airlift 0.224 - Add a new ``http-server.https.keystore.scan-interval-seconds`` configuration flag to scan the keystore file periodically for new certs. - Upgrade Jetty to 12.0.29 in response to `CVE-2025-5115 <https://nvd.nist.gov/vuln/detail/CVE-2025-5115>`_. - #26764 (Author: Timothy Meehan): feat(optimizer): Add support for configurable freshness thresholds for materialized views - Add configurable freshness thresholds for materialized views via ``materialized_view_stale_read_behavior`` session property and ``materialized-view-stale-read-behavior`` config property. - Add ``stale_read_behavior`` and ``staleness_window`` table properties for materialized views. - #26768 (Author: nishithakbhaskaran): chore(deps): Upgrade airlft version to 225 - Upgrade com.facebook.airlift version to 225. - #26790 (Author: Ajay Kharat): fix(security): Prestoui restrict img-src wildcard in CSP - Fix CSP by removing `img-src 'http: https:'` in response to `CWE-693 <https://cwe.mitre.org/data/definitions/693.html>`_. :pr:`25910`. - #26794 (Author: Andrii Rosa): feat: Add materialized cte support for single node execution - Add materialized CTE support for single node execution. - #26803 (Author: Dong Wang): feat!: Add access control for procedures - Add support for procedure calls in access control. - Add fine-grained access control for procedure calls in the file-based access control system. - Add a temporary configuration property ``hive.restrict-procedure-call`` for ranger and sql-standard access control. It defaults to ``true``, meaning procedure calls are restricted. To allow procedure calls, set this configuration property to ``false``. - Add support for configuring access control in Iceberg using the ``iceberg.security`` property in the Iceberg catalog properties file. The supported types are ``allow-all`` and ``file``. - #26807 (Author: nishithakbhaskaran): chore(deps): Upgrade airbase version to 108 - Upgrade airbase version to 108. - #26820 (Author: Shahim Sharafudeen): fix(security): Upgrade druid version to 35.0.1 - Upgrade Druid to version 35.0.1 to address `CVE-2024-53990 <https://github.com/advisories/GHSA-mfj5-cf8g-g2fv>`_ and `CVE-2025-12183 <https://github.com/advisories/GHSA-vqf4-7m7x-wgfc>`_. - Upgrade lz4-java to version 1.10.2 to address `CVE-2025-66566 <https://github.com/advisories/GHSA-cmp6-m4wj-q63q>`_. - Upgrade Rhino to version 1.8.1 to address `CVE-2025-66453 <https://github.com/advisories/GHSA-3w8q-xq97-5j7x>`_. - #26825 (Author: Adrian Carpente (Denodo)): feat(ui): Add SQL Support for MERGE INTO In Presto #20578 (presto-ui) - Add support for the MERGE statement in the Presto SQL Client web app. - #26843 (Author: feilong-liu): misc: Add function description in function metadata - Add a description field in function metadata. - #26859 (Author: feilong-liu): feat: Add optimizer to rewrite functions in query plan - Add an optimizer which can do function rewrite. - #26862 (Author: Shahim Sharafudeen): fix(security): Upgrade netty to 4.1.130.Final to address CVE-2025-67735 - Upgrade Netty to version 4.1.130.Final to address `CVE-2025-67735 <https://github.com/advisories/GHSA-84h7-rjj3-6jx4>`_. - #26875 (Author: Reetika Agrawal): feat(connector): Add comprehensive JMX metrics for metadata operations - Add comprehensive JMX metrics for metadata operations. - #26879 (Author: Joe Abraham): chore(deps): Bump iceberg to 1.10.0 - Upgrade Iceberg version to 1.10.0. - Upgrade Parquet version to 1.16.0. - Upgrade Avro version to 1.12.0. - #26885 (Author: nishithakbhaskaran): chore(deps): Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3 - Upgrade org.apache.logging.log4j:log4j-core from from 2.24.3 to 2.25.3 to address `CVE-2025-68161 <https://nvd.nist.gov/vuln/detail/CVE-2025-68161>`_. - #26888 (Author: Reetika Agrawal): feat(plugin-iceberg): Support rewrite_manifests procedure for iceberg - Add rewrite_manifests procedure for iceberg. - #26898 (Author: Reetika Agrawal): feat(plugin-iceberg): Add DDL statements for CREATE BRANCH - Add DDL statements for `CREATE BRANCH`. - Add `CREATE BRANCH` support for Iceberg. - #26902 (Author: Timothy Meehan): fix(analyzer): Check `CREATE_VIEW_WITH_SELECT_COLUMNS` permission for definer rights MVs - Fix Materilized Views with ``DEFINER`` rights to require ``CREATE_VIEW_WITH_SELECT_COLUMNS`` on base tables. - #26906 (Author: nishithakbhaskaran): fix(security): Bump transitive dependency org.apache.logging.log4j:log4j-core to 2.25.3 to fix CVE-2025-68161 - Upgrade transitive dependency org.apache.logging.log4j:log4j-core to 2.25.3 to fix `CVE-2025-68161 <https://nvd.nist.gov/vuln/detail/CVE-2025-68161>`_. - #26907 (Author: Ajay Kharat): fix(security): Upgrade highlight.js version to 10.1.2 - Upgrade highlight version to 10.1.2 to address `CVE-2020-26237 <https://github.com/advisories/GHSA-vfrc-7r7c-w9mx>`_. - #26918 (Author: Jalpreet Singh Nanda): feat(connector): Allow fine-grained enable/disable of hive metastore caches - Add support for fine-grained configuration of Hive metastore caches. - Add support for fine-grained configuration of Hive metastore caches. - #26926 (Author: Pratik Joseph Dabre): build!: Remove implicit bundling of sql invoked function plugins from default Presto server Provisio build - Remove implicit bundling of SQL invoked function plugins from default Presto server Provisio build. - Improve documentation of plugin loaded functions by grouping them in :ref:`functions/plugin-loaded-functions:array functions`. - #26931 (Author: sumi-mathew): fix(security): Override vulnerable lz4-java dependency to address CVE - Upgrade lz4-java to 1.10.2 in response to `CVE-2025-12183 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-12183>`_. - #26941 (Author: feilong-liu): feat(optimizer): Add exchange on table scan when number of files to be scanned is small - Add options to force shuffle table scan input if the number of files to be scanned is small. - #26942 (Author: Timothy Meehan): fix: EXPLAIN IO output to support temporal types (date, timestamp, timestamp with time zone) - Fix EXPLAIN TYPE IO to support columns with temporal types. - #26943 (Author: feilong-liu): feat(optimizer): Add option to not push down remote project below exchange - Add options to skip projection pushdown through exchange rule. - #26948 (Author: Pratik Joseph Dabre): feat(native): Add support for NativeFunctionHandle parsing - Add support for `NativeFunctionHandle` parsing. - #26958 (Author: Timothy Meehan): feat(plugin-iceberg): Add support for materialized views with Hive catalog - Add support for Materialized Views in Iceberg catalog. - #26979 (Author: jja725): feat(native): Create a runtime metric for worker uptime to be used for restart alerts - Add worker uptime metric \`presto_cpp.worker_runtime_uptime_secs\` to track worker process runtime. - #26981 (Author: rdtr): feat: Update timezone data to 2025b - Update timezone data to 2025b by upgrading to Joda-Time 2.14.0. - Add support for America/Coyhaique timezone (Chile's Aysén Region). - #26986 (Author: Adrian Carpente (Denodo)): feat(plugin-delta): Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command - Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command. - #27009 (Author: dependabot[bot]): build(deps): Bump lodash from 4.17.21 to 4.17.23 in /presto-ui/src - Upgrade lodash from 4.17.21 to 4.17.23 to address `CVE-2025-13465 <https://github.com/advisories/GHSA-xxjr-mmjv-4gpg>`_. - #27021 (Author: Joe Abraham): feat: Add initial support for Iceberg format version 3 - Add support for creating Iceberg tables with format-version = '3'. - Add reading from Iceberg V3 tables, including partitioned tables. - Add INSERT operations into Iceberg V3 tables. - Add support for upgrading existing V2 tables to V3 using the Iceberg API. - #27030 (Author: Madhavan): feat(ci): Update maven to 3.9.12 - Update Maven wrapper distribution from version 3.8.8 to 3.9.12. - #27044 (Author: feilong-liu): feat(optimizer): Add option to set task count for remote functions - Add options to control the number of tasks for remote project node. - #27051 (Author: Dilli-Babu-Godari): build(deps): Bump lodash-es from 4.17.21 to 4.17.23 in /presto-ui/src - Upgrade lodash-es from 4.17.21 to 4.17.23 to address `CVE-2025-13465 <https://github.com/advisories/GHSA-xxjr-mmjv-4gpg>`_. - #27054 (Author: PRASHANT GOLASH): feat(plugin-hive): Session property to control file size for presto writer - Add ``native_max_target_file_size`` session property to control the maximum target file size for writers. When a file exceeds this size during writing, the writer will close the current file and start writing to a new file. - #27059 (Author: Chandrakant Vankayalapati): fix: Resolve table names in MV query optimizer for consistent matching - Fix MV query optimizer by correctly resolving table references to schema-qualified names. - #27083 (Author: Auden Woolfson): fix: Add null check to UtilizedColumnAnalyzer - Add warning message on CTAS if not exists. - #27100 (Author: Pratik Joseph Dabre): fix(plugin-cassandra): Drop stale tables if table creation process fails - Drop stale tables if table creation process fails. - #27105 (Author: dependabot[bot]): chore(deps): Bump webpack from 5.97.1 to 5.104.1 in /presto-ui/src - Upgrade ``webpack`` from ``5.97.1`` to ``5.104.1`` to address security vulnerabilities including a user information bypass in HttpUriPlugin and SSRF prevention improvements. This is a development dependency used for building the Presto UI and does not affect production runtime. - #27120 (Author: Steve Burnett): docs: Add to Presto C++ limitations doc - Add documentation for Presto queries to run in Presto C++ to :doc:`/presto_cpp/limitations`. - #27125 (Author: Sreeni Viswanadha): feat(optimizer): Add PushdownThroughUnnest optimizer rule - Add ``PushdownThroughUnnest`` optimizer rule that pushes projections and filter conjuncts not dependent on unnest output variables below the UnnestNode, gated by the ``pushdown_through_unnest`` session property (default enabled). - #27134 (Author: Lithin Purushothaman): chore(deps): Upgrade Arrow to 18.3.0 - Upgrade Apache Arrow to 18.3.0 and protobuf-java to 4.30.2. - #27146 (Author: shelton408): fix(scheduler): Coordinator Task Throttling Bug - Fix a bug where queries could get permanently stuck in resource groups when coordinator task-based throttling (``experimental.max-total-running-task-count-to-not-execute-new-query``) is enabled. - Replace experimental.max-total-running-task-count-to-not-execute-new-query with max-total-running-task-count-to-not-execute-new-query, this is backwards compatible. - #27147 (Author: Reetika Agrawal): feat(plugin-iceberg): Add support for mutating an Iceberg branch - Add support for mutating an Iceberg branch. - #27152 (Author: Dilli-Babu-Godari): chore(deps): Bump aircompressor from 0.27 to 2.0.3 - Update aircompressor dependency from 0.27 to version 2.0.2 to fix `CVE-2025-67721 <https://www.cve.org/CVERecord?id=CVE-2025-67721>`_. - #27154 (Author: sumi-mathew): fix(security): Bump ajv from 8.17.1 to 8.18.0 - Upgrade ajvto 8.18.0 in response to `CVE-2025-69873 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-69873>`_. - #27167 (Author: Xin Zhang): feat: Add TEXTFILE custom serde parameters support - Add support for custom TEXTFILE SerDe parameters ``textfile_field_delim``, ``textfile_escape_delim``, ``textfile_collection_delim``, and ``textfile_mapkey_delim``. - #27185 (Author: jja725): feat(connector): Presto Lance Connector - Add :doc:`/connector/lance` for reading and writing LanceDB datasets. - #27188 (Author: Anant Aneja): fix(planner): Set the size estimate for a ConstantExpression/Literal - Improves size estimates for constant variables. - #27199 (Author: Deepak Mehra): feat(analyzer): Add support for SELECT alias references in HAVING clause - Add support for SELECT alias references in HAVING clause. - #27222 (Author: Chandrakant Vankayalapati): feat: Cost-based MV candidate selection for query rewriting (#27222) - Add cost-based selection for materialized view query rewriting. When multiple materialized views exist for the same base table, the optimizer now evaluates all compatible rewrites and selects the lowest-cost plan. This can be enabled with the ``materialized_view_query_rewrite_cost_based_selection_enabled`` session property. - #27227 (Author: Chandrakant Vankayalapati): feat(analyzer): Allow CTAS and INSERT from materialized views - Add support for CTAS and INSERT from materialized views. - #27249 (Author: jja725): feat(plugin-openlineage-event-listener): Add OpenLineage event listener plugin - Add OpenLineage event listener plugin for emitting query lifecycle events in the OpenLineage format. The plugin supports console and HTTP transports, configurable query type filtering, and column-level lineage tracking. See /develop/openlineage-event-listener for configuration details. #27249. - #27250 (Author: Sreeni Viswanadha): feat(optimizer): Simplify COALESCE over equi-join keys based on join type - Add optimizer rule ``SimplifyCoalesceOverJoinKeys`` that simplifies redundant ``COALESCE`` expressions over equi-join key pairs based on join type, enabling bucketed join optimizations for tool-generated queries. Controlled by the ``simplify_coalesce_over_join_keys`` session property (disabled by default). - #27267 (Author: Sreeni Viswanadha): feat(optimizer): Simplify nested IF expressions with matching else branches - Add expression simplification rule to flatten nested ``IF`` expressions: ``IF(x, IF(y, v, E), E)`` is rewritten to ``IF(x AND y, v, E)`` when the outer and inner else branches are identical. Handles arbitrary nesting depth and both null and non-null else branches. - #27277 (Author: Vyacheslav Andreykiv): chore(deps): Upgrade netty to 4.2.10.Final - Update netty from version 4.1.130.Final to 4.2.10.Final. - #27290 (Author: Sreeni Viswanadha): feat(optimizer): Pre-aggregate before GroupId to reduce row multiplication - Add optimizer rule to pre-aggregate data before GroupId node in grouping sets queries, reducing row multiplication. Enabled via session property ``pre_aggregate_before_grouping_sets``. (:pr:`27290`). - Fix a bug where adaptive partial aggregation could incorrectly bypass INTERMEDIATE aggregation steps. - #27307 (Author: Ke Wang): feat: Add syntax support for CREATE VECTOR INDEX (#27307) - Add support for create-vector-index statement, which creates vector search indexes on table columns with configurable index properties and partition filtering via an ``UPDATING FOR`` clause. - #27311 (Author: Alexey Matskoff): perf: Optimize LIKE '%substring%' rewrite to use STRPOS instead of SPLIT - Improve ``LIKE '%substring%'`` pattern matching by rewriting to ``STRPOS`` instead of ``CARDINALITY(SPLIT(...))``, improving CPU and memory efficiency. :pr:`27311`. - #27319 (Author: Nivin C S): chore(deps): Upgrade zookeeper version from 3.9.4 to 3.9.5 address the CVE-2026-24281 and CVE-2026-24308 - Upgrade zookeeper to version 3.9.5 in response to `CVE-2026-24281 <https://github.com/advisories/GHSA-7xrh-hqfc-g7qr>`,`CVE-2026-24308 <https://github.com/advisories/GHSA-crhr-qqj8-rpxc>`. - #27324 (Author: jja725): fix(connector): Widen Float16 to Float32 for Lance connector reads - Fix ClassCastException when reading Float16 columns by widening to Float32. - #27333 (Author: Steve Burnett): docs: Add TVF documentation in functions/table - Add documentation for :doc:`/functions/table`. - #27353 (Author: Reetika Agrawal): feat(plugin-iceberg): Add support for adding Iceberg V3 default column values - SQL Support for `ADD COLUMN DEFAULT`. - SQL Support for `ADD COLUMN DEFAULT`. - #27360 (Author: shelton408): feat: Preserve selectedUser (identity) in Write Queries (#27360) - Update Session to serialize and deserialize selectedUser and reasonForSelect to SessionRepresentation, allowing INSERT and DELETE query sessions to contain these fields. - #27367 (Author: Steve Burnett): docs: Add TVF documentation in develop/table-functions - Add developer documentation for :doc:`/developer/table-functions`. - #27372 (Author: shelton408): fix: Revert #27199 Select Alias in Having Clause - Fix 2 bugs caused by Select Alias references in Having clause. - #27402 (Author: dependabot[bot]): chore(deps): Bump flatted from 3.3.3 to 3.4.2 in /presto-ui/src - Upgrade ``flatted`` from ``3.3.3`` to ``3.4.2`` in response to `GHSA-rf6f-7fwh-wjgh <https://github.com/WebReflection/flatted/security/advisories/GHSA-rf6f-7fwh-wjgh>`_ addressing a HIGH severity prototype pollution vulnerability (CWE-1321) in the parse() function. This dependency is used by the UI development tooling and does not affect production runtime. - #27428 (Author: Sreeni Viswanadha): fix(optimizer): Fix infinite loop in UnaliasSymbolReferences.canonicalize() - Fix infinite loop in ``UnaliasSymbolReferences`` when alias mapping contains a cycle caused by multiple variables mapped to the same constant expression across different ProjectNodes. - #27447 (Author: dependabot[bot]): chore(deps): Bump handlebars from 4.7.8 to 4.7.9 in /presto-ui/src - Upgrade ``handlebars`` from ``4.7.8`` to ``4.7.9`` in response to multiple security advisories including `GHSA-2w6w-674q-4c4q <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q>`_, `GHSA-3mfm-83xf-c92r <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r>`_, `GHSA-xhpv-hc6g-r9c6 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6>`_, `GHSA-xjpj-3mr7-gcpf <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf>`_, `GHSA-9cx6-37pm-9jff <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff>`_, `GHSA-2qvq-rjwj-gvw9 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9>`_, `GHSA-7rx3-28cr-v5wh <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh>`_, and `GHSA-442j-39wm-28r2 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2>`_. This dependency is used by the ``ts-jest`` testing framework and does not affect production runtime. - #27448 (Author: dependabot[bot]): chore(deps): Bump node-forge from 1.3.1 to 1.4.0 in /presto-ui/src - Upgrade node-forge from 1.3.1 to 1.4.0 in response to multiple security advisories including `CVE-2026-33891 <https://www.cve.org/CVERecord?id=CVE-2026-33891>`_ (DoS in BigInteger.modInverse), `CVE-2026-33894 <https://www.cve.org/CVERecord?id=CVE-2026-33894>`_ (RSA-PKCS signature forgery), `CVE-2026-33895 <https://www.cve.org/CVERecord?id=CVE-2026-33895>`_ (Ed25519 signature forgery), and `CVE-2026-33896 <https://www.cve.org/CVERecord?id=CVE-2026-33896>`_ (basicConstraints bypass in certificate chain verification). This dependency is used by ``webpack-dev-server`` for development and does not affect production runtime. - #27456 (Author: Swapnil): fix(planner): Add filter predicate pushdown to AddExchangesForSingleNodeExecution - Fix DESCRIBE and SHOW COLUMNS queries hanging in PLANNING state on clusters with single-node execution enabled. - #27461 (Author: nishithakbhaskaran): feat(plugin-iceberg): Add support for tinyint and smallint datatypes by mapping them to Iceberg INTEGER type - Add support for SMALLINT and TINYINT columns in presto-iceberg by mapping them to Iceberg INTEGER type. - #27464 (Author: Shahim Sharafudeen): fix(security): Upgrade Netty to 4.2.12.Final to address CVE-2026-33871 - Upgrade Netty to version 4.2.12.Final to address `CVE-2026-33871 <https://github.com/advisories/GHSA-w9fj-cfpg-grvv>`_. # All Commits - 607ebdde66eb2b499f961f0b8c4e33cb214130f5 feat(plugin-iceberg): Add support for tinyint and smallint datatypes by mapping them to Iceberg INTEGER type (#27461) (nishithakbhaskaran) - 824ac11a68036f033bb4d32e4cb4c506a10e34e8 fix: Change default config.properties to instantiate a coordinator (#27472) (inf) - dc6a3699ccc5702556ad8cfd5970681a4088d17d fix(): Fix query failure logging race (#27479) (Sergey Pershin) - 85222765168bbe3307b13a0f681e51f01ccfc64b refactor: Replace getAllConnectors with ConnectorRegistry APIs (#27476) (Maria Basmanova) - 59d2618e3b5f862a82e3f377ac28847bfbadb72e fix(ci): Update release-notes-check and presto-release-prepare actions (#27466) (Li) - 7f97f8d533fb7f92e0a9a10cc5ec0a1db732b178 fix(native): Caps the count metric at int64_t's max value (#27295) (Rui Mo) - b516700cc1b17f866b12cccdc911b269e6926a4e misc: Use folly eventcount from folly/synchronization (#27460) (Amit Dutta) - e56b5d8df45f9d5331cda6fca8f2793e6e1a76c2 chore(connector): Upgrade junit-jupiter from 5.10.2 to 6.0.3 (#27467) (Nivin C S) - 3cec33e59998c04af86168bec86c2535e72f4bd5 fix(security): Upgrade Netty to 4.2.12.Final to address CVE-2026-33871 (#27464) (Shahim Sharafudeen) - 41fab989af633de6d33a5a54306e1a19ea22c55d fix(connector): Delta Lake checkpoint file reading by upgrading Delta Kernel API and updating Snapshot method calls (#27434) (Sayari Mukherjee) - 57025b1c8265b1c33b024ffdaadf58eaf134b88b feat: Add WHEN MATCHED THEN DELETE support to MERGE INTO statement (#27409) (#27409) (Apurva Kumar) - fb302b1c0563b9bd4551a74666101fd4e078bd70 fix(native): Avoid removing valid CASEs in switch expression conversion (#27031) (Pramod Satya) - ccae8253d37c0a329fc87b4e658b29aef4dcf8f5 feat(optimizer): Enhance PayloadJoinOptimizer with null-check skipping, chain flattening, and LOJ reordering (#27404) (Sreeni Viswanadha) - 1967fd1e8a09e1ecf4b8c42a89238cff5dfa2885 fix(planner): Add filter predicate pushdown to AddExchangesForSingleNodeExecution (#27456) (Swapnil) - 650e60c000f1874a4e5012677f99f0966f3cc4c3 fix(security): Upgrade copy-webpack-plugin to 14.0.0 (#27458) (Li) - e2a0a40819cf23bb65dd09cb121bf0d621459e5a feat(plugin-iceberg): Add support for adding Iceberg V3 default column values (#27353) (Reetika Agrawal) - 49de53badeb850c1c490feac93e10f2288ae40ac fix(plugin-native-sidecar): Treat identical lambdas as distinct during expression optimization in NativeExpressionOptimizer (#27315) (Pratik Joseph Dabre) - acba1e1736ee8157e81314513f3c2c037e894a9d feat: Cost-based MV candidate selection for query rewriting (#27222) (#27222) (Chandrakant Vankayalapati) - b0b83a4c4d7bc3fdddc6669e474ac1fb1210e23e feat(server): Add http support for internal resource manager communication (#26635) (inf) - 3020af715e722c845b78116fc4a9876dcf14d695 chore(deps): Bump webpack-dev-server from 5.2.0 to 5.2.1 in /presto-ui/src (#26275) (dependabot[bot]) - 19d008856774e28deb44a4d976973a0b1bb705b9 chore(deps): Bump webpack from 5.97.1 to 5.104.1 in /presto-ui/src (#27105) (dependabot[bot]) - 9ae347c432041203d1159473494ce82dcd24f1c2 refactor(protocol): Add new generic thrift toolkit module for connectors (#26259) (inf) - a0da77720e6f494dbb34fcdf392da0d038e8412a chore(deps): Bump handlebars from 4.7.8 to 4.7.9 in /presto-ui/src (#27447) (dependabot[bot]) - 9cd53cfa5ca0670a24a012b35c614df761d7c0d0 chore(deps): Bump flatted from 3.3.3 to 3.4.2 in /presto-ui/src (#27402) (dependabot[bot]) - 72b3751143f126da3c04f8517356db078b3518e3 chore(deps): Bump node-forge from 1.3.1 to 1.4.0 in /presto-ui/src (#27448) (dependabot[bot]) - 06f6613d5ff97ed5b7a9110e7237c7c7b53674f2 chore(ci): Advance velox (#27390) (Amit Dutta) - 94e4f47b5382e94fb6a79b8b44fbf21bf3953777 feat(optimizer): Push projections through cross joins (#27366) (Sreeni Viswanadha) - 691cb4b0cf2287fb2d2d48247b1c02c3f47c728a feat(plugin-native-sidecar): Pass down session properties in NativeExpressionOptimizer (#27304) (Pratik Joseph Dabre) - 9f2f9bd2a2dea473c87c368cf43d31a18f157aa8 feat(optimizer): Merge multiple max_by/min_by aggregations with same comparison key (#27417) (Sreeni Viswanadha) - 5e415bf564db38c496d1b485ddfff05c448ac252 perf: Add runtime stats for uncaptured metastore and planning operations (#27438) (feilong-liu) - f25c9902b85f78a3318d421ec0d3799353ad1939 test(connector): Enable test class for Oracle connector (#25762) (Namya Sehgal) - 9001170d6e85da682e975cf238c6eb6519131bd6 misc: Rename config key to `nimble.stats.enable_vectorized` for consi… (#27398) (Ke) - e2d8bc9b3484176168c55c62d033088c1ee5e811 perf(native): Avoid `LIKE` rewrites for prefix/suffix patterns in native execution (#27363) (Pramod Satya) - 9fb538c535bd1f57303373fe81b638ad7ae748a9 feat(): Export partition resitration times as runtime metrics (#27437) (Sergey Pershin) - 2c26196ce6b982e2eae7de4057b95f4750fc2da3 fix(optimizer): Fix infinite loop in UnaliasSymbolReferences.canonicalize() (#27428) (Sreeni Viswanadha) - a931d702009dda3d78f54534c6be07ed43cab506 chore(deps): Upgarde commons-io:commons-io to 2.21.0 (#27310) (sumi-mathew) - 481f916a9307af92b9ba165e6ee947200c532948 chore(deps): Upgrade org.ow2.asm to 9.9.1 (#27239) (sumi-mathew) - 70c064b3cc58c71befda24c6350e39b7c2382998 chore(deps): Revert Updated airlift base and checkstyle to work with Java 17 (#27423) (Miguel Blanco Godón) - b1eab1fe6f04d004f31f7b4c12257a6ab725a607 fix(connector): Widen Float16 to Float32 for Lance connector reads (#27324) (jja725) - f4b55fee808a67e3177863dbb38bb02f37255f17 feat(): Adding 'finishingTime' to QueryStatistics (#27420) (Sergey Pershin) - a0f735d4342a4c3b326f5635f648e4dcc3611a89 docs: Add TVF documentation in develop/table-functions (#27367) (Steve Burnett) - fed255175d927165eff25e136fefe052a741e451 docs: Improve documentation for deploying custom plugins (#27407) (Saurabh Mahawar) - 9d6829b4ae663b7568eb0ae646957be29898e0d7 misc: Add alpha prefix for extractNimbleSerdeParameters (#27413) (Ke) - a5e2214fa7b2d216d1ab7e7f2c154ce639134898 refactor: Add JSON serializations to RowType (#27386) (Aditi Pandit) - 28a27fa8a265cc2b63662663cb1d371e5bdbe106 misc: Various Code quality improvements in presto_cpp/main/types/ (#27405) (#27405) (Amit Dutta) - 84767cc46f2ff045131435d370d566365d61d44f feat: Add documentation for CREATE VECTOR INDEX (#27332) (#27332) (Ke Wang) - a9c7c61125bfcce0925a7a864aed52ebf081448e refactor: Rename targetTableName to indexName (#27381) (Ke Wang) - 2ff4adf2d3b1691947b16bcd7c41b3a87ce0bc9f docs: Fix doc build errors (#27376) (Steve Burnett) - 81ea0f14c068d961a12a7114f8291e4178868746 feat: Preserve selectedUser (identity) in Write Queries (#27360) (#27360) (shelton408) - 3633703b163bad19fc9449223ae84c4e0bc9c1a3 fix: Revert #27199 Select Alias in Having Clause (#27372) (shelton408) - ad979393e19a90307e35b5a11ec50ce083a7d94f feat: Support vector search in LogicalPlanner (#27169) (#27169) (Ke Wang) - 180beb15d8ee5ccd09192b8a8e20d5ac3a64275c fix: Guard JoinPrefilter against non-deterministic expressions (#27312) (adheer-araokar) - dd52621432bda9ea03d9940787149d128be07030 docs: Add limitation for spatial_partitioning and spatial_partitions (#27242) (jkhaliqi) - 5022f6bb6305de00dd1d85fd1d2c27f8f6f1ea87 refactor: Prepare TableFunction SPI for C++ (#27365) (Aditi Pandit) - f6f7cfdebc859f17758a1f9012dd22d980971348 feat(client): Log "Running <query_id>..." in Presto cli in non-interactive mode (#27359) (Sergey Pershin) - fe19cb95150dd7edc9a4b16c551e718691cdde08 chore(deps): Upgrade zookeeper version from 3.9.4 to 3.9.5 address the CVE-2026-24281 and CVE-2026-24308 (#27319) (Nivin C S) - 5c5e2ed22206922d42a1514eb5fc7753ce4e0887 fix(testing): Support varbinary literals in row expression verifier (#27107) (Dong Wang) - 7bccb2024bc5c0594d4e9460d35c45adf5858cad fix(testing): Support canonical and check type for null expressions (#27111) (Dong Wang) - f6e05b4844556ac3811fe6e3e79efadf03e03677 fix: Extract serde params from additionalTableParameters in CTAS (#27340) (Ke) - d86e64bf496212a8ebcb2b13f2b967a54ed6b490 feat(optimizer): Pre-aggregate before GroupId to reduce row multiplication (#27290) (Sreeni Viswanadha) - a26d4d8f6c7753ae086e70f9fae04f4f555e2cf7 refactor(native): Abstract session property provider (#27253) (Pramod Satya) - ba0158bd0d1304c071e6c82aa771bc945c1fd1ac feat: Add syntax support for CREATE VECTOR INDEX (#27307) (#27307) (Ke Wang) - 9a3028cb55b6805eac87dc90d3e927d0675a571c docs: Add TVF documentation in functions/table (#27333) (Steve Burnett) - 873b06e9e9559186a395beb8c3382349cc4ec9d2 fix: Fix presto protocol (#27352) (Pratik Joseph Dabre) - d5988a15e42c0a56440a71a28a472712c1b4ee4b feat(testing): Add HiveDistributedBenchmarkRunner for optimizer benchmarks (#27344) (Sreeni Viswanadha) - 1ddef8b8f728cd65b71db7cd0bfb1100b4c70bdc chore(deps): Updated airlift base and checkstyle to work with Java 17 (#27130) (Miguel Blanco Godón) - f47802482f9f69bc3c8474e9953e170515376955 feat: Add session property mark_distinct_spill_enabled (#27247) (#27247) (XiaoDu) - af30a1a8d9e7f600631568a9314d857fc0126dfe refactor: Migrate to folly::available_concurrency (#27326) (Jay Feldblum) - 0eab0acfbe87bd3e3e4f7c92a98f3f7538e5711d refactor(plugin-iceberg): Fix thread safety in Iceberg procedures (#27341) (Reetika Agrawal) - d01dd4677df254d376d23b6ff3565f6857161004 misc: Remove dead code in Iceberg connector (#27336) (Amit Dutta) - a505b5d90b85842086c8a4462d07253901d00afc refactor: Migrate to folly::available_concurrency (#27328) (Jay Feldblum) - d284a7a0485ad4c4ca01414200d75c91b4393a3a perf: Optimize LIKE '%substring%' rewrite to use STRPOS instead of SPLIT (#27311) (Alexey Matskoff) - 816fc417f824c440c793969bb12b9d9e36a5233b chore(ci): Advance velox (#27329) (Amit Dutta) - 0520449d9beabdbebb5595678e15f138168a12ef feat(plugin-native-sidecar): Add internal communication auth layer to sidecar http-clients (#27184) (Pratik Joseph Dabre) - 980f1c80544f5fc4f88b6bccd6ac5df504ec86ca fix(optimizer): Fix PlanRemoteProjections to keep JsonPath arguments inline for local functions (#27323) (feilong-liu) - 78ae08229bbbc22ff26b7d06e6f2c96a8c715d79 docs: Add EXPLAIN CREATE TABLE documentation (#27214) (Garima Uttam) - a4951c9ca41dbc32be4cdb06f3bb3fc7c3d93691 feat: Enable MV data consistency for CTAS and INSERT (#27302) (#27302) (Chandrakant Vankayalapati) - 8e27030c617960e694f77e8b2a9b37a53c5db0a3 feat(connector): Presto Lance Connector (#27185) (jja725) - 7925aff6dc8a29a822ef24ee0a84029698e490ce docs(plugin-iceberg): Supplement documentation for transaction support (#27318) (Dong Wang) - 770176b63a9a631761e4d4c1b109339cf882ab40 fix(docs): Fix merge command docs (#27279) (Pratyaksh Sharma) - e7b539b25d9de85a0990063f7f108c1b43251f2a fix(native): Replace raw assert() with VELOX_CHECK in PrestoToVeloxConnectorUtils (#27306) (tanjialiang) - 4790816db0ba0ee1e826928e5e827ea7dbcedcbd fix(docs): Fix configuration properties docs (#27280) (Pratyaksh Sharma) - c27afbbac58bd26e46c9064ead14b382176d23cc refactor: Replace throw std::invalid_argument with VELOX_USER_FAIL in presto-native-execution (#27308) (tanjialiang) - 2ebf6110e90ca52fc11a378b2c03cf6ee8c3374e fix(ci): Skip OWASP dep check for doc-only changes (#27305) (Yihong Wang) - 06ca23e0f4d3629728a4c3dc3278e2852f022b3b docs: Fix formatting in router/scheduler.rst (#27303) (Steve Burnett) - 31f7d8571d5272dea5f5e9498655624d4dd0f9f7 docs: Remove redundant table of contents (#27235) (Denis Krivenko) - 4a4d1e9d3edc53f7297343e7d95e0e5cc4f03b7c test: Add end to end test for key_sampling_percent (#27025) (jkhaliqi) - 0528912b9db1387cb25b3a419c041983fdcc21b1 fix(security): Override vulnerable lz4-java dependency to address CVE (#26931) (sumi-mathew) - 626c09d030dfda25b538c2c21a6578a964ea8cca feat(analyzer): Add support for SELECT alias references in HAVING clause (#27199) (Deepak Mehra) - b7142a306bd1fbc2bdfc249f096608cf67283953 feat(planner): Update AggregationStatsRule to work for more aggregation shapes (#27215) (Anant Aneja) - b38d89c460bd7093d39e3048f0c1ac5f76e66e7a feat(native): Split IndexLookupJoin stats for IndexSource (#27292) (Zac) - d6a34bcff2aeba4471994626e5d403f73ea3d09d docs: Add documentation for Iceberg transaction support (#27252) (Garima Uttam) - 9970fa342d5f89ebd661a13be93ca2d4d07a0808 fix(planner): Fix failing isDistinct for equivalent variables for logical properties (#27241) (Anant Aneja) - 2a9765664978363d94eea9249c90d77623262a06 feat(optimizer): Support predicate stitching in MaterializedViewRewrite (#26728) (Timothy Meehan) - 1b41219f716e86a3fabb65613e3c2c5fe75b5616 misc: Add aggregation and hash join spill file create configs (#27299) (tanjialiang) - 2c1e95fb65bfd15152bacb185b4c24789e7cbacf fix(docs): Add ANALYZE example to Iceberg connector documentation (#27234) (Garima Uttam) - f9d87a29a20f0966544ab874c235465ca7cfe889 feat(planner): Add feature config for PushPartialAggregationThroughJoin (#27269) (Anant Aneja) - 6993507289380e1272ef7b3a0d38ad62e6226d8f feat(plugin-openlineage-event-listener): Add OpenLineage event listener plugin (#27249) (jja725) - ab53686f8bc759312b1e8242cbf002fc44da9ab5 chore(deps): Upgrade avro to version 1.12.1 (#27153) (bibith4) - 0f5d2778bf91fb9362d2e02b1265ac4a936901a5 test: Add Iceberg branch and tags support related tests in Prestissimo (#27272) (Reetika Agrawal) - 9c230da05ea68c15429ed8e3cfe3d48b3bd9843e chore(ci): Advance velox & Migrate presto-trunk from VectorSerde::Kind to string API (#27262) (Han Yan) - 25d2fb1bb630a59f7721a75e7306b5b9ba254fb3 fix(ci): Skip arrowflight CI for doc-only changes (#27285) (Yihong Wang) - 9ecc7ac9addbe053add8535430b880b590ea1e0a feat(analyzer): Allow CTAS and INSERT from materialized views (#27227) (Chandrakant Vankayalapati) - c02223f5316a182585bc82b8096eb982a81ba4d3 feat(optimizer): Add SimplifyAggregationsOverConstant iterative rule (#27246) (Sreeni Viswanadha) - 4073ecb2052d738b8befbf3cf2e07ea50e9dd6c5 refactor: HivePartitionManager.parsePartition to instance method and remove timeZone argument (#27284) (Ge Gao) - a702f22b5f64f36f3e898a19b0bcc4a3814b76bb feat(optimizer): Simplify nested IF expressions with matching else branches (#27267) (Sreeni Viswanadha) - 44300f7b7c83494f71c461cc9dffe13b91dbc5bf feat(optimizer): Simplify COALESCE over equi-join keys based on join type (#27250) (Sreeni Viswanadha) - 17bd413dabcdbff91e69db9737b5a8fb94434b89 fix(native): Replace lambda body with optimized expression in NativeExpressionOptimizer (#27143) (Pramod Satya) - de008fd208cc0382f516257f132f120f7322f5fd chore(deps): Upgrade netty to 4.2.10.Final (#27277) (Vyacheslav Andreykiv) - 9362b1bd4e7bbd67c4505efe5b0ef18802d62c59 test: Add testing infra for the presto-ui (#27144) (Yihong Wang) - f98d4eb240a7abd65993c3a9237aa128e8e0eba7 chore(deps): Upgarde org.xerial.snappy:snappy-java to 1.1.10.8 (#27205) (sumi-mathew) - f751174e4e020f4c957a9be2e2fad9a70c6759c7 chore(ci): Advance velox (#27271) (Amit Dutta) - 530823e3c3be1afdb2ee3c0ea944a10c3cbe3584 test: Add test for querying iceberg branch (#27268) (Reetika Agrawal) - 894f0d4c74a3719e17d1187a13081a3c759151b2 fix: Add kMaxSpillBytes to system config -> velox query config mapping (#27132) (Han Yan) - aca6ee96edb9a6f329aa6cc6ec940145c11519a2 refactor(plugin-native-sidecar): Replace OkHttpClient with Airlift HttpClient for consistency (#27258) (Pratik Joseph Dabre) - 8a4fae0f8cc96ce30cd27075ebc604ebe855eaf3 misc: Migrate cpp.ref_type and drift.recursive_reference in presto thrift (#27248) (iahs) - e75f5a5933c97ff9baa724e1d80e78f55dbcb801 feat(plugin-iceberg): Add support for mutating an Iceberg branch (#27147) (Reetika Agrawal) - 6dc9dc62cf28ebb5905b6f17b659a8055379d520 fix: Fix update error with pushdownsubfields optimization (#27254) (Jiaqi Zhang) - a9094aee5cb33570f92f9cdce85af376936644ab feat: Add session property aggregation_memory_compaction_reclaim_enabled (#27221) (XiaoDu) - 4c8220e85eaae360986a81b2325c6662d56340c9 refactor: Move RebindSafeMBeanServer to presto-common (#27173) (KNagaVivek) - 86eaf114cadede1b3cec0de598502696be931bdf chore(ci): Advance velox and fix Arrow Flight 18 (#27163) (Christian Zentgraf) - caab1212b78668b2fd79f2d9639bd401d0d11304 misc(native): Clean up SystemConnector: fix fragile statics, macro hygiene, const-correctness, and switch safety (#27251) (Amit Dutta) - ec533ab1882e57cc6068dd75e99720e6a0dff523 chore(deps): Bump aircompressor from 0.27 to 2.0.3 (#27152) (Dilli-Babu-Godari) - 14ef5250a1736c08f8be41be4eefb81debd395b3 fix: Increase max-task-update-size for the test (#27220) (Vyacheslav Andreykiv) - 23696667469d7b14038974b7ed0c7bdb6728b0dd feat: Add initial support for Iceberg format version 3 (#27021) (Joe Abraham) - 176641ab41e8011e0512b58f7075d7e7fbd4f317 fix(native): Fix copy-paste bug in veloxQueryConfigOperation log message and add tests (#27236) (Amit Dutta) - 20b9c536f1fe4c1d842f06fba9c14e32d733bc13 feat(ci): Update maven to 3.9.12 (#27030) (Madhavan) - 9036f92f6ddd908e90236f32bc5d40d04b63c760 fix: Replace regex-based json_parse safety wrapper with AST-level rewriter (#27202) (Han Yan) - 84117572aeb6592579fc4e19411542ba4d5b2e7b misc: Move TopNRowNumberNode to presto-spi for connector optimizer access (#27232) (feilong-liu) - 6e5d260f3faa60c448af44a9c8c725366ada1380 feat: Update timezone data to 2025b (#26981) (rdtr) - bcccfeb639f265296bb3f5c3627f41ec15aa555a feat: Support Iceberg's single-table multi-statement writes transaction (#25003) (Dong Wang) - 8ed0e155561d6498b70374755db56ba367f80359 refactor: Extract helpers to eliminate duplicated HTTP handler boilerplate in TaskResource (#27224) (Amit Dutta) - 26b7228d6b60f1b0b8170133afe0d5bc0628cb43 fix(native): Replace unsafe atol() with folly::to<> in PrestoExchangeSource (#27223) (Amit Dutta) - 4bb9c91f0b587bd53b6348bc015a15f6276ad75d fix: Enable GPU build in CI and replace clang usage (#27160) (Christian Zentgraf) - d39e0629351f385492ee4e5231f243f5564dd254 misc: Make theta_sketch configurable via PRESTO_ENABLE_THETA_SKETCH macro (#27213) (Vyacheslav Andreykiv) - 0d6a4d507a98c70e621c33a90ccd0f7a9f16040f docs: Improve Hive storage format and compression codec documentation (#27216) (Garima Uttam) - 1fc8fad4f56349e2d5a6d48b23bbf2aa8f37d0a8 fix(connector): Enable NDV stats collection for Iceberg in native mode (#27207) (Naveen Mahadevuni) - 4e565039039970f52d913ffc5715b0d3e4ef93eb feat(plugin-iceberg): Add DDL statements for CREATE TAG (#27113) (Reetika Agrawal) - ee7c62adf06ac2e7d734a1ea008faad9faf0cfe3 feat(optimizer): Add PushdownThroughUnnest optimizer rule (#27125) (Sreeni Viswanadha) - 6d7ab531569574801d00f05a68fb3abca42934ff fix: Add null check to UtilizedColumnAnalyzer (#27083) (Auden Woolfson) - 7d35ad2041f00b45612297d6a26f5a9d5214c4a5 fix: Fix isNativeExecutionEnabled to be based on session property (#27123) (adheer-araokar) - 08a8dc16939d581d2508af0deac3171c243f3910 feat(native): Implement Sketch Theta aggregate and scalar functions (#25685) (Naveen Mahadevuni) - a4a4b3dff1ecd9f2b9a0536c76ee0dd8d9ed98fc feat(server): Add ability to disable the UI (#26682) (Anant Aneja) - e72544fa5d54267e222d0253083547b5711826f1 feat(planner): Improve TextRenderer to show input totals (#27189) (Anant Aneja) - ad483359b8dbe08b9a9bc1f634bd5a8195328944 fix(planner): Set the size estimate for a ConstantExpression/Literal (#27188) (Anant Aneja) - a62672886152c8c6b61cf301d246f217d850e357 misc(native): Fix lint issues in presto_cpp types/ directory (#27194) (Amit Dutta) - 920353f4af4066c4250dd235ca012b9946240520 chore: Update airlift to 0.227 version (#27070) (Nikhil Collooru) - ef8463cf5f728a3708d5c0a9bb6ad44831b412a7 feat: Add TEXTFILE custom serde parameters support (#27167) (Xin Zhang) - 25baa62208c1e0e8a35dbed2b94cddfbb4df1248 fix: Do not add redundant exchange over remote function (#27170) (feilong-liu) - 39d1b3d34fb54d3d87593cac947bf32c47b07db0 fix(optimizer): Fix bug in partitioning utils (#27179) (feilong-liu) - f98b61d857a924e2aeaf0b30e0fbb4cff00d2dac fix(build): Remove duplicate BasicPrincipal from presto-main-base (#27187) (Vyacheslav Andreykiv) - 69984325d9536822741676d5ef68bb70ace1a1e5 misc(native): Refactor PrestoServer::run() into smaller methods for readability and testability (#27186) (Amit Dutta) - 67dda4b8d1f0e911bc9fb40af950400a9e480068 fix: Presto spark add X509 certificates to SessionContext (#27183) (Kevin Tang) - 1b49ef90c73156bb7992e00384f6f4c082b0a506 fix(security): Upgrade pinot to version 1.40 and Override vulnerable lz4-java dependency (#26684) (Sayari Mukherjee) - afb5e86e5f04bdb26ca0794df9ea9ab6ca8f0c90 docs: Add CREATE/DROP TABLE docs to sql/explain.rst (#27182) (HeidiHan0000) - 2f4261adde9d74d7c9f91de1dd953e6f4fe491bb feat(optimizer): Add PushSemiJoinThroughUnion iterative rule (#27176) (Sreeni Viswanadha) - c7153139aac6b89d68c810219ead4ff71ea1a0fe fix(build): Add library required for Velox as of 44e10f4 (#27166) (Simon Eves) - a97b826fde5666fda388bcdcc37b5d638cf9a9e8 test(native): Iceberg Materialized Views (#27020) (Timothy Meehan) - 940babe80e60d5023c77c7cca1c6176cceff48a4 chore(deps): Upgrade jakarta.el to 5.0.0-M1 (#27084) (bibith4) - 662a661a474aa7b265f9981cfd1275f91a8116f0 fix(security): Upgrade highlight.js version to 10.1.2 (#26907) (Ajay Kharat) - a5f84ae5359d6e656771a08925248bde2235acad refactor: Extract internal communication authentication in a reusable module (#27165) (Pratik Joseph Dabre) - 151cc8c0a9d3a6974125b63a31c0465ffb77a30c feat(native): Add config for asyc cache flush threshold (#27171) (Ke) - 82a1939c5852862b4d21e6440bf69b2824b99ef9 fix(spi): Typo in the comment of MaterializedViewDefinition.TableColumn (#27172) (Dong Wang) - 2d664921f04391421ee5381e51af57cc756faa4e fix: EXPLAIN CREATE TABLE to show IF NOT EXISTS clause (#27138) (HeidiHan0000) - 8d6d9543556d0227a6d86e4c34aaa94717b62224 fix(security): Bump ajv from 8.17.1 to 8.18.0 (#27154) (sumi-mathew) - 8bfb3f3cc91b36d71014c2cb721e95b40c7b5f23 docs: Add dev container repo to readme (#27089) (Christian Zentgraf) - a5e12fd72b63d587eaf21b8d143bb3a845dc074a fix(security): Upgrade druid version to 35.0.1 (#26820) (Shahim Sharafudeen) - 69b959d88b36ffc80871fbc81e0b00a3c0715fab docs: Add to Presto C++ limitations doc (#27120) (Steve Burnett) - 88b63434a29d2ac7a898282bb2adcc2b83638bfe fix(scheduler): Coordinator Task Throttling Bug (#27146) (shelton408) - 8236897ff8961e2c000c1f2b1c9218c26ac1596a build(native): Add c-ares installation to Mac setup (#27135) (Naveen Mahadevuni) - 7d5b929718dc81861c952b754c45fee63e656439 chore(deps): Upgrade Arrow to 18.3.0 (#27134) (Lithin Purushothaman) - 418e326dc8acfc971dfdd71cc0bde1c01cdb4e93 fix(planner): Fix size estimate used in TextRenderer (#27080) (Anant Aneja) - 3a42841f09114b698d357f5f7c0c3582937a9fe6 chore(ci): Advance velox (#27133) (Amit Dutta) - e42270308b19ec363ff4c06ff5948a5c8295bc43 build!: Remove implicit bundling of sql invoked function plugins from default Presto server Provisio build (#26926) (Pratik Joseph Dabre) - dae492a88d744fac77ea0e69cdf977d333624be9 fix(build): Fix deps container dockerfile (#27145) (Simon Eves) - ef9ef78726f92cb907a3e42b022a4291e1c58ccd fix(build): Upgrade testconatiners to 2.0.3 (#27140) (Yihong Wang) - 2a5a908fbd69fb822cab8bf3080a871d271572f1 build(deps): Install_ucx in centos-dependency image (#27118) (Karthikeyan) - 223b0dab90852298406a8ab9c2604e04daf68f4b docs(native): Add runtime metrics documentation (#27109) (Garima Uttam) - 932f85a39f414fe74da3084e93a21c7e8cf07507 docs: Add scale-writers property documentation (#27110) (Garima Uttam) - 873393fb0123fb8d0621da9fd877b19faf53b831 chore(deps): Update hive-apache version to 3.0.0-11 (#27046) (Joe Abraham) - a023a5bd3a5672a1dc8380dd644536f920b19346 fix(plugin-cassandra): Drop stale tables if table creation process fails (#27100) (Pratik Joseph Dabre) - ff462d8b35c7050a0594bc34c31002297ef15e8a feat(optimizer): Native TopNRank optimization (#24138) (Aditi Pandit) - 45784a9235f09aecac4e41f7547de665ce46969d chore(deps): Upgrade org.apache.httpcomponents.core5:httpcore5 version to 5.3.4 (#27049) (sumi-mathew) - 876babaf2ec205c3c627bb24a685bb3199f1c530 fix(build): Undefined Iceberg* symbols (#27094) (Ping Liu) - fc589a51eadf9e196d74a371a0f28f829eb55c32 fix: Query rewriter truncate (#27115) (Han Yan) - d23b02107dcc3d8c65bfbb2ece5c4f8af0b94ae4 feat(native-pos): Add capability for parallel shuffle checksum (#27078) (Shrinidhi Joshi) - aabe558ea0664e7e627e6ee5c1e5379e3d8030a6 fix(testing): Check both type and data for GenericLiteral in verifier (#27108) (Dong Wang) - ee4cc9b4545e89ae51d6e402784b42b469a5b0c6 chore(native): Advance Velox (#27103) (Aditi Pandit) - 277d03cd67178ad5c6ccaeff8767f707f9c0f9e4 feat: Add session property for dynamic merge join output batching (#27086) (tanjialiang) - f345bc5c947dfc9d93264c8b15ad8103a23c15d0 build(deps): Bump CUDA from 12.8 to 12.9 (#27074) (Simon Eves) - b84574ff87c1aff77530329fae2307ca86f5c500 misc: Fix RemoveCrossJoinWithConstantInput to use unknown locality (#27116) (feilong-liu) - ae63dc28a1b97c203893a55727d2144ae8f31d23 build(deps): Bump lodash-es from 4.17.21 to 4.17.23 in /presto-ui/src (#27051) (Dilli-Babu-Godari) - 63b260023d94838596a86a198a7f6854504a51d5 fix(ci): Fix no space error in arrow flight tests (#27119) (Li Zhou) - 82c83905c19a75709111f2083ce933a53d8393cf fix: Add createBranch method implementation in StatsRecordingMetadataManager (#27114) (Reetika Agrawal) - 5539e9f5fa95acc84f45aac27272cd42699b1350 feat(connector): Add comprehensive JMX metrics for metadata operations (#26875) (Reetika Agrawal) - 907b1afcdff49218775cf09c6d1b7f0dd3bc112a chore(build): Cleanup disk space in arrow-flight-tests (#27106) (Aditi Pandit) - 67304707b442bc120e3402ab270b8e59135755e8 feat(plugin-iceberg): Add DDL statements for CREATE BRANCH (#26898) (Reetika Agrawal) - def6ddf1edeef7591fb636ce9e7cab36b0eac7bd misc(native): Decouple HttpServer and HttpClient from SystemConfig singleton (#27104) (Amit Dutta) - 28f7e58088e7c46bddb280882db73613184651ed feat: Add CUBE limitation in Presto docs (#27098) (Natasha Sehgal) - 1efbb75fa8ed993cedc72f16798eb621b2441e2d misc(native): Minor warning fixes (#27102) (Amit Dutta) - 00da6695c2fb92f3fd5bbdf17435d50fa489e690 chore(ci): Advance velox (#27095) (Amit Dutta) - 11dbbb5f608825782d587bfa10c45f7b8383c775 fix(docs): Update link in Hudi documentation to RFC-44 (#27092) (Joe Abraham) - a6926d1a9b4ed1bb95104d400710e74327d358bf fix(native): Fix Dereference expression index type in VeloxToPrestoExprConverter (#27057) (Pramod Satya) - 6fb40f02af65d48a808697efa7bb1e404418ccec fix(native): Add support for kHyperLogLog type in NativeTypeManager (#26978) (Pramod Satya) - 6c7dd6441d2553bf5336dedcec7b6c14b0a20550 fix(native): Fix Velox to Presto IN expression conversion (#26951) (Pramod Satya) - c3b3eeb6260a44753dd917ec129ff52a248effe6 feat(ci): Expand CVE reporting to med and low (#27081) (Christian Zentgraf) - e1006483a1d6f5470a8d4229b7805cf08301d92e feat(native): Add config for asyc cache numShards (#27073) (Ke) - 93def8b1e31da26374eb8f472ad4ed39ca331209 fix(planner): Fix filter stats estimation corner cases (#26812) (Anant Aneja) - 9ab52f5938bec1107a9c6449a0c57daabed4e4f6 test(native): Add ipprefix and ipaddress tests to native-tests (#26905) (Kyle Wong) - 552553483639893878d9d71f6641bc7f9f633e02 fix: Resolve table names in MV query optimizer for consistent matching (#27059) (Chandrakant Vankayalapati) - e300b7dae542636562c87fbdb3196694a92b271c feat: Add 'native_partitioned_output_eager_flush' session property (#27067) (Sergey Pershin) - 856de263efca39150d88c2dbf1f27f76b5c86849 feat: Adds a new session property to catch remote function errors by TRY() (#26976) (Pradeep Vaka) - 6b9cb831b17a422d785916b9878ae433bf37c5fc perf(native): Fix unnecessary copy in http module (#27063) (Amit Dutta) - 4d1c6d0f5fd98754d0412fcb059aed6307a030d5 chore(ci): Advance velox (#27069) (Amit Dutta) - 49975aa7eef3d45bb4d871800f4b1c2f35c49a49 feat(plugin-hive): Session property to control file size for presto writer (#27054) (PRASHANT GOLASH) - 1adbfdc588b018e7e44645f319e0aea248d9b777 chore(ci): Advance velox and update Iceberg API (#27061) (Amit Dutta) - 0cbcc7419577b9b2d255ae190f75920b71e947e6 feat(plugin-iceberg): Add session prop for max number of partitions per writer (#26989) (Dong Wang) - 9d0ee1159a894ae292908c3ecf9ad41f51bbcc48 fix(docs): Iceberg connector reference in ANALYZE docs (#27041) (Ishaan Bansal) - ced6b6c6ca874f00e7df06cf92e7535812161fb7 refactor: Remove unused code (#27060) (Reetika Agrawal) - 4e8c0baf4da5791afd86460b9743278dc279815a perf(optimizer): Make cost-based strategy of using parent preference in AddLocalExchanges (#26960) (Wei He) - c012600fe6bfd0df69446774fc4c76f357c4a77d fix(plugin-iceberg): Disable metadata deletion on varbinary columns (#27050) (Dong Wang) - 32207b9573ecab181b61eebc4754a7f545554b27 feat(plugin-iceberg): Add support for materialized views with Hive catalog (#26958) (Timothy Meehan) - feb403bd5825a374a3dda7e29fd594d8294243da fix: Fix typo in sidecar docs (#27053) (Pratik Joseph Dabre) - f958bac8c2340e6806230bad0205e04a44476c55 feat(optimizer): Add option to set task count for remote functions (#27044) (feilong-liu) - ed0c4df5c3e68a0c1f8e8de1589c79c30378ff9a feat: Add subfields pushdown for cardinality function (#26834) (maniloya) - 1a67c8eb23ec26eae1cbe38afd92496f0e0ab245 chore: Upgrade io.opentelemetry version to 1.58.0 (#26644) (sumi-mathew) - 4be75f05db0be6b49291593202c21e5edbb034b8 fix(plugin-native-sidecar): Avoid sending aggregate and window functions to sidecar for expression optimization (#27043) (Pratik Joseph Dabre) - 2c7a13f8aded259500221d9643f5abb147e9d50c chore(deps): Upgrade postgresql to version 42.7.9 (#27012) (bibith4) - ec75c58bf7f085c6e536085958ae042edd2f0800 docs(native): Add documentation for Presto C++ Installation (#26718) (Saurabh Mahawar) - 3c1009563553d37af52569291a3cbb74a5dc8f20 build(deps): Bump lodash from 4.17.21 to 4.17.23 in /presto-ui/src (#27009) (dependabot[bot]) - ffa70a325a6a1f865cc74c95163fb5c703db06c2 chore: Upgrade org.locationtech.jts version to 1.20.0 (#26646) (sumi-mathew) - fede6817cba325bc2fcfcbb4a2f52ccd1d56249b feat: Add configurable query admission pacing to prevent worker overload (#26988) (PRASHANT GOLASH) - b11d8570b2bf32a5689c1223eed250123d4f5a30 fix(optimizer): Fix hash function for prefilter groupby limit (#27033) (Sreeni Viswanadha) - 77059c66cdd1258f7e1ef73ccaaed99470e12a46 feat(connector): Allow fine-grained enable/disable of hive metastore caches (#26918) (Jalpreet Singh Nanda) - c57d320c91765efb17e0e21f261951340f49883d misc: Remove unused includes (#27026) (Amit Dutta) - c53e51dd42abfd9349babf2b8318c2a8c3cae766 feat(connector): Upgrade AWS Glue to AWS SDK v2 and Migrate to MetricPublisher (#26670) (Jalpreet Singh Nanda) - b096c6896d9e9166569dd2ac092ec75e1c61d442 chore(native): Remove unused variable in VeloxToPrestoExprConverter (#27018) (Pramod Satya) - 881439c420618e305805185654ee4ad19d5468d3 fix: Add row field names for varchar/map types when registering function signatures (#27016) (Kevin Tang) - 62b670be4b120c26479e6a59cede8208c5270caf test: Add TVF invocation tests with nested table function calls (#27001) (mohsaka) - 2ae4e02391839f66298d9e5b2d5c835f567616b6 fix: Add global tracker for view definitions used in a query (#26927) (Kevin Tang) - 3d8af974b2609de235d2ff9f25977252839a1e1c chore(deps): Upgrade org.glassfish.jaxb:jaxb-runtime version to 4.0.6 (#27003) (bibith4) - 2a248d3f274ec36bab61b893f9412b1f460677ea fix(build): Fully qualify yield call to avoid java 17 compilation error (#27006) (Kiersten Stokes) - 4e91f155d0f4704325552fac3807da0efdba6a35 fix(docs): Added documentation for the comparator version of array_top_n (#27010) (Allen Shen) - 6ac60ce6783700cc1123193e5a740bc5dc7c1025 feat(plugin-delta): Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command (#26986) (Adrian Carpente (Denodo)) - b105046a593f17e5949bec8eda7c06395cc47998 chore(deps): Bump iceberg to 1.10.0 (#26879) (Joe Abraham) - 69c842fc7866108523f906f0430d121d3172ff6c feat(native): Add support for NativeFunctionHandle parsing (#26948) (Pratik Joseph Dabre) - 3b328e76268d4cad29ec2fcc6a87ff277dc0a3b3 fix(plugin-iceberg): Drop data table if the MV fails validation (#26994) (Timothy Meehan) - e3db5a253adfb5d57d85351115bacc4225be885a feat(native): Create a runtime metric for worker uptime to be used for restart alerts (#26979) (jja725) - 688e0a27b3c357ecfe07e7d2c49c3e9de883fe7a fix(native): Incorrect release build and make errors (#26997) (Christian Zentgraf) - f552971aea1471a2b57b26f3f4ea9b1eeabd217c chore: Move permissions checks outside of Analyzer (#26869) (Kevin Tang) - 5a28e1caff68c00ed95f3cf4322a7b5329457722 fix(docs): Fix spilling docs (#26194) (Pratyaksh Sharma) - 57f42d8783adf448b9025c91c4a0ebd52c5cf24a fix(native): Enable TestPrestoNativeAsyncDataCacheCleanupAPI (#26923) (Reetika Agrawal) - e5aed797275425b5ef8ebb357776b4d83d39f43c fix(docs): Fix grammar in iceberg docs (#26991) (Pratyaksh Sharma) - fe2f09e4173f037cea679f61713b0b164e3a475c docs: Refactor the page explaining how to deploy Presto with Docker (#26870) (Denis Krivenko) - 8a219ee5a28289a75d53ee8ded9e42498ac9c3f0 fix(docs): Fix redis-hbo-provider docs (#26190) (Pratyaksh Sharma) - acc0f202bc0f228e8a2d85ac690ac53245894be0 fix(ui): Avoid auto-applying LIMIT to non-SELECT statements (#26987) (Prabhu Shankar) - 3f588e546738182a53318350b64ce194a6fce215 refactor: Deprecate the old cleanup aggregation node ctor APIs (#26973) (Xiaoxuan) - db41f886e40e319a23582d1e5cd8c032f8828386 feat(optimizer): Add option to not push down remote project below exchange (#26943) (feilong-liu) - b3968a064552e1f2af810dad91bcb472bf26d7de feat(plugin-pinot): Add TLS support for self-signed certificate (#26151) (Dilli-Babu-Godari) - 6616215186197d424b6a636ae3845c034de3d941 feat: Add catchableByTry flag to ErrorCode for extensible TRY error handling (#26949) (Pradeep Vaka) - d26ecdc982b7e8c9483cd077a8db5bdc48be46fa feat: Support `sorted_by` for `data_rewrite_files` procedure (#26804) (Dong Wang) - 513092449e3c435f74fed0ba936df15471013d61 feat(optimizer): Add exchange on table scan when number of files to be scanned is small (#26941) (feilong-liu) - b64af1e3a0f34c315a23ba5ffaf65f432872f6cf fix(docs): Khyperloglog uniqueness_distribution default behavior (#26957) (HeidiHan0000) - edc87242eeac1e28a1c1b0f2f48039cf65f28fc3 fix(native): Use GCC14 in runtime image if cudf is enabled (#26967) (Christian Zentgraf) - 18c15e2d82ae35ec856b18e473d91577249c0858 fix(docs): Mismatch for map_keys_by_top_n_values for example block (#26916) (Allen Shen) - 348c842de115295ab1d04aea909bb0fdb35aee11 misc: Add python language in RoutineCharacteristics (#26962) (feilong-liu) - a4a5405f63085a75538f671a7c50d81e3f484208 feat(plugin-iceberg): Add support for MERGE INTO (#25470) (Adrian Carpente (Denodo)) - cf60c368694a124979f7db56cf8d02f3cd2d7e1f feat(plugin-hive): Add support for skip_header_line_count and skip_footer_line_count table properties (#26446) (Auden Woolfson) - 4ddfb2a464e45015863d02e7b0096777dcc04b53 feat(build): Support local maven configs (#26954) (Timothy Meehan) - ac765b9c3929d4837b2e3f1336de4bddbe27bb48 chore(native): Revert castDateToVarchar parameter and add cast based on storageFormat (#26955) (Pramod Satya) - b2255b6aee986ff7f70e9a7abe6793ca3eb98846 fix(native): Fix protocol generation (#26956) (Pratik Joseph Dabre) - 441a3d3e2f382f37a9f082eceb7d68a402af2b49 fix: Pass reasonForSelect to view identity for definer mode (#26724) (Kevin Tang) - 21d861083cfd5881aa5ea088a713882faf90c2c3 fix(ci): Remove deprecated mac 13 runner from build tests (#26952) (Li Zhou) - b200d1fe7a5882d7a178e0636b2684792ee212d7 fix: Register worker functions before system access control (#26945) (Kevin Tang) - 0dfdb99e0627d6da927abf3e370a36dbfdf76772 feat(native): Add counter to track http client connection reuse (#26822) (Ke) - 9535d3a926f37ab670766821416c68a14430393b chore(ci): Advance velox (#26932) (Amit Dutta) - 20f5ca51bddd79202ab712ecdd24b8e7fe1ea6a6 misc: Add method comments and update docs for distributed procedures (#26890) (Dong Wang) - 3037dc96aae8278f91dc6da1d7e7b3ab8c3fad2d feat!: Add access control for procedures (#26803) (Dong Wang) - edeff0352ba6624fcdf4e31820dd277dc777e585 feat(ui): Add SQL Support for MERGE INTO In Presto #20578 (presto-ui) (#26825) (Adrian Carpente (Denodo)) - 39d8e3c94daa6d4c9a2583c7cb3060c13fe5f001 fix: EXPLAIN IO output to support temporal types (date, timestamp, timestamp with time zone) (#26942) (Timothy Meehan) - 04bcfef13649fc0e31fa2848dd98af6ba11dc67a chore(native): Cleanup expression optimizer API (#26925) (Pramod Satya) - 8dece5d6593c1f9217f8562edf80c36bba39a180 fix(native): Enable Velox to Presto lambda expression conversion (#26913) (Pramod Satya) - 89be9060b15038444 ## Release Notes ``` == NO RELEASE NOTE == ``` **Note:** The full release notes summary was too large (76874 characters) for GitHub's PR body limit. The complete summary has been saved to [`release-notes-missing-0.297.md`](../blob/release-notes-0.297/release-notes-missing-0.297.md) in this pull request. **Please delete this file before merging.** ## Summary by Sourcery Documentation: - Document the 0.297 release in the Sphinx docs under release notes. --------- 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: wangd <mingwbd@gmail.com> Co-authored-by: Timothy Meehan <tim@timdmeehan.com>
Cherry pick of trinodb/trino#27786 Co-authored-by: Dain Sundstrom <dain@iq80.com> ## Description Add initial support for Iceberg table format version 3 while constraining unsupported features and row-level operations to safe, explicitly validated paths. **New Features:** 1. Allow creating Iceberg tables with format version 3 and inserting/querying data from them, including partitioned tables. 2. Support upgrading existing Iceberg format version 2 tables to format version 3. **Enhancements:** 1. Introduce version guardrails for Iceberg operations, including explicit maximum supported table format and maximum format version for row-level operations. 2. Validate Iceberg v3 tables for unsupported features such as column default values and table encryption before executing writes or inserts. 3. Add validation to reject use of PUFFIN-based deletion vectors that are not yet supported. 4. Improve error handling for Iceberg update and delete operations by using specific PrestoException errors and clearer messages when format/version constraints are violated. 5. Prevent OPTIMIZE (rewrite_data_files) from running on Iceberg tables with format versions above the supported threshold. ## Test Plan Add TestIcebergV3 integration test suite covering creation, upgrade, insert, query, and partitioning for v3 tables, as well as rejection of unsupported delete, update, merge, and OPTIMIZE operations on v3 tables. ## Release Notes ``` == RELEASE NOTES == Iceberg Connector Changes * Add support for creating Iceberg tables with format-version = '3'. * Add reading from Iceberg V3 tables, including partitioned tables. * Add INSERT operations into Iceberg V3 tables. * Add support for upgrading existing V2 tables to V3 using the Iceberg API. ``` ## Summary by Sourcery Add guarded initial support for Iceberg table format version 3 while constraining unsupported features and row-level operations to fail fast with clear errors. New Features: - Enable creating, reading from, and inserting into Iceberg tables with format version 3, including partitioned tables. Enhancements: - Introduce format-version guardrails for Iceberg operations, including a maximum supported table format and a maximum format version for row-level operations. - Validate Iceberg v3 tables for unsupported features such as column default values, table encryption, and PUFFIN-based deletion vectors before executing reads or writes. - Tighten validation and error handling for Iceberg update, delete, merge, and OPTIMIZE (rewrite_data_files) operations on tables with unsupported format versions. Tests: - Add TestIcebergV3 integration suite covering supported v3 operations and expected failures for unsupported delete, update, merge, OPTIMIZE, encryption, and deletion vector features. Co-authored-by: Dain Sundstrom <dain@iq80.com>
# Missing Release Notes ## Apurva Kumar - [x] https://github.com/prestodb/presto/pull/27409 feat: Add WHEN MATCHED THEN DELETE support to MERGE INTO statement (#27409) (Merged by: Dong Wang) ## Chandrakant Vankayalapati - [x] https://github.com/prestodb/presto/pull/27302 feat: Enable MV data consistency for CTAS and INSERT (#27302) (Merged by: Chandrakant Vankayalapati) ## Dong Wang - [x] https://github.com/prestodb/presto/pull/26374 feat(plugin-iceberg): Add `rewrite_data_files` procedure (Merged by: Dong Wang) ## Maria Basmanova - [x] https://github.com/prestodb/presto/pull/27476 refactor: Replace getAllConnectors with ConnectorRegistry APIs (Merged by: Maria Basmanova) ## Prabhu Shankar - [x] https://github.com/prestodb/presto/pull/26987 fix(ui): Avoid auto-applying LIMIT to non-SELECT statements (Merged by: Timothy Meehan) ## Pramod Satya - [x] https://github.com/prestodb/presto/pull/26475 feat(native): Add endpoint for expression optimization in sidecar (Merged by: Aditi Pandit) ## Reetika Agrawal - [x] https://github.com/prestodb/presto/pull/27113 feat(plugin-iceberg): Add DDL statements for CREATE TAG (Merged by: Reetika Agrawal) ## Sreeni Viswanadha - [x] https://github.com/prestodb/presto/pull/27404 feat(optimizer): Enhance PayloadJoinOptimizer with null-check skipping, chain flattening, and LOJ reordering (Merged by: feilong-liu) - [x] https://github.com/prestodb/presto/pull/27246 feat(optimizer): Add SimplifyAggregationsOverConstant iterative rule (Merged by: Sreeni Viswanadha) - [x] https://github.com/prestodb/presto/pull/27176 feat(optimizer): Add PushSemiJoinThroughUnion iterative rule (Merged by: feilong-liu) ## XiaoDu - [x] https://github.com/prestodb/presto/pull/26874 feat: Add session properties for aggregation compaction (Merged by: XiaoDu) ## Zac - [x] https://github.com/prestodb/presto/pull/26795 feat: Make SSD cache maxEntries limit configurable (Merged by: Zac) ## adheer-araokar - [x] https://github.com/prestodb/presto/pull/27312 fix: Guard JoinPrefilter against non-deterministic expressions (#27312) (Merged by: Chandrashekhar Kumar Singh) ## tanjialiang - [x] https://github.com/prestodb/presto/pull/27086 feat: Add session property for dynamic merge join output batching (Merged by: tanjialiang) - [x] https://github.com/prestodb/presto/pull/26692 refactor: Change native pos API to return BaseSerializedPage (Merged by: tanjialiang) # Extracted Release Notes - #23614 (Author: Reetika Agrawal): feat(plugin-iceberg): Add DDL statements to drop branches and tags - Add DDL support for dropping a branch from a table. - Add DDL support for dropping a tag from a table. - Add support for dropping a branch from an Iceberg table. - Add support for dropping a tag from an Iceberg table. - #23645 (Author: Dong Wang): feat(plugin-iceberg): Lazy load partitions to avoid unnecessary loading - Improve partition loading for Iceberg tables by making it lazy, preventing unnecessary loading. - #24138 (Author: Aditi Pandit): feat(optimizer): Native TopNRank optimization - Add Window filter pushdown in native engine for rank and dense_rank functions. Use session property `optimizer.optimize-top-n-rank` to enable the rewrite. - #24302 (Author: Reetika Agrawal): feat(plugin-iceberg): Add Iceberg metadata table $metadata_log_entries - Add Iceberg metadata table $metadata_log_entries :pr:`24302`. - #24602 (Author: Pratik Joseph Dabre): feat(plugin-native-sidecar): Add native row expression optimizer - Add a native expression optimizer for optimizing expressions in the sidecar. - #25003 (Author: Dong Wang): feat: Support Iceberg's single-table multi-statement writes transaction - Update SPI method `Connector.beginTransaction` in a backward compatible way to support passing the autocommit context into connector transactions. - Add single-table multi-statement writes transaction on snapshot isolation level. - #25470 (Author: Adrian Carpente (Denodo)): feat(plugin-iceberg): Add support for MERGE INTO - Add support for MERGE command in the Iceberg connector. - #25762 (Author: Namya Sehgal): test(connector): Enable test class for Oracle connector - Update Oracle test classes to re-enable them. - #25995 (Author: Xin Zhang): feat(native): Add TextReader registration - Add TextReader support for tables in TEXTFILE format. - #26151 (Author: Dilli-Babu-Godari): feat(plugin-pinot): Add TLS support for self-signed certificate - Add TLS support for self-signed certificate. - #26275 (Author: dependabot[bot]): chore(deps): Bump webpack-dev-server from 5.2.0 to 5.2.1 in /presto-ui/src - Upgrade webpack-dev-server from 5.2.0 to 5.2.1 to address security vulnerabilities in cross-origin request handling and WebSocket connections. The update enforces proper ``Access-Control-Allow-Origin`` header validation for cross-origin requests and restricts WebSocket connections from IP addresses in the ``Origin`` header unless explicitly configured via ``allowedHosts``. This dependency is used for local development only and does not affect production runtime. - #26446 (Author: Auden Woolfson): feat(plugin-hive): Add support for skip_header_line_count and skip_footer_line_count table properties - Add support for skip_header_line_count and skip_footer_line_count. - #26571 (Author: Mariam AlMesfer): chore(connector): Upgrade surefire-testng to 3.5.4 - Upgrade surefire-testng to version 3.5.4. - #26635 (Author: inf): feat(server): Add http support for internal resource manager communication - Add HTTP support to the resource manager. See :ref:`admin/properties:\`\`resource-manager.http-server-enabled\`\`` and :ref:`admin/properties:\`\`resource-manager.communication-protocol\`\``. - #26639 (Author: Naveen Mahadevuni): fix(native): Change content type of endpoint /v1/info/metrics based on accept header - Fix to modify the Content-Type of endpoint /v1/info/metrics to application/json or text/plain based on the request's ACCEPT header. - #26670 (Author: Jalpreet Singh Nanda): feat(connector): Upgrade AWS Glue to AWS SDK v2 and Migrate to MetricPublisher - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - Upgrade AWS Glue Client to AWS SDK v2. - #26674 (Author: sumi-mathew): fix(security): Upgrade mssql-jdbc version to 13.2.1.jre11 - Upgrade mssql-jdbc to 13.2.1.jre11 in response to `CVE-2025-59250<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-59250>`_. - #26682 (Author: Anant Aneja): feat(server): Add ability to disable the UI - Add ability to disable the UI. - #26684 (Author: Sayari Mukherjee): fix(security): Upgrade pinot to version 1.40 and Override vulnerable lz4-java dependency - Upgrade lz4-java to version 1.10.2 to address `CVE-2025-66566 <https://nvd.nist.gov/vuln/detail/CVE-2025-66566>`_. - Upgrade Apache Pinot to 1.4.0. - #26688 (Author: Timothy Meehan): feat: Add materialized views to information_schema - Add the ``materialized_views`` table to the information schema. - #26723 (Author: Reetika Agrawal): fix(plugin-druid): Add validation for schema names in Druid - Add validation for schema names in Druid connector. - #26725 (Author: Reetika Agrawal): fix(plugin-pinot): Add validation for schema names in Pinot - Add validation for schema names in Pinot connector. - #26728 (Author: Timothy Meehan): feat(optimizer): Support predicate stitching in MaterializedViewRewrite - Add ``USE_STITCHING`` mode for ``materialized_view_stale_read_behavior`` session property to selectively recompute stale data instead of full recomputation. - Add ``materialized_view_staleness_window`` session property to configure acceptable staleness duration. - Add ``materialized_view_force_stale`` session property for testing stale read behavior. - Add ``iceberg.materialized-view-max-changed-partitions`` config property (default: 100) to limit partition tracking for predicate stitching. - Add support for tracking changed partitions in materialized views to enable predicate stitching optimization. - #26739 (Author: Anant Aneja): feat(deps): Upgrade to airlift 0.224 - Add a new ``http-server.https.keystore.scan-interval-seconds`` configuration flag to scan the keystore file periodically for new certs. - Upgrade Jetty to 12.0.29 in response to `CVE-2025-5115 <https://nvd.nist.gov/vuln/detail/CVE-2025-5115>`_. - #26764 (Author: Timothy Meehan): feat(optimizer): Add support for configurable freshness thresholds for materialized views - Add configurable freshness thresholds for materialized views via ``materialized_view_stale_read_behavior`` session property and ``materialized-view-stale-read-behavior`` config property. - Add ``stale_read_behavior`` and ``staleness_window`` table properties for materialized views. - #26768 (Author: nishithakbhaskaran): chore(deps): Upgrade airlft version to 225 - Upgrade com.facebook.airlift version to 225. - #26790 (Author: Ajay Kharat): fix(security): Prestoui restrict img-src wildcard in CSP - Fix CSP by removing `img-src 'http: https:'` in response to `CWE-693 <https://cwe.mitre.org/data/definitions/693.html>`_. :pr:`25910`. - #26794 (Author: Andrii Rosa): feat: Add materialized cte support for single node execution - Add materialized CTE support for single node execution. - #26803 (Author: Dong Wang): feat!: Add access control for procedures - Add support for procedure calls in access control. - Add fine-grained access control for procedure calls in the file-based access control system. - Add a temporary configuration property ``hive.restrict-procedure-call`` for ranger and sql-standard access control. It defaults to ``true``, meaning procedure calls are restricted. To allow procedure calls, set this configuration property to ``false``. - Add support for configuring access control in Iceberg using the ``iceberg.security`` property in the Iceberg catalog properties file. The supported types are ``allow-all`` and ``file``. - #26807 (Author: nishithakbhaskaran): chore(deps): Upgrade airbase version to 108 - Upgrade airbase version to 108. - #26820 (Author: Shahim Sharafudeen): fix(security): Upgrade druid version to 35.0.1 - Upgrade Druid to version 35.0.1 to address `CVE-2024-53990 <https://github.com/advisories/GHSA-mfj5-cf8g-g2fv>`_ and `CVE-2025-12183 <https://github.com/advisories/GHSA-vqf4-7m7x-wgfc>`_. - Upgrade lz4-java to version 1.10.2 to address `CVE-2025-66566 <https://github.com/advisories/GHSA-cmp6-m4wj-q63q>`_. - Upgrade Rhino to version 1.8.1 to address `CVE-2025-66453 <https://github.com/advisories/GHSA-3w8q-xq97-5j7x>`_. - #26825 (Author: Adrian Carpente (Denodo)): feat(ui): Add SQL Support for MERGE INTO In Presto #20578 (presto-ui) - Add support for the MERGE statement in the Presto SQL Client web app. - #26843 (Author: feilong-liu): misc: Add function description in function metadata - Add a description field in function metadata. - #26859 (Author: feilong-liu): feat: Add optimizer to rewrite functions in query plan - Add an optimizer which can do function rewrite. - #26862 (Author: Shahim Sharafudeen): fix(security): Upgrade netty to 4.1.130.Final to address CVE-2025-67735 - Upgrade Netty to version 4.1.130.Final to address `CVE-2025-67735 <https://github.com/advisories/GHSA-84h7-rjj3-6jx4>`_. - #26875 (Author: Reetika Agrawal): feat(connector): Add comprehensive JMX metrics for metadata operations - Add comprehensive JMX metrics for metadata operations. - #26879 (Author: Joe Abraham): chore(deps): Bump iceberg to 1.10.0 - Upgrade Iceberg version to 1.10.0. - Upgrade Parquet version to 1.16.0. - Upgrade Avro version to 1.12.0. - #26885 (Author: nishithakbhaskaran): chore(deps): Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3 - Upgrade org.apache.logging.log4j:log4j-core from from 2.24.3 to 2.25.3 to address `CVE-2025-68161 <https://nvd.nist.gov/vuln/detail/CVE-2025-68161>`_. - #26888 (Author: Reetika Agrawal): feat(plugin-iceberg): Support rewrite_manifests procedure for iceberg - Add rewrite_manifests procedure for iceberg. - #26898 (Author: Reetika Agrawal): feat(plugin-iceberg): Add DDL statements for CREATE BRANCH - Add DDL statements for `CREATE BRANCH`. - Add `CREATE BRANCH` support for Iceberg. - #26902 (Author: Timothy Meehan): fix(analyzer): Check `CREATE_VIEW_WITH_SELECT_COLUMNS` permission for definer rights MVs - Fix Materilized Views with ``DEFINER`` rights to require ``CREATE_VIEW_WITH_SELECT_COLUMNS`` on base tables. - #26906 (Author: nishithakbhaskaran): fix(security): Bump transitive dependency org.apache.logging.log4j:log4j-core to 2.25.3 to fix CVE-2025-68161 - Upgrade transitive dependency org.apache.logging.log4j:log4j-core to 2.25.3 to fix `CVE-2025-68161 <https://nvd.nist.gov/vuln/detail/CVE-2025-68161>`_. - #26907 (Author: Ajay Kharat): fix(security): Upgrade highlight.js version to 10.1.2 - Upgrade highlight version to 10.1.2 to address `CVE-2020-26237 <https://github.com/advisories/GHSA-vfrc-7r7c-w9mx>`_. - #26918 (Author: Jalpreet Singh Nanda): feat(connector): Allow fine-grained enable/disable of hive metastore caches - Add support for fine-grained configuration of Hive metastore caches. - Add support for fine-grained configuration of Hive metastore caches. - #26926 (Author: Pratik Joseph Dabre): build!: Remove implicit bundling of sql invoked function plugins from default Presto server Provisio build - Remove implicit bundling of SQL invoked function plugins from default Presto server Provisio build. - Improve documentation of plugin loaded functions by grouping them in :ref:`functions/plugin-loaded-functions:array functions`. - #26931 (Author: sumi-mathew): fix(security): Override vulnerable lz4-java dependency to address CVE - Upgrade lz4-java to 1.10.2 in response to `CVE-2025-12183 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-12183>`_. - #26941 (Author: feilong-liu): feat(optimizer): Add exchange on table scan when number of files to be scanned is small - Add options to force shuffle table scan input if the number of files to be scanned is small. - #26942 (Author: Timothy Meehan): fix: EXPLAIN IO output to support temporal types (date, timestamp, timestamp with time zone) - Fix EXPLAIN TYPE IO to support columns with temporal types. - #26943 (Author: feilong-liu): feat(optimizer): Add option to not push down remote project below exchange - Add options to skip projection pushdown through exchange rule. - #26948 (Author: Pratik Joseph Dabre): feat(native): Add support for NativeFunctionHandle parsing - Add support for `NativeFunctionHandle` parsing. - #26958 (Author: Timothy Meehan): feat(plugin-iceberg): Add support for materialized views with Hive catalog - Add support for Materialized Views in Iceberg catalog. - #26979 (Author: jja725): feat(native): Create a runtime metric for worker uptime to be used for restart alerts - Add worker uptime metric \`presto_cpp.worker_runtime_uptime_secs\` to track worker process runtime. - #26981 (Author: rdtr): feat: Update timezone data to 2025b - Update timezone data to 2025b by upgrading to Joda-Time 2.14.0. - Add support for America/Coyhaique timezone (Chile's Aysén Region). - #26986 (Author: Adrian Carpente (Denodo)): feat(plugin-delta): Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command - Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command. - #27009 (Author: dependabot[bot]): build(deps): Bump lodash from 4.17.21 to 4.17.23 in /presto-ui/src - Upgrade lodash from 4.17.21 to 4.17.23 to address `CVE-2025-13465 <https://github.com/advisories/GHSA-xxjr-mmjv-4gpg>`_. - #27021 (Author: Joe Abraham): feat: Add initial support for Iceberg format version 3 - Add support for creating Iceberg tables with format-version = '3'. - Add reading from Iceberg V3 tables, including partitioned tables. - Add INSERT operations into Iceberg V3 tables. - Add support for upgrading existing V2 tables to V3 using the Iceberg API. - #27030 (Author: Madhavan): feat(ci): Update maven to 3.9.12 - Update Maven wrapper distribution from version 3.8.8 to 3.9.12. - #27044 (Author: feilong-liu): feat(optimizer): Add option to set task count for remote functions - Add options to control the number of tasks for remote project node. - #27051 (Author: Dilli-Babu-Godari): build(deps): Bump lodash-es from 4.17.21 to 4.17.23 in /presto-ui/src - Upgrade lodash-es from 4.17.21 to 4.17.23 to address `CVE-2025-13465 <https://github.com/advisories/GHSA-xxjr-mmjv-4gpg>`_. - #27054 (Author: PRASHANT GOLASH): feat(plugin-hive): Session property to control file size for presto writer - Add ``native_max_target_file_size`` session property to control the maximum target file size for writers. When a file exceeds this size during writing, the writer will close the current file and start writing to a new file. - #27059 (Author: Chandrakant Vankayalapati): fix: Resolve table names in MV query optimizer for consistent matching - Fix MV query optimizer by correctly resolving table references to schema-qualified names. - #27083 (Author: Auden Woolfson): fix: Add null check to UtilizedColumnAnalyzer - Add warning message on CTAS if not exists. - #27100 (Author: Pratik Joseph Dabre): fix(plugin-cassandra): Drop stale tables if table creation process fails - Drop stale tables if table creation process fails. - #27105 (Author: dependabot[bot]): chore(deps): Bump webpack from 5.97.1 to 5.104.1 in /presto-ui/src - Upgrade ``webpack`` from ``5.97.1`` to ``5.104.1`` to address security vulnerabilities including a user information bypass in HttpUriPlugin and SSRF prevention improvements. This is a development dependency used for building the Presto UI and does not affect production runtime. - #27120 (Author: Steve Burnett): docs: Add to Presto C++ limitations doc - Add documentation for Presto queries to run in Presto C++ to :doc:`/presto_cpp/limitations`. - #27125 (Author: Sreeni Viswanadha): feat(optimizer): Add PushdownThroughUnnest optimizer rule - Add ``PushdownThroughUnnest`` optimizer rule that pushes projections and filter conjuncts not dependent on unnest output variables below the UnnestNode, gated by the ``pushdown_through_unnest`` session property (default enabled). - #27134 (Author: Lithin Purushothaman): chore(deps): Upgrade Arrow to 18.3.0 - Upgrade Apache Arrow to 18.3.0 and protobuf-java to 4.30.2. - #27146 (Author: shelton408): fix(scheduler): Coordinator Task Throttling Bug - Fix a bug where queries could get permanently stuck in resource groups when coordinator task-based throttling (``experimental.max-total-running-task-count-to-not-execute-new-query``) is enabled. - Replace experimental.max-total-running-task-count-to-not-execute-new-query with max-total-running-task-count-to-not-execute-new-query, this is backwards compatible. - #27147 (Author: Reetika Agrawal): feat(plugin-iceberg): Add support for mutating an Iceberg branch - Add support for mutating an Iceberg branch. - #27152 (Author: Dilli-Babu-Godari): chore(deps): Bump aircompressor from 0.27 to 2.0.3 - Update aircompressor dependency from 0.27 to version 2.0.2 to fix `CVE-2025-67721 <https://www.cve.org/CVERecord?id=CVE-2025-67721>`_. - #27154 (Author: sumi-mathew): fix(security): Bump ajv from 8.17.1 to 8.18.0 - Upgrade ajvto 8.18.0 in response to `CVE-2025-69873 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-69873>`_. - #27167 (Author: Xin Zhang): feat: Add TEXTFILE custom serde parameters support - Add support for custom TEXTFILE SerDe parameters ``textfile_field_delim``, ``textfile_escape_delim``, ``textfile_collection_delim``, and ``textfile_mapkey_delim``. - #27185 (Author: jja725): feat(connector): Presto Lance Connector - Add :doc:`/connector/lance` for reading and writing LanceDB datasets. - #27188 (Author: Anant Aneja): fix(planner): Set the size estimate for a ConstantExpression/Literal - Improves size estimates for constant variables. - #27199 (Author: Deepak Mehra): feat(analyzer): Add support for SELECT alias references in HAVING clause - Add support for SELECT alias references in HAVING clause. - #27222 (Author: Chandrakant Vankayalapati): feat: Cost-based MV candidate selection for query rewriting (#27222) - Add cost-based selection for materialized view query rewriting. When multiple materialized views exist for the same base table, the optimizer now evaluates all compatible rewrites and selects the lowest-cost plan. This can be enabled with the ``materialized_view_query_rewrite_cost_based_selection_enabled`` session property. - #27227 (Author: Chandrakant Vankayalapati): feat(analyzer): Allow CTAS and INSERT from materialized views - Add support for CTAS and INSERT from materialized views. - #27249 (Author: jja725): feat(plugin-openlineage-event-listener): Add OpenLineage event listener plugin - Add OpenLineage event listener plugin for emitting query lifecycle events in the OpenLineage format. The plugin supports console and HTTP transports, configurable query type filtering, and column-level lineage tracking. See /develop/openlineage-event-listener for configuration details. #27249. - #27250 (Author: Sreeni Viswanadha): feat(optimizer): Simplify COALESCE over equi-join keys based on join type - Add optimizer rule ``SimplifyCoalesceOverJoinKeys`` that simplifies redundant ``COALESCE`` expressions over equi-join key pairs based on join type, enabling bucketed join optimizations for tool-generated queries. Controlled by the ``simplify_coalesce_over_join_keys`` session property (disabled by default). - #27267 (Author: Sreeni Viswanadha): feat(optimizer): Simplify nested IF expressions with matching else branches - Add expression simplification rule to flatten nested ``IF`` expressions: ``IF(x, IF(y, v, E), E)`` is rewritten to ``IF(x AND y, v, E)`` when the outer and inner else branches are identical. Handles arbitrary nesting depth and both null and non-null else branches. - #27277 (Author: Vyacheslav Andreykiv): chore(deps): Upgrade netty to 4.2.10.Final - Update netty from version 4.1.130.Final to 4.2.10.Final. - #27290 (Author: Sreeni Viswanadha): feat(optimizer): Pre-aggregate before GroupId to reduce row multiplication - Add optimizer rule to pre-aggregate data before GroupId node in grouping sets queries, reducing row multiplication. Enabled via session property ``pre_aggregate_before_grouping_sets``. (:pr:`27290`). - Fix a bug where adaptive partial aggregation could incorrectly bypass INTERMEDIATE aggregation steps. - #27307 (Author: Ke Wang): feat: Add syntax support for CREATE VECTOR INDEX (#27307) - Add support for create-vector-index statement, which creates vector search indexes on table columns with configurable index properties and partition filtering via an ``UPDATING FOR`` clause. - #27311 (Author: Alexey Matskoff): perf: Optimize LIKE '%substring%' rewrite to use STRPOS instead of SPLIT - Improve ``LIKE '%substring%'`` pattern matching by rewriting to ``STRPOS`` instead of ``CARDINALITY(SPLIT(...))``, improving CPU and memory efficiency. :pr:`27311`. - #27319 (Author: Nivin C S): chore(deps): Upgrade zookeeper version from 3.9.4 to 3.9.5 address the CVE-2026-24281 and CVE-2026-24308 - Upgrade zookeeper to version 3.9.5 in response to `CVE-2026-24281 <https://github.com/advisories/GHSA-7xrh-hqfc-g7qr>`,`CVE-2026-24308 <https://github.com/advisories/GHSA-crhr-qqj8-rpxc>`. - #27324 (Author: jja725): fix(connector): Widen Float16 to Float32 for Lance connector reads - Fix ClassCastException when reading Float16 columns by widening to Float32. - #27333 (Author: Steve Burnett): docs: Add TVF documentation in functions/table - Add documentation for :doc:`/functions/table`. - #27353 (Author: Reetika Agrawal): feat(plugin-iceberg): Add support for adding Iceberg V3 default column values - SQL Support for `ADD COLUMN DEFAULT`. - SQL Support for `ADD COLUMN DEFAULT`. - #27360 (Author: shelton408): feat: Preserve selectedUser (identity) in Write Queries (#27360) - Update Session to serialize and deserialize selectedUser and reasonForSelect to SessionRepresentation, allowing INSERT and DELETE query sessions to contain these fields. - #27367 (Author: Steve Burnett): docs: Add TVF documentation in develop/table-functions - Add developer documentation for :doc:`/developer/table-functions`. - #27372 (Author: shelton408): fix: Revert #27199 Select Alias in Having Clause - Fix 2 bugs caused by Select Alias references in Having clause. - #27402 (Author: dependabot[bot]): chore(deps): Bump flatted from 3.3.3 to 3.4.2 in /presto-ui/src - Upgrade ``flatted`` from ``3.3.3`` to ``3.4.2`` in response to `GHSA-rf6f-7fwh-wjgh <https://github.com/WebReflection/flatted/security/advisories/GHSA-rf6f-7fwh-wjgh>`_ addressing a HIGH severity prototype pollution vulnerability (CWE-1321) in the parse() function. This dependency is used by the UI development tooling and does not affect production runtime. - #27428 (Author: Sreeni Viswanadha): fix(optimizer): Fix infinite loop in UnaliasSymbolReferences.canonicalize() - Fix infinite loop in ``UnaliasSymbolReferences`` when alias mapping contains a cycle caused by multiple variables mapped to the same constant expression across different ProjectNodes. - #27447 (Author: dependabot[bot]): chore(deps): Bump handlebars from 4.7.8 to 4.7.9 in /presto-ui/src - Upgrade ``handlebars`` from ``4.7.8`` to ``4.7.9`` in response to multiple security advisories including `GHSA-2w6w-674q-4c4q <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q>`_, `GHSA-3mfm-83xf-c92r <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r>`_, `GHSA-xhpv-hc6g-r9c6 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6>`_, `GHSA-xjpj-3mr7-gcpf <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf>`_, `GHSA-9cx6-37pm-9jff <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff>`_, `GHSA-2qvq-rjwj-gvw9 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9>`_, `GHSA-7rx3-28cr-v5wh <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh>`_, and `GHSA-442j-39wm-28r2 <https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2>`_. This dependency is used by the ``ts-jest`` testing framework and does not affect production runtime. - #27448 (Author: dependabot[bot]): chore(deps): Bump node-forge from 1.3.1 to 1.4.0 in /presto-ui/src - Upgrade node-forge from 1.3.1 to 1.4.0 in response to multiple security advisories including `CVE-2026-33891 <https://www.cve.org/CVERecord?id=CVE-2026-33891>`_ (DoS in BigInteger.modInverse), `CVE-2026-33894 <https://www.cve.org/CVERecord?id=CVE-2026-33894>`_ (RSA-PKCS signature forgery), `CVE-2026-33895 <https://www.cve.org/CVERecord?id=CVE-2026-33895>`_ (Ed25519 signature forgery), and `CVE-2026-33896 <https://www.cve.org/CVERecord?id=CVE-2026-33896>`_ (basicConstraints bypass in certificate chain verification). This dependency is used by ``webpack-dev-server`` for development and does not affect production runtime. - #27456 (Author: Swapnil): fix(planner): Add filter predicate pushdown to AddExchangesForSingleNodeExecution - Fix DESCRIBE and SHOW COLUMNS queries hanging in PLANNING state on clusters with single-node execution enabled. - #27461 (Author: nishithakbhaskaran): feat(plugin-iceberg): Add support for tinyint and smallint datatypes by mapping them to Iceberg INTEGER type - Add support for SMALLINT and TINYINT columns in presto-iceberg by mapping them to Iceberg INTEGER type. - #27464 (Author: Shahim Sharafudeen): fix(security): Upgrade Netty to 4.2.12.Final to address CVE-2026-33871 - Upgrade Netty to version 4.2.12.Final to address `CVE-2026-33871 <https://github.com/advisories/GHSA-w9fj-cfpg-grvv>`_. # All Commits - 607ebdde66eb2b499f961f0b8c4e33cb214130f5 feat(plugin-iceberg): Add support for tinyint and smallint datatypes by mapping them to Iceberg INTEGER type (#27461) (nishithakbhaskaran) - 824ac11a68036f033bb4d32e4cb4c506a10e34e8 fix: Change default config.properties to instantiate a coordinator (#27472) (inf) - dc6a3699ccc5702556ad8cfd5970681a4088d17d fix(): Fix query failure logging race (#27479) (Sergey Pershin) - 85222765168bbe3307b13a0f681e51f01ccfc64b refactor: Replace getAllConnectors with ConnectorRegistry APIs (#27476) (Maria Basmanova) - 59d2618e3b5f862a82e3f377ac28847bfbadb72e fix(ci): Update release-notes-check and presto-release-prepare actions (#27466) (Li) - 7f97f8d533fb7f92e0a9a10cc5ec0a1db732b178 fix(native): Caps the count metric at int64_t's max value (#27295) (Rui Mo) - b516700cc1b17f866b12cccdc911b269e6926a4e misc: Use folly eventcount from folly/synchronization (#27460) (Amit Dutta) - e56b5d8df45f9d5331cda6fca8f2793e6e1a76c2 chore(connector): Upgrade junit-jupiter from 5.10.2 to 6.0.3 (#27467) (Nivin C S) - 3cec33e59998c04af86168bec86c2535e72f4bd5 fix(security): Upgrade Netty to 4.2.12.Final to address CVE-2026-33871 (#27464) (Shahim Sharafudeen) - 41fab989af633de6d33a5a54306e1a19ea22c55d fix(connector): Delta Lake checkpoint file reading by upgrading Delta Kernel API and updating Snapshot method calls (#27434) (Sayari Mukherjee) - 57025b1c8265b1c33b024ffdaadf58eaf134b88b feat: Add WHEN MATCHED THEN DELETE support to MERGE INTO statement (#27409) (#27409) (Apurva Kumar) - fb302b1c0563b9bd4551a74666101fd4e078bd70 fix(native): Avoid removing valid CASEs in switch expression conversion (#27031) (Pramod Satya) - ccae8253d37c0a329fc87b4e658b29aef4dcf8f5 feat(optimizer): Enhance PayloadJoinOptimizer with null-check skipping, chain flattening, and LOJ reordering (#27404) (Sreeni Viswanadha) - 1967fd1e8a09e1ecf4b8c42a89238cff5dfa2885 fix(planner): Add filter predicate pushdown to AddExchangesForSingleNodeExecution (#27456) (Swapnil) - 650e60c000f1874a4e5012677f99f0966f3cc4c3 fix(security): Upgrade copy-webpack-plugin to 14.0.0 (#27458) (Li) - e2a0a40819cf23bb65dd09cb121bf0d621459e5a feat(plugin-iceberg): Add support for adding Iceberg V3 default column values (#27353) (Reetika Agrawal) - 49de53badeb850c1c490feac93e10f2288ae40ac fix(plugin-native-sidecar): Treat identical lambdas as distinct during expression optimization in NativeExpressionOptimizer (#27315) (Pratik Joseph Dabre) - acba1e1736ee8157e81314513f3c2c037e894a9d feat: Cost-based MV candidate selection for query rewriting (#27222) (#27222) (Chandrakant Vankayalapati) - b0b83a4c4d7bc3fdddc6669e474ac1fb1210e23e feat(server): Add http support for internal resource manager communication (#26635) (inf) - 3020af715e722c845b78116fc4a9876dcf14d695 chore(deps): Bump webpack-dev-server from 5.2.0 to 5.2.1 in /presto-ui/src (#26275) (dependabot[bot]) - 19d008856774e28deb44a4d976973a0b1bb705b9 chore(deps): Bump webpack from 5.97.1 to 5.104.1 in /presto-ui/src (#27105) (dependabot[bot]) - 9ae347c432041203d1159473494ce82dcd24f1c2 refactor(protocol): Add new generic thrift toolkit module for connectors (#26259) (inf) - a0da77720e6f494dbb34fcdf392da0d038e8412a chore(deps): Bump handlebars from 4.7.8 to 4.7.9 in /presto-ui/src (#27447) (dependabot[bot]) - 9cd53cfa5ca0670a24a012b35c614df761d7c0d0 chore(deps): Bump flatted from 3.3.3 to 3.4.2 in /presto-ui/src (#27402) (dependabot[bot]) - 72b3751143f126da3c04f8517356db078b3518e3 chore(deps): Bump node-forge from 1.3.1 to 1.4.0 in /presto-ui/src (#27448) (dependabot[bot]) - 06f6613d5ff97ed5b7a9110e7237c7c7b53674f2 chore(ci): Advance velox (#27390) (Amit Dutta) - 94e4f47b5382e94fb6a79b8b44fbf21bf3953777 feat(optimizer): Push projections through cross joins (#27366) (Sreeni Viswanadha) - 691cb4b0cf2287fb2d2d48247b1c02c3f47c728a feat(plugin-native-sidecar): Pass down session properties in NativeExpressionOptimizer (#27304) (Pratik Joseph Dabre) - 9f2f9bd2a2dea473c87c368cf43d31a18f157aa8 feat(optimizer): Merge multiple max_by/min_by aggregations with same comparison key (#27417) (Sreeni Viswanadha) - 5e415bf564db38c496d1b485ddfff05c448ac252 perf: Add runtime stats for uncaptured metastore and planning operations (#27438) (feilong-liu) - f25c9902b85f78a3318d421ec0d3799353ad1939 test(connector): Enable test class for Oracle connector (#25762) (Namya Sehgal) - 9001170d6e85da682e975cf238c6eb6519131bd6 misc: Rename config key to `nimble.stats.enable_vectorized` for consi… (#27398) (Ke) - e2d8bc9b3484176168c55c62d033088c1ee5e811 perf(native): Avoid `LIKE` rewrites for prefix/suffix patterns in native execution (#27363) (Pramod Satya) - 9fb538c535bd1f57303373fe81b638ad7ae748a9 feat(): Export partition resitration times as runtime metrics (#27437) (Sergey Pershin) - 2c26196ce6b982e2eae7de4057b95f4750fc2da3 fix(optimizer): Fix infinite loop in UnaliasSymbolReferences.canonicalize() (#27428) (Sreeni Viswanadha) - a931d702009dda3d78f54534c6be07ed43cab506 chore(deps): Upgarde commons-io:commons-io to 2.21.0 (#27310) (sumi-mathew) - 481f916a9307af92b9ba165e6ee947200c532948 chore(deps): Upgrade org.ow2.asm to 9.9.1 (#27239) (sumi-mathew) - 70c064b3cc58c71befda24c6350e39b7c2382998 chore(deps): Revert Updated airlift base and checkstyle to work with Java 17 (#27423) (Miguel Blanco Godón) - b1eab1fe6f04d004f31f7b4c12257a6ab725a607 fix(connector): Widen Float16 to Float32 for Lance connector reads (#27324) (jja725) - f4b55fee808a67e3177863dbb38bb02f37255f17 feat(): Adding 'finishingTime' to QueryStatistics (#27420) (Sergey Pershin) - a0f735d4342a4c3b326f5635f648e4dcc3611a89 docs: Add TVF documentation in develop/table-functions (#27367) (Steve Burnett) - fed255175d927165eff25e136fefe052a741e451 docs: Improve documentation for deploying custom plugins (#27407) (Saurabh Mahawar) - 9d6829b4ae663b7568eb0ae646957be29898e0d7 misc: Add alpha prefix for extractNimbleSerdeParameters (#27413) (Ke) - a5e2214fa7b2d216d1ab7e7f2c154ce639134898 refactor: Add JSON serializations to RowType (#27386) (Aditi Pandit) - 28a27fa8a265cc2b63662663cb1d371e5bdbe106 misc: Various Code quality improvements in presto_cpp/main/types/ (#27405) (#27405) (Amit Dutta) - 84767cc46f2ff045131435d370d566365d61d44f feat: Add documentation for CREATE VECTOR INDEX (#27332) (#27332) (Ke Wang) - a9c7c61125bfcce0925a7a864aed52ebf081448e refactor: Rename targetTableName to indexName (#27381) (Ke Wang) - 2ff4adf2d3b1691947b16bcd7c41b3a87ce0bc9f docs: Fix doc build errors (#27376) (Steve Burnett) - 81ea0f14c068d961a12a7114f8291e4178868746 feat: Preserve selectedUser (identity) in Write Queries (#27360) (#27360) (shelton408) - 3633703b163bad19fc9449223ae84c4e0bc9c1a3 fix: Revert #27199 Select Alias in Having Clause (#27372) (shelton408) - ad979393e19a90307e35b5a11ec50ce083a7d94f feat: Support vector search in LogicalPlanner (#27169) (#27169) (Ke Wang) - 180beb15d8ee5ccd09192b8a8e20d5ac3a64275c fix: Guard JoinPrefilter against non-deterministic expressions (#27312) (adheer-araokar) - dd52621432bda9ea03d9940787149d128be07030 docs: Add limitation for spatial_partitioning and spatial_partitions (#27242) (jkhaliqi) - 5022f6bb6305de00dd1d85fd1d2c27f8f6f1ea87 refactor: Prepare TableFunction SPI for C++ (#27365) (Aditi Pandit) - f6f7cfdebc859f17758a1f9012dd22d980971348 feat(client): Log "Running <query_id>..." in Presto cli in non-interactive mode (#27359) (Sergey Pershin) - fe19cb95150dd7edc9a4b16c551e718691cdde08 chore(deps): Upgrade zookeeper version from 3.9.4 to 3.9.5 address the CVE-2026-24281 and CVE-2026-24308 (#27319) (Nivin C S) - 5c5e2ed22206922d42a1514eb5fc7753ce4e0887 fix(testing): Support varbinary literals in row expression verifier (#27107) (Dong Wang) - 7bccb2024bc5c0594d4e9460d35c45adf5858cad fix(testing): Support canonical and check type for null expressions (#27111) (Dong Wang) - f6e05b4844556ac3811fe6e3e79efadf03e03677 fix: Extract serde params from additionalTableParameters in CTAS (#27340) (Ke) - d86e64bf496212a8ebcb2b13f2b967a54ed6b490 feat(optimizer): Pre-aggregate before GroupId to reduce row multiplication (#27290) (Sreeni Viswanadha) - a26d4d8f6c7753ae086e70f9fae04f4f555e2cf7 refactor(native): Abstract session property provider (#27253) (Pramod Satya) - ba0158bd0d1304c071e6c82aa771bc945c1fd1ac feat: Add syntax support for CREATE VECTOR INDEX (#27307) (#27307) (Ke Wang) - 9a3028cb55b6805eac87dc90d3e927d0675a571c docs: Add TVF documentation in functions/table (#27333) (Steve Burnett) - 873b06e9e9559186a395beb8c3382349cc4ec9d2 fix: Fix presto protocol (#27352) (Pratik Joseph Dabre) - d5988a15e42c0a56440a71a28a472712c1b4ee4b feat(testing): Add HiveDistributedBenchmarkRunner for optimizer benchmarks (#27344) (Sreeni Viswanadha) - 1ddef8b8f728cd65b71db7cd0bfb1100b4c70bdc chore(deps): Updated airlift base and checkstyle to work with Java 17 (#27130) (Miguel Blanco Godón) - f47802482f9f69bc3c8474e9953e170515376955 feat: Add session property mark_distinct_spill_enabled (#27247) (#27247) (XiaoDu) - af30a1a8d9e7f600631568a9314d857fc0126dfe refactor: Migrate to folly::available_concurrency (#27326) (Jay Feldblum) - 0eab0acfbe87bd3e3e4f7c92a98f3f7538e5711d refactor(plugin-iceberg): Fix thread safety in Iceberg procedures (#27341) (Reetika Agrawal) - d01dd4677df254d376d23b6ff3565f6857161004 misc: Remove dead code in Iceberg connector (#27336) (Amit Dutta) - a505b5d90b85842086c8a4462d07253901d00afc refactor: Migrate to folly::available_concurrency (#27328) (Jay Feldblum) - d284a7a0485ad4c4ca01414200d75c91b4393a3a perf: Optimize LIKE '%substring%' rewrite to use STRPOS instead of SPLIT (#27311) (Alexey Matskoff) - 816fc417f824c440c793969bb12b9d9e36a5233b chore(ci): Advance velox (#27329) (Amit Dutta) - 0520449d9beabdbebb5595678e15f138168a12ef feat(plugin-native-sidecar): Add internal communication auth layer to sidecar http-clients (#27184) (Pratik Joseph Dabre) - 980f1c80544f5fc4f88b6bccd6ac5df504ec86ca fix(optimizer): Fix PlanRemoteProjections to keep JsonPath arguments inline for local functions (#27323) (feilong-liu) - 78ae08229bbbc22ff26b7d06e6f2c96a8c715d79 docs: Add EXPLAIN CREATE TABLE documentation (#27214) (Garima Uttam) - a4951c9ca41dbc32be4cdb06f3bb3fc7c3d93691 feat: Enable MV data consistency for CTAS and INSERT (#27302) (#27302) (Chandrakant Vankayalapati) - 8e27030c617960e694f77e8b2a9b37a53c5db0a3 feat(connector): Presto Lance Connector (#27185) (jja725) - 7925aff6dc8a29a822ef24ee0a84029698e490ce docs(plugin-iceberg): Supplement documentation for transaction support (#27318) (Dong Wang) - 770176b63a9a631761e4d4c1b109339cf882ab40 fix(docs): Fix merge command docs (#27279) (Pratyaksh Sharma) - e7b539b25d9de85a0990063f7f108c1b43251f2a fix(native): Replace raw assert() with VELOX_CHECK in PrestoToVeloxConnectorUtils (#27306) (tanjialiang) - 4790816db0ba0ee1e826928e5e827ea7dbcedcbd fix(docs): Fix configuration properties docs (#27280) (Pratyaksh Sharma) - c27afbbac58bd26e46c9064ead14b382176d23cc refactor: Replace throw std::invalid_argument with VELOX_USER_FAIL in presto-native-execution (#27308) (tanjialiang) - 2ebf6110e90ca52fc11a378b2c03cf6ee8c3374e fix(ci): Skip OWASP dep check for doc-only changes (#27305) (Yihong Wang) - 06ca23e0f4d3629728a4c3dc3278e2852f022b3b docs: Fix formatting in router/scheduler.rst (#27303) (Steve Burnett) - 31f7d8571d5272dea5f5e9498655624d4dd0f9f7 docs: Remove redundant table of contents (#27235) (Denis Krivenko) - 4a4d1e9d3edc53f7297343e7d95e0e5cc4f03b7c test: Add end to end test for key_sampling_percent (#27025) (jkhaliqi) - 0528912b9db1387cb25b3a419c041983fdcc21b1 fix(security): Override vulnerable lz4-java dependency to address CVE (#26931) (sumi-mathew) - 626c09d030dfda25b538c2c21a6578a964ea8cca feat(analyzer): Add support for SELECT alias references in HAVING clause (#27199) (Deepak Mehra) - b7142a306bd1fbc2bdfc249f096608cf67283953 feat(planner): Update AggregationStatsRule to work for more aggregation shapes (#27215) (Anant Aneja) - b38d89c460bd7093d39e3048f0c1ac5f76e66e7a feat(native): Split IndexLookupJoin stats for IndexSource (#27292) (Zac) - d6a34bcff2aeba4471994626e5d403f73ea3d09d docs: Add documentation for Iceberg transaction support (#27252) (Garima Uttam) - 9970fa342d5f89ebd661a13be93ca2d4d07a0808 fix(planner): Fix failing isDistinct for equivalent variables for logical properties (#27241) (Anant Aneja) - 2a9765664978363d94eea9249c90d77623262a06 feat(optimizer): Support predicate stitching in MaterializedViewRewrite (#26728) (Timothy Meehan) - 1b41219f716e86a3fabb65613e3c2c5fe75b5616 misc: Add aggregation and hash join spill file create configs (#27299) (tanjialiang) - 2c1e95fb65bfd15152bacb185b4c24789e7cbacf fix(docs): Add ANALYZE example to Iceberg connector documentation (#27234) (Garima Uttam) - f9d87a29a20f0966544ab874c235465ca7cfe889 feat(planner): Add feature config for PushPartialAggregationThroughJoin (#27269) (Anant Aneja) - 6993507289380e1272ef7b3a0d38ad62e6226d8f feat(plugin-openlineage-event-listener): Add OpenLineage event listener plugin (#27249) (jja725) - ab53686f8bc759312b1e8242cbf002fc44da9ab5 chore(deps): Upgrade avro to version 1.12.1 (#27153) (bibith4) - 0f5d2778bf91fb9362d2e02b1265ac4a936901a5 test: Add Iceberg branch and tags support related tests in Prestissimo (#27272) (Reetika Agrawal) - 9c230da05ea68c15429ed8e3cfe3d48b3bd9843e chore(ci): Advance velox & Migrate presto-trunk from VectorSerde::Kind to string API (#27262) (Han Yan) - 25d2fb1bb630a59f7721a75e7306b5b9ba254fb3 fix(ci): Skip arrowflight CI for doc-only changes (#27285) (Yihong Wang) - 9ecc7ac9addbe053add8535430b880b590ea1e0a feat(analyzer): Allow CTAS and INSERT from materialized views (#27227) (Chandrakant Vankayalapati) - c02223f5316a182585bc82b8096eb982a81ba4d3 feat(optimizer): Add SimplifyAggregationsOverConstant iterative rule (#27246) (Sreeni Viswanadha) - 4073ecb2052d738b8befbf3cf2e07ea50e9dd6c5 refactor: HivePartitionManager.parsePartition to instance method and remove timeZone argument (#27284) (Ge Gao) - a702f22b5f64f36f3e898a19b0bcc4a3814b76bb feat(optimizer): Simplify nested IF expressions with matching else branches (#27267) (Sreeni Viswanadha) - 44300f7b7c83494f71c461cc9dffe13b91dbc5bf feat(optimizer): Simplify COALESCE over equi-join keys based on join type (#27250) (Sreeni Viswanadha) - 17bd413dabcdbff91e69db9737b5a8fb94434b89 fix(native): Replace lambda body with optimized expression in NativeExpressionOptimizer (#27143) (Pramod Satya) - de008fd208cc0382f516257f132f120f7322f5fd chore(deps): Upgrade netty to 4.2.10.Final (#27277) (Vyacheslav Andreykiv) - 9362b1bd4e7bbd67c4505efe5b0ef18802d62c59 test: Add testing infra for the presto-ui (#27144) (Yihong Wang) - f98d4eb240a7abd65993c3a9237aa128e8e0eba7 chore(deps): Upgarde org.xerial.snappy:snappy-java to 1.1.10.8 (#27205) (sumi-mathew) - f751174e4e020f4c957a9be2e2fad9a70c6759c7 chore(ci): Advance velox (#27271) (Amit Dutta) - 530823e3c3be1afdb2ee3c0ea944a10c3cbe3584 test: Add test for querying iceberg branch (#27268) (Reetika Agrawal) - 894f0d4c74a3719e17d1187a13081a3c759151b2 fix: Add kMaxSpillBytes to system config -> velox query config mapping (#27132) (Han Yan) - aca6ee96edb9a6f329aa6cc6ec940145c11519a2 refactor(plugin-native-sidecar): Replace OkHttpClient with Airlift HttpClient for consistency (#27258) (Pratik Joseph Dabre) - 8a4fae0f8cc96ce30cd27075ebc604ebe855eaf3 misc: Migrate cpp.ref_type and drift.recursive_reference in presto thrift (#27248) (iahs) - e75f5a5933c97ff9baa724e1d80e78f55dbcb801 feat(plugin-iceberg): Add support for mutating an Iceberg branch (#27147) (Reetika Agrawal) - 6dc9dc62cf28ebb5905b6f17b659a8055379d520 fix: Fix update error with pushdownsubfields optimization (#27254) (Jiaqi Zhang) - a9094aee5cb33570f92f9cdce85af376936644ab feat: Add session property aggregation_memory_compaction_reclaim_enabled (#27221) (XiaoDu) - 4c8220e85eaae360986a81b2325c6662d56340c9 refactor: Move RebindSafeMBeanServer to presto-common (#27173) (KNagaVivek) - 86eaf114cadede1b3cec0de598502696be931bdf chore(ci): Advance velox and fix Arrow Flight 18 (#27163) (Christian Zentgraf) - caab1212b78668b2fd79f2d9639bd401d0d11304 misc(native): Clean up SystemConnector: fix fragile statics, macro hygiene, const-correctness, and switch safety (#27251) (Amit Dutta) - ec533ab1882e57cc6068dd75e99720e6a0dff523 chore(deps): Bump aircompressor from 0.27 to 2.0.3 (#27152) (Dilli-Babu-Godari) - 14ef5250a1736c08f8be41be4eefb81debd395b3 fix: Increase max-task-update-size for the test (#27220) (Vyacheslav Andreykiv) - 23696667469d7b14038974b7ed0c7bdb6728b0dd feat: Add initial support for Iceberg format version 3 (#27021) (Joe Abraham) - 176641ab41e8011e0512b58f7075d7e7fbd4f317 fix(native): Fix copy-paste bug in veloxQueryConfigOperation log message and add tests (#27236) (Amit Dutta) - 20b9c536f1fe4c1d842f06fba9c14e32d733bc13 feat(ci): Update maven to 3.9.12 (#27030) (Madhavan) - 9036f92f6ddd908e90236f32bc5d40d04b63c760 fix: Replace regex-based json_parse safety wrapper with AST-level rewriter (#27202) (Han Yan) - 84117572aeb6592579fc4e19411542ba4d5b2e7b misc: Move TopNRowNumberNode to presto-spi for connector optimizer access (#27232) (feilong-liu) - 6e5d260f3faa60c448af44a9c8c725366ada1380 feat: Update timezone data to 2025b (#26981) (rdtr) - bcccfeb639f265296bb3f5c3627f41ec15aa555a feat: Support Iceberg's single-table multi-statement writes transaction (#25003) (Dong Wang) - 8ed0e155561d6498b70374755db56ba367f80359 refactor: Extract helpers to eliminate duplicated HTTP handler boilerplate in TaskResource (#27224) (Amit Dutta) - 26b7228d6b60f1b0b8170133afe0d5bc0628cb43 fix(native): Replace unsafe atol() with folly::to<> in PrestoExchangeSource (#27223) (Amit Dutta) - 4bb9c91f0b587bd53b6348bc015a15f6276ad75d fix: Enable GPU build in CI and replace clang usage (#27160) (Christian Zentgraf) - d39e0629351f385492ee4e5231f243f5564dd254 misc: Make theta_sketch configurable via PRESTO_ENABLE_THETA_SKETCH macro (#27213) (Vyacheslav Andreykiv) - 0d6a4d507a98c70e621c33a90ccd0f7a9f16040f docs: Improve Hive storage format and compression codec documentation (#27216) (Garima Uttam) - 1fc8fad4f56349e2d5a6d48b23bbf2aa8f37d0a8 fix(connector): Enable NDV stats collection for Iceberg in native mode (#27207) (Naveen Mahadevuni) - 4e565039039970f52d913ffc5715b0d3e4ef93eb feat(plugin-iceberg): Add DDL statements for CREATE TAG (#27113) (Reetika Agrawal) - ee7c62adf06ac2e7d734a1ea008faad9faf0cfe3 feat(optimizer): Add PushdownThroughUnnest optimizer rule (#27125) (Sreeni Viswanadha) - 6d7ab531569574801d00f05a68fb3abca42934ff fix: Add null check to UtilizedColumnAnalyzer (#27083) (Auden Woolfson) - 7d35ad2041f00b45612297d6a26f5a9d5214c4a5 fix: Fix isNativeExecutionEnabled to be based on session property (#27123) (adheer-araokar) - 08a8dc16939d581d2508af0deac3171c243f3910 feat(native): Implement Sketch Theta aggregate and scalar functions (#25685) (Naveen Mahadevuni) - a4a4b3dff1ecd9f2b9a0536c76ee0dd8d9ed98fc feat(server): Add ability to disable the UI (#26682) (Anant Aneja) - e72544fa5d54267e222d0253083547b5711826f1 feat(planner): Improve TextRenderer to show input totals (#27189) (Anant Aneja) - ad483359b8dbe08b9a9bc1f634bd5a8195328944 fix(planner): Set the size estimate for a ConstantExpression/Literal (#27188) (Anant Aneja) - a62672886152c8c6b61cf301d246f217d850e357 misc(native): Fix lint issues in presto_cpp types/ directory (#27194) (Amit Dutta) - 920353f4af4066c4250dd235ca012b9946240520 chore: Update airlift to 0.227 version (#27070) (Nikhil Collooru) - ef8463cf5f728a3708d5c0a9bb6ad44831b412a7 feat: Add TEXTFILE custom serde parameters support (#27167) (Xin Zhang) - 25baa62208c1e0e8a35dbed2b94cddfbb4df1248 fix: Do not add redundant exchange over remote function (#27170) (feilong-liu) - 39d1b3d34fb54d3d87593cac947bf32c47b07db0 fix(optimizer): Fix bug in partitioning utils (#27179) (feilong-liu) - f98b61d857a924e2aeaf0b30e0fbb4cff00d2dac fix(build): Remove duplicate BasicPrincipal from presto-main-base (#27187) (Vyacheslav Andreykiv) - 69984325d9536822741676d5ef68bb70ace1a1e5 misc(native): Refactor PrestoServer::run() into smaller methods for readability and testability (#27186) (Amit Dutta) - 67dda4b8d1f0e911bc9fb40af950400a9e480068 fix: Presto spark add X509 certificates to SessionContext (#27183) (Kevin Tang) - 1b49ef90c73156bb7992e00384f6f4c082b0a506 fix(security): Upgrade pinot to version 1.40 and Override vulnerable lz4-java dependency (#26684) (Sayari Mukherjee) - afb5e86e5f04bdb26ca0794df9ea9ab6ca8f0c90 docs: Add CREATE/DROP TABLE docs to sql/explain.rst (#27182) (HeidiHan0000) - 2f4261adde9d74d7c9f91de1dd953e6f4fe491bb feat(optimizer): Add PushSemiJoinThroughUnion iterative rule (#27176) (Sreeni Viswanadha) - c7153139aac6b89d68c810219ead4ff71ea1a0fe fix(build): Add library required for Velox as of 44e10f4 (#27166) (Simon Eves) - a97b826fde5666fda388bcdcc37b5d638cf9a9e8 test(native): Iceberg Materialized Views (#27020) (Timothy Meehan) - 940babe80e60d5023c77c7cca1c6176cceff48a4 chore(deps): Upgrade jakarta.el to 5.0.0-M1 (#27084) (bibith4) - 662a661a474aa7b265f9981cfd1275f91a8116f0 fix(security): Upgrade highlight.js version to 10.1.2 (#26907) (Ajay Kharat) - a5f84ae5359d6e656771a08925248bde2235acad refactor: Extract internal communication authentication in a reusable module (#27165) (Pratik Joseph Dabre) - 151cc8c0a9d3a6974125b63a31c0465ffb77a30c feat(native): Add config for asyc cache flush threshold (#27171) (Ke) - 82a1939c5852862b4d21e6440bf69b2824b99ef9 fix(spi): Typo in the comment of MaterializedViewDefinition.TableColumn (#27172) (Dong Wang) - 2d664921f04391421ee5381e51af57cc756faa4e fix: EXPLAIN CREATE TABLE to show IF NOT EXISTS clause (#27138) (HeidiHan0000) - 8d6d9543556d0227a6d86e4c34aaa94717b62224 fix(security): Bump ajv from 8.17.1 to 8.18.0 (#27154) (sumi-mathew) - 8bfb3f3cc91b36d71014c2cb721e95b40c7b5f23 docs: Add dev container repo to readme (#27089) (Christian Zentgraf) - a5e12fd72b63d587eaf21b8d143bb3a845dc074a fix(security): Upgrade druid version to 35.0.1 (#26820) (Shahim Sharafudeen) - 69b959d88b36ffc80871fbc81e0b00a3c0715fab docs: Add to Presto C++ limitations doc (#27120) (Steve Burnett) - 88b63434a29d2ac7a898282bb2adcc2b83638bfe fix(scheduler): Coordinator Task Throttling Bug (#27146) (shelton408) - 8236897ff8961e2c000c1f2b1c9218c26ac1596a build(native): Add c-ares installation to Mac setup (#27135) (Naveen Mahadevuni) - 7d5b929718dc81861c952b754c45fee63e656439 chore(deps): Upgrade Arrow to 18.3.0 (#27134) (Lithin Purushothaman) - 418e326dc8acfc971dfdd71cc0bde1c01cdb4e93 fix(planner): Fix size estimate used in TextRenderer (#27080) (Anant Aneja) - 3a42841f09114b698d357f5f7c0c3582937a9fe6 chore(ci): Advance velox (#27133) (Amit Dutta) - e42270308b19ec363ff4c06ff5948a5c8295bc43 build!: Remove implicit bundling of sql invoked function plugins from default Presto server Provisio build (#26926) (Pratik Joseph Dabre) - dae492a88d744fac77ea0e69cdf977d333624be9 fix(build): Fix deps container dockerfile (#27145) (Simon Eves) - ef9ef78726f92cb907a3e42b022a4291e1c58ccd fix(build): Upgrade testconatiners to 2.0.3 (#27140) (Yihong Wang) - 2a5a908fbd69fb822cab8bf3080a871d271572f1 build(deps): Install_ucx in centos-dependency image (#27118) (Karthikeyan) - 223b0dab90852298406a8ab9c2604e04daf68f4b docs(native): Add runtime metrics documentation (#27109) (Garima Uttam) - 932f85a39f414fe74da3084e93a21c7e8cf07507 docs: Add scale-writers property documentation (#27110) (Garima Uttam) - 873393fb0123fb8d0621da9fd877b19faf53b831 chore(deps): Update hive-apache version to 3.0.0-11 (#27046) (Joe Abraham) - a023a5bd3a5672a1dc8380dd644536f920b19346 fix(plugin-cassandra): Drop stale tables if table creation process fails (#27100) (Pratik Joseph Dabre) - ff462d8b35c7050a0594bc34c31002297ef15e8a feat(optimizer): Native TopNRank optimization (#24138) (Aditi Pandit) - 45784a9235f09aecac4e41f7547de665ce46969d chore(deps): Upgrade org.apache.httpcomponents.core5:httpcore5 version to 5.3.4 (#27049) (sumi-mathew) - 876babaf2ec205c3c627bb24a685bb3199f1c530 fix(build): Undefined Iceberg* symbols (#27094) (Ping Liu) - fc589a51eadf9e196d74a371a0f28f829eb55c32 fix: Query rewriter truncate (#27115) (Han Yan) - d23b02107dcc3d8c65bfbb2ece5c4f8af0b94ae4 feat(native-pos): Add capability for parallel shuffle checksum (#27078) (Shrinidhi Joshi) - aabe558ea0664e7e627e6ee5c1e5379e3d8030a6 fix(testing): Check both type and data for GenericLiteral in verifier (#27108) (Dong Wang) - ee4cc9b4545e89ae51d6e402784b42b469a5b0c6 chore(native): Advance Velox (#27103) (Aditi Pandit) - 277d03cd67178ad5c6ccaeff8767f707f9c0f9e4 feat: Add session property for dynamic merge join output batching (#27086) (tanjialiang) - f345bc5c947dfc9d93264c8b15ad8103a23c15d0 build(deps): Bump CUDA from 12.8 to 12.9 (#27074) (Simon Eves) - b84574ff87c1aff77530329fae2307ca86f5c500 misc: Fix RemoveCrossJoinWithConstantInput to use unknown locality (#27116) (feilong-liu) - ae63dc28a1b97c203893a55727d2144ae8f31d23 build(deps): Bump lodash-es from 4.17.21 to 4.17.23 in /presto-ui/src (#27051) (Dilli-Babu-Godari) - 63b260023d94838596a86a198a7f6854504a51d5 fix(ci): Fix no space error in arrow flight tests (#27119) (Li Zhou) - 82c83905c19a75709111f2083ce933a53d8393cf fix: Add createBranch method implementation in StatsRecordingMetadataManager (#27114) (Reetika Agrawal) - 5539e9f5fa95acc84f45aac27272cd42699b1350 feat(connector): Add comprehensive JMX metrics for metadata operations (#26875) (Reetika Agrawal) - 907b1afcdff49218775cf09c6d1b7f0dd3bc112a chore(build): Cleanup disk space in arrow-flight-tests (#27106) (Aditi Pandit) - 67304707b442bc120e3402ab270b8e59135755e8 feat(plugin-iceberg): Add DDL statements for CREATE BRANCH (#26898) (Reetika Agrawal) - def6ddf1edeef7591fb636ce9e7cab36b0eac7bd misc(native): Decouple HttpServer and HttpClient from SystemConfig singleton (#27104) (Amit Dutta) - 28f7e58088e7c46bddb280882db73613184651ed feat: Add CUBE limitation in Presto docs (#27098) (Natasha Sehgal) - 1efbb75fa8ed993cedc72f16798eb621b2441e2d misc(native): Minor warning fixes (#27102) (Amit Dutta) - 00da6695c2fb92f3fd5bbdf17435d50fa489e690 chore(ci): Advance velox (#27095) (Amit Dutta) - 11dbbb5f608825782d587bfa10c45f7b8383c775 fix(docs): Update link in Hudi documentation to RFC-44 (#27092) (Joe Abraham) - a6926d1a9b4ed1bb95104d400710e74327d358bf fix(native): Fix Dereference expression index type in VeloxToPrestoExprConverter (#27057) (Pramod Satya) - 6fb40f02af65d48a808697efa7bb1e404418ccec fix(native): Add support for kHyperLogLog type in NativeTypeManager (#26978) (Pramod Satya) - 6c7dd6441d2553bf5336dedcec7b6c14b0a20550 fix(native): Fix Velox to Presto IN expression conversion (#26951) (Pramod Satya) - c3b3eeb6260a44753dd917ec129ff52a248effe6 feat(ci): Expand CVE reporting to med and low (#27081) (Christian Zentgraf) - e1006483a1d6f5470a8d4229b7805cf08301d92e feat(native): Add config for asyc cache numShards (#27073) (Ke) - 93def8b1e31da26374eb8f472ad4ed39ca331209 fix(planner): Fix filter stats estimation corner cases (#26812) (Anant Aneja) - 9ab52f5938bec1107a9c6449a0c57daabed4e4f6 test(native): Add ipprefix and ipaddress tests to native-tests (#26905) (Kyle Wong) - 552553483639893878d9d71f6641bc7f9f633e02 fix: Resolve table names in MV query optimizer for consistent matching (#27059) (Chandrakant Vankayalapati) - e300b7dae542636562c87fbdb3196694a92b271c feat: Add 'native_partitioned_output_eager_flush' session property (#27067) (Sergey Pershin) - 856de263efca39150d88c2dbf1f27f76b5c86849 feat: Adds a new session property to catch remote function errors by TRY() (#26976) (Pradeep Vaka) - 6b9cb831b17a422d785916b9878ae433bf37c5fc perf(native): Fix unnecessary copy in http module (#27063) (Amit Dutta) - 4d1c6d0f5fd98754d0412fcb059aed6307a030d5 chore(ci): Advance velox (#27069) (Amit Dutta) - 49975aa7eef3d45bb4d871800f4b1c2f35c49a49 feat(plugin-hive): Session property to control file size for presto writer (#27054) (PRASHANT GOLASH) - 1adbfdc588b018e7e44645f319e0aea248d9b777 chore(ci): Advance velox and update Iceberg API (#27061) (Amit Dutta) - 0cbcc7419577b9b2d255ae190f75920b71e947e6 feat(plugin-iceberg): Add session prop for max number of partitions per writer (#26989) (Dong Wang) - 9d0ee1159a894ae292908c3ecf9ad41f51bbcc48 fix(docs): Iceberg connector reference in ANALYZE docs (#27041) (Ishaan Bansal) - ced6b6c6ca874f00e7df06cf92e7535812161fb7 refactor: Remove unused code (#27060) (Reetika Agrawal) - 4e8c0baf4da5791afd86460b9743278dc279815a perf(optimizer): Make cost-based strategy of using parent preference in AddLocalExchanges (#26960) (Wei He) - c012600fe6bfd0df69446774fc4c76f357c4a77d fix(plugin-iceberg): Disable metadata deletion on varbinary columns (#27050) (Dong Wang) - 32207b9573ecab181b61eebc4754a7f545554b27 feat(plugin-iceberg): Add support for materialized views with Hive catalog (#26958) (Timothy Meehan) - feb403bd5825a374a3dda7e29fd594d8294243da fix: Fix typo in sidecar docs (#27053) (Pratik Joseph Dabre) - f958bac8c2340e6806230bad0205e04a44476c55 feat(optimizer): Add option to set task count for remote functions (#27044) (feilong-liu) - ed0c4df5c3e68a0c1f8e8de1589c79c30378ff9a feat: Add subfields pushdown for cardinality function (#26834) (maniloya) - 1a67c8eb23ec26eae1cbe38afd92496f0e0ab245 chore: Upgrade io.opentelemetry version to 1.58.0 (#26644) (sumi-mathew) - 4be75f05db0be6b49291593202c21e5edbb034b8 fix(plugin-native-sidecar): Avoid sending aggregate and window functions to sidecar for expression optimization (#27043) (Pratik Joseph Dabre) - 2c7a13f8aded259500221d9643f5abb147e9d50c chore(deps): Upgrade postgresql to version 42.7.9 (#27012) (bibith4) - ec75c58bf7f085c6e536085958ae042edd2f0800 docs(native): Add documentation for Presto C++ Installation (#26718) (Saurabh Mahawar) - 3c1009563553d37af52569291a3cbb74a5dc8f20 build(deps): Bump lodash from 4.17.21 to 4.17.23 in /presto-ui/src (#27009) (dependabot[bot]) - ffa70a325a6a1f865cc74c95163fb5c703db06c2 chore: Upgrade org.locationtech.jts version to 1.20.0 (#26646) (sumi-mathew) - fede6817cba325bc2fcfcbb4a2f52ccd1d56249b feat: Add configurable query admission pacing to prevent worker overload (#26988) (PRASHANT GOLASH) - b11d8570b2bf32a5689c1223eed250123d4f5a30 fix(optimizer): Fix hash function for prefilter groupby limit (#27033) (Sreeni Viswanadha) - 77059c66cdd1258f7e1ef73ccaaed99470e12a46 feat(connector): Allow fine-grained enable/disable of hive metastore caches (#26918) (Jalpreet Singh Nanda) - c57d320c91765efb17e0e21f261951340f49883d misc: Remove unused includes (#27026) (Amit Dutta) - c53e51dd42abfd9349babf2b8318c2a8c3cae766 feat(connector): Upgrade AWS Glue to AWS SDK v2 and Migrate to MetricPublisher (#26670) (Jalpreet Singh Nanda) - b096c6896d9e9166569dd2ac092ec75e1c61d442 chore(native): Remove unused variable in VeloxToPrestoExprConverter (#27018) (Pramod Satya) - 881439c420618e305805185654ee4ad19d5468d3 fix: Add row field names for varchar/map types when registering function signatures (#27016) (Kevin Tang) - 62b670be4b120c26479e6a59cede8208c5270caf test: Add TVF invocation tests with nested table function calls (#27001) (mohsaka) - 2ae4e02391839f66298d9e5b2d5c835f567616b6 fix: Add global tracker for view definitions used in a query (#26927) (Kevin Tang) - 3d8af974b2609de235d2ff9f25977252839a1e1c chore(deps): Upgrade org.glassfish.jaxb:jaxb-runtime version to 4.0.6 (#27003) (bibith4) - 2a248d3f274ec36bab61b893f9412b1f460677ea fix(build): Fully qualify yield call to avoid java 17 compilation error (#27006) (Kiersten Stokes) - 4e91f155d0f4704325552fac3807da0efdba6a35 fix(docs): Added documentation for the comparator version of array_top_n (#27010) (Allen Shen) - 6ac60ce6783700cc1123193e5a740bc5dc7c1025 feat(plugin-delta): Add support to show the external table location of Delta tables when running the SHOW CREATE TABLE command (#26986) (Adrian Carpente (Denodo)) - b105046a593f17e5949bec8eda7c06395cc47998 chore(deps): Bump iceberg to 1.10.0 (#26879) (Joe Abraham) - 69c842fc7866108523f906f0430d121d3172ff6c feat(native): Add support for NativeFunctionHandle parsing (#26948) (Pratik Joseph Dabre) - 3b328e76268d4cad29ec2fcc6a87ff277dc0a3b3 fix(plugin-iceberg): Drop data table if the MV fails validation (#26994) (Timothy Meehan) - e3db5a253adfb5d57d85351115bacc4225be885a feat(native): Create a runtime metric for worker uptime to be used for restart alerts (#26979) (jja725) - 688e0a27b3c357ecfe07e7d2c49c3e9de883fe7a fix(native): Incorrect release build and make errors (#26997) (Christian Zentgraf) - f552971aea1471a2b57b26f3f4ea9b1eeabd217c chore: Move permissions checks outside of Analyzer (#26869) (Kevin Tang) - 5a28e1caff68c00ed95f3cf4322a7b5329457722 fix(docs): Fix spilling docs (#26194) (Pratyaksh Sharma) - 57f42d8783adf448b9025c91c4a0ebd52c5cf24a fix(native): Enable TestPrestoNativeAsyncDataCacheCleanupAPI (#26923) (Reetika Agrawal) - e5aed797275425b5ef8ebb357776b4d83d39f43c fix(docs): Fix grammar in iceberg docs (#26991) (Pratyaksh Sharma) - fe2f09e4173f037cea679f61713b0b164e3a475c docs: Refactor the page explaining how to deploy Presto with Docker (#26870) (Denis Krivenko) - 8a219ee5a28289a75d53ee8ded9e42498ac9c3f0 fix(docs): Fix redis-hbo-provider docs (#26190) (Pratyaksh Sharma) - acc0f202bc0f228e8a2d85ac690ac53245894be0 fix(ui): Avoid auto-applying LIMIT to non-SELECT statements (#26987) (Prabhu Shankar) - 3f588e546738182a53318350b64ce194a6fce215 refactor: Deprecate the old cleanup aggregation node ctor APIs (#26973) (Xiaoxuan) - db41f886e40e319a23582d1e5cd8c032f8828386 feat(optimizer): Add option to not push down remote project below exchange (#26943) (feilong-liu) - b3968a064552e1f2af810dad91bcb472bf26d7de feat(plugin-pinot): Add TLS support for self-signed certificate (#26151) (Dilli-Babu-Godari) - 6616215186197d424b6a636ae3845c034de3d941 feat: Add catchableByTry flag to ErrorCode for extensible TRY error handling (#26949) (Pradeep Vaka) - d26ecdc982b7e8c9483cd077a8db5bdc48be46fa feat: Support `sorted_by` for `data_rewrite_files` procedure (#26804) (Dong Wang) - 513092449e3c435f74fed0ba936df15471013d61 feat(optimizer): Add exchange on table scan when number of files to be scanned is small (#26941) (feilong-liu) - b64af1e3a0f34c315a23ba5ffaf65f432872f6cf fix(docs): Khyperloglog uniqueness_distribution default behavior (#26957) (HeidiHan0000) - edc87242eeac1e28a1c1b0f2f48039cf65f28fc3 fix(native): Use GCC14 in runtime image if cudf is enabled (#26967) (Christian Zentgraf) - 18c15e2d82ae35ec856b18e473d91577249c0858 fix(docs): Mismatch for map_keys_by_top_n_values for example block (#26916) (Allen Shen) - 348c842de115295ab1d04aea909bb0fdb35aee11 misc: Add python language in RoutineCharacteristics (#26962) (feilong-liu) - a4a5405f63085a75538f671a7c50d81e3f484208 feat(plugin-iceberg): Add support for MERGE INTO (#25470) (Adrian Carpente (Denodo)) - cf60c368694a124979f7db56cf8d02f3cd2d7e1f feat(plugin-hive): Add support for skip_header_line_count and skip_footer_line_count table properties (#26446) (Auden Woolfson) - 4ddfb2a464e45015863d02e7b0096777dcc04b53 feat(build): Support local maven configs (#26954) (Timothy Meehan) - ac765b9c3929d4837b2e3f1336de4bddbe27bb48 chore(native): Revert castDateToVarchar parameter and add cast based on storageFormat (#26955) (Pramod Satya) - b2255b6aee986ff7f70e9a7abe6793ca3eb98846 fix(native): Fix protocol generation (#26956) (Pratik Joseph Dabre) - 441a3d3e2f382f37a9f082eceb7d68a402af2b49 fix: Pass reasonForSelect to view identity for definer mode (#26724) (Kevin Tang) - 21d861083cfd5881aa5ea088a713882faf90c2c3 fix(ci): Remove deprecated mac 13 runner from build tests (#26952) (Li Zhou) - b200d1fe7a5882d7a178e0636b2684792ee212d7 fix: Register worker functions before system access control (#26945) (Kevin Tang) - 0dfdb99e0627d6da927abf3e370a36dbfdf76772 feat(native): Add counter to track http client connection reuse (#26822) (Ke) - 9535d3a926f37ab670766821416c68a14430393b chore(ci): Advance velox (#26932) (Amit Dutta) - 20f5ca51bddd79202ab712ecdd24b8e7fe1ea6a6 misc: Add method comments and update docs for distributed procedures (#26890) (Dong Wang) - 3037dc96aae8278f91dc6da1d7e7b3ab8c3fad2d feat!: Add access control for procedures (#26803) (Dong Wang) - edeff0352ba6624fcdf4e31820dd277dc777e585 feat(ui): Add SQL Support for MERGE INTO In Presto #20578 (presto-ui) (#26825) (Adrian Carpente (Denodo)) - 39d8e3c94daa6d4c9a2583c7cb3060c13fe5f001 fix: EXPLAIN IO output to support temporal types (date, timestamp, timestamp with time zone) (#26942) (Timothy Meehan) - 04bcfef13649fc0e31fa2848dd98af6ba11dc67a chore(native): Cleanup expression optimizer API (#26925) (Pramod Satya) - 8dece5d6593c1f9217f8562edf80c36bba39a180 fix(native): Enable Velox to Presto lambda expression conversion (#26913) (Pramod Satya) - 89be9060b15038444 ## Release Notes ``` == NO RELEASE NOTE == ``` **Note:** The full release notes summary was too large (76874 characters) for GitHub's PR body limit. The complete summary has been saved to [`release-notes-missing-0.297.md`](../blob/release-notes-0.297/release-notes-missing-0.297.md) in this pull request. **Please delete this file before merging.** ## Summary by Sourcery Documentation: - Document the 0.297 release in the Sphinx docs under release notes. --------- 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: wangd <mingwbd@gmail.com> Co-authored-by: Timothy Meehan <tim@timdmeehan.com>
Cherry pick of trinodb/trino#27786
Co-authored-by: Dain Sundstrom dain@iq80.com
Description
Add initial support for Iceberg table format version 3 while constraining unsupported features and row-level operations to safe, explicitly validated paths.
New Features:
Enhancements:
Test Plan
Add TestIcebergV3 integration test suite covering creation, upgrade, insert, query, and partitioning for v3 tables, as well as rejection of unsupported delete, update, merge, and OPTIMIZE operations on v3 tables.
Release Notes
Summary by Sourcery
Add guarded initial support for Iceberg table format version 3 while constraining unsupported features and row-level operations to fail fast with clear errors.
New Features:
Enhancements:
Tests: