---
type: Concept
title: ScalarDB 3.17 Release Notes
description: This page includes a list of release notes for ScalarDB 3.17.
resource: https://scalardb.scalar-labs.com/docs/3.17/releases/release-notes/
tags:
- scalardb
- v3.17
- phase:design
- section:about-scalardb
- edition:community
- edition:enterprise-standard
- edition:enterprise-premium
status: stable
product: scalardb
product_title: ScalarDB
version: '3.17'
patch_version: 3.17.4
doc_id: releases/release-notes
lifecycle_phase: design
breadcrumb:
- About ScalarDB
editions:
- Community
- Enterprise Standard
- Enterprise Premium
generated:
  by: process:okf-build/1.0.0
  at: '2026-08-04T23:50:51Z'
sources:
- id: docs-scalardb
  resource: https://github.com/scalar-labs/docs-scalardb/blob/6126dfe2f56389351d88b134752618641f9771dd/versioned_docs/version-3.17/releases/release-notes.mdx
  title: ScalarDB documentation source (MDX)
  author: process:scalar-labs/docs-scalardb
  last_modified: '2026-08-04T15:05:02Z'
---

# ScalarDB 3.17 Release Notes

This page includes a list of release notes for ScalarDB 3.17.

## v3.17.4

**Release date:** August 2, 2026

### Summary

This release updates the deprecation policy, improves `repairTable` behavior, fixes several Consensus Commit, Cluster rollback/pause, and SQL metadata cache issues, and upgrades multiple dependencies to address security vulnerabilities across the Community and Enterprise editions.

### Community edition

#### Improvements

