Attached is a patch to sqlResources.xml that includes Steve Belt's
Hypersonic SQL additions, taken from his recent post:

  http://www.mail-archive.com/[email protected]/msg02395.html

I cannot attest to the correctness of his changes, since I don't have
Hypersonic SQL installed.  What I can say is that if his patches worked,
they have been properly merged into the current file.

I'm BCC'ing Steve so that he can try this, too.

Instructions to use this are included in Steve's message.  As Danny
suggested in a followup note:

  http://www.mail-archive.com/[email protected]/msg02410.html

perhaps someone would like to write the instructions to use Hypersonic SQL,
so that they can be included in the docs.

The patch also includes one other change: the inclusion of a primary key on
the mailing list table, consisting of the list name and list subscriber, to
allow the database to help enforce uniqueness.

        --- Noel
Index: src/conf/sqlResources.xml
===================================================================
RCS file: /home/cvspublic/jakarta-james/src/conf/sqlResources.xml,v
retrieving revision 1.13
diff -u -r1.13 sqlResources.xml
--- src/conf/sqlResources.xml   23 Aug 2002 04:11:20 -0000      1.13
+++ src/conf/sqlResources.xml   26 Aug 2002 16:38:58 -0000
@@ -21,6 +21,7 @@
     <dbMatcher db="mysql" databaseProductName="my.*"/>
     <dbMatcher db="postgresql" databaseProductName="postgres.*"/>
     <dbMatcher db="sapdb" databaseProductName="sap.*"/>
+    <dbMatcher db="hypersonic" databaseProductName="HypersonicSQL"/>
 </dbMatchers>
 
 <!-- SQL statements to use for various components.
@@ -54,6 +55,7 @@
                 WHERE username = ?
     </sql>
     <sql name="delete">DELETE FROM ${table} WHERE username = ?</sql>
+    <sql name="createTable" db="hypersonic">CREATE CACHED TABLE ${table} (username 
+VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding 
+INTEGER, forwardDestination VARCHAR(255), useAlias INTEGER, alias VARCHAR(255), 
+PRIMARY KEY(username))</sql>
     <sql name="createTable">CREATE TABLE ${table} (username VARCHAR(64) NOT NULL, 
pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding SMALLINT, 
forwardDestination VARCHAR(255), useAlias SMALLINT, alias VARCHAR(255), PRIMARY 
KEY(username))</sql>
     <!-- An example of a database-specific sql statement
     <sql name="createTable" db="mssql">CREATE TABLE ${table} (uniqueId 
UNIQUEIDENTIFIER, username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm 
VARCHAR(20), useForwarding SMALLINT, forwardDestination VARCHAR(255), useAlias 
SMALLINT, alias VARCHAR(255), PRIMARY KEY(username))</sql>
@@ -75,6 +77,7 @@
                 WHERE username = ?
     </sql>
     <sql name="delete">DELETE FROM ${table} WHERE username = ?</sql>
+    <sql name="createTable" db="hypersonic">CREATE CACHED TABLE ${table} (username 
+VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY 
+KEY(username))</sql>
     <sql name="createTable">CREATE TABLE ${table} (username VARCHAR(64) NOT NULL, 
pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY KEY(username))</sql>
 </sqlDefs>
 
@@ -101,7 +104,8 @@
     <sql name="delete">DELETE FROM ${table}
                 WHERE listSubscriber = ? AND listName = '${key}'
     </sql>
-    <sql name="createTable">CREATE TABLE ${table} (listName VARCHAR(64) NOT NULL, 
listSubscriber VARCHAR(255) NOT NULL)</sql>
+    <sql name="createTable" db="hypersonic">CREATE CACHED TABLE ${table} (listName 
+VARCHAR(64) NOT NULL, listSubscriber VARCHAR(255) NOT NULL, PRIMARY KEY(listName, 
+listSubscriber))</sql>
+    <sql name="createTable">CREATE TABLE ${table} (listName VARCHAR(64) NOT NULL, 
+listSubscriber VARCHAR(255) NOT NULL, PRIMARY KEY(listName, listSubscriber))</sql>
 </sqlDefs>
 
 <!-- SQL statements for the JdbcMailRepository  -->
