name: SQLiteGrammar
class_comment: null
dependencies:
- name: Builder
  type: class
  source: Illuminate\Database\Query\Builder
- 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[]'
methods:
- name: compileLock
  visibility: protected
  parameters:
  - name: query
  - name: value
  comment: "# * All of the available clause operators.\n# *\n# * @var string[]\n#\
    \ */\n# protected $operators = [\n# '=', '<', '>', '<=', '>=', '<>', '!=',\n#\
    \ 'like', 'not like', 'ilike',\n# '&', '|', '<<', '>>',\n# ];\n# \n# /**\n# *\
    \ Compile the lock into SQL.\n# *\n# * @param  \\Illuminate\\Database\\Query\\\
    Builder  $query\n# * @param  bool|string  $value\n# * @return string"
- name: wrapUnion
  visibility: protected
  parameters:
  - name: sql
  comment: '# * Wrap a union subquery in parentheses.

    # *

    # * @param  string  $sql

    # * @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: whereDay
  visibility: protected
  parameters:
  - name: query
  - name: where
  comment: '# * Compile a "where day" clause.

    # *

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

    # * @param  array  $where

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

    # *

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

    # * @param  array  $where

    # * @return string'
- name: whereYear
  visibility: protected
  parameters:
  - name: query
  - name: where
  comment: '# * Compile a "where year" 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: compileIndexHint
  visibility: protected
  parameters:
  - name: query
  - name: indexHint
  comment: '# * Compile the index hints for the query.

    # *

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

    # * @param  \Illuminate\Database\Query\IndexHint  $indexHint

    # * @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: compileJsonContains
  visibility: protected
  parameters:
  - name: column
  - name: value
  comment: '# * Compile a "JSON contains" statement into SQL.

    # *

    # * @param  string  $column

    # * @param  mixed  $value

    # * @return string'
- name: prepareBindingForJsonContains
  visibility: public
  parameters:
  - name: binding
  comment: '# * Prepare the binding for a "JSON contains" statement.

    # *

    # * @param  mixed  $binding

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

    # *

    # * @param  string  $column

    # * @return string'
- name: compileGroupLimit
  visibility: protected
  parameters:
  - name: query
  comment: '# * Compile a group limit clause.

    # *

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

    # * @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: 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: 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: groupJsonColumnsForUpdate
  visibility: protected
  parameters:
  - name: values
  comment: '# * Group the nested JSON columns.

    # *

    # * @param  array  $values

    # * @return array'
- name: compileJsonPatch
  visibility: protected
  parameters:
  - name: column
  - name: value
  comment: '# * Compile a "JSON" patch statement into SQL.

    # *

    # * @param  string  $column

    # * @param  mixed  $value

    # * @return string'
- 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'
traits:
- Illuminate\Database\Query\Builder
- Illuminate\Support\Arr
- Illuminate\Support\Str
interfaces: []