Index: trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm
===================================================================
--- trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm	(revision 13071)
+++ trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm	(revision 13087)
@@ -1,5 +1,5 @@
 # Copyright (c) 2004  Joshua Hoblitt
 #
-# $Id: SQL.pm,v 1.28 2007-04-28 00:44:38 jhoblitt Exp $
+# $Id: SQL.pm,v 1.29 2007-05-01 02:00:07 jhoblitt Exp $
 
 package Nebulous::Server::SQL;
@@ -63,4 +63,42 @@
         WHERE ext_id = ?
         FOR UPDATE
+    },
+    new_object_xattr  => qq{
+        INSERT INTO storage_object_xattr
+            SELECT
+                so_id,
+                ?,
+                ?        
+            FROM storage_object
+            WHERE ext_id = ?
+    },
+    replace_object_xattr  => qq{
+        REPLACE INTO storage_object_xattr
+            SELECT
+                so_id,
+                ?,
+                ?        
+            FROM storage_object
+            WHERE ext_id = ?
+    },
+    list_object_xattr    => qq{
+        SELECT storage_object_xattr.name
+        FROM storage_object
+        JOIN storage_object_xattr
+        USING (so_id)
+        WHERE ext_id = ?
+    },
+    get_object_xattr    => qq{
+        SELECT storage_object_xattr.value
+        FROM storage_object
+        JOIN storage_object_xattr
+        USING (so_id)
+        WHERE ext_id = ?
+            AND name = ?
+    },
+    remove_object_xattr    => qq{
+        DELETE FROM storage_object_xattr
+        WHERE so_id = (SELECT so_id from storage_object where ext_id = ?)
+            AND name = ?
     },
     set_write_lock      => qq{
@@ -179,4 +217,5 @@
 DROP TABLE IF EXISTS storage_object;
 DROP TABLE IF EXISTS storage_object_attr;
+DROP TABLE IF EXISTS storage_object_xattr;
 DROP TABLE IF EXISTS instance;
 DROP TABLE IF EXISTS lock_record;
@@ -226,4 +265,13 @@
     PRIMARY KEY(so_id),
     KEY(class_id)
+) ENGINE=innodb;
+
+###
+
+CREATE TABLE storage_object_xattr (
+    so_id BIGINT NOT NULL AUTO_INCREMENT,
+    name VARCHAR(255),
+    value BLOB,
+    PRIMARY KEY(so_id, name)
 ) ENGINE=innodb;
 