@@ -114,6 +118,7 @@
     <sql name="retrieveMessageBodySQL">SELECT message_body FROM ${table} WHERE 
message_name = ? AND repository_name = ?</sql>
     <sql name="retrieveMessageBodySizeSQL" db="mssql">SELECT datalength(message_body) 
FROM ${table} WHERE message_name = ? AND repository_name = ?</sql>
     <sql name="retrieveMessageBodySizeSQL" db="mysql">SELECT length(message_body) 
FROM ${table} WHERE message_name = ? AND repository_name = ?</sql>
+    <sql name="retrieveMessageBodySizeSQL" db="hypersonic">SELECT 
+length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = 
+?</sql>
     <sql name="removeMessageSQL">DELETE FROM ${table} WHERE message_name = ? AND 
repository_name = ?</sql>
     <sql name="listMessagesSQL">SELECT message_name, message_state, last_updated FROM 
${table} WHERE repository_name = ? ORDER BY last_updated ASC</sql>
     <sql name="createTable" db="mysql">
@@ -131,6 +136,21 @@
             PRIMARY KEY (message_name, repository_name)
         )
     </sql>
+    <sql name="createTable" db="hypersonic">
+        CREATE CACHED TABLE ${table} (
+            message_name varchar (200) NOT NULL,
+            repository_name varchar (255) NOT NULL,
+            message_state varchar (30) NOT NULL ,
+            error_message varchar (200) NULL ,
+            sender varchar (255) NULL ,
+            recipients varchar NOT NULL ,
+            remote_host varchar (255) NOT NULL ,
+            remote_addr varchar (20) NOT NULL ,
+            message_body varchar NOT NULL ,
+            last_updated timestamp NOT NULL,
+            PRIMARY KEY (message_name, repository_name)
+        )
+    </sql>
     <sql name="createTable" db="mssql">
         CREATE TABLE [${table}] (
             [message_name] [varchar] (200) NOT NULL,
@@ -193,8 +213,24 @@
     <sql name="retrieveMessageBodySQL">SELECT message_body FROM ${table} WHERE 
message_name = ? AND repository_name = ?</sql>
     <sql name="retrieveMessageBodySizeSQL" db="mssql">SELECT datalength(message_body) 
FROM ${table} WHERE message_name = ? AND repository_name = ?</sql>
     <sql name="retrieveMessageBodySizeSQL" db="mysql">SELECT length(message_body) 
FROM ${table} WHERE message_name = ? AND repository_name = ?</sql>
+    <sql name="retrieveMessageBodySizeSQL" db="hypersonic">SELECT 
+length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = 
+?</sql>
     <sql name="removeMessageSQL">DELETE FROM ${table} WHERE message_name = ? AND 
repository_name = ?</sql>
     <sql name="listMessagesSQL">SELECT message_name, message_state, last_updated FROM 
${table} WHERE repository_name = ? ORDER BY last_updated ASC</sql>
+    <sql name="createTable" db="hypersonic">
+        CREATE TABLE ${table} (
+            message_name varchar (200) NOT NULL,
+            repository_name varchar (255) NOT NULL,
+            message_state varchar (30) NOT NULL ,
+            error_message varchar (200) NULL ,
+            sender varchar (255) NULL ,
+            recipients varchar NOT NULL ,
+            remote_host varchar (255) NOT NULL ,
+            remote_addr varchar (20) NOT NULL ,
+            message_body varchar NOT NULL ,
+            last_updated timestamp NOT NULL,
+            PRIMARY KEY (message_name, repository_name)
+        )
+    </sql>
     <sql name="createTable" db="mysql">
         CREATE TABLE ${table} (
             message_name varchar (200) NOT NULL,

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to