Index: includes/database/pgsql/database.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/pgsql/database.inc,v
retrieving revision 1.24
diff -u -p -r1.24 database.inc
--- includes/database/pgsql/database.inc	26 May 2009 08:50:04 -0000	1.24
+++ includes/database/pgsql/database.inc	27 May 2009 00:45:41 -0000
@@ -42,6 +42,17 @@ class DatabaseConnection_pgsql extends D
 
     $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;
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.255
diff -u -p -r1.255 filter.module
--- modules/filter/filter.module	24 May 2009 19:12:12 -0000	1.255
+++ modules/filter/filter.module	27 May 2009 00:45:41 -0000
@@ -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])) {
