name: Grammar
class_comment: null
dependencies:
- name: BackedEnum
  type: class
  source: BackedEnum
- name: Expression
  type: class
  source: Illuminate\Contracts\Database\Query\Expression
- name: CompilesJsonPaths
  type: class
  source: Illuminate\Database\Concerns\CompilesJsonPaths
- name: Connection
  type: class
  source: Illuminate\Database\Connection
- name: BaseGrammar
  type: class
  source: Illuminate\Database\Grammar
- name: Blueprint
  type: class
  source: Illuminate\Database\Schema\Blueprint
- name: Fluent
  type: class
  source: Illuminate\Support\Fluent
- name: LogicException
  type: class
  source: LogicException
- name: RuntimeException
  type: class
  source: RuntimeException
- name: CompilesJsonPaths
  type: class
  source: CompilesJsonPaths
properties:
- name: modifiers
  visibility: protected
  comment: '# * The possible column modifiers.

    # *

    # * @var string[]'
- name: transactions
  visibility: protected
  comment: '# * If this Grammar supports schema changes wrapped in a transaction.

    # *

    # * @var bool'
- name: fluentCommands
  visibility: protected
  comment: '# * The commands to be executed outside of create or alter command.

    # *

    # * @var array'
methods:
- name: compileCreateDatabase
  visibility: public
  parameters:
  - name: name
  - name: connection
  comment: "# * The possible column modifiers.\n# *\n# * @var string[]\n# */\n# protected\
    \ $modifiers = [];\n# \n# /**\n# * If this Grammar supports schema changes wrapped\
    \ in a transaction.\n# *\n# * @var bool\n# */\n# protected $transactions = false;\n\
    # \n# /**\n# * The commands to be executed outside of create or alter command.\n\
    # *\n# * @var array\n# */\n# protected $fluentCommands = [];\n# \n# /**\n# * Compile\
    \ a create database command.\n# *\n# * @param  string  $name\n# * @param  \\Illuminate\\\
    Database\\Connection  $connection\n# * @return void\n# *\n# * @throws \\LogicException"
- name: compileDropDatabaseIfExists
  visibility: public
  parameters:
  - name: name
  comment: '# * Compile a drop database if exists command.

    # *

    # * @param  string  $name

    # * @return void

    # *

    # * @throws \LogicException'
- name: compileRenameColumn
  visibility: public
  parameters:
  - name: blueprint
  - name: command
  - name: connection
  comment: '# * Compile a rename column command.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $command

    # * @param  \Illuminate\Database\Connection  $connection

    # * @return array|string'
- name: compileChange
  visibility: public
  parameters:
  - name: blueprint
  - name: command
  - name: connection
  comment: '# * Compile a change column command into a series of SQL statements.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $command

    # * @param  \Illuminate\Database\Connection  $connection

    # * @return array|string

    # *

    # * @throws \RuntimeException'
- name: compileFulltext
  visibility: public
  parameters:
  - name: blueprint
  - name: command
  comment: '# * Compile a fulltext index key command.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $command

    # * @return string

    # *

    # * @throws \RuntimeException'
- name: compileDropFullText
  visibility: public
  parameters:
  - name: blueprint
  - name: command
  comment: '# * Compile a drop fulltext index command.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $command

    # * @return string

    # *

    # * @throws \RuntimeException'
- name: compileForeign
  visibility: public
  parameters:
  - name: blueprint
  - name: command
  comment: '# * Compile a foreign key command.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $command

    # * @return string'
- name: compileDropForeign
  visibility: public
  parameters:
  - name: blueprint
  - name: command
  comment: '# * Compile a drop foreign key command.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $command

    # * @return string'
- name: getColumns
  visibility: protected
  parameters:
  - name: blueprint
  comment: '# * Compile the blueprint''s added column definitions.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @return array'
- name: getColumn
  visibility: protected
  parameters:
  - name: blueprint
  - name: column
  comment: '# * Compile the column definition.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Database\Schema\ColumnDefinition  $column

    # * @return string'
- name: getType
  visibility: protected
  parameters:
  - name: column
  comment: '# * Get the SQL for the column data type.

    # *

    # * @param  \Illuminate\Support\Fluent  $column

    # * @return string'
- name: typeComputed
  visibility: protected
  parameters:
  - name: column
  comment: '# * Create the column definition for a generated, computed column type.

    # *

    # * @param  \Illuminate\Support\Fluent  $column

    # * @return void

    # *

    # * @throws \RuntimeException'
- name: addModifiers
  visibility: protected
  parameters:
  - name: sql
  - name: blueprint
  - name: column
  comment: '# * Add the column modifiers to the definition.

    # *

    # * @param  string  $sql

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  \Illuminate\Support\Fluent  $column

    # * @return string'
- name: getCommandByName
  visibility: protected
  parameters:
  - name: blueprint
  - name: name
  comment: '# * Get the command with a given name if it exists on the blueprint.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  string  $name

    # * @return \Illuminate\Support\Fluent|null'
- name: getCommandsByName
  visibility: protected
  parameters:
  - name: blueprint
  - name: name
  comment: '# * Get all of the commands with a given name.

    # *

    # * @param  \Illuminate\Database\Schema\Blueprint  $blueprint

    # * @param  string  $name

    # * @return array'
- name: hasCommand
  visibility: protected
  parameters:
  - name: blueprint
  - name: name
  comment: null
- name: prefixArray
  visibility: public
  parameters:
  - name: prefix
  - name: values
  comment: '# * Add a prefix to an array of values.

    # *

    # * @param  string  $prefix

    # * @param  array  $values

    # * @return array'
- name: wrapTable
  visibility: public
  parameters:
  - name: table
  comment: '# * Wrap a table in keyword identifiers.

    # *

    # * @param  mixed  $table

    # * @return string'
- name: wrap
  visibility: public
  parameters:
  - name: value
  - name: prefixAlias
    default: 'false'
  comment: '# * Wrap a value in keyword identifiers.

    # *

    # * @param  \Illuminate\Support\Fluent|\Illuminate\Contracts\Database\Query\Expression|string  $value

    # * @param  bool  $prefixAlias

    # * @return string'
- name: getDefaultValue
  visibility: protected
  parameters:
  - name: value
  comment: '# * Format a value so that it can be used in "default" clauses.

    # *

    # * @param  mixed  $value

    # * @return string'
- name: getFluentCommands
  visibility: public
  parameters: []
  comment: '# * Get the fluent commands for the grammar.

    # *

    # * @return array'
- name: supportsSchemaTransactions
  visibility: public
  parameters: []
  comment: '# * Check if this Grammar supports schema changes wrapped in a transaction.

    # *

    # * @return bool'
traits:
- BackedEnum
- Illuminate\Contracts\Database\Query\Expression
- Illuminate\Database\Concerns\CompilesJsonPaths
- Illuminate\Database\Connection
- Illuminate\Database\Schema\Blueprint
- Illuminate\Support\Fluent
- LogicException
- RuntimeException
- CompilesJsonPaths
interfaces: []