PostgreSQL layer for DBO.
_alterIndexes( string $table , array $indexes )
Generate PostgreSQL index alteration statements for a table.
$table
$indexes
array
_quoteFunctionField( string $match )
Auxiliary function to quote matched (Model.fields)
from a preg_replace_callback call Quotes the fields in a function call.
$match
string
alterSchema( array $compare , string $table null )
Alter the Schema of a table.
$compare
$table
optional null array
DboSource::alterSchema()
boolean( mixed $data , boolean $quote false )
Translates between PHP boolean values and PostgreSQL boolean values
$data
$quote
optional false boolean
DboSource::boolean()
buildColumn( array $column )
Generate a Postgres-native column schema string
$column
string
DboSource::buildColumn()
buildIndex( array $indexes , string $table null )
Format indexes for create table
$indexes
$table
optional null string
DboSource::buildIndex()
column( string $real )
Converts database-layer column types to basic types
$real
string
DataSource::column()
connect( )
Connects to the database using options in the given configuration array.
boolean
MissingConnectionException
describe( Model|string $model )
Returns an array of the fields in given table name.
Model
|string $model
array
DataSource::describe()
enabled( )
Check if PostgreSQL is enabled/loaded
boolean
DataSource::enabled()
fetchResult( )
Fetches the next row from the current result set
array
DboSource::fetchResult()
fields( Model $model , string $alias null , mixed $fields array() , boolean $quote true )
Generates the fields list of an SQL query.
Model
$model
$alias
optional null $fields
optional array() $quote
optional true array
DboSource::fields()
getEncoding( )
Gets the database encoding
string
getSchemaName( )
Gets the schema name
string
DataSource::getSchemaName()
getSequence( string|Model $table , string $field 'id' )
Gets the associated sequence for the given table/field
Model
$table
$field
optional 'id' string
index( string $model )
Returns an array of the indexes in given datasource name.
$model
array
DboSource::index()
lastInsertId( string $source null , string $field 'id' )
Returns the ID generated from the previous INSERT operation.
$source
optional null $field
optional 'id' integer
DboSource::lastInsertId()
length( string $real )
Gets the length of a database-native column description, or null if no length
$real
integer
DboSource::length()
limit( integer $limit , integer $offset null )
Returns a limit statement in the correct format for the particular database.
$limit
$offset
optional null string
DboSource::limit()
listSources( mixed $data null )
Returns an array of tables in the database. If there are no tables, an error is raised and the application exits.
$data
optional null array
DataSource::listSources()
name( string $data )
Prepares field names to be quoted by parent
$data
string
DboSource::name()
nestedTransactionSupported( )
Check if the server support nested transactions
boolean
DboSource::nestedTransactionSupported()
renderStatement( string $type , array $data )
Overrides DboSource::renderStatement to handle schema generation with Postgres-style indexes
$type
$data
string
DboSource::renderStatement()
resetSequence( string $table , string $column )
Reset a sequence based on the MAX() value of $column. Useful for resetting sequences after using insertMulti().
$table
$column
boolean
DboSource::resetSequence()
resultSet( array $results )
resultSet method
$results
setEncoding( mixed $enc )
Sets the database encoding
$enc
boolean
truncate( string|Model $table , boolean $reset false )
Deletes all the records in a table and drops all associated auto-increment sequences
Model
$table
$reset
optional false boolean
DboSource::truncate()
__construct( array $config null , boolean $autoConnect true )
Constructor
$config
optional null $autoConnect
optional true MissingConnectionException
DataSource::__construct()
__destruct( )
Used for storing in cache the results of the in-memory methodCache
DataSource::__destruct()
_buildFieldParameters( string $columnString , array $columnData , string $position )
Build the field parameters, in a position
$columnString
$columnData
$position
string
_constructVirtualFields( Model $Model , string $alias , array $fields )
Converts model virtual fields into sql expressions to be fetched later
Model
$Model
$alias
$fields
array
_dropTable( type $table )
Generate a "drop table" statement for a single table
$table
string
_execute( string $sql , array $params array() , array $prepareOptions array() )
Executes given SQL statement.
$sql
$params
optional array() $prepareOptions
optional array() mixed
PDOException
_fetchHasAndBelongsToMany( Model $Model , string $query , array $ids , string $association )
Fetch 'hasAndBelongsToMany' associations.
Model
$Model
$query
$ids
$association
array
_fetchHasMany( Model $Model , string $query , array $ids )
Fetch 'hasMany' associations.
Model
$Model
$query
$ids
array
_filterResults( array $resultSet , Model $Model , array $filtered array() )
Passes association results through afterFind filters of the corresponding model.
The primary model is always excluded, because the filtering is later done by Model::_filterResults().
$resultSet
Model
$Model
$filtered
optional array() array
_filterResultsInclusive( array $resultSet , Model $Model , array $toBeFiltered array() )
Passes association results through afterFind filters of the corresponding model.
Similar to DboSource::_filterResults(), but this filters only specified models. The primary model can not be specified, because this call DboSource::_filterResults() internally.
$resultSet
Model
$Model
$toBeFiltered
optional array() array
_getJoins( Model $Model )
Returns an array of SQL JOIN conditions from a model's associations.
Model
$Model
array
_matchRecords( Model $Model , mixed $conditions null )
Gets a list of record IDs for the given conditions. Used for multi-record updates and deletes in databases that do not support aliases in UPDATE/DELETE queries.
Model
$Model
$conditions
optional null array
_mergeAssociation( array $data , array $merge , string $association , string $type , boolean $selfJoin false )
Merge association of merge into data
$data
$merge
$association
$type
$selfJoin
optional false _mergeConditions( mixed $query , mixed $assoc )
Merges a mixed set of string/array conditions.
$query
$assoc
array
_mergeHasMany( array $resultSet , array $assocResultSet , string $association , Model $Model )
Merge the results of 'hasMany' associations.
Note: this function also deals with the formatting of the data.
$resultSet
$assocResultSet
$association
Model
$Model
_parseKey( string $key , mixed $value , Model $Model null )
Extracts a Model.field identifier and an SQL condition operator from a string, formats and inserts values, and composes them into an SQL snippet.
$key
$value
Model
$Model
optional null string
_prepareUpdateFields( Model $Model , array $fields , boolean $quoteValues true , boolean $alias false )
Quotes and prepares fields and values for an SQL UPDATE statement
Model
$Model
$fields
$quoteValues
optional true $alias
optional false array
_quoteFields( string $conditions )
Quotes Model.fields
$conditions
string
_quoteMatchedField( string $match )
Auxiliary function to quote matches Model.fields
from a preg_replace_callback call
$match
string
_rollbackNested( )
Rollback a nested transaction
boolean
_scrubQueryData( array $data )
Private helper method to remove query metadata in given data array.
$data
array
_writeQueryCache( string $sql , mixed $data , array $params array() )
Writes a new key for the in memory sql query cache
$sql
$data
$params
optional array() begin( )
Begin a transaction
boolean
DataSource::begin()
buildAssociationQuery( Model $Model , array $queryData )
Builds an SQL statement.
This is merely a convenient wrapper to DboSource::buildStatement().
Model
$Model
$queryData
string
DboSource::buildStatement()
buildJoinStatement( array $join )
Builds and generates a JOIN condition from an array. Handles final clean-up before conversion.
$join
string
DboSource::renderJoinStatement()
DboSource::buildStatement()
buildStatement( array $query , Model $Model )
Builds and generates an SQL statement from an array. Handles final clean-up before conversion.
$query
Model
$Model
string
DboSource::renderStatement()
buildTableParameters( array $parameters , string $table null )
Format parameters for create table
$parameters
$table
optional null array
cacheMethod( string $method , string $key , mixed $value null )
Cache a value into the methodCaches. Will respect the value of DboSource::$cacheMethods. Will retrieve a value from the cache if $value is null.
If caching is disabled and a write is attempted, the $value will be returned. A read will either return the value or null.
$method
$key
$value
optional null mixed
calculate( Model $Model , string $func , array $params array() )
Returns an SQL calculation, i.e. COUNT() or MAX()
Model
$Model
$func
$params
optional array() string
close( )
Disconnects database, kills the connection and says the connection is closed.
DataSource::close()
commit( )
Commit a transaction
boolean
DataSource::commit()
conditionKeysToString( array $conditions , boolean $quoteValues true , Model $Model null )
Creates a WHERE clause by parsing given conditions array. Used by DboSource::conditions().
$conditions
$quoteValues
optional true Model
$Model
optional null string
conditions( mixed $conditions , boolean $quoteValues true , boolean $where true , Model $Model null )
Creates a WHERE clause by parsing given conditions data. If an array or string conditions are provided those conditions will be parsed and quoted. If a boolean is given it will be integer cast as condition. Null will return 1 = 1.
Results of this method are stored in a memory cache. This improves performance, but because the method uses a hashing algorithm it can have collisions. Setting DboSource::$cacheMethods to false will disable the memory cache.
$conditions
$quoteValues
optional true $where
optional true Model
$Model
optional null string
create( Model $Model , array $fields null , array $values null )
The "C" in CRUD
Creates new records in the database.
Model
$Model
$fields
optional null $values
optional null boolean
DataSource::create()
createSchema( CakeSchema $schema , string $tableName null )
Generate a database-native schema for the given Schema object
CakeSchema
$schema
$tableName
optional null string
defaultConditions( Model $Model , string|array|boolean $conditions , boolean $useAlias true )
Creates a default set of conditions from the model if $conditions is null/empty. If conditions are supplied then they will be returned. If a model doesn't exist and no conditions were provided either null or false will be returned based on what was input.
Model
$Model
$conditions
$useAlias
optional true mixed
DboSource::update()
DboSource::conditions()
delete( Model $Model , mixed $conditions null )
Generates and executes an SQL DELETE statement. For databases that do not support aliases in UPDATE queries.
Model
$Model
$conditions
optional null boolean
DataSource::delete()
dropSchema( CakeSchema $schema , string $table null )
Generate a "drop table" statement for the given Schema object
CakeSchema
$schema
$table
optional null string
execute( string $sql , array $options array() , array $params array() )
Queries the database with given SQL statement, and obtains some metadata about the result (rows affected, timing, any errors, number of rows in resultset). The query is also logged. If Configure::read('debug') is set, the log is shown all the time, else it is only shown on errors.
$sql
$options
optional array() $params
optional array() mixed
expression( string $expression )
Returns an object to represent a database expression in a query. Expression objects are not sanitized or escaped.
$expression
stdClass
fetchAll( string $sql , array|boolean $params array() , array $options array() )
Returns an array of all result rows for a given SQL query.
Returns false if no rows matched.
cache
- Returns the cached version of the query, if exists and stores the result in cache. This is a non-persistent cache, and only lasts for a single request. This option defaults to true. If you are directly calling this method, you can disable caching by setting $options to false
$sql
$params
optional array() $options
optional array() boolean|array
fetchAssociated( Model $Model , string $query , array $ids )
Fetch 'hasMany' associations.
This is just a proxy to maintain BC.
Model
$Model
$query
$ids
array
DboSource::_fetchHasMany()
fetchRow( string $sql null )
Returns a row from current resultset as an array
$sql
optional null array
fetchVirtualField( array $result )
Modifies $result array to place virtual fields in model entry where they belongs to
$result
field( string $name , string $sql )
Returns a single field of the first of query results for a given SQL query, or false if empty.
$name
$sql
mixed
flushMethodCache( )
Empties the method caches. These caches are used by DboSource::name() and DboSource::conditions()
fullTableName( Model|string $model , boolean $quote true , boolean $schema true )
Gets full table name including prefix
Model
|string $model
$quote
optional true $schema
optional true string
generateAssociationQuery( Model $Model , Model|null $LinkModel , string $type , string $association , array $assocData , array $queryData , boolean $external )
Generates a query or part of a query from a single model or two associated models.
Builds a string containing an SQL statement template.
Model
$Model
Model
|null $LinkModel
$type
$association
$assocData
$queryData
$external
mixed
getConstraint( string $type , Model $Model , Model $LinkModel , string $association , array $assocData , string $association2 null )
Returns a conditions array for the constraint between two models.
$type
Model
$Model
Model
$LinkModel
$association
$assocData
$association2
optional null array
getLog( boolean $sorted false , boolean $clear true )
Get the query log as an array.
$sorted
optional false $clear
optional true array
getQueryCache( string $sql , array $params array() )
Returns the result for a sql query if it is already cached
$sql
$params
optional array() mixed
getVersion( )
Gets the version string of the database server
string
group( string|array $fields , Model $Model null )
Create a GROUP BY SQL clause.
$fields
Model
$Model
optional null string
hasAny( Model $Model , string $sql )
Checks if the specified table contains any record matching specified SQL
Model
$Model
$sql
boolean
hasResult( )
Checks if the result is valid
boolean
identifier( string $identifier )
Returns an object to represent a database identifier in a query. Expression objects are not sanitized or escaped.
$identifier
stdClass
insertMulti( string $table , array $fields , array $values )
Inserts multiple values into a table
$table
$fields
$values
boolean
introspectType( string $value )
Guesses the data type of an array
$value
string
isConnected( )
Checks if the source is connected to the database.
boolean
lastAffected( mixed $source null )
Returns number of affected rows in previous database operation. If no previous operation exists, this returns false.
$source
optional null integer
DataSource::lastAffected()
lastError( PDOStatement $query null )
Returns a formatted error message from previous database operation.
$query
optional null string
lastNumRows( mixed $source null )
Returns number of rows in previous resultset. If no previous resultset exists, this returns false.
$source
optional null integer
DataSource::lastNumRows()
logQuery( string $sql , array $params array() )
Log given SQL query.
$sql
$params
optional array() order( array|string $keys , string $direction 'ASC' , Model $Model null )
Returns an ORDER BY clause as a string.
$keys
$direction
optional 'ASC' Model
$Model
optional null string
prepareFields( Model $Model , array $queryData )
Prepares fields required by an SQL statement.
When no fields are set, all the $Model fields are returned.
Model
$Model
$queryData
array
query( )
DataSource Query abstraction
resource
queryAssociation( Model $Model , Model $LinkModel , string $type , string $association , array $assocData , array $queryData , boolean $external , array $resultSet , integer $recursive , array $stack )
Queries associations.
Used to fetch results on recursive models.
Model
$Model
Model
$LinkModel
$type
$association
$assocData
$queryData
$external
$resultSet
$recursive
$stack
mixed
CakeException
rawQuery( string $sql , array $params array() )
Executes given SQL statement.
$sql
$params
optional array() mixed
read( Model $Model , array $queryData array() , integer $recursive null )
The "R" in CRUD
Reads record(s) from the database.
Model
$Model
$queryData
optional array() $recursive
optional null mixed
DataSource::read()
readTableParameters( string $name )
Read additional table parameters
$name
array
reconnect( array $config array() )
Reconnects to database server with optional new settings
$config
optional array() boolean
renderJoinStatement( array $data )
Renders a final SQL JOIN statement
$data
string
resolveKey( Model $Model , string $key , string $assoc null )
Returns a key formatted like a string Model.fieldname(i.e. Post.title, or Country.name)
Model
$Model
$key
$assoc
optional null string
DataSource::resolveKey()
rollback( )
Rollback a transaction
boolean
DataSource::rollback()
showLog( boolean $sorted false )
Outputs the contents of the queries log. If in a non-CLI environment the sql_log element will be rendered and output. If in a CLI environment, a plain text log is generated.
$sorted
optional false update( Model $Model , array $fields array() , array $values null , mixed $conditions null )
Generates and executes an SQL UPDATE statement for given model, fields, and values. For databases that do not support aliases in UPDATE queries.
Model
$Model
$fields
optional array() $values
optional null $conditions
optional null boolean
DataSource::update()
value( string $data , string $column null , boolean $null true )
Returns a quoted and escaped string of $data for use in an SQL statement.
$data
$column
optional null $null
optional true string
_cacheDescription( string $object , mixed $data null )
Cache the DataSource description
$object
$data
optional null mixed
insertQueryData( string $query , array $data , string $association , Model $Model , array $stack )
Replaces {$__cakeID__$}
and {$__cakeForeignKey__$}
placeholders in query data.
$query
$data
$association
Model
$Model
$stack
mixed
setConfig( array $config array() )
Sets the configuration for the DataSource. Merges the $config information with the _baseConfig and the existing $config property.
$config
optional array() _mergeVars( array $properties , string $class , boolean $normalize true )
Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'
This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.
$properties
$class
$normalize
optional true _set( array $properties array() )
Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.
$properties
optional array() _stop( integer|string $status 0 )
Stop execution of the current script. Wraps exit() making testing easier.
$status
optional 0 dispatchMethod( string $method , array $params array() )
Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array
$method
$params
optional array() mixed
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.
$msg
$type
optional LOG_ERR $scope
optional null boolean
requestAction( string|array $url , array $extra array() )
Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.
Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()
POST and GET data can be simulated in requestAction. Use $extra['url']
for GET data. The $extra['data']
parameter allows POST data simulation.
$url
$extra
optional array() mixed
toString( )
Object-to-string conversion. Each class can override this method as necessary.
string
protected boolean
Indicates whether there was a change on the cached results on the methods of this class This will be used for storing in a more persistent cache
false
protected integer
Maximum number of items in query log
This is to prevent query log taking over too much memory.
200
protected array
Default fields that are used by the DBO
array( 'conditions' => array(), 'fields' => null, 'table' => null, 'alias' => null, 'order' => null, 'limit' => null, 'joins' => array(), 'group' => null, 'offset' => null )
public string
String to hold how many rows were affected by the last SQL operation.
null
public boolean
Whether or not to cache the results of DboSource::name() and DboSource::conditions() into the memory cache. Set to false to disable the use of the memory cache.
true
public array
List of engine specific additional field parameters used on table creating
array()
public array
index definition, standard cake, primary, index, unique
array('PRI' => 'primary', 'MUL' => 'index', 'UNI' => 'unique')
public static array
Caches result from query parsing operations. Cached results for both DboSource::name() and DboSource::conditions() will be stored here. Method caching uses md5()
. If you have problems with collisions, set DboSource::$cacheMethods to false.
array()
public array
List of table engine specific parameters used on table creating
array()
public boolean
Flag to support nested transactions. If it is set to false, you will be able to use the transaction methods (begin/commit/rollback), but just the global transaction will be executed.
false
protected array
Holds references to descriptions loaded by the DataSource
array()
protected boolean
Whether or not this DataSource is in the middle of a transaction
false
public boolean
Whether or not source data like available tables and schema descriptions should be cached
true
© 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/2.7/class-Postgres.html