We’re getting close to the final release of qb 14, and we’d love your help testing it in real-world applications.
New Features and Improvements
Highlights include:
- Named and custom return formatters
- Cross-database JSON paths and JSON where methods
- New
whereInBulkand parameter-awareinsertBulk - Null-safe upserts with
matchNulls - Improved numeric type inference
- New
SchemaBuilderfeatures, including portable binary columns - Numerous query compilation, binding, and full-null fixes
Performance Improvements
qb 14 also brings with it performance and memory improvements across query construction and compilation. Focused microbenchmarks measured the following improvements:
| Operation | Lucee (6.2.8) | Adobe ColdFusion (2021.0.19) | BoxLang (1.16) |
|---|---|---|---|
| SQL type normalization | 52.6% faster | 34.0% faster | 39.3% faster |
| Array type inference | 16.1% faster | 34.6% faster | 29.7% faster |
| Scalar binding collection | 30.3% faster | 48.3% faster | 19.6% faster |
| Single-column normalization | 39.5% faster | 21.6% faster | 14.2% faster |
| Simple table-name wrapping | 5.0% faster | 43.6% faster | Effectively unchanged |
These figures compare median elapsed times for fixed batches of isolated qb operations before and after optimization. They demonstrate improvements to specific hot paths, not equivalent reductions in total application request time.
Breaking Changes
As a major release, qb 14 includes a few breaking changes to review while testing:
- Native
queryExecuteoptions such asreturntype,columnkey, andcolumnKeyare no longer honored. Use qb’s named or custom return formatters instead. - Custom grammars that override
compileUpsertmust accept the new trailingmatchNullsboolean argument. - The obsolete
numericSQLTypesetting has been removed. UseintegerSQLType,bigIntegerSQLType, anddecimalSQLTypeinstead. - Whole-number bindings outside the signed 32-bit range now infer
BIGINT.
See the qb 14 Migration Guide for examples and upgrade instructions.
Help Us Test
Try the beta, explore the qb 14 documentation, and let us know what works, what breaks, or what could be clearer.
Thanks, and happy querying!