Properties

$adapter

$adapter : \Dewdrop\Db\Adapter

The Dewdrop DB adapter associated with this driver.

Type

\Dewdrop\Db\Adapter

$pdo

$pdo : \PDO

The PDO connection used to talk to Postgres.

Type

\PDO

Methods

__construct()

__construct(\Dewdrop\Db\Adapter  $adapter, \PDO  $pdo) 

Associate this driver with the provided adapter and PDO connection.

Parameters

\Dewdrop\Db\Adapter $adapter
\PDO $pdo

getConnection()

getConnection() : mixed

Retrieve the raw connection object used by this driver. For example, this could be a wpdb object or a PDO connection object.

Returns

mixed

fetchAll()

fetchAll(mixed  $sql, array  $bind = array(), string  $fetchMode = null) : array

Fetch all results for the supplied SQL query.

The SQL query can be a simple string or a Select object. The bind array should supply values for all the parameters, either named or numeric, in the query. And the fetch mode should match one of these 4 class constants from \Dewdrop\Db\Adapter: ARRAY_A, ARRAY_N, OBJECT, or OBJECT_K.

Parameters

mixed $sql
array $bind
string $fetchMode

Returns

array

fetchAllWithGenerator()

fetchAllWithGenerator(string|\Dewdrop\Db\Select  $sql, array  $bind = array(), string  $fetchMode = null) : \Generator

Fetch all results for the supplied SQL query using a PHP generator.

This approach uses less memory, but the result set has a forward-only cursor.

The SQL query can be a simple string or a Select object. The bind array should supply values for all the parameters, either named or numeric, in the query. And the fetch mode should match one of these 4 class constants from \Dewdrop\Db\Adapter: ARRAY_A, ARRAY_N, OBJECT, or OBJECT_K.

Parameters

string|\Dewdrop\Db\Select $sql
array $bind
string $fetchMode

Throws

\Dewdrop\Exception

Returns

\Generator

fetchCol()

fetchCol(string|\Dewdrop\Db\Select  $sql, array  $bind = array()) : array

Fetch a single column of the results from the supplied SQL statement.

Parameters

string|\Dewdrop\Db\Select $sql
array $bind

Returns

array

fetchOne()

fetchOne(string|\Dewdrop\Db\Select  $sql, array  $bind = array()) : mixed

Fetch a single scalar value from the results of the supplied SQL statement.

Parameters

string|\Dewdrop\Db\Select $sql
array $bind

Returns

mixed

query()

query(string|\Dewdrop\Db\Select  $sql, array  $bind = array(), string  $fetchMode = null) : mixed

Run the supplied query, binding the supplied data to the statement prior to execution.

Parameters

string|\Dewdrop\Db\Select $sql
array $bind
string $fetchMode

Returns

mixed

lastInsertId()

lastInsertId() : integer|null

Get the last insert ID from the driver after performing an insert on a table with an auto-incrementing primary key, or null on failure.

Returns

integer|null

getQuoteIdentifierSymbol()

getQuoteIdentifierSymbol() : string

Returns the symbol the adapter uses for delimited identifiers.

Returns

string

quoteInternal()

quoteInternal(string  $input) : string

Quote the supplied input using PDO's quote() method.

Parameters

string $input

Returns

string

listTables()

listTables() : array

Returns a list of the tables in the database.

Returns

array

listForeignKeyReferences()

listForeignKeyReferences(string  $tableName) : array

Returns an associative array containing all the foreign key relationships associated with the supplied table.

The array has the following format:

array(
    'column_name' => array(
        'table'  => 'foreign_table',
        'column' => 'foreign_column'
    )
)

Parameters

string $tableName

Returns

array

listUniqueConstraints()

listUniqueConstraints(string  $tableName) : array

Returns an associative array containing all the unique constraints on a table.

The array has the following format:

array(
    'key_name' => array(
        sequence_in_index => 'column_name'
    )
)

Parameters

string $tableName

Returns

array

describeTable()

describeTable(string  $tableName) : array

Returns the column descriptions for a table.

The return value is an associative array keyed by the column name, as returned by the RDBMS.

The value of each array element is an associative array with the following keys:

SCHEMA_NAME => string; name of database or schema TABLE_NAME => string; COLUMN_NAME => string; column name COLUMN_POSITION => number; ordinal position of column in table DATA_TYPE => string; SQL datatype name of column DEFAULT => string; default expression of column, null if none NULLABLE => boolean; true if column can have nulls LENGTH => number; length of CHAR/VARCHAR SCALE => number; scale of NUMERIC/DECIMAL PRECISION => number; precision of NUMERIC/DECIMAL UNSIGNED => boolean; unsigned property of an integer type PRIMARY => boolean; true if column is part of the primary key PRIMARY_POSITION => integer; position of column in primary key IDENTITY => integer; true if column is auto-generated with unique values

Parameters

string $tableName

Returns

array

mapNativeTypeToGenericType()

mapNativeTypeToGenericType(string  $nativeType, mixed  $length) : string

Determine the appropriate generic data type for the supplied Postgres native data type.

1) boolean - A true/false value. 2) integer - Whole number. 3) float - Floating point number. 4) text - Fixed-length, shorter text value. 5) clob - Character large object. Large text field. 6) timestamp - Date and time combined. 7) date - Just a date. 8) time - Just the time. 9) money - Get money, get paid. 10) blob - Binary large object.

Parameters

string $nativeType
mixed $length

Throws

\Dewdrop\Exception

Returns

string

beginTransaction()

beginTransaction() : void

Start a new transaction.

commit()

commit() : void

Commit the current transaction.

rollback()

rollback() : void

Rollback the current transaction.

prepareSelectForTotalRowCalculation()

prepareSelectForTotalRowCalculation(\Dewdrop\Db\Select  $select) : void

Use the OVER() window function to store a count of the total number of rows that would have been retrieved if no LIMIT clause was applied on the supplied Select object. The total row count will be added to the result set as a _dewdrop_count column.

Parameters

\Dewdrop\Db\Select $select

fetchTotalRowCount()

fetchTotalRowCount(array  $resultSet) : integer

Use the supplied resultset to determine the total number of rows that would have been fetch with no LIMIT clause present. This will only really work if you called the prepareSelectForTotalRowCalculation() method on the Select that retrieved the resultset.

Parameters

array $resultSet

Returns

integer

getCaseInsensitiveLikeOperator()

getCaseInsensitiveLikeOperator() : string

Return the operator that can be used for case-insensitive LIKE comparisons.

Returns

string

truncateTimeStampToDate()

truncateTimeStampToDate(string  $timestamp) : string

Use the functions available in the RDBMS to truncate the provided timestamp column to a date.

Parameters

string $timestamp

Returns

string

listMissingForeignKeyIndexes()

listMissingForeignKeyIndexes(  $tableName) : mixed

List all missing foreign key indexes on the supplied table.

The resulting array has the following shape:

[
    ['foreign_key_id'],
    ['multi_column_foreign_key_id', 'second_column_foreign_key_id']
]

Parameters

$tableName

Returns

mixed

generateCreateIndexStatement()

generateCreateIndexStatement(string  $tableName, array  $columnNames) : string

Generate an SQL statement to create an index on the supplied table and column(s).

Parameters

string $tableName
array $columnNames

Returns

string

generateAnalyzeTableStatement()

generateAnalyzeTableStatement(string  $tableName) : string

Generate an SQL statement to analyze a table.

Parameters

string $tableName

Returns

string