What's New?


  • Correctly wrap comments in MySQLGrammar.

7.3.2, 7.3.3


  • Fix for null values breaking the new checkIsActuallyNumeric method in QueryUtils.


  • Add a parameterLimit public property to SqlServerGrammar. This property is used in Quick to split up eager loading to work around the 2100 param limit of SQL Server.


  • Allow a parent query to be set. A parent query will receive any method calls that are not found on the Query Builder instance. This is especially useful for instances like Quick to allow Quick features like scopes to be available inside any closures.


  • Lambdas (arrow functions) are now allowed wherever closures are allowed.

  • Add an orderByRaw method.

  • Allow for fully-qualified column names (table_name.column.name) in the value and values methods.



Please see the Migration Guide for more information on these changes.

  • Drop support for Lucee 4.5 and Adobe ColdFusion 11.

  • MSSQLGrammar renamed to SqlServerGrammar

  • Remove variadic parameters support in builder functions like select.

  • The defaultGrammar mapping needs to be the full WireBox mapping, including the @qb, if needed.

    • For instance, MSSQLGrammar would become MSSQLGrammar@qb.

    • This will allow for other grammars to be more easily contributed via third party modules.

  • The argument names of forPage changed to match the new paginate method.

  • Add defaultValue and optional exception throwing to value. (This changed the argument order.)

  • All methods that could conceivably take a subquery as well as a value now accept a closure or another builder instance to use as a subquery. (This changed the argument names in some instances.)

Other Changes

  • Completely revamped documentation! (You're looking at it right now.)

  • Add new flag to toSQL( showBindings = true ) to replace question marks (?) with cfqueryparam-compatible structs for debugging.

  • Preserve column case and order when converting a query to an array using the default "array" return format.

  • Add a new paginate method to generate a pagination struct alongside the results. This can be customized using a custom PaginationCollector.

  • Allow raw values in insert calls.

  • Allow default queryExecute options to be configure at a Query Builder level. This also enables custom QueryBuilders a la Hyper.

  • Add a whereLike method.

  • Allow closures to be used in left and right joins.

  • Provide an addUpdate method to programmatically build the SET clause of an update query.

  • Add a new chunk method to grab records from the database in small sets.

  • Add raw in alterTable segments.

  • Add dropAllObjects support for SqlServerGrammar and OracleGrammar to support migrate fresh from cfmigrations.

  • Add a renameTable alias for rename.

  • Remove default constraints when dropping columns with a default on SqlServerGrammar.

  • Add more column types and column helpers to SchemaBuilder, including:

    • datetimeTz

    • lineString

    • nullableTimestamps

    • point

    • polygon

    • softDeletes

    • softDeletesTz

    • timeTz

    • timestamps

    • timestampTz

    • timestampsTz

    • withCurrent