Repository navigation
Release 0.3.1: Rename Column in place on every SQL engine, README, release notes - #600
Merged
Merged
Conversation
…engine A type change is now one in-place ALTER by default; the add / copy / switch-over plan becomes an opt-in Large table mode on the eight engines that have it. A size warning from the catalog estimate points at it from about a million rows or 1 GB. A type change alone lists routines as one-line warnings; the line-by-line references are for a rename. - PostgreSQL family: ALTER ... TYPE, with USING only across kinds (CockroachDB refused to rewrite an indexed column for an explicit USING). - MySQL family: MODIFY restating NOT NULL, default, collation and the comment read from the catalog. - SQL Server: one transaction that scripts the column's indexes from sys.indexes at run time (filters, INCLUDE, DESC kept, INCLUDE-only and filter-only indexes found) and puts them back; large-table mode moves filtered indexes at the switch-over, since sp_rename refuses a column a filter names. - New: Oracle, Db2 (+ REORG), SQLite (rename only), DuckDB (refused while the table has an index), Redshift (VARCHAR lengthening), ClickHouse (Nullable kept, sorting key refused). A dialect can refuse a change with its reason before any SQL is shown. Run live on PostgreSQL, MySQL, MariaDB, TiDB, SQL Server, CockroachDB, Oracle, Db2, SQLite, DuckDB and ClickHouse. Feature map refreshed (163 routes, counts re-measured). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… READMEs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Test IDsAdded (1)
|
Contributor
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 845c163e-f0a2-4b04-bb08-aa1f0cc54e13) |
security/detect-unsafe-regex flagged the one-pattern parse in CI. Split the name and the optional "(n)" by hand; same results, tests unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: 28b6f6b6-5b03-4b4b-acee-da069db91963) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ships 0.3.1. The last commit is
chore: release 0.3.1, so the version-bump workflow skips this merge andmainstays at 0.3.1 for thev0.3.1tag.Rename Column (Utilities)
ALTERby default. The add / copy / switch-over plan is now an opt-in Large table mode (PostgreSQL, YugabyteDB, CockroachDB, MySQL, MariaDB, TiDB, SQL Server, Azure SQL).ALTER … TYPE, addingUSINGonly when the kind of type changes. WithUSING, CockroachDB refused an indexed column.MODIFY, restating NOT NULL, the default, the collation and the comment.sys.indexeswhen it runs, so filters, INCLUDE and DESC survive. Large-table mode moves filtered indexes at the switch-over, becausesp_renamerefuses a column a filter names.MODIFY.SET DATA TYPE, then a REORG.MODIFY COLUMN, keepingNullable; sorting-key columns refused.Docs
docs/releases/RELEASE_0.3.1.md(the update toast's "What's new" page), SUMMARY entry, UNRELEASED reset.Verification
apps/webtsc clean;npx vitest run: 7,002 passed.npm ci --dry-runpasses.🤖 Generated with Claude Code
Note
Medium Risk
The PR changes generated DDL and optional in-app execution across many database engines; mistakes could block writes or mishandle indexes/constraints, though coverage is expanded (sql/web tests) and the diff documents live dialect runs.
Overview
Releases 0.3.1 and retools Utilities → Rename Column so a type change defaults to a single in-place
ALTER, with the previous add/copy/switch plan available only when Large table mode is checked (eight engines). The panel loads catalog row/size estimates for a warning around ~1M rows or 1 GB, hides batch sizing unless large-table mode is on, and branches run/status messaging on a newrename/direct/copyplan mode.The
@foxschema/sqlplanner gains per-dialectalterTypeSteps, optionalrefusereasons,columnChangeLargeTable, and six more dialect registrations (Oracle, Db2, SQLite, DuckDB, Redshift, ClickHouse), with engine-specific behavior called out in docs (e.g. SQL Server index scripting from the catalog, PostgreSQL view blocking, DuckDB indexed-table refusal). Type-shape logic moves tocolumn-type-shape.tsfor lossy conversion across dialects.README, CLI README, 0.3.1 release notes, feature map counts, user guide, and tests/docs inventory are updated to match; unreleased notes are cleared into
RELEASE_0.3.1.md.Reviewed by Cursor Bugbot for commit 8e55e5a. Bugbot is set up for automated code reviews on this repo. Configure here.