Class Postgres

Represents a database diver containing all specificities for a database engine including its SQL dialect

Cake\Database\Driver
Extended by Cake\Database\Driver\Postgres uses Cake\Database\Driver\PDODriverTrait, Cake\Database\Dialect\PostgresDialectTrait

Method Detail

connectsource public

connect( )

Establishes a connection to the database server

Returns

boolean
true on success

enabledsource public

enabled( )

Returns whether php is able to use this driver for connecting to database

Returns

boolean
true if it is valid to use this driver

setEncodingsource public

setEncoding( string $encoding )

Sets connection encoding

Parameters

string $encoding
The encoding to use.

setSchemasource public

setSchema( string $schema )

Sets connection default schema, if any relation defined in a query is not fully qualified postgres will fallback to looking the relation into defined default schema

Parameters

string $schema
The schema names to set search_path to.

supportsDynamicConstraintssource public

supportsDynamicConstraints( )

Returns whether the driver supports adding or dropping constraints to already created tables.

Returns

boolean
true if driver supports dynamic constraints

Methods inherited from Cake\Database\Driver

__constructsource public

__construct( array $config [] )

Constructor

Parameters

array $config optional []
The configuration for the driver.

Throws

InvalidArgumentException
InvalidArgumentException

__debugInfosource public

__debugInfo( )

Returns an array that can be used to describe the internal state of this object.

Returns

array
array

__destructsource public

__destruct( )

Destructor

autoQuotingsource public

autoQuoting( boolean $enable null )

Returns whether or not this driver should automatically quote identifiers in queries

If called with a boolean argument, it will toggle the auto quoting setting to the passed value

Parameters

boolean $enable optional null
whether to enable auto quoting

Returns

boolean
bool

beginTransactionsource abstract public

beginTransaction( )

Starts a transaction

Returns

boolean
true on success, false otherwise

commitTransactionsource abstract public

commitTransaction( )

Commits a transaction

Returns

boolean
true on success, false otherwise

compileQuerysource public

compileQuery( Cake\Database\Query $query , Cake\Database\ValueBinder $generator )

Transforms the passed query to this Driver's dialect and returns an instance of the transformed query and the full compiled SQL string

Parameters

Cake\Database\Query $query
The query to compile.
Cake\Database\ValueBinder $generator
The value binder to use.

Returns

array
containing 2 entries. The first entity is the transformed query and the second one the compiled SQL

connectionsource abstract public

connection( null|PDO $connection null )

Returns correct connection resource or object that is internally used If first argument is passed,

Parameters

null|PDO $connection optional null
The connection object

disableForeignKeySQLsource abstract public

disableForeignKeySQL( )

Get the SQL for disabling foreign keys

Returns

string
string

disconnectsource abstract public

disconnect( )

Disconnects from database server

enableForeignKeySQLsource abstract public

enableForeignKeySQL( )

Get the SQL for enabling foreign keys

Returns

string
string

isConnectedsource public

isConnected( )

Check whether or not the driver is connected.

Returns

boolean
bool

lastInsertIdsource public

lastInsertId( string $table null , string $column null )

Returns last id generated for a table or sequence in database

Parameters

string $table optional null
table name or sequence to get last insert value from
string $column optional null
the name of the column representing the primary key

Returns

string|integer
string|int

newCompilersource public

newCompiler( )

Returns an instance of a QueryCompiler

Returns

Cake\Database\QueryCompiler
\Cake\Database\QueryCompiler

preparesource abstract public

prepare( string|Cake\Database\Query $query )

Prepares a sql statement to be executed

Parameters

string|Cake\Database\Query $query
The query to convert into a statement.

Returns

Cake\Database\StatementInterface
\Cake\Database\StatementInterface

queryTranslatorsource abstract public

queryTranslator( string $type )

Returns a callable function that will be used to transform a passed Query object. This function, in turn, will return an instance of a Query object that has been transformed to accommodate any specificities of the SQL dialect in use.

Parameters

string $type
the type of query to be transformed (select, insert, update, delete)

Returns

callable
callable

quotesource abstract public

quote( mixed $value , string $type )

Returns a value in a safe representation to be used in a query string

Parameters

mixed $value
The value to quote.
string $type
Type to be used for determining kind of quoting to perform

