diff options
-rw-r--r-- | includes/database/pgsql/database.inc | 11 | ||||
-rw-r--r-- | modules/filter/filter.module | 2 |
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])) { |