summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/database/pgsql/database.inc11
-rw-r--r--modules/filter/filter.module2
2 files changed, 12 insertions, 1 deletions
diff --git a/includes/database/pgsql/database.inc b/includes/database/pgsql/database.inc
index c27e8203c..ba82aa0b0 100644
--- a/includes/database/pgsql/database.inc
+++ b/includes/database/pgsql/database.inc
@@ -42,6 +42,17 @@ class DatabaseConnection_pgsql extends DatabaseConnection {
$options += $this->defaultOptions();
+ // The PDO PostgreSQL driver has a bug which
+ // doesn't type cast booleans correctly when
+ // parameters are bound using associative
+ // arrays.
+ // See http://bugs.php.net/bug.php?id=48383
+ foreach ($args as &$value) {
+ if (is_bool($value)) {
+ $value = (int) $value;
+ }
+ }
+
try {
if ($query instanceof DatabaseStatementInterface) {
$stmt = $query;
diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index 45c2b14e5..4e5907267 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -377,7 +377,7 @@ function filter_list_format($format) {
if (!isset($filters[$format])) {
$filters[$format] = array();
- $result = db_query("SELECT * FROM {filter} WHERE format = :format ORDER BY weight, module, delta", array(':format' => $format));
+ $result = db_query("SELECT * FROM {filter} WHERE format = :format ORDER BY weight, module, delta", array(':format' => (int) $format));
foreach ($result as $filter) {
$list = module_invoke($filter->module, 'filter', 'list');
if (isset($list) && is_array($list) && isset($list[$filter->delta])) {