Returns

string
string

quoteIdentifiersource abstract public

quoteIdentifier( string $identifier )

Quotes a database identifier (a column name, table name, etc..) to be used safely in queries without the risk of using reserved words

Parameters

string $identifier
The identifier expression to quote.

Returns

string
string

releaseSavePointSQLsource abstract public

releaseSavePointSQL( string $name )

Get the SQL for releasing a save point.

Parameters

string $name
The table name

Returns

string
string

rollbackSavePointSQLsource abstract public

rollbackSavePointSQL( string $name )

Get the SQL for rollingback a save point.

Parameters

string $name
The table name

Returns

string
string

rollbackTransactionsource abstract public

rollbackTransaction( )

Rollsback a transaction

Returns

boolean
true on success, false otherwise

savePointSQLsource abstract public

savePointSQL( string $name )

Get the SQL for creating a save point.

Parameters

string $name
The table name

Returns

string
string

schemaDialectsource abstract public

schemaDialect( )

Get the schema dialect.

Used by Cake\Database\Schema package to reflect schema and generate schema.

If all the tables that use this Driver specify their own schemas, then this may return null.

Returns

Cake\Database\Schema\BaseSchema
\Cake\Database\Schema\BaseSchema

schemaValuesource public

schemaValue( mixed $value )

Escapes values for use in schema definitions.

Parameters

mixed $value
The value to escape.

Returns

string
String for use in schema definitions.

supportsQuotingsource public

supportsQuoting( )

Checks if the driver supports quoting

Returns

boolean
bool

supportsSavePointssource public

supportsSavePoints( )

Returns whether this driver supports save points for nested transactions

Returns

boolean
true if save points are supported, false otherwise

Methods used from Cake\Database\Driver\PDODriverTrait

_connectsource protected

_connect( string $dsn , array $config )

Establishes a connection to the database server

Parameters

string $dsn
A Driver-specific PDO-DSN
array $config
configuration to be used for creating connection

Returns

boolean
true on success

beginTransactionsource public

beginTransaction( )

Starts a transaction

Returns

boolean
true on success, false otherwise

commitTransactionsource public

commitTransaction( )

Commits a transaction

Returns

boolean
true on success, false otherwise

connectionsource public

connection( null|PDO $connection null )

Returns correct connection resource or object that is internally used If first argument is passed, it will set internal connection object or result to the value passed

Parameters

null|PDO $connection optional null
The PDO connection instance.

Returns

PDO
connection object used internally

disconnectsource public

disconnect( )

Disconnects from database server

isConnectedsource public

isConnected( )

Check whether or not the driver is connected.

Returns

boolean
bool

Overrides

Cake\Database\Driver::isConnected()

lastInsertIdsource public

lastInsertId( string|null $table null , string|null $column null )

Returns last id generated for a table or sequence in database

Parameters

string|null $table optional null
table name or sequence to get last insert value from
string|null $column optional null
the name of the column representing the primary key

Returns

string|integer
string|int

Overrides

Cake\Database\Driver::lastInsertId()

preparesource public

prepare( string|Cake\Database\Query $query )

Prepares a sql statement to be executed

Parameters

string|Cake\Database\Query $query
The query to turn into a prepared statement.

Returns

Cake\Database\StatementInterface
\Cake\Database\StatementInterface

quotesource public

quote( mixed $value , string $type )

Returns a value in a safe representation to be used in a query string

Parameters

mixed $value
The value to quote.
string $type
Type to be used for determining kind of quoting to perform

Returns

string
string

rollbackTransactionsource public

rollbackTransaction( )

Rollsback a transaction

Returns

boolean
true on success, false otherwise

supportsQuotingsource public

supportsQuoting( )

Checks if the driver supports quoting, as PDO_ODBC does not support it.

Returns

boolean
bool

Overrides

Cake\Database\Driver::supportsQuoting()

Methods used from Cake\Database\Dialect\PostgresDialectTrait

_expressionTranslatorssource protected

_expressionTranslators( )

Returns a dictionary of expressions to be transformed when compiling a Query to SQL. Array keys are method names to be called in this class

Returns

array
array

_insertQueryTranslatorsource protected

_insertQueryTranslator( Cake\Database\Query $query )

