On this page
Class SqlserverCompiler
Responsible for compiling a Query object into its SQL representation for SQL Server
Property Summary
-
$_deleteParts protected
array<string>
The list of query clauses to traverse for generating a DELETE statement
-
$_insertParts protected
array<string>
The list of query clauses to traverse for generating an INSERT statement
-
$_orderedUnion protected
bool
SQLserver does not support ORDER BY in UNION queries.
-
$_quotedSelectAliases protected
bool
Indicate whether aliases in SELECT clause need to be always quoted.
-
$_selectParts protected
array<string>
The list of query clauses to traverse for generating a SELECT statement
-
$_templates protected
array<string, string>
List of sprintf templates that will be used for compiling the SQL for this query. There are some clauses that can be built as just as the direct concatenation of the internal parts, those are listed here.
-
$_updateParts protected
array<string>
The list of query clauses to traverse for generating an UPDATE statement
Method Summary
_buildFromPart() protected
Helper function used to build the string representation of a FROM clause, it constructs the tables list taking care of aliasing and converting expression objects to string.
_buildHavingPart() protected
Helper function used to build the string representation of a HAVING clause, it constructs the field list taking care of aliasing and converting expression objects to string.
_buildInsertPart() protected
Generates the INSERT part of a SQL query
_buildJoinPart() protected
Helper function used to build the string representation of multiple JOIN clauses, it constructs the joins list taking care of aliasing and converting expression objects to string in both the table to be joined and the conditions to be used.
_buildLimitPart() protected
Generates the LIMIT part of a SQL query
_buildModifierPart() protected
Builds the SQL modifier fragment
_buildSelectPart() protected
Helper function used to build the string representation of a SELECT clause, it constructs the field list taking care of aliasing and converting expression objects to string. This function also constructs the DISTINCT clause for the query.
_buildSetPart() protected
Helper function to generate SQL for SET expressions.
_buildUnionPart() protected
Builds the SQL string for all the UNION clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.
_buildUpdatePart() protected
Builds the SQL fragment for UPDATE.
_buildValuesPart() protected
Builds the SQL fragment for INSERT INTO.
_buildWindowPart() protected
Helper function to build the string representation of a window clause.
_buildWithPart() protected
Helper function used to build the string representation of a
WITH
clause, it constructs the CTE definitions list without generating theRECURSIVE
keyword that is neither required nor valid._sqlCompiler() protected
Returns a callable object that can be used to compile a SQL string representation of this query.
_stringifyExpressions() protected
Helper function used to covert ExpressionInterface objects inside an array into their string representation.
compile() public
Returns the SQL representation of the provided query after generating the placeholders for the bound values using the provided generator
Method Detail
_buildFromPart() protected
_buildFromPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function used to build the string representation of a FROM clause, it constructs the tables list taking care of aliasing and converting expression objects to string.
Parameters
array
$parts-
list of tables to be transformed to string
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildHavingPart() protected
_buildHavingPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function used to build the string representation of a HAVING clause, it constructs the field list taking care of aliasing and converting expression objects to string.
Parameters
array
$parts-
list of fields to be transformed to string
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildInsertPart() protected
_buildInsertPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Generates the INSERT part of a SQL query
To better handle concurrency and low transaction isolation levels, we also include an OUTPUT clause so we can ensure we get the inserted row's data back.
Parameters
array
$parts-
The parts to build
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildJoinPart() protected
_buildJoinPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function used to build the string representation of multiple JOIN clauses, it constructs the joins list taking care of aliasing and converting expression objects to string in both the table to be joined and the conditions to be used.
Parameters
array
$parts-
list of joins to be transformed to string
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildLimitPart() protected
_buildLimitPart(int $limit, Cake\Database\Query $query): string
Generates the LIMIT part of a SQL query
Parameters
int
$limit-
the limit clause
Cake\Database\Query
$query-
The query that is being compiled
Returns
string
_buildModifierPart() protected
_buildModifierPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Builds the SQL modifier fragment
Parameters
array
$parts-
The query modifier parts
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildSelectPart() protected
_buildSelectPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function used to build the string representation of a SELECT clause, it constructs the field list taking care of aliasing and converting expression objects to string. This function also constructs the DISTINCT clause for the query.
Parameters
array
$parts-
list of fields to be transformed to string
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildSetPart() protected
_buildSetPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function to generate SQL for SET expressions.
Parameters
array
$parts-
List of keys & values to set.
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildUnionPart() protected
_buildUnionPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Builds the SQL string for all the UNION clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.
Parameters
array
$parts-
list of queries to be operated with UNION
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildUpdatePart() protected
_buildUpdatePart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Builds the SQL fragment for UPDATE.
Parameters
array
$parts-
The update parts.
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildValuesPart() protected
_buildValuesPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Builds the SQL fragment for INSERT INTO.
Parameters
array
$parts-
The values parts.
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildWindowPart() protected
_buildWindowPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function to build the string representation of a window clause.
Parameters
array
$parts-
List of windows to be transformed to string
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_buildWithPart() protected
_buildWithPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Helper function used to build the string representation of a WITH
clause, it constructs the CTE definitions list without generating the RECURSIVE
keyword that is neither required nor valid.
Parameters
array
$parts-
List of CTEs to be transformed to string
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
string
_sqlCompiler() protected
_sqlCompiler(string $sql, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): Closure
Returns a callable object that can be used to compile a SQL string representation of this query.
Parameters
string
$sql-
initial sql string to append to
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
Returns
Closure
_stringifyExpressions() protected
_stringifyExpressions(array $expressions, Cake\Database\ValueBinder $binder, bool $wrap = true): array
Helper function used to covert ExpressionInterface objects inside an array into their string representation.
Parameters
array
$expressions-
list of strings and ExpressionInterface objects
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholder
bool
$wrap optional-
Whether to wrap each expression object with parenthesis
Returns
array
compile() public
compile(Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
Returns the SQL representation of the provided query after generating the placeholders for the bound values using the provided generator
Parameters
Cake\Database\Query
$query-
The query that is being compiled
Cake\Database\ValueBinder
$binder-
Value binder used to generate parameter placeholders
Returns
string
Property Detail
$_deleteParts protected
The list of query clauses to traverse for generating a DELETE statement
Type
array<string>
$_insertParts protected
The list of query clauses to traverse for generating an INSERT statement
Type
array<string>
$_orderedUnion protected
SQLserver does not support ORDER BY in UNION queries.
Overridden in subclasses.
Type
bool
$_quotedSelectAliases protected
Indicate whether aliases in SELECT clause need to be always quoted.
Type
bool
$_selectParts protected
The list of query clauses to traverse for generating a SELECT statement
Type
array<string>
$_templates protected
List of sprintf templates that will be used for compiling the SQL for this query. There are some clauses that can be built as just as the direct concatenation of the internal parts, those are listed here.
Type
array<string, string>
$_updateParts protected
The list of query clauses to traverse for generating an UPDATE statement
Type
array<string>
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.Database.SqlserverCompiler.html