Skip to content

Commit b789a4a

Browse files
committed
chore: add changelog fragment for PR #7
1 parent 2bf5a42 commit b789a4a

4 files changed

Lines changed: 4 additions & 0 deletions

File tree

‎changelog.d/7.added.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add the SQL Server catalogue objects and namespace support: `SQLServerTable` — a table whose `#` temporary form is a construction-time field folded into its name and identity — plus `PartitionFunction` and `PartitionScheme` (rendered through the new `format_partition_function_object`/`format_partition_scheme_object` formatters) are exported from `rhosocial.activerecord.backend.impl.sqlserver.expression`, and the dialect implements core's `NamespaceSupport` with one object protocol per catalogue kind, so a schema object carries catalog, schema and name, every level is rendered and validated against SQL Server's 128-character identifier cap, and `format_object_id_name` provides the one deliberate bracket-free spelling `OBJECT_ID` needs.

‎changelog.d/7.changed.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Change how the SQL Server expressions encode two tri-state options and make every unsupported spelling fail closed: `SQLServerAlterColumn` now takes `not_null`/`nullable` (setting both raises `ValueError`), so `not_null=False` — which used to spell `NULL` — now means unspecified and callers wanting `NULL` must pass `nullable=True`; `SQLServerColumnstoreIndexExpression` now takes `clustered`/`nonclustered` (setting both raises `ValueError`), so `clustered=False` — which used to spell `NONCLUSTERED` — now means no keyword and callers wanting `NONCLUSTERED` must pass `nonclustered=True`, while `validate()` accepts key columns for the bare form the server records as NONCLUSTERED. The dialect consumes the two-spelling clause pairs (sequence `cycle`/`no_cycle` and `cache`/`no_cache`, identity `cycle`/`no_cycle`, `order`/`no_order` and `cache`/`no_cache`, set-operation `all_`/`distinct`, `TRUNCATE` and `DROP VIEW`/`DROP SCHEMA` `cascade`/`restrict` and `restart_identity`/`continue_identity`, constraint `deferrable`/`not_deferrable`, `initially_deferred`/`initially_immediate` and `enforced`/`not_enforced`, transaction `deferrable`/`not_deferrable` and `wait`/`no_wait`): an explicit spelling the dialect cannot express now raises `UnsupportedFeatureError` naming the requested spelling instead of rendering SQL that silently dropped it, and an unset pair renders nothing where the old encoding spelled a negative form. Formatters that name a catalogue object now check the object's kind, raising `TypeError` instead of rendering a well-formed statement over the wrong kind's name.

‎changelog.d/7.fixed.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Declare the SQL Server capability probes from measurement rather than inheriting core's defaults, and make them load-bearing. The sequence probes answer 2012+ for `supports_sequence`, `supports_alter_sequence` and every option the engine spells, with `supports_sequence_if_exists` at 2016+ (the deleted local `DROP SEQUENCE` renderer had gated `IF EXISTS` on 2012) and `supports_alter_sequence_start` answering `False` from its own ALTER-side question — `ALTER SEQUENCE ... START WITH` is rejected with error 11710 and `RESTART WITH` is the engine's spelling, while `ORDER` and `OWNED BY` have no spelling at all. The identity probes declare `IDENTITY(seed, increment)` (`supports_identity_column` and start/increment `True`) and answer `False` for `ALWAYS`, `MINVALUE`/`MAXVALUE`/`CYCLE`/`ORDER`/`CACHE` — `ALWAYS` had been silently downgraded to the bare property and the options dropped — with `supports_auto_increment_column` `False`. The four master probes are measured too: `supports_truncate` `True`, `supports_with_data_clause` `False`, `supports_materialized_cte` `False` and `supports_transaction_wait` `False`, whose probing trap is that `BEGIN TRANSACTION WAIT` is accepted only because the server reads `WAIT` as the transaction name.

‎changelog.d/7.internal.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Follow core's protocol package split: the dialect now declares `NamespaceSupport` plus one `*ObjectSupport` protocol per catalogue kind and one support protocol per DDL statement (`CreateTableSupport`/`DropTableSupport`/`AlterTableSupport`, `CreateSchemaSupport`/`DropSchemaSupport`, `CreateIndexSupport`/`DropIndexSupport`/`FulltextIndexSupport`, `CreateTypeSupport`/`DropTypeSupport`), with `SQLServerTableSupport` deriving from `TableObjectSupport` and `SQLServerUserDefinedTypeSupport` from `CreateTypeSupport`/`DropTypeSupport`; this backend's protocols and its CLI introspection have moved off the old `TableSupport`/`SchemaSupport`/`IndexSupport`/`FunctionSupport`/`TriggerSupport`/`SequenceSupport`/`ViewSupport` names, so custom subclasses that referenced them must move to the new ones. The local `CREATE SEQUENCE`/`DROP SEQUENCE` renderer overrides are deleted in favour of core's shared probe-gated renderers and `format_next_value_for` now takes `SQLServerNextValueForExpression` instead of `Any`; `.claude/backend_development.md` records the protocol-to-mixin mapping, and CI keeps core pinned to `release/v1.0.0.dev30` while the testsuite installs from its round branch.

0 commit comments

Comments
 (0)