Modifies the original insert query to append a "RETURNING *" epilogue so that the latest insert id can be retrieved

Parameters

Cake\Database\Query $query
The query to translate.

Returns

Cake\Database\Query
\Cake\Database\Query

_transformDistinctsource protected

_transformDistinct( Cake\Database\Query $query )

Distinct clause needs no transformation

Parameters

Cake\Database\Query $query
The query to be transformed

Returns

Cake\Database\Query
\Cake\Database\Query

_transformFunctionExpressionsource protected

_transformFunctionExpression( Cake\Database\Driver\FunctionExpression $expression )

Receives a FunctionExpression and changes it so that it conforms to this SQL dialect.

Parameters

Cake\Database\Driver\FunctionExpression $expression
The function expression to convert to postgres SQL.

disableForeignKeySQLsource public

disableForeignKeySQL( )

enableForeignKeySQLsource public

enableForeignKeySQL( )

schemaDialectsource public

schemaDialect( )

Get the schema dialect.

Used by Cake\Database\Schema package to reflect schema and generate schema.

Returns

Cake\Database\Schema\PostgresSchema
\Cake\Database\Schema\PostgresSchema

Methods used from Cake\Database\SqlDialectTrait

_deleteQueryTranslatorsource protected

_deleteQueryTranslator( Cake\Database\Query $query )

Apply translation steps to delete queries.

Chops out aliases on delete query conditions as most database dialects do not support aliases in delete queries. This also removes aliases in table names as they frequently don't work either.

We are intentionally not supporting deletes with joins as they have even poorer support.

Parameters

Cake\Database\Query $query
The query to translate

Returns

Cake\Database\Query
The modified query

_selectQueryTranslatorsource protected

_selectQueryTranslator( Cake\Database\Query $query )

Apply translation steps to select queries.

Parameters

Cake\Database\Query $query
The query to translate

Returns

Cake\Database\Query
The modified query

_updateQueryTranslatorsource protected

_updateQueryTranslator( Cake\Database\Query $query )

Apply translation steps to update queries.

Parameters

Cake\Database\Query $query
The query to translate

Returns

Cake\Database\Query
The modified query

queryTranslatorsource public

queryTranslator( string $type )

Returns a callable function that will be used to transform a passed Query object. This function, in turn, will return an instance of a Query object that has been transformed to accommodate any specificities of the SQL dialect in use.

Parameters

string $type
the type of query to be transformed (select, insert, update, delete)

Returns

callable
callable

quoteIdentifiersource public

quoteIdentifier( string $identifier )

Quotes a database identifier (a column name, table name, etc..) to be used safely in queries without the risk of using reserved words

Parameters

string $identifier
The identifier to quote.

Returns

string
string

releaseSavePointSQLsource public

releaseSavePointSQL( string $name )

Returns a SQL snippet for releasing a previously created save point

Parameters

string $name
save point name

Returns

string
string

rollbackSavePointSQLsource public

rollbackSavePointSQL( string $name )

Returns a SQL snippet for rollbacking a previously created save point

Parameters

string $name
save point name

Returns

string
string

savePointSQLsource public

savePointSQL( string $name )

Returns a SQL snippet for creating a new transaction savepoint

Parameters

string $name
save point name

Returns

string
string

Properties summary

$_baseConfigsource

protected array

Base configuration settings for Postgres driver

[
    'persistent' => true,
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'cake',
    'schema' => 'public',
    'port' => 5432,
    'encoding' => 'utf8',
    'timezone' => null,
    'flags' => [],
    'init' => [],
]

Properties inherited from Cake\Database\Driver

$_autoQuotingsource

protected boolean

Indicates whether or not the driver is doing automatic identifier quoting for all queries

false

$_configsource

protected array

Configuration data.

Properties used from Cake\Database\Driver\PDODriverTrait

$_connectionsource

protected PDO

Instance of PDO.

Properties used from Cake\Database\Dialect\PostgresDialectTrait

$_endQuotesource

protected string

String used to end a database identifier quoting to make it safe

'"'

$_schemaDialectsource

protected Cake\Database\Schema\PostgresSchema

The schema dialect class for this driver

$_startQuotesource

protected string

String used to start a database identifier quoting to make it safe

'"'

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.Database.Driver.Postgres.html