Repository navigation
Object mapping, nullable DTO round trips, parameterized fluent compilation and
a documentation website with a browser-local SQL-to-Delphi converter.
Breaking changes and migration
IQuery.CompilereturnsISqlResultinstead of a substituted SQL string.
Use.Compile(Dialect).Sqltogether with.Bindingsfor execution, or
.ToDebugSql(Dialect)for the previous diagnostic preview behavior.IQuery.Executereturns theTQueryResultrecord facade instead of
IQueryResult. Direct interface assignments still work; use.AsRawwhen
an explicit interface is needed. CustomIQueryimplementations must adopt
both return types. Rebuild dependent units and packages.- See the v1 migration guide for examples and ownership rules.
Changed
IQuery.Compilenow returnsISqlResultwith parameterized SQL and bindings.
UseToDebugSqlfor the previous substituted preview behavior. Both default
to MSSql and use the existing compiler pipeline. TheISqlResultcontract
now lives in Query.Core with its original GUID; the compiler unit retains
a type alias for existing consumers.ICompiler.Compileis unchanged.
Fixed
- Unified read/write property attribute resolution. Object writes now reject
case-insensitive column collisions and conflicting Column/Key attributes
before getters or key callbacks run; both directions reject blank names.
Existing property visibility, key operation and Ignore behavior is preserved.
Added
- Provider-neutral
TNullable<T>with automatic mapping for built-in types,
operation-scoped registrations for custom types, optional NULL assignment
skipping and exact-pair converters. - Provider-independent RTTI object mapping with shared
[Column],[Key]and
[Ignore]attributes, schema validation and contextual mapping errors. - Fluent
ToList,First,FirstOrDefault,Single,SingleOrDefault,
FirstOrElse,SingleOrElseandForEachmapping methods, plus static
MapCurrentfor caller-positioned cursors. Terminal calls release their
consumed result reference deterministically; lazy fallbacks run only for
empty results and streaming callbacks borrow one object at a time. - Explicit SQL NULL policies: type defaults (
nmbDefault), strict errors
(nmbThrow) or preservation of constructor values (nmbSkip). Nullable
properties retain the distinction between NULL and zero/False/empty values. - Nullable DTO values in object INSERT, UPDATE, WHERE and HAVING, including
typed SQL NULL bindings,IS NULLpredicates and rejection of NULL UPDATE
keys. FireDAC supports native SQL timestamp/offset parameter values. - Checked signed/unsigned integer and exact integer/float conversions; native
BCD, SQL timestamp/offset, GUID and byte-array mapping; exact Currency/BCD
conversion with precision and overflow checks. - Mapping benchmarks for Win32/Win64, expanded DUnitX regressions and compiled
examples for mapping, nullable round trips and fluent search. - XML documentation throughout the public API and generated declarations,
with a repeatable coverage audit and behavior-specific generator tests. - GitHub Pages documentation generated directly from repository Markdown,
with syntax highlighting, heading links, responsive navigation and search
examples. Browser interaction tests cover desktop and mobile layouts. - Browser-local SELECT-to-Delphi conversion for MySQL, PostgreSQL, SQL Server
and SQLite, with highlighted SQL/Delphi editors, exact numeric range checks,
unsupported-syntax errors, copy support and generated Delphi smoke projects.
The converter processes input in memory without uploading or persisting it.
Validation
- Release checks and their scope are recorded in
validation details. - Existing Delphi executables rerun: 940 Core and 94 FireDAC tests passed on
each of Win32 and Win64, with zero failures, errors, ignored tests or leaks.
These are reruns of the October 25 IDE builds, not fresh release builds. - All 67 JavaScript tests, 10 browser tests, website build/link checks, 15
Python tests, generator checks and the XML documentation audit passed. - Database integration coverage uses SQLite in memory; other dialects have SQL
compilation/binding coverage rather than live server validation.