public function DatabaseConnection_pgsql::prepareQuery

public DatabaseConnection_pgsql::prepareQuery($query)

Prepares a query string and returns the prepared statement.

This method caches prepared statements, reusing them when possible. It also prefixes tables names enclosed in curly-braces.

Parameters

$query: The query string as SQL, with curly-braces surrounding the table names.

Return value

DatabaseStatementInterface A PDO prepared statement ready for its execute() method.

Overrides DatabaseConnection::prepareQuery

File

includes/database/pgsql/database.inc, line 77
Database interface code for PostgreSQL database servers.

Class

DatabaseConnection_pgsql

Code

public function prepareQuery($query) {
  // mapConditionOperator converts LIKE operations to ILIKE for consistency
  // with MySQL. However, Postgres does not support ILIKE on bytea (blobs)
  // fields.
  // To make the ILIKE operator work, we type-cast bytea fields into text.
  // @todo This workaround only affects bytea fields, but the involved field
  //   types involved in the query are unknown, so there is no way to
  //   conditionally execute this for affected queries only.
  return parent::prepareQuery(preg_replace('/ ([^ ]+) +(I*LIKE|NOT +I*LIKE) /i', ' ${1}::text ${2} ', $query));
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!database!pgsql!database.inc/function/DatabaseConnection_pgsql::prepareQuery/7.x