\Cake\DatabaseSqlserverCompiler

Responsible for compiling a Query object into its SQL representation for SQL Server

Summary

Methods
Properties
Constants
compile()
No public properties found
No constants found
_sqlCompiler()
_buildSelectPart()
_buildFromPart()
_buildJoinPart()
_buildSetPart()
_buildUnionPart()
_buildInsertPart()
_buildValuesPart()
_buildUpdatePart()
_buildModifierPart()
_stringifyExpressions()
_buildLimitPart()
$_templates
$_selectParts
$_updateParts
$_deleteParts
$_insertParts
$_orderedUnion
N/A
No private methods found
No private properties found
N/A

Properties

$_templates

$_templates : array

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

$_selectParts

$_selectParts : array

The list of query clauses to traverse for generating a SELECT statement

Type

array

$_updateParts

$_updateParts : array

The list of query clauses to traverse for generating an UPDATE statement

Type

array

$_deleteParts

$_deleteParts : array

The list of query clauses to traverse for generating a DELETE statement

Type

array

$_insertParts

$_insertParts : array

The list of query clauses to traverse for generating an INSERT statement

Type

array

$_orderedUnion

$_orderedUnion : boolean

SQLserver does not support ORDER BY in UNION queries.

Overridden in subclasses.

Type

boolean

Methods

compile()

compile(\Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : \Closure

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 $generator

the placeholder generator to be used in expressions

Returns

\Closure

_sqlCompiler()

_sqlCompiler(string  $sql, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : \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 $generator

The placeholder and value binder object

Returns

\Closure

_buildSelectPart()

_buildSelectPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string

_buildFromPart()

_buildFromPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string

_buildJoinPart()

_buildJoinPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string

_buildSetPart()

_buildSetPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string

_buildUnionPart()

_buildUnionPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string

_buildInsertPart()

_buildInsertPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string

_buildValuesPart()

_buildValuesPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string —

SQL fragment.

_buildUpdatePart()

_buildUpdatePart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string —

SQL fragment.

_buildModifierPart()

_buildModifierPart(array  $parts, \Cake\Database\Query  $query, \Cake\Database\ValueBinder  $generator) : 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 $generator

the placeholder generator to be used in expressions

Returns

string —

SQL fragment.

_stringifyExpressions()

_stringifyExpressions(array  $expressions, \Cake\Database\ValueBinder  $generator, boolean  $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 $generator

the placeholder generator to be used in expressions

boolean $wrap

Whether to wrap each expression object with parenthesis

Returns

array

_buildLimitPart()

_buildLimitPart(integer  $limit, \Cake\Database\Query  $query) : string

Generates the LIMIT part of a SQL query

Parameters

integer $limit

the limit clause

\Cake\Database\Query $query

The query that is being compiled

Returns

string