diff -urN asset.orig/asset.install asset/asset.install
--- asset.orig/asset.install	2008-01-29 21:49:46.000000000 +0100
+++ asset/asset.install	2008-05-06 17:13:13.000000000 +0200
@@ -33,9 +33,35 @@
         status tinyint unsigned NOT NULL default '0',
         PRIMARY KEY  (aid,rid)
       ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      break;
             
     case 'pgsql':
-      //TODO: postgresql 
+      db_query("CREATE TABLE {asset} (
+        aid SERIAL,
+        type varchar(32) NOT NULL default '',
+        dirname varchar(128) NOT NULL default '',
+        extension varchar(128) NOT NULL default '',
+        filename varchar(255) NOT NULL default '',
+        filesize bigint NOT NULL default '0',
+        uid integer NOT NULL,
+        status smallint NOT NULL, 
+        author varchar(128) NOT NULL default '',
+        title varchar(128) NOT NULL default '',
+        description text NOT NULL,
+        PRIMARY KEY (aid)
+      )");
+      db_query("CREATE TABLE {asset_node} (
+        aid integer NOT NULL,
+        nid integer NOT NULL,
+        refs integer NOT NULL default '0',
+        PRIMARY KEY (aid,nid)
+      )");
+      db_query("CREATE TABLE {asset_role} (
+        aid integer NOT NULL,
+        rid integer NOT NULL,
+        status smallint NOT NULL default '0',
+        PRIMARY KEY (aid,rid)
+      )");
       break;
   }
   drupal_set_message(t('Asset tables have been configured.'));
@@ -45,11 +71,10 @@
   switch ($GLOBALS['db_type']) {
     case 'mysql':
     case 'mysqli':
+    case 'pgsql':
       $ret[] = update_sql("ALTER TABLE {asset} ADD COLUMN type varchar(32) NOT NULL default ''");
       $ret[] = update_sql("UPDATE {asset} SET type='local'");
       break;
-    case 'pgsql':
-      break;
   }
   return $ret; 
 }
@@ -58,9 +83,8 @@
   switch ($GLOBALS['db_type']) {
     case 'mysql':
     case 'mysqli':
-      $ret[] = update_sql("UPDATE {asset} SET dirname = TRIM('/' FROM REPLACE(dirname,'sites/default/files',''))");
-      break;
     case 'pgsql':
+      $ret[] = update_sql("UPDATE {asset} SET dirname = TRIM('/' FROM REPLACE(dirname,'sites/default/files',''))");
       break;
   }
   return $ret; 
@@ -79,6 +103,15 @@
         status tinyint unsigned NOT NULL default '0',
         PRIMARY KEY  (aid,rid)
       ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      break;
+    case 'pgsql':
+      $ret[] = update_sql("CREATE TABLE {asset_role} (
+        aid integer NOT NULL,
+        rid integer NOT NULL,
+        status smallint NOT NULL default '0',
+        PRIMARY KEY  (aid,rid)
+      )");
+      break;
   }
   return $ret;
 }
diff -urN asset.orig/asset_wizard.inc asset/asset_wizard.inc
--- asset.orig/asset_wizard.inc	2008-04-29 09:53:23.000000000 +0200
+++ asset/asset_wizard.inc	2008-05-06 17:23:08.000000000 +0200
@@ -484,13 +484,13 @@
     $crumbs[] = l('assets',$_GET['q'],array(),asset_build_query($query));
   
     // build directory list and filename options array
