name: PostgresGrammar
class_comment: null
dependencies:
- name: Builder
  type: class
  source: Illuminate\Database\Query\Builder
- name: JoinLateralClause
  type: class
  source: Illuminate\Database\Query\JoinLateralClause
- name: Arr
  type: class
  source: Illuminate\Support\Arr
- name: Str
  type: class
  source: Illuminate\Support\Str
properties:
- name: operators
  visibility: protected
  comment: '# * All of the available clause operators.

    # *

    # * @var string[]'
- name: bitwiseOperators
  visibility: protected
  comment: '# * The grammar specific bitwise operators.

    # *

    # * @var array'
methods:
- name: whereBasic
  visibility: protected
  parameters:
  - name: query
  - name: where
  comment: "# * All of the available clause operators.\n# *\n# * @var string[]\n#\
    \ */\n# protected $operators = [\n# '=', '<', '>', '<=', '>=', '<>', '!=',\n#\
    \ 'like', 'not like', 'between', 'ilike', 'not ilike',\n# '~', '&', '|', '#',\
    \ '<<', '>>', '<<=', '>>=',\n# '&&', '@>', '<@', '?', '?|', '?&', '||', '-', '@?',\
    \ '@@', '#-',\n# 'is distinct from', 'is not distinct from',\n# ];\n# \n# /**\n\
    # * The grammar specific bitwise operators.\n# *\n# * @var array\n# */\n# protected\
    \ $bitwiseOperators = [\n# '~', '&', '|', '#', '<<', '>>', '<<=', '>>=',\n# ];\n\
    # \n# /**\n# * Compile a basic where clause.\n# *\n# * @param  \\Illuminate\\\
    Database\\Query\\Builder  $query\n# * @param  array  $where\n# * @return string"
- name: whereBitwise
  visibility: protected
  parameters:
  - name: query
  - name: where
  comment: '# * Compile a bitwise operator where clause.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $where

    # * @return string'
- name: whereDate
  visibility: protected
  parameters:
  - name: query
  - name: where
  comment: '# * Compile a "where date" clause.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $where

    # * @return string'
- name: whereTime
  visibility: protected
  parameters:
  - name: query
  - name: where
  comment: '# * Compile a "where time" clause.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $where

    # * @return string'
- name: dateBasedWhere
  visibility: protected
  parameters:
  - name: type
  - name: query
  - name: where
  comment: '# * Compile a date based where clause.

    # *

    # * @param  string  $type

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $where

    # * @return string'
- name: whereFullText
  visibility: public
  parameters:
  - name: query
  - name: where
  comment: '# * Compile a "where fulltext" clause.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $where

    # * @return string'
- name: validFullTextLanguages
  visibility: protected
  parameters: []
  comment: '# * Get an array of valid full text languages.

    # *

    # * @return array'
- name: compileColumns
  visibility: protected
  parameters:
  - name: query
  - name: columns
  comment: '# * Compile the "select *" portion of the query.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $columns

    # * @return string|null'
- name: compileJsonContains
  visibility: protected
  parameters:
  - name: column
  - name: value
  comment: '# * Compile a "JSON contains" statement into SQL.

    # *

    # * @param  string  $column

    # * @param  string  $value

    # * @return string'
- name: compileJsonContainsKey
  visibility: protected
  parameters:
  - name: column
  comment: '# * Compile a "JSON contains key" statement into SQL.

    # *

    # * @param  string  $column

    # * @return string'
- name: compileJsonLength
  visibility: protected
  parameters:
  - name: column
  - name: operator
  - name: value
  comment: '# * Compile a "JSON length" statement into SQL.

    # *

    # * @param  string  $column

    # * @param  string  $operator

    # * @param  string  $value

    # * @return string'
- name: compileHaving
  visibility: protected
  parameters:
  - name: having
  comment: '# * Compile a single having clause.

    # *

    # * @param  array  $having

    # * @return string'
- name: compileHavingBitwise
  visibility: protected
  parameters:
  - name: having
  comment: '# * Compile a having clause involving a bitwise operator.

    # *

    # * @param  array  $having

    # * @return string'
- name: compileLock
  visibility: protected
  parameters:
  - name: query
  - name: value
  comment: '# * Compile the lock into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  bool|string  $value

    # * @return string'
- name: compileInsertOrIgnore
  visibility: public
  parameters:
  - name: query
  - name: values
  comment: '# * Compile an insert ignore statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @return string'
- name: compileInsertOrIgnoreUsing
  visibility: public
  parameters:
  - name: query
  - name: columns
  - name: sql
  comment: '# * Compile an insert ignore statement using a subquery into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $columns

    # * @param  string  $sql

    # * @return string'
