Skip to content

All versions since 5.6.0

5.6.0

Fixed

  • Options clauses on procedures split correctly. An options clause (WITH EXECUTE AS …, WITH RECOMPILE) ends the header too and stays with the definition.
  • Comments before a module’s CREATE no longer derail the split. sys.sql_modules stores the batch as written, comments included; the leading trivia is now stepped over before the header is matched, for routines, views, and triggers.
  • A parameter list ending in a line comment renders intact. The closing parenthesis is printed on a new line rather than being swallowed by the comment.
  • A parameter-less procedure renders without parentheses. T-SQL rejects CREATE PROCEDURE name(); the empty list is omitted (functions keep theirs).

5.7.0

Added

  • Clustered indexes round-trip. SupportsClustering is on, so CLUSTERED and NONCLUSTERED are rendered on indexes, primary keys and unique constraints.
  • XML schema collections round-trip. XML_SCHEMA_NAMESPACE reassembles a collection from sys.xml_schema_* into the single document it was declared as, and a typed xml column carries the collection it is bound to along with whether it is DOCUMENT or CONTENT.
  • Constraints SQL Server named for itself are reported. is_system_named is read for key, foreign-key and check constraints, and a system-named-constraint warning names them as one grouped finding.
  • XML indexes round-trip. sys.xml_indexes supplies the kind and, for a secondary, the primary whose node table it reads (i.type identifies an XML index, since secondary_type_desc is null for a primary as well as for a non-XML index).
  • Indexed views round-trip. Indexes are read from sys.objects rather than sys.tables, so a view’s indexes are introspected onto View.Indexes alongside a table’s.
  • Schema binding round-trips. WITH SCHEMABINDING is read from sys.sql_modules.is_schema_bound onto View.IsSchemaBound and written back from it.

5.8.0

Added

  • is_persisted is introspected, and SupportsVirtualGeneratedColumns is declared.

Changed

  • The build now writes the full dependency closure beside the assembly (CopyLocalLockFileAssemblies), so a dotnet build of this project can be loaded directly by PLUGIN ( path = '...' ) without being packed first. Package contents are unchanged.

Fixed

  • Computed columns are no longer all PERSISTED. The keyword was emitted unconditionally, so a column computed on read came back written to storage.
  • ROWGUIDCOL is no longer dropped. It was neither introspected nor rendered, so a column marked as the table’s row identifier came back as an ordinary one.
  • Default constraint names are preserved. A default was emitted unnamed, so SQL Server generated one.
  • NOT FOR REPLICATION is no longer dropped from identity columns or triggers.

5.8.1 Latest

Fixed

  • A sequence start declared alongside its minimum now settles.
  • An identity column reports no seed or increment where neither was declared.
  • text no longer drifts.