Skip to content

feat: drop bucketid_objname and add version list test coverage - #1353

Open
TylerHillery wants to merge 18 commits into
masterfrom
tyler/feat/object-versioning-wave-2a
Open

feat: drop bucketid_objname and add version list test coverage#1353
TylerHillery wants to merge 18 commits into
masterfrom
tyler/feat/object-versioning-wave-2a

Conversation

@TylerHillery

Copy link
Copy Markdown
Contributor

What kind of change does this PR introduce?

Part of the two phase roll out in #1346 to drop the bucketid_objname and add tests

@blacksmith-sh

This comment has been minimized.

@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from f7c3141 to 6a22625 Compare August 31, 2026 18:34
@coveralls

coveralls commented Aug 31, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 34526960402

Coverage increased (+0.1%) to 82.803%

Details

  • Coverage increased (+0.1%) from the base build.
  • Patch coverage: 16 of 16 lines across 2 files are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 14091
Covered Lines: 12118
Line Coverage: 86.0%
Relevant Branches: 8610
Covered Branches: 6679
Branch Coverage: 77.57%
Branches in Coverage %: Yes
Coverage Strength: 729.15 hits per line

💛 - Coveralls

@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from 6a22625 to f3648fc Compare August 31, 2026 19:09
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from f3648fc to e4b2e9c Compare August 31, 2026 19:37
@TylerHillery
TylerHillery marked this pull request as ready for review August 31, 2026 19:52
@TylerHillery
TylerHillery requested a review from a team as a code owner August 31, 2026 19:52

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nothing blocking. The comments below are optional suggestions. There is no need to push a fix for them before merging.

Comment thread src/test/object-list-v2.test.ts
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from 8f764a9 to 5e4bb18 Compare August 31, 2026 20:54
Copilot AI lite review requested due to automatic review settings August 31, 2026 21:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR advances the version-aware object listing rollout by removing the legacy bucketid_objname index and adding extensive test coverage around versioned listing behavior (v1 and v2), including pagination edge cases and filter interactions.

Changes:

  • Adds v1 list tests covering noncurrentVersions/deleteMarkers filters and multi-version pagination/batch-boundary behaviors.
  • Adds a comprehensive v2 versioning test suite covering filter matrices, ordering within keys, pagination correctness, delimiter behavior, and continuation-token constraints.
  • Introduces DB migration 0069 and registers it to drop the storage.bucketid_objname index concurrently.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/test/object.test.ts Adds v1 versioned listing tests for filters and pagination/batch-boundary behaviors.
src/test/object-list-v2.test.ts Adds v2 versioning-focused integration tests and DB seeding helpers.
src/internal/database/migrations/types.ts Registers the new migration identifier and version number.
migrations/tenant/0069-drop-bucketid-objname-index.sql Drops the legacy index concurrently (non-transactional migration).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/test/object-list-v2.test.ts
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from b49d8d3 to 4a6020e Compare August 31, 2026 22:33
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch 2 times, most recently from 535a32d to abc9035 Compare September 1, 2026 15:27
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch 2 times, most recently from 6ada077 to 83476c7 Compare September 1, 2026 21:09
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from 83476c7 to 6f544af Compare September 3, 2026 19:08
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch 2 times, most recently from a952113 to 716645a Compare September 4, 2026 01:33
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch 2 times, most recently from df3fc9e to 21c3b4b Compare September 10, 2026 15:26
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch 2 times, most recently from aebe2d8 to a0b61ff Compare September 10, 2026 16:24
Base automatically changed from tyler/feat/object-versioning-wave-2 to master September 10, 2026 16:30
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from a0b61ff to b9f8e77 Compare September 10, 2026 16:30
@ferhatelmas

Copy link
Copy Markdown
Member

realized, we should address it in this one https://github.com/supabase/storage/pull/1346/changes#r3981465011

@ferhatelmas

Copy link
Copy Markdown
Member

Comment on lines +571 to +590
const markCompletedMigration = options.markCompletedTillMigration
? DBMigration[options.markCompletedTillMigration]
: undefined
const completedThroughMigration = markCompletedMigration ?? localMigration
const unsafeReset = MIGRATION_RESET_FLOORS.find(
({ migration, activatedBy }) =>
currentTenantMigrations.some(
(currentMigration) => currentMigration.id >= DBMigration[activatedBy]
) && completedThroughMigration < DBMigration[migration]
)

if (unsafeReset && !options.skipResetFloorValidation) {
throw new Error(`Cannot replay ${unsafeReset.migration} after ${unsafeReset.activatedBy}`)
}

// This tenant migration is already at the desired migration
if (currentLastMigration.id === localMigration) {
if (
currentLastMigration.id === localMigration &&
(markCompletedMigration === undefined || currentLastMigration.id >= markCompletedMigration)
) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

if it's reset 72 -> 71 for example, then reset again, there is no information to know 72 but it actually run

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

good point let me know what you think of this approach: 42db58f

Comment thread src/test/object-list-v2.test.ts Outdated
@TylerHillery
TylerHillery force-pushed the tyler/feat/object-versioning-wave-2a branch from b9f8e77 to e9a7ce5 Compare September 10, 2026 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants