--- views.install.orig  2007-04-20 14:43:24.227383000 -0500
+++ views.install       2007-04-20 14:56:07.039055750 -0500
@@ -433,14 +433,30 @@ function views_update_14() {
  */
 function views_make_cache_table(&$ret) {
   if (!db_table_exists('cache_views')) {
-    $ret[] = update_sql("CREATE TABLE {cache_views} (
-        cid varchar(255) NOT NULL default '',
-        data longblob,
-        expire int NOT NULL default '0',
-        created int NOT NULL default '0',
-        headers text,
-        PRIMARY KEY (cid),
-        INDEX expire (expire)
-      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+    switch ($GLOBALS['db_type']) {
+      case 'mysqli':
+      case 'mysql':
+        $ret[] = update_sql("CREATE TABLE {cache_views} (
+            cid varchar(255) NOT NULL default '',
+            data longblob,
+            expire int NOT NULL default '0',
+            created int NOT NULL default '0',
+            headers text,
+            PRIMARY KEY (cid),
+            INDEX expire (expire)
+          ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+        break;
+      case 'pgsql':
+        $ret[] = update_sql("CREATE TABLE {cache_views} (
+            cid varchar(255) NOT NULL default '',
+            data bytea,
+            expire integer NOT NULL default '0',
+            created integer NOT NULL default '0',
+            headers text,
+            PRIMARY KEY (cid)
+          ) ");
+        $ret[] = update_sql("CREATE INDEX {cache_views_expire}
+            ON {cache_views} (expire) ");
+        break;
   }
 }