- Changed the deprecation policy so that APIs and configurations marked as deprecated will now be removed in 4.0.0 instead of 5.0.0. ([#3520](https://github.com/scalar-labs/scalardb/pull/3520))
- Improved `repairTable` to skip rewriting a table's metadata when it is already up to date (and, for Cosmos DB, to skip updating the container indexing policy when it already matches), avoiding unnecessary writes. ([#3613](https://github.com/scalar-labs/scalardb/pull/3613))

#### Bug fixes

- Fixed an issue in Consensus Commit where a `Get` operation using a secondary index could fail with an `IllegalArgumentException` when another record with the same indexed value was concurrently being deleted and inserted. ([#3607](https://github.com/scalar-labs/scalardb/pull/3607))
- Fixed an issue in Consensus Commit where a read-only transaction could fail when coordinator write omission on read-only was disabled and coordinator group commit was enabled. ([#3614](https://github.com/scalar-labs/scalardb/pull/3614))
- Fixed a bug where aborting an in-flight, group-committed transaction by ID via `DistributedTransactionManager.rollback(String)` / `abort(String)` could be lost when the Coordinator group commit feature was enabled. ([#3619](https://github.com/scalar-labs/scalardb/pull/3619))
- Fixed an issue in the Consensus Commit transaction manager where a read could return a stale (pre-commit) value for a record whose writing transaction committed concurrently during lazy recovery. ([#3621](https://github.com/scalar-labs/scalardb/pull/3621))
- Upgraded the Jackson, Netty, Azure Cosmos DB, and Azure Blob Storage libraries to fix security issues: [CVE-2026-42579](https://github.com/advisories/GHSA-cm33-6792-r9fm), [CVE-2026-42583](https://github.com/advisories/GHSA-mj4r-2hfc-f8p6), [CVE-2026-42584](https://github.com/advisories/GHSA-57rv-r2g8-2cj3), [CVE-2026-42587](https://github.com/advisories/GHSA-f6hv-jmp6-3vwv), [CVE-2026-44249](https://github.com/advisories/GHSA-3qp7-7mw8-wx86), [CVE-2026-45416](https://github.com/advisories/GHSA-x4gw-5cx5-pgmh), [CVE-2026-45674](https://github.com/advisories/GHSA-676x-f7gg-47vc), [CVE-2026-47691](https://github.com/advisories/GHSA-5pvg-856g-cp85), [CVE-2026-50010](https://github.com/advisories/GHSA-c653-97m9-rcg9), [CVE-2026-54512](https://github.com/advisories/GHSA-j3rv-43j4-c7qm), [CVE-2026-54513](https://github.com/advisories/GHSA-rmj7-2vxq-3g9f), [CVE-2026-55831](https://github.com/advisories/GHSA-6jqx-86gh-f27w), [CVE-2026-55833](https://github.com/advisories/GHSA-mvh2-crg5-v77c), [CVE-2026-56745](https://github.com/advisories/GHSA-jppx-w49h-x2qq), [CVE-2026-59901](https://github.com/advisories/GHSA-558v-64gr-wgg4), and [GHSA-r7wm-3cxj-wff9](https://github.com/advisories/GHSA-r7wm-3cxj-wff9) ([#3754](https://github.com/scalar-labs/scalardb/pull/3754))
- Upgraded the PostgreSQL JDBC driver to fix security issues: [CVE-2026-42198](https://github.com/advisories/GHSA-98qh-xjc8-98pq) and [CVE-2026-54291](https://github.com/advisories/GHSA-j92g-9f8w-j867) ([#3759](https://github.com/scalar-labs/scalardb/pull/3759))

### Enterprise edition

#### Improvements

##### ScalarDB Cluster

- Changed the deprecation policy so that APIs marked as deprecated will now be removed in 4.0.0 instead of 5.0.0.

#### Bug fixes

##### ScalarDB Cluster

- Fixed a bug where a `rollback` that exceeded the cluster's request-forwarding hop limit was silently reported as successful instead of surfacing the failure, which could leave records prepared until lazy recovery.
- Fixed a race condition where pausing a cluster node or the Transaction Coordinator could report success while the node remained unpaused. This could happen when an unpause or another pause request was issued concurrently, and also when a pause that waits for outstanding requests timed out after an earlier pause had already succeeded.
- Upgraded the Jackson, Netty, and LangChain4j libraries to fix security issues: [CVE-2026-40682](https://github.com/advisories/GHSA-4v8g-86x5-3vrc), [CVE-2026-42027](https://github.com/advisories/GHSA-cx4m-2p55-rw7j), [CVE-2026-42440](https://github.com/advisories/GHSA-659w-93r5-9j6m), [CVE-2026-42583](https://github.com/advisories/GHSA-mj4r-2hfc-f8p6), [CVE-2026-42584](https://github.com/advisories/GHSA-57rv-r2g8-2cj3), [CVE-2026-42587](https://github.com/advisories/GHSA-f6hv-jmp6-3vwv), [CVE-2026-44249](https://github.com/advisories/GHSA-3qp7-7mw8-wx86), [CVE-2026-45416](https://github.com/advisories/GHSA-x4gw-5cx5-pgmh), [CVE-2026-50010](https://github.com/advisories/GHSA-c653-97m9-rcg9), [CVE-2026-54512](https://github.com/advisories/GHSA-j3rv-43j4-c7qm), [CVE-2026-54513](https://github.com/advisories/GHSA-rmj7-2vxq-3g9f), [CVE-2026-55405](https://github.com/advisories/GHSA-2mfg-cc43-9pcj), [CVE-2026-55831](https://github.com/advisories/GHSA-6jqx-86gh-f27w), [CVE-2026-55833](https://github.com/advisories/GHSA-mvh2-crg5-v77c), [CVE-2026-56745](https://github.com/advisories/GHSA-jppx-w49h-x2qq), [CVE-2026-59901](https://github.com/advisories/GHSA-558v-64gr-wgg4), and [GHSA-r7wm-3cxj-wff9](https://github.com/advisories/GHSA-r7wm-3cxj-wff9)
- Upgraded the Bouncy Castle library and the grpc_health_probe binary to fix security issues: [CVE-2025-14813](https://github.com/advisories/GHSA-574f-3g2m-x479), [CVE-2026-5598](https://github.com/advisories/GHSA-p93r-85wp-75v3), [CVE-2026-25681](https://github.com/advisories/GHSA-w9p8-pvxh-rxpj), [CVE-2026-27136](https://github.com/advisories/GHSA-m9x8-m34x-fj9q), [CVE-2026-27145](https://github.com/advisories/GHSA-4279-q6mj-392r), [CVE-2026-33811](https://github.com/advisories/GHSA-497x-jcxf-m478), CVE-2026-33814, [CVE-2026-39820](https://github.com/advisories/GHSA-p9h5-jm8x-mjm5), [CVE-2026-39821](https://github.com/advisories/GHSA-w2q5-6q6x-x959), [CVE-2026-39822](https://github.com/advisories/GHSA-xcgv-8mv7-v8c7), [CVE-2026-39836](https://github.com/advisories/GHSA-8g2r-hhvj-mv99), [CVE-2026-42499](https://github.com/advisories/GHSA-xq5j-9r39-c3vf), and [CVE-2026-42504](https://github.com/advisories/GHSA-h524-452v-82p9)

##### ScalarDB SQL

- Fixed an issue where `CachedMetadata#invalidateNamespaceNamesCache()` did not actually invalidate the cached list of namespaces, causing `SHOW NAMESPACES` and related operations to potentially return stale results until the cache TTL expired.

## v3.17.3

**Release date:** April 15, 2026

### Summary

This release includes several improvements and bug fixes.

:::warning Backward-incompatible changes

- **Existing tables require `repairTable()` to create the new before-image secondary index.** Index-based `Get`, `Scan`, and `ScanAll` in Consensus Commit now rely on a companion `before_<col>` index. Until you run `repairTable()` on each existing table, ScalarDB logs a warning at startup and index-based reads fall back to the previous behavior, which may miss records whose indexed column is being concurrently updated. The configuration `scalar.db.consensus_commit.index.eventually_consistent_read.enabled` is provided as an opt-out but is not recommended for new workloads.
- **MySQL Connector/J replaced with MariaDB Connector/J.** SSL is no longer enabled by default. If you connect to MySQL 8.0 or later with `caching_sha2_password` authentication, add `sslMode=REQUIRED` or `allowPublicKeyRetrieval=true` to your JDBC URL. No action is required for `jdbc:mysql://` URLs because ScalarDB automatically appends `permitMysqlScheme` for compatibility.

:::

### Community edition

#### Improvements

- Replaced MySQL Connector/J with MariaDB Connector/J due to licensing concerns. ([#3428](https://github.com/scalar-labs/scalardb/pull/3428))
- Added support for setting null values on secondary index columns in DynamoDB. When a null value is set, the attribute is removed from the item and the record will not appear in secondary index scans. ([#3326](https://github.com/scalar-labs/scalardb/pull/3326))
- Inserting or updating records with TIME (microsecond precision), TIMESTAMP (millisecond precision), and TIMESTAMPTZ (millisecond precision) column values will truncate out-of-range precision rather than throwing an exception. ([#3393](https://github.com/scalar-labs/scalardb/pull/3393))
- Fixed an issue where index-based Get and Scan operations in Consensus Commit could miss records in PREPARED or DELETED state, by adding before-image secondary index check. ([#3419](https://github.com/scalar-labs/scalardb/pull/3419))
- Added support for the SERIALIZABLE isolation level for index-based Get, Scan, and ScanAll operations in Consensus Commit when before-image indexes are present. Run `repairTable()` to create before-image indexes for existing tables. ([#3463](https://github.com/scalar-labs/scalardb/pull/3463))
- Shortened JDBC index names using a hash when they exceed the maximum identifier length supported by the underlying database. ([#3481](https://github.com/scalar-labs/scalardb/pull/3481))

#### Bug fixes

- Fixed `dropColumnFromTable()` from dropping the secondary index even when column drop is unsupported. ([#3450](https://github.com/scalar-labs/scalardb/pull/3450))
- Upgraded the Netty library to fix security issues: [CVE-2026-33870](https://github.com/advisories/GHSA-pwqr-wmgm-9rr8 "CVE-2026-33870") and [CVE-2026-33871](https://github.com/advisories/GHSA-w9fj-cfpg-grvv "CVE-2026-33871") ([#3452](https://github.com/scalar-labs/scalardb/pull/3452))
- Fixed a bug where index-based Get and Scan operations could return incorrect results after lazy recovery rolled back a PREPARED record whose after-image index value matched the query but whose before-image (restored) value did not. ([#3488](https://github.com/scalar-labs/scalardb/pull/3488))

### Enterprise edition

#### Improvements

##### ScalarDB SQL

- Updated the TIMESTAMPTZ literal to make optional the space character before the UTC timezone `Z` character. For example, `2021-03-04 12:30:45.123Z` is now accepted, in addition to the current format `2021-03-04 12:30:45.123 Z`. Also, when selecting a TIMESTAMPTZ column, the value is printed without a space before the `Z`.
- Fixed an issue where the shadow jar was unnecessarily published to GitHub Packages for the CLI module.
- Inserting or updating records with TIME (microsecond precision), TIMESTAMP (millisecond precision), and TIMESTAMPTZ (millisecond precision) column values will truncate out-of-range precision rather than throwing an exception.

#### Bug fixes

##### ScalarDB Cluster

- Upgraded `grpc_health_probe` to fix security issues: [CVE-2025-59250](https://github.com/advisories/GHSA-m494-w24q-6f7w "CVE-2025-59250") and [CVE-2026-25679](https://github.com/advisories/GHSA-j3gx-2473-5fp8 "CVE-2026-25679")
- Upgraded the Netty library to fix security issues: [CVE-2026-33870](https://github.com/advisories/GHSA-pwqr-wmgm-9rr8 "CVE-2026-33870") and [CVE-2026-33871](https://github.com/advisories/GHSA-w9fj-cfpg-grvv "CVE-2026-33871")
- Fixed a bug where one-shot batch operations bypassed pause control in the GateKept transaction managers.
- Upgraded `grpc_health_probe` to fix a security issue: [CVE-2026-34986](https://github.com/advisories/GHSA-78h2-9frx-2jm8 "CVE-2026-34986").

##### ScalarDB SQL

- Fixed a bug where duplicate column names were allowed in CREATE TABLE statements.
- Fixed missing strict date validation on time-related type formatters, which could allow invalid dates (e.g., February 30) to be silently accepted instead of rejected.

## v3.17.2

**Release date:** March 6, 2026

### Summary

This release includes several improvements and bug fixes.

### Community edition

#### Improvements

- Extended the applicability of one-phase commit optimization in the Consensus Commit protocol. This allows one-phase commit to be used even in SERIALIZABLE isolation level when the transaction only reads records that it subsequently updates, improving performance for read-modify-write workloads. ([#3295](https://github.com/scalar-labs/scalardb/pull/3295))

#### Bug fixes

- Added explicit commits for Oracle database when using SERIALIZABLE isolation level to ensure snapshot updates after each operation. ([#3294](https://github.com/scalar-labs/scalardb/pull/3294))
- Upgraded the Jackson library to fix a security issue: [GHSA-72hv-8253-57qq](https://github.com/advisories/GHSA-72hv-8253-57qq "GHSA-72hv-8253-57qq") ([#3394](https://github.com/scalar-labs/scalardb/pull/3394))

### Enterprise edition

#### Bug fixes

##### ScalarDB Cluster

- Fixed an issue where the batch operation with piggyback commit threw `CrudException` instead of `CrudConflictException` when a commit conflict occurred. This allows clients to properly detect and handle commit conflicts.
- Fixed a bug where `batch()` with piggyback commit threw `CrudException` instead of `UnknownTransactionStatusException` on unexpected gRPC errors. This could cause incorrect error handling on the client side, as the transaction status was actually unknown when piggyback commit was enabled.
- Upgraded `grpc_health_probe` to fix security issues: [CVE-2025-68121](https://github.com/advisories/GHSA-h355-32pf-p2xm "CVE-2025-68121"), [CVE-2025-61726](https://github.com/advisories/GHSA-gm9r-q53w-2gh4 "CVE-2025-61726"), [CVE-2025-61728](https://github.com/advisories/GHSA-g9q4-qjx4-2v7q "CVE-2025-61728"), [CVE-2025-61729](https://github.com/advisories/GHSA-7c64-f9jr-v9h2 "CVE-2025-61729"), and [CVE-2025-61730](https://github.com/advisories/GHSA-gr56-3gp6-6gmj "CVE-2025-61730")
- Upgraded the Kubernetes Java Client to fix a security issue: [CVE-2024-29371](https://github.com/advisories/GHSA-3677-xxcr-wjqv "CVE-2024-29371")
- Excluded `com.microsoft.azure:adal4j` from the Kubernetes Java Client to fix security issues: [CVE-2023-52428](https://github.com/advisories/GHSA-gvpg-vgmx-xg6w "CVE-2023-52428"), [CVE-2021-31684](https://github.com/advisories/GHSA-fg2v-w576-w4v3 "CVE-2021-31684"), and [CVE-2023-1370](https://github.com/advisories/GHSA-493p-pfq6-5258 "CVE-2023-1370")
- Upgraded the Jackson library to fix a security issue: [GHSA-72hv-8253-57qq](https://github.com/advisories/GHSA-72hv-8253-57qq "GHSA-72hv-8253-57qq")

##### ScalarDB SQL

- Ambiguous column names in ORDER BY and HAVING clauses were detected.
- Fixed a `ClassCastException` that occurred in `StatementUtils.appendTerm()` when handling `DATE`, `TIME`, `TIMESTAMP`, and `TIMESTAMPTZ` values. These values are now correctly formatted as string literals instead of being incorrectly cast to String.
- Fixed `SelectStatement.toSql()` to correctly generate ORDER BY clauses with aggregate functions such as `SUM()` and `COUNT()`. Previously, only column-based orderings were handled, causing incorrect SQL output when function-based orderings were used.

## v3.17.1

**Release date:** December 9, 2025

### Summary

This release mainly consists of several minor bug fixes and small improvements.

### Community edition

#### Enhancements

- Added `AuthAdmin.getRole(roleName)`. ([#3238](https://github.com/scalar-labs/scalardb/pull/3238))

#### Improvements

- Added the `scalar.db.active_transaction_management.enabled` configuration option to enable/disable the active transaction management (default: `true`). ([#3233](https://github.com/scalar-labs/scalardb/pull/3233))

#### Bug fixes

- On Oracle, when importing a table with a column using the `NUMBER(1)` data type, which is usually used for BOOLEAN data, that column can now be mapped to ScalarDB BOOLEAN by using the ScalarDB Schema Loader `override-columns-type` setting. ([#3239](https://github.com/scalar-labs/scalardb/pull/3239))
- Fixed option issues in Object Storage adapter. ([#3237](https://github.com/scalar-labs/scalardb/pull/3237))
- Fix to increase the maximum allowed string length with Object Storage. ([#3248](https://github.com/scalar-labs/scalardb/pull/3248))
- Updated the upper limit value displayed in the error message for data size limitation in Object Storage adapter. ([#3264](https://github.com/scalar-labs/scalardb/pull/3264))

### Enterprise edition

#### Enhancements

##### ScalarDB Cluster

- Added the `getRole()` API and equivalent to retrieve a single role by name.

##### ScalarDB SQL

- Added `Metadata.getRole(roleName)`.

#### Bug fixes

##### ScalarDB Cluster

- Made the `GRANT ROLE` command idempotent, allowing duplicate grants and upgrading to `WITH ADMIN OPTION` when re-granting.
- Fixed a bug where the pause functionality did not work correctly when transactions expired.
- Fixed a bug where ScalarDB Cluster cannot be deployed in the Omnistrate environment by upgrading scalar-metering.

### Enterprise Options

#### ScalarDB Analytics

##### Bug fixes

- Added relocation rules for Azure Synapse Analytics compatibility.

## v3.17.0

**Release date:** November 26, 2025

### Summary

This release includes many enhancements, improvements, security issue fixes, and bug fixes.

:::warning Backward-incompatible changes

- **`Get` and `Scan` operations using a secondary index under the SERIALIZABLE isolation level now throw `IllegalArgumentException`** because such operations cannot guarantee the strict consistency that SERIALIZABLE requires. To restore SERIALIZABLE support for index-based reads, upgrade to 3.17.3 or later, which adds it back via a companion before-image secondary index. Otherwise, switch to a non-SERIALIZABLE isolation level (reads become eventually consistent and may return slightly stale data) or rewrite the operation to use the primary key.

:::

### Community edition

#### Enhancements

- Added support for `ifNotExists` option in add column operation. ([#2960](https://github.com/scalar-labs/scalardb/pull/2960))
- Added support for dropping columns in ScalarDB. ([#2983](https://github.com/scalar-labs/scalardb/pull/2983))
- Added support for renaming columns in ScalarDB. ([#2990](https://github.com/scalar-labs/scalardb/pull/2990))
- Added support for renaming tables in ScalarDB. ([#3021](https://github.com/scalar-labs/scalardb/pull/3021))
- Added support for altering column types in ScalarDB. ([#3028](https://github.com/scalar-labs/scalardb/pull/3028))
- AlloyDB versions 15 and 16 are now supported as underlying storage by using the PostgreSQL JDBC driver. ([#3029](https://github.com/scalar-labs/scalardb/pull/3029))
- TiDB versions 6.5, 7.5, and 8.5 are now supported as underlying storage by using MySQL Connector/J JDBC driver. ([#3001](https://github.com/scalar-labs/scalardb/pull/3001))
- Added support for batch operations that perform multiple operations in the Transaction API. ([#3082](https://github.com/scalar-labs/scalardb/pull/3082))
- Added support for administrative operations over Azure Blob Storage. ([#3104](https://github.com/scalar-labs/scalardb/pull/3104))
- Added support for data manipulation operations over Azure Blob Storage. ([#3124](https://github.com/scalar-labs/scalardb/pull/3124))
- Added Amazon S3 adapter. ([#3141](https://github.com/scalar-labs/scalardb/pull/3141))
- Add integration tests for Cassandra 4 and 5. ([#3143](https://github.com/scalar-labs/scalardb/pull/3143))
- Added Google Cloud Storage adapter. ([#3179](https://github.com/scalar-labs/scalardb/pull/3179))
- Introduced virtual tables in the Storage abstraction layer. Virtual tables allow exposing a logical join of two source tables on their primary key, enabling related data stored in separate tables to be accessed as a single logical entity. ([#3180](https://github.com/scalar-labs/scalardb/pull/3180))
- Added `isConsistentVirtualTableReadGuaranteed()` method to the `StorageInfo` interface to indicate whether a storage guarantees consistent reads for virtual tables. ([#3204](https://github.com/scalar-labs/scalardb/pull/3204))
- Added transaction metadata decoupling support in Consensus Commit. This feature enables users to perform Consensus Commit ScalarDB transactions on pre-existing data without schema modifications or data migration. ([#3207](https://github.com/scalar-labs/scalardb/pull/3207))

#### Improvements

- When using Db2, the default data type used for ScalarDB BLOB column from Db2 is changed from `VARBINARY(32672)` to `BLOB(2G)` to allow storing data up to 2GB. This brings new limitations that a BLOB column can no longer be used as partition key, clustering key, secondary index or as an ordering column in a cross-partitions scan, .i.e. ScanAll, operation. ([#3000](https://github.com/scalar-labs/scalardb/pull/3000))
- When using Oracle, the default data type used for ScalarDB BLOB column from Oracle is changed from  `RAW(2000)` to `BLOB` to allow storing data up to 2GB. This introduces new limitations: a BLOB column can no longer be used as a partition key, clustering key, secondary index, or a condition in a Get or Scan operation. ([#3070](https://github.com/scalar-labs/scalardb/pull/3070))
- When using the JDBC transaction manager, do not set the JDBC transaction isolation level to SERIALIZABLE when the configuration `scalar.db.jdbc.isolation_level` is not set. The default is now the default value set by the storage. ([#3076](https://github.com/scalar-labs/scalardb/pull/3076))
- Added Maven publishing support for the ScalarDB Data Loader CLI, enabling distribution as a Maven artifact. ([#3120](https://github.com/scalar-labs/scalardb/pull/3120))

#### Bug fixes

- Fixed a bug where a CommitException was thrown when committing a transaction, even though the transaction was actually committed. ([#2826](https://github.com/scalar-labs/scalardb/pull/2826))
- Fixed error handling for mutations in Cassandra. ([#2827](https://github.com/scalar-labs/scalardb/pull/2827))
- Fixed a bug where group commit did not work correctly with one-phase commit. ([#2832](https://github.com/scalar-labs/scalardb/pull/2832))
- Fixed `--no-header` option being ignored in data loader CSV exports ([#2924](https://github.com/scalar-labs/scalardb/pull/2924))
- Fixed an inconsistency where Get and Scan operations were prepared differently for transaction reads and Serializable validation, which could result in inconsistent ordering and cause Serializable validation failures. ([#3113](https://github.com/scalar-labs/scalardb/pull/3113))
- Exclude slf4j-api from alloydb dependency to correct logging behaviour ([#3119](https://github.com/scalar-labs/scalardb/pull/3119))
- Deprecated `--log-success` argument and introduced a new replacement option `--enable-log-success` ([#3117](https://github.com/scalar-labs/scalardb/pull/3117))
- Fixed incorrect validation causing maxThreads to be treated as required ([#3128](https://github.com/scalar-labs/scalardb/pull/3128))
- Prohibited Get and Scan operations using secondary indexes when the isolation level is SERIALIZABLE in the Consensus Commit transaction manager, as these operations are now defined as eventually consistent and cannot guarantee the strict consistency required by SERIALIZABLE isolation. ([#3133](https://github.com/scalar-labs/scalardb/pull/3133))
- Updated the import command help text to include default values for four CLI arguments. ([#3059](https://github.com/scalar-labs/scalardb/pull/3059))
- Fixed data-loader to properly handle unexpected exceptions during transaction processing for importing, ensuring transactions are aborted and errors are logged with proper context. ([#3183](https://github.com/scalar-labs/scalardb/pull/3183))
- Fixed failure log writing issue in storage mode for Data Loader imports ([#3189](https://github.com/scalar-labs/scalardb/pull/3189))
- Fixed handling of "null" values for non-TEXT columns in CSV imports ([#3160](https://github.com/scalar-labs/scalardb/pull/3160))

### Enterprise edition

#### Enhancements

##### ScalarDB Cluster

- Added support for `ifNotExists` option in add column operation for ScalarDB Cluster.
- Added support for dropping columns in ScalarDB Cluster.
- Added support for renaming columns in ScalarDB Cluster.
- Added support for renaming tables in ScalarDB Cluster.
- Added support for altering column types in ScalarDB Cluster.
- Added support for batch operations that perform multiple operations in the transaction service in ScalarDB Cluster.
- Added configuration options to control gRPC connection aging in ScalarDB Cluster. Users can now configure `scalar.db.cluster.node.grpc.max_connection_age_millis` and `scalar.db.cluster.node.grpc.max_connection_age_grace_millis` to fine-tune when gRPC connections are refreshed and gracefully closed.
- null
- Added ScalarDB Cluster Data Loader CLI support with full CI/CD pipeline integration, including Docker image builds, vulnerability scanning, and release artifact publishing.
- Added support for role-based access control (RBAC) in ScalarDB Cluster.
- Added support for configuring and using multiple named instances of embedding stores and models.

##### ScalarDB SQL

- Supported aggregation functionality in ScalarDB SQL.
- Added support for `IF NOT EXISTS` clause in `ADD COLUMN` statement for ScalarDB SQL.
- Added support for dropping columns in ScalarDB SQL.
- Added support for renaming columns in ScalarDB SQL.
- Added support for renaming tables in ScalarDB SQL.
- Added support for altering column types in ScalarDB SQL.
- Added SUM, MIN, MAX, and AVG functions
- Supported HAVING clause.

#### Improvements

##### ScalarDB Cluster

- Removed the `CR_PAT` secret from all vulnerability check workflows.
- The minimum JDK for the embedding-client library is raised to 17.
- Updates to the latest Lang4j version 1.8.0

##### ScalarDB SQL

- Added support for specifying `GRANT OPTION` directly in the privilege list of `GRANT` statements as an alternative to using `WITH GRANT OPTION`.

#### Bug fixes

##### ScalarDB Cluster

- Fixed a bug where the data tag was updated even when it was not specified in update or upsert operations.
- Added missing metrics for the remote replication features.
- Released missing Jar file of `replication-cli`.
- Fixed a bug where an `UnsupportedOperationException` was thrown when executing put operations on tables without ABAC policies, when ABAC was enabled.
- Upgraded `grpc_health_probe` to fix a security issue. [CVE-2025-22874](https://github.com/advisories/GHSA-6f52-wpx2-hvf2 "CVE-2025-22874")
- Added validation to prevent the replication feature from starting if the one-phase commit optimization is enabled
- Fixed a bug where `ResultSet` in SQL API returned incorrect results when duplicate column names were present.
- Upgraded `grpc_health_probe` to fix security issues: [CVE-2025-47907](https://github.com/advisories/GHSA-j5pm-7495-qmr3 "CVE-2025-47907"), [CVE-2025-58183](https://github.com/advisories/GHSA-9gcr-gp5f-jw27 "CVE-2025-58183"), [CVE-2025-58186](https://github.com/advisories/GHSA-rjcg-56ph-3qvg "CVE-2025-58186"), [CVE-2025-58187](https://github.com/advisories/GHSA-frhw-mqj2-wxw2 "CVE-2025-58187"), and [CVE-2025-58188](https://github.com/advisories/GHSA-7wwx-xj66-r44x "CVE-2025-58188").

### Enterprise Options

#### ScalarDB Analytics

##### Enhancements

- Java Client SDK for programmatic server access.
- File reference substitution in provider JSON using `${file:...}` syntax.
- Multi-platform Docker images (ARM64/AMD64) for CLI and server.
- Expanded database version coverage for integration tests.

##### Improvements

- Migrated Spark modules to Scala with Client SDK integration and Maven Central publishing.
- Migrated server database access to ScalarDB SQL.
- Improved Java 8 compatibility for client-side modules (SDK, gRPC).
- Refactored data source provider architecture for future plugin support.
- Improved CLI data source register command consistency with other subcommands.
- Changed ScalarDB provider to take configuration as an embedded map instead of a file path.
- Removed view feature.

##### Bug fixes

- Fixed data source deletion failing when namespaces are empty.
- Fixed Oracle schema resolution rule for system users.
