Skip to content

feat: add bigint column type support and update dependencies#2950

Open
ArnabChatterjee20k wants to merge 18 commits intomainfrom
big-int
Open

feat: add bigint column type support and update dependencies#2950
ArnabChatterjee20k wants to merge 18 commits intomainfrom
big-int

Conversation

@ArnabChatterjee20k
Copy link
Copy Markdown
Member

What does this PR do?

(Provide a description of what this PR does.)

Test Plan

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 1, 2026

Greptile Summary

This PR introduces bigint as a first-class column type for Appwrite Tables and bundles a @appwrite.io/console SDK bump that renames several API methods and adds new required parameters. Most of the touched files are mechanical follow-ons to that SDK upgrade.

  • BigInt column support: a new bigint.svelte column component with normalizeBigInt validation, registration in columns/store.ts, type-union updates in store.ts/column.svelte, and a new buildPayload helper in rows/store.ts that serialises bigint fields to strings before every API write (create, edit, spreadsheet, bulk import, related-row edit).
  • SDK migration: updateRuleVerificationupdateRuleStatus, tokenUrl/userInfoUrltokenURL/userInfoURL, and variableId: ID.unique() added to all createVariable call sites across functions, sites, and create-flow pages.
  • Domain search refactor: three +page.ts loaders replace the dedicated search string parameter with an inline Query.search('domain', search) entry, making the query pattern consistent with other list endpoints.

Confidence Score: 5/5

Safe to merge; all changed paths are well-structured and previously flagged precision trade-offs are acknowledged by the team

The bigint serialisation pipeline (normalizeBigInt to buildPayload to String cast) is internally consistent and handles null/undefined/array edge cases correctly. The SDK rename follow-ons are mechanical and verified against the updated package. No new unaddressed defects were found beyond the two style nits above.

bigint.svelte deserves a second look to confirm the InputNumber precision trade-off is acceptable for the product's expected bigint range

Important Files Changed

Filename Overview
src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/bigint.svelte New BigInt column component with normalizeBigInt validation and InputNumber bindings; acknowledged precision limitations with large values, plus minor redundant NaN check
src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts Adds buildPayload helper that deep-clones rows and converts bigint field values to strings before API submission; logic is correct and handles null/undefined/array cases
src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/store.ts Registers the new BigInt column type with its create/update handlers and icon; clean addition consistent with existing patterns
src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/string.svelte bigint case falls through to parseInt — acknowledged precision trade-off per prior developer reply
src/routes/(console)/project-[region]-[project]/auth/updateOAuth.ts Renames tokenUrl to tokenURL and userInfoUrl to userInfoURL to align with updated SDK parameter names
src/lib/components/domains/status.ts Replaces ProxyRuleStatus.Created enum reference with literal string 'created' to match the updated SDK
src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte Applies buildPayload to both single-row updateRow and bulk createRows calls so bigint fields are serialised to strings before dispatch

Reviews (11): Last reviewed commit: "updated proxy status" | Re-trigger Greptile

- Updated bigint column type handling in the database table columns.
- Refactored input components to use InputText for bigint values with validation.
- Improved parsing and error handling for bigint inputs in string representation.
- Adjusted type definitions to include bigint in various contexts.
- Added bigint type to the Columns type definition.
- Updated bigint input handling in the bigint.svelte component, replacing InputText with InputNumber for better user experience.
- Enhanced data binding and validation for bigint values, including min, max, and default settings.
- Adjusted column value handling in various components to accommodate bigint type.
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 9, 2026

Tip:

Greploop — Automatically fix all review issues by running /greploops in Claude Code. It iterates: fix, push, re-review, repeat until 5/5 confidence.

Use the Greptile plugin for Claude Code to query reviews, search comments, and manage custom context directly from your terminal.

tableId: page.params.table,
rowId: row.$id,
data: row
data: buildPayload(columns, row as Record<string, unknown>)
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.

Why unknown here instead of a typed row?
Do we not know the shape,
Can't we define a type?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

updated

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.

3 participants