-
Notifications
You must be signed in to change notification settings - Fork 3.7k
feat(tables): raise per-plan table limits #5135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,7 +31,7 @@ export const TABLE_LIMITS = { | |
| * keyset-select and cancel/ownership-check granularity. */ | ||
| DELETE_PAGE_SIZE: 10000, | ||
| /** Row count above which an export runs as a background job instead of a synchronous stream. | ||
| * Matches the default per-table row cap, so non-enterprise tables keep instant downloads. */ | ||
| * Tables at or under this stream instantly; larger ones fall back to an async export job. */ | ||
| EXPORT_ASYNC_THRESHOLD_ROWS: 10000, | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! |
||
| /** Cap on the exclusion set ("select all, minus these") sent to an async delete job. */ | ||
| MAX_EXCLUDE_ROW_IDS: 10000, | ||
|
|
@@ -44,16 +44,16 @@ export const TABLE_LIMITS = { | |
| */ | ||
| export const DEFAULT_TABLE_PLAN_LIMITS = { | ||
| free: { | ||
| maxTables: 3, | ||
| maxRowsPerTable: 1000, | ||
| maxTables: 5, | ||
| maxRowsPerTable: 50000, | ||
| }, | ||
| pro: { | ||
| maxTables: 25, | ||
| maxRowsPerTable: 5000, | ||
| maxTables: 100, | ||
| maxRowsPerTable: 100000, | ||
| }, | ||
| team: { | ||
| maxTables: 100, | ||
| maxRowsPerTable: 10000, | ||
| maxTables: 1000, | ||
| maxRowsPerTable: 500000, | ||
| }, | ||
| enterprise: { | ||
| maxTables: 10000, | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EXPORT_ASYNC_THRESHOLD_ROWSnow triggers async export for most tables on every planEXPORT_ASYNC_THRESHOLD_ROWSis kept at 10,000 while the minimum plan row cap has jumped to 50,000 (free). Any table that fills even 20% of its free-tier quota will silently switch from instant streaming to an async background job. The old comment explicitly noted this threshold was aligned with the per-plan row cap to preserve synchronous downloads for non-enterprise users — that guarantee no longer holds. This is likely intentional given the server-load implications of streaming large tables synchronously, but it's worth confirming the async export UX is ready to be the default experience for all plan tiers rather than an enterprise-only path.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!