-    $sql = 'SELECT DISTINCT(a.aid) FROM {asset} a ';
+    $sql = 'SELECT DISTINCT(a.aid),a.filename FROM {asset} a ';
     $args = array();
     
     // for everyone but users with 'administer assets' access control, 
     // only get assets with proper permissions.
     if(user_access('administer assets')){
-      $sql .= 'WHERE a.dirname="%s" ';
+      $sql .= 'WHERE a.dirname=\'%s\' ';
       $args = array($dir);
     }
     else {
@@ -499,7 +499,7 @@
              . 'WHERE (a.uid = %d '
              . 'OR a.status = 1 '
              . 'OR (r.rid IN (%s) AND r.status = 1) ) '
-             . 'AND a.dirname="%s" ';
+             . 'AND a.dirname=\'%s\' ';
       $args = array($user->uid, join(array_keys($user->roles),','), $dir);
       //$sql .= 'WHERE a.dirname="%s" ';
       //$args = array($dir);
@@ -806,12 +806,12 @@
 function asset_wizard_directory_options($dir = ''){
   global $user;
   // build directory list and filename options array
-  $sql = 'SELECT DISTINCT(a.aid) FROM {asset} a ';
+  $sql = 'SELECT DISTINCT(a.aid),a.dirname FROM {asset} a ';
   $args = array();
   // for everyone but users with 'administer assets' access control, 
   // only get assets with proper permissions.
   if(user_access('administer assets')){
-    $sql .= 'WHERE a.dirname LIKE "%s%" ';
+    $sql .= 'WHERE a.dirname LIKE \'%s%\' ';
     $args = array($dir);
   }
   else{
@@ -819,12 +819,12 @@
            . 'WHERE (a.uid = %d '
            . 'OR a.status = 1 '
            . 'OR (r.rid IN (%s) AND r.status = 1) ) '
-           . 'AND a.dirname LIKE "%s%" ';
+           . 'AND a.dirname LIKE \'%s%\' ';
     $args = array($user->uid, join(array_keys($user->roles),','), $dir);
     // $sql .= 'WHERE a.dirname="%s" ';
     // $args = array($dir);
   }
-  $sql .= ' AND a.type = "directory" ORDER BY a.dirname ASC';
+  $sql .= ' AND a.type = \'directory\' ORDER BY a.dirname ASC';
   $result = db_query($sql, $args);
   $options = array();
   while($asset = db_fetch_object($result)){
diff -urN asset.orig/asset_youtube/asset_youtube.install asset/asset_youtube/asset_youtube.install
--- asset.orig/asset_youtube/asset_youtube.install	2008-01-29 21:49:47.000000000 +0100
+++ asset/asset_youtube/asset_youtube.install	2008-05-06 17:13:13.000000000 +0200
@@ -12,8 +12,13 @@
         username varchar(128) NOT NULL default '',
         PRIMARY KEY  (uid)
       ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      break;
     case 'pgsql':
-      //TODO: postgresql 
+      db_query("CREATE TABLE {asset_youtube_user} (
+        uid SERIAL,
+        username varchar(128) NOT NULL default '',
+        PRIMARY KEY (uid)
+      )");
       break;
   }
   drupal_set_message(t('Asset YouTube tables have been configured.'));
diff -urN asset.orig/asset_youtube/asset_youtube.install-pgsql.patch asset/asset_youtube/asset_youtube.install-pgsql.patch
--- asset.orig/asset_youtube/asset_youtube.install-pgsql.patch	1970-01-01 01:00:00.000000000 +0100
+++ asset/asset_youtube/asset_youtube.install-pgsql.patch	2008-05-06 17:13:13.000000000 +0200
@@ -0,0 +1,17 @@
+--- asset_youtube.install	2008-04-15 12:16:36.000000000 +0200
++++ asset_youtube.install	2008-04-15 12:16:55.000000000 +0200
+@@ -12,8 +12,13 @@
+         username varchar(128) NOT NULL default '',
+         PRIMARY KEY  (uid)
+       ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET utf8 */;");
++      break;
+     case 'pgsql':
+-      //TODO: postgresql 
++      db_query("CREATE TABLE {asset_youtube_user} (
++        uid SERIAL,
++        username varchar(128) NOT NULL default '',
++        PRIMARY KEY (uid)
++      )");
+       break;
+   }
+   drupal_set_message(t('Asset YouTube tables have been configured.'));
