Author: norman
Date: Tue Apr 27 15:13:39 2010
New Revision: 938499

URL: http://svn.apache.org/viewvc?rev=938499&view=rev
Log:
postgresql does not support concat function so we need a custom sql query for 
it when select mappings. Fix for (JAMES-994)

Modified:
    james/server/trunk/spring-deployment/src/main/config/james/sqlResources.xml
    
james/server/trunk/user-function/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
    james/server/trunk/user-function/src/test/resources/sqlResources.xml

Modified: 
james/server/trunk/spring-deployment/src/main/config/james/sqlResources.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spring-deployment/src/main/config/james/sqlResources.xml?rev=938499&r1=938498&r2=938499&view=diff
==============================================================================
--- james/server/trunk/spring-deployment/src/main/config/james/sqlResources.xml 
(original)
+++ james/server/trunk/spring-deployment/src/main/config/james/sqlResources.xml 
Tue Apr 27 15:13:39 2010
@@ -817,8 +817,9 @@
 <sqlDefs name="org.apache.james.vut.JDBCVirtualUserTable">
 
     <!-- Statements used to check whether a particular message exists in this 
repository. -->
-    <sql name="selectMappings" db="derby">select 
VirtualUserTable.target_address,(VirtualUserTable."user" || '@' 
||VirtualUserTable.domain) from VirtualUserTable, VirtualUserTable as 
VUTDomains where ((VirtualUserTable."user") like ? or (VirtualUserTable."user") 
like '\%' escape '\') and (VirtualUserTable.domain like ? or 
(VirtualUserTable.domain like '\%' escape '\' and VUTDomains.domain like ?)) 
order by 2 desc</sql>
-    <sql name="selectMappings">select VirtualUserTable.target_address from 
VirtualUserTable, VirtualUserTable as VUTDomains where (VirtualUserTable.user 
like ? or VirtualUserTable.user like '\%') and (VirtualUserTable.domain like ? 
or (VirtualUserTable.domain like '\%' and VUTDomains.domain like ?)) order by 
concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc limit 1</sql>
+    <sql name="selectMappings" db="derby">select 
VirtualUserTable.target_address,(VirtualUserTable."user" || '@' 
||VirtualUserTable.domain) from VirtualUserTable, VirtualUserTable as 
VUTDomains where ((VirtualUserTable."user") like ? or (VirtualUserTable."user") 
like '\%' escape '\') and (VirtualUserTable.domain like ? or 
(VirtualUserTable.domain like '\%' escape '\')) order by 2 desc</sql>
+    <sql name="selectMappings">select VirtualUserTable.target_address from 
VirtualUserTable, VirtualUserTable as VUTDomains where (VirtualUserTable.user 
like ? or VirtualUserTable.user like '\%') and (VirtualUserTable.domain like ? 
or (VirtualUserTable.domain like '\%')) order by 
concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc limit 1</sql>
+    <sql name="selectMappings" db="postgresql">select 
VirtualUserTable.target_address from VirtualUserTable, VirtualUserTable as 
VUTDomains where (VirtualUserTable.user like ? or VirtualUserTable.user like 
E'%') and (VirtualUserTable.domain like ? or (VirtualUserTable.domain like 
E'%')) order by (VirtualUserTable.user || '@' || VirtualUserTable.domain) desc 
limit 1</sql>
     
     <sql name="selectUserDomainMapping" db="derby">select 
VirtualUserTable.target_address from VirtualUserTable where 
VirtualUserTable."user" = ? and VirtualUserTable.domain = ? </sql>
     <sql name="selectUserDomainMapping">select VirtualUserTable.target_address 
from VirtualUserTable where VirtualUserTable.user = ? and 
VirtualUserTable.domain = ? </sql>

Modified: 
james/server/trunk/user-function/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-function/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java?rev=938499&r1=938498&r2=938499&view=diff
==============================================================================
--- 
james/server/trunk/user-function/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
 (original)
+++ 
james/server/trunk/user-function/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
 Tue Apr 27 15:13:39 2010
@@ -246,7 +246,6 @@ public class JDBCVirtualUserTable extend
                 try {
                     mappingStmt.setString(1, user);
                     mappingStmt.setString(2, domain);
-                    mappingStmt.setString(3, domain);
                     mappingRS = mappingStmt.executeQuery();
                     if (mappingRS.next()) {
                         return mappingRS.getString(1);

Modified: james/server/trunk/user-function/src/test/resources/sqlResources.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-function/src/test/resources/sqlResources.xml?rev=938499&r1=938498&r2=938499&view=diff
==============================================================================
--- james/server/trunk/user-function/src/test/resources/sqlResources.xml 
(original)
+++ james/server/trunk/user-function/src/test/resources/sqlResources.xml Tue 
Apr 27 15:13:39 2010
@@ -1028,8 +1028,8 @@
 <sqlDefs name="org.apache.james.vut.JDBCVirtualUserTable">
 
     <!-- Statements used to check whether a particular message exists in this 
repository. -->
-    <sql name="selectMappings" db="derby">select 
VirtualUserTable.target_address,(VirtualUserTable."user" || '@' 
||VirtualUserTable.domain) from VirtualUserTable, VirtualUserTable as 
VUTDomains where ((VirtualUserTable."user") like ? or (VirtualUserTable."user") 
like '\%' escape '\') and (VirtualUserTable.domain like ? or 
(VirtualUserTable.domain like '\%' escape '\' and VUTDomains.domain like ?)) 
order by 2 desc</sql>
-    <sql name="selectMappings">select VirtualUserTable.target_address from 
VirtualUserTable, VirtualUserTable as VUTDomains where (VirtualUserTable.user 
like ? or VirtualUserTable.user like '\%') and (VirtualUserTable.domain like ? 
or (VirtualUserTable.domain like '\%' and VUTDomains.domain like ?)) order by 
concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc limit 1</sql>
+    <sql name="selectMappings" db="derby">select 
VirtualUserTable.target_address,(VirtualUserTable."user" || '@' 
||VirtualUserTable.domain) from VirtualUserTable, VirtualUserTable as 
VUTDomains where ((VirtualUserTable."user") like ? or (VirtualUserTable."user") 
like '\%' escape '\') and (VirtualUserTable.domain like ? or 
(VirtualUserTable.domain like '\%' escape '\')) order by 2 desc</sql>
+    <sql name="selectMappings">select VirtualUserTable.target_address from 
VirtualUserTable, VirtualUserTable as VUTDomains where (VirtualUserTable.user 
like ? or VirtualUserTable.user like '\%') and (VirtualUserTable.domain like ? 
or (VirtualUserTable.domain like '\%')) order by 
concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc limit 1</sql>
     
     <sql name="selectUserDomainMapping" db="derby">select 
VirtualUserTable.target_address from VirtualUserTable where 
VirtualUserTable."user" = ? and VirtualUserTable.domain = ? </sql>
     <sql name="selectUserDomainMapping">select VirtualUserTable.target_address 
from VirtualUserTable where VirtualUserTable.user = ? and 
VirtualUserTable.domain = ? </sql>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to