- name: compileInsertGetId
  visibility: public
  parameters:
  - name: query
  - name: values
  - name: sequence
  comment: '# * Compile an insert and get ID statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @param  string  $sequence

    # * @return string'
- name: compileUpdate
  visibility: public
  parameters:
  - name: query
  - name: values
  comment: '# * Compile an update statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @return string'
- name: compileUpdateColumns
  visibility: protected
  parameters:
  - name: query
  - name: values
  comment: '# * Compile the columns for an update statement.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @return string'
- name: compileUpsert
  visibility: public
  parameters:
  - name: query
  - name: values
  - name: uniqueBy
  - name: update
  comment: '# * Compile an "upsert" statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @param  array  $uniqueBy

    # * @param  array  $update

    # * @return string'
- name: compileJoinLateral
  visibility: public
  parameters:
  - name: join
  - name: expression
  comment: '# * Compile a "lateral join" clause.

    # *

    # * @param  \Illuminate\Database\Query\JoinLateralClause  $join

    # * @param  string  $expression

    # * @return string'
- name: compileJsonUpdateColumn
  visibility: protected
  parameters:
  - name: key
  - name: value
  comment: '# * Prepares a JSON column being updated using the JSONB_SET function.

    # *

    # * @param  string  $key

    # * @param  mixed  $value

    # * @return string'
- name: compileUpdateFrom
  visibility: public
  parameters:
  - name: query
  - name: values
  comment: '# * Compile an update from statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @return string'
- name: compileUpdateWheres
  visibility: protected
  parameters:
  - name: query
  comment: '# * Compile the additional where clauses for updates with joins.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @return string'
- name: compileUpdateJoinWheres
  visibility: protected
  parameters:
  - name: query
  comment: '# * Compile the "join" clause where clauses for an update.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @return string'
- name: prepareBindingsForUpdateFrom
  visibility: public
  parameters:
  - name: bindings
  - name: values
  comment: '# * Prepare the bindings for an update statement.

    # *

    # * @param  array  $bindings

    # * @param  array  $values

    # * @return array'
- name: compileUpdateWithJoinsOrLimit
  visibility: protected
  parameters:
  - name: query
  - name: values
  comment: '# * Compile an update statement with joins or limit into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @param  array  $values

    # * @return string'
- name: prepareBindingsForUpdate
  visibility: public
  parameters:
  - name: bindings
  - name: values
  comment: '# * Prepare the bindings for an update statement.

    # *

    # * @param  array  $bindings

    # * @param  array  $values

    # * @return array'
- name: compileDelete
  visibility: public
  parameters:
  - name: query
  comment: '# * Compile a delete statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @return string'
- name: compileDeleteWithJoinsOrLimit
  visibility: protected
  parameters:
  - name: query
  comment: '# * Compile a delete statement with joins or limit into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @return string'
- name: compileTruncate
  visibility: public
  parameters:
  - name: query
  comment: '# * Compile a truncate table statement into SQL.

    # *

    # * @param  \Illuminate\Database\Query\Builder  $query

    # * @return array'
- name: wrapJsonSelector
  visibility: protected
  parameters:
  - name: value
  comment: '# * Wrap the given JSON selector.

    # *

    # * @param  string  $value

    # * @return string'
- name: wrapJsonBooleanSelector
  visibility: protected
  parameters:
  - name: value
  comment: '# * Wrap the given JSON selector for boolean values.

    # *

    # * @param  string  $value

    # * @return string'
- name: wrapJsonBooleanValue
  visibility: protected
  parameters:
  - name: value
  comment: '# * Wrap the given JSON boolean value.

    # *

    # * @param  string  $value

    # * @return string'
- name: wrapJsonPathAttributes
  visibility: protected
  parameters:
  - name: path
  comment: '# * Wrap the attributes of the given JSON path.

    # *

    # * @param  array  $path

    # * @return array'
- name: parseJsonPathArrayKeys
  visibility: protected
  parameters:
  - name: attribute
  comment: '# * Parse the given JSON path attribute for array keys.

    # *

    # * @param  string  $attribute

    # * @return array'
- name: substituteBindingsIntoRawSql
  visibility: public
  parameters:
  - name: sql
  - name: bindings
  comment: '# * Substitute the given bindings into the given raw SQL query.

    # *

    # * @param  string  $sql

    # * @param  array  $bindings

    # * @return string'
traits:
- Illuminate\Database\Query\Builder
- Illuminate\Database\Query\JoinLateralClause
- Illuminate\Support\Arr
- Illuminate\Support\Str
interfaces: []