Grammar
class Grammar extends Grammar (View source)
Traits
Properties
static protected array | $macros | The registered string macros. |
from Macroable |
protected Connection | $connection | The connection used for escaping values. |
from Grammar |
protected string | $tablePrefix | The grammar table prefix. |
from Grammar |
protected array | $operators | The grammar specific operators. |
|
protected array | $bitwiseOperators | The grammar specific bitwise operators. |
|
protected string[] | $selectComponents | The components that make up a select clause. |
Methods
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Convert an array of column names into a delimited string.
Get the appropriate query parameter place-holder for a value.
Escapes a value for safe SQL embedding.
Split the given JSON selector into the field and the optional path and wrap them separately.
Wrap the given JSON path.
Wrap the given JSON path segment.
Format the where clause statements into one string.
Compile a "JSON contains" statement into SQL.
Compile a "JSON overlaps" statement into SQL.
Prepare the binding for a "JSON contains" statement.
Compile a "JSON contains key" statement into SQL.
Compile a "JSON length" statement into SQL.
Compile a "JSON value cast" statement into SQL.
Compile a single having clause.
Compile a basic having clause.
Compile a "between" having clause.
Compile a having null clause.
Compile a having not null clause.
Compile a having clause involving a bit operator.
Compile a having clause involving an expression.
Compile a nested having clause.
Compile the random statement into SQL.
Compile a row number clause.
Compile a single union statement.
Wrap a union subquery in parentheses.
Compile an insert and get ID statement into SQL.
Compile an insert statement using a subquery into SQL.
Compile an insert ignore statement using a subquery into SQL.
Compile an update statement without joins into SQL.
Compile an update statement with joins into SQL.
Compile an "upsert" statement into SQL.
Prepare the bindings for an update statement.
Compile a delete statement without joins into SQL.
Compile a delete statement with joins into SQL.
Prepare the bindings for a delete statement.
Compile a query to get the number of open connections for a database.
Determine if the grammar supports savepoints.
Compile the SQL statement to define a savepoint.
Compile the SQL statement to execute a savepoint rollback.
Wrap the given JSON selector for boolean values.
Wrap the given JSON boolean value.
Concatenate an array of segments, removing empties.
Remove the leading boolean from a statement.
Substitute the given bindings into the given raw SQL query.
Get the grammar specific operators.
Get the grammar specific bitwise operators.
Details
static void
macro(string $name, object|callable $macro)
Register a custom macro.
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
static bool
hasMacro(string $name)
Checks if macro is registered.
static void
flushMacros()
Flush the existing macros.
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
array
wrapArray(array $values)
Wrap an array of values.
string
wrapTable(Expression|string $table)
Wrap a table in keyword identifiers.
string
wrap(Expression|string $value)
Wrap a value in keyword identifiers.
protected string
wrapAliasedValue(string $value)
Wrap a value that has an alias.
protected string
wrapAliasedTable(string $value)
Wrap a table that has an alias.
protected string
wrapSegments(array $segments)
Wrap the given value segments.
protected string
wrapValue(string $value)
Wrap a single string in keyword identifiers.
protected string
wrapJsonSelector(string $value)
Wrap the given JSON selector.
protected bool
isJsonSelector(string $value)
Determine if the given string is a JSON selector.
string
columnize(array $columns)
Convert an array of column names into a delimited string.
string
parameterize(array $values)
Create query parameter place-holders for an array.
string
parameter(mixed $value)
Get the appropriate query parameter place-holder for a value.
string
quoteString(string|array $value)
Quote the given string literal.
string
escape(string|float|int|bool|null $value, bool $binary = false)
Escapes a value for safe SQL embedding.
bool
isExpression(mixed $value)
Determine if the given value is a raw expression.
string|int|float
getValue(Expression|string|int|float $expression)
Transforms expressions to their scalar types.
string
getDateFormat()
Get the format for database stored dates.
string
getTablePrefix()
Get the grammar's table prefix.
$this
setTablePrefix(string $prefix)
Set the grammar's table prefix.
$this
setConnection(Connection $connection)
Set the grammar's database connection.
protected array
wrapJsonFieldAndPath(string $column)
Split the given JSON selector into the field and the optional path and wrap them separately.
protected string
wrapJsonPath(string $value, string $delimiter = '->')
Wrap the given JSON path.
protected string
wrapJsonPathSegment(string $segment)
Wrap the given JSON path segment.
string
compileSelect(Builder $query)
Compile a select query into SQL.
protected array
compileComponents(Builder $query)
Compile the components necessary for a select clause.
protected string
compileAggregate(Builder $query, array $aggregate)
Compile an aggregated select clause.
protected string|null
compileColumns(Builder $query, array $columns)
Compile the "select *" portion of the query.
protected string
compileFrom(Builder $query, string $table)
Compile the "from" portion of the query.
protected string
compileJoins(Builder $query, array $joins)
Compile the "join" portions of the query.
string
compileJoinLateral(JoinLateralClause $join, string $expression)
Compile a "lateral join" clause.
string
compileWheres(Builder $query)
Compile the "where" portions of the query.
protected array
compileWheresToArray(Builder $query)
Get an array of all the where clauses for the query.
protected string
concatenateWhereClauses(Builder $query, array $sql)
Format the where clause statements into one string.
protected string
whereRaw(Builder $query, array $where)
Compile a raw where clause.
protected string
whereBasic(Builder $query, array $where)
Compile a basic where clause.
protected string
whereBitwise(Builder $query, array $where)
Compile a bitwise operator where clause.
protected string
whereLike(Builder $query, array $where)
Compile a "where like" clause.
protected string
whereIn(Builder $query, array $where)
Compile a "where in" clause.
protected string
whereNotIn(Builder $query, array $where)
Compile a "where not in" clause.
protected string
whereNotInRaw(Builder $query, array $where)
Compile a "where not in raw" clause.
For safety, whereIntegerInRaw ensures this method is only used with integer values.
protected string
whereInRaw(Builder $query, array $where)
Compile a "where in raw" clause.
For safety, whereIntegerInRaw ensures this method is only used with integer values.
protected string
whereNull(Builder $query, array $where)
Compile a "where null" clause.
protected string
whereNotNull(Builder $query, array $where)
Compile a "where not null" clause.
protected string
whereBetween(Builder $query, array $where)
Compile a "between" where clause.
protected string
whereBetweenColumns(Builder $query, array $where)
Compile a "between" where clause.
protected string
whereDate(Builder $query, array $where)
Compile a "where date" clause.
protected string
whereTime(Builder $query, array $where)
Compile a "where time" clause.
protected string
whereDay(Builder $query, array $where)
Compile a "where day" clause.
protected string
whereMonth(Builder $query, array $where)
Compile a "where month" clause.
protected string
whereYear(Builder $query, array $where)
Compile a "where year" clause.
protected string
dateBasedWhere(string $type, Builder $query, array $where)
Compile a date based where clause.
protected string
whereColumn(Builder $query, array $where)
Compile a where clause comparing two columns.
protected string
whereNested(Builder $query, array $where)
Compile a nested where clause.
protected string
whereSub(Builder $query, array $where)
Compile a where condition with a sub-select.
protected string
whereExists(Builder $query, array $where)
Compile a where exists clause.
protected string
whereNotExists(Builder $query, array $where)
Compile a where exists clause.
protected string
whereRowValues(Builder $query, array $where)
Compile a where row values condition.
protected string
whereJsonBoolean(Builder $query, array $where)
Compile a "where JSON boolean" clause.
protected string
whereJsonContains(Builder $query, array $where)
Compile a "where JSON contains" clause.
protected string
compileJsonContains(string $column, string $value)
Compile a "JSON contains" statement into SQL.
protected string
whereJsonOverlaps(Builder $query, array $where)
Compile a "where JSON overlaps" clause.
protected string
compileJsonOverlaps(string $column, string $value)
Compile a "JSON overlaps" statement into SQL.
string
prepareBindingForJsonContains(mixed $binding)
Prepare the binding for a "JSON contains" statement.
protected string
whereJsonContainsKey(Builder $query, array $where)
Compile a "where JSON contains key" clause.
protected string
compileJsonContainsKey(string $column)
Compile a "JSON contains key" statement into SQL.
protected string
whereJsonLength(Builder $query, array $where)
Compile a "where JSON length" clause.
protected string
compileJsonLength(string $column, string $operator, string $value)
Compile a "JSON length" statement into SQL.
string
compileJsonValueCast(string $value)
Compile a "JSON value cast" statement into SQL.
string
whereFullText(Builder $query, array $where)
Compile a "where fulltext" clause.
string
whereExpression(Builder $query, array $where)
Compile a clause based on an expression.
protected string
compileGroups(Builder $query, array $groups)
Compile the "group by" portions of the query.
protected string
compileHavings(Builder $query)
Compile the "having" portions of the query.
protected string
compileHaving(array $having)
Compile a single having clause.
protected string
compileBasicHaving(array $having)
Compile a basic having clause.
protected string
compileHavingBetween(array $having)
Compile a "between" having clause.
protected string
compileHavingNull(array $having)
Compile a having null clause.
protected string
compileHavingNotNull(array $having)
Compile a having not null clause.
protected string
compileHavingBit(array $having)
Compile a having clause involving a bit operator.
protected string
compileHavingExpression(array $having)
Compile a having clause involving an expression.
protected string
compileNestedHavings(array $having)
Compile a nested having clause.
protected string
compileOrders(Builder $query, array $orders)
Compile the "order by" portions of the query.
protected array
compileOrdersToArray(Builder $query, array $orders)
Compile the query orders to an array.
string
compileRandom(string|int $seed)
Compile the random statement into SQL.
protected string
compileLimit(Builder $query, int $limit)
Compile the "limit" portions of the query.
protected string
compileGroupLimit(Builder $query)
Compile a group limit clause.
protected string
compileRowNumber(string $partition, string $orders)
Compile a row number clause.
protected string
compileOffset(Builder $query, int $offset)
Compile the "offset" portions of the query.
protected string
compileUnions(Builder $query)
Compile the "union" queries attached to the main query.
protected string
compileUnion(array $union)
Compile a single union statement.
protected string
wrapUnion(string $sql)
Wrap a union subquery in parentheses.
protected string
compileUnionAggregate(Builder $query)
Compile a union aggregate query into SQL.
string
compileExists(Builder $query)
Compile an exists statement into SQL.
string
compileInsert(Builder $query, array $values)
Compile an insert statement into SQL.
string
compileInsertOrIgnore(Builder $query, array $values)
Compile an insert ignore statement into SQL.
string
compileInsertGetId(Builder $query, array $values, string $sequence)
Compile an insert and get ID statement into SQL.
string
compileInsertUsing(Builder $query, array $columns, string $sql)
Compile an insert statement using a subquery into SQL.
string
compileInsertOrIgnoreUsing(Builder $query, array $columns, string $sql)
Compile an insert ignore statement using a subquery into SQL.
string
compileUpdate(Builder $query, array $values)
Compile an update statement into SQL.
protected string
compileUpdateColumns(Builder $query, array $values)
Compile the columns for an update statement.
protected string
compileUpdateWithoutJoins(Builder $query, string $table, string $columns, string $where)
Compile an update statement without joins into SQL.
protected string
compileUpdateWithJoins(Builder $query, string $table, string $columns, string $where)
Compile an update statement with joins into SQL.
string
compileUpsert(Builder $query, array $values, array $uniqueBy, array $update)
Compile an "upsert" statement into SQL.
array
prepareBindingsForUpdate(array $bindings, array $values)
Prepare the bindings for an update statement.
string
compileDelete(Builder $query)
Compile a delete statement into SQL.
protected string
compileDeleteWithoutJoins(Builder $query, string $table, string $where)
Compile a delete statement without joins into SQL.
protected string
compileDeleteWithJoins(Builder $query, string $table, string $where)
Compile a delete statement with joins into SQL.
array
prepareBindingsForDelete(array $bindings)
Prepare the bindings for a delete statement.
array
compileTruncate(Builder $query)
Compile a truncate table statement into SQL.
protected string
compileLock(Builder $query, bool|string $value)
Compile the lock into SQL.
string|null
compileThreadCount()
Compile a query to get the number of open connections for a database.
bool
supportsSavepoints()
Determine if the grammar supports savepoints.
string
compileSavepoint(string $name)
Compile the SQL statement to define a savepoint.
string
compileSavepointRollBack(string $name)
Compile the SQL statement to execute a savepoint rollback.
protected string
wrapJsonBooleanSelector(string $value)
Wrap the given JSON selector for boolean values.
protected string
wrapJsonBooleanValue(string $value)
Wrap the given JSON boolean value.
protected string
concatenate(array $segments)
Concatenate an array of segments, removing empties.
protected string
removeLeadingBoolean(string $value)
Remove the leading boolean from a statement.
string
substituteBindingsIntoRawSql(string $sql, array $bindings)
Substitute the given bindings into the given raw SQL query.
array
getOperators()
Get the grammar specific operators.
array
getBitwiseOperators()
Get the grammar specific bitwise operators.