Skip to content

Conversation

Torch3333
Copy link
Contributor

Description

This changes the default mapping for Oracle BLOB column to a data type that allows storing up to 2GB. This changes addresses a similar concerns regarding Db2 that the original data type only allowed to store up 2KB which was deemed too restrictive.

The new Oracle data type used is named BLOB and its maximum capacity is 2GB which also coincides with the maximum capacity that the backing object byte[] of BlobColumn object can hold.

Because of limitations of the Oracle BLOB data type, ScalarDB BLOB column can no longer be used as :

  • primary key
  • clustering key
  • secondary index
  • a column of a condition in a cross-partition scan, .i.e ScanAll, operation
  • an ordering column in a cross-partition scan

Related issues and/or PRs

Changes made

  • Changes the default mapping for ScalarDB BLOB column in Oracle from RAW(2000) to BLOB
  • Disable some integration tests that can no longer be run on a BLOB column because of the limitations mentioned above

Checklist

The following is a best-effort checklist. If any items in this checklist are not applicable to this PR or are dependent on other, unmerged PRs, please still mark the checkboxes after you have read and understood each item.

  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation to reflect the changes.
  • I have considered whether similar issues could occur in other products, components, or modules if this PR is for bug fixes.
  • Any remaining open issues linked to this PR are documented and up-to-date (Jira, GitHub, etc.).
  • Tests (unit, integration, etc.) have been added for the changes.
  • My changes generate no new warnings.
  • Any dependent changes in other PRs have been merged and published.

Additional notes (optional)

Provide any additional information or notes that may be relevant to the reviewers or stakeholders.

Release notes

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 brings new limitations that a BLOB column can no longer be used as partition key, clustering key, secondary index, a condition or as an ordering column in a cross-partitions scan, .i.e. ScanAll, operation.

@Torch3333 Torch3333 self-assigned this Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant