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 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.
Wrap a table in keyword identifiers.
Wrap a table that has an alias.
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.
        
                            
    __construct(Connection $connection)
        
    
    Create a new grammar instance.
        
                            string[]
    wrapArray(array $values)
        
    
    Wrap an array of values.
        
                            string
    wrapTable(Expression|string $table, string|null $prefix = null)
        
    
    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, string|null $prefix = null)
        
    
    Wrap a table that has an alias.
        
                    protected        string
    wrapSegments(list<string> $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|string[] $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()
        deprecated
    
    deprecated
Get the grammar's table prefix.
        
                            $this
    setTablePrefix(string $prefix)
        deprecated
    
    deprecated
Set the grammar's table prefix.
        
                    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, $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
    whereValueBetween(Builder $query, array $where)
        
    
    Compile a "value 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|null $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.