$FreeBSD: ports/java/jboss4/files/patch-serial-autoinc,v 1.2 2005/05/18 19:36:43 hq Exp $

This patch allows JBoss to correctly create tables when
using the auto-increment feature with Postgresql.

diff -ruN ./server/src/etc/conf/default/standardjbosscmp-jdbc.xml /home/jonc/ports/jboss4/work/jboss-4.0.2-src/server/src/etc/conf/default/standardjbosscmp-jdbc.xml
--- ./server/src/etc/conf/default/standardjbosscmp-jdbc.xml	Thu Jan 27 07:51:35 2005
+++ /home/jonc/ports/jboss4/work/jboss-4.0.2-src/server/src/etc/conf/default/standardjbosscmp-jdbc.xml	Tue May 17 16:13:34 2005
@@ -1293,7 +1293,7 @@
          <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 ORDER BY ?4 FOR UPDATE</row-locking-template>
          <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
          <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <auto-increment-template>?1</auto-increment-template>
+         <auto-increment-template>?1 serial</auto-increment-template>
          <alias-header-prefix>t</alias-header-prefix>
          <alias-header-suffix>_</alias-header-suffix>
          <alias-max-length>32</alias-max-length>
@@ -1420,7 +1420,7 @@
          <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 ORDER BY ?4 FOR UPDATE</row-locking-template>
          <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
          <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <auto-increment-template>?1</auto-increment-template>
+         <auto-increment-template>?1 serial</auto-increment-template>
          <alias-header-prefix>t</alias-header-prefix>
          <alias-header-suffix>_</alias-header-suffix>
          <alias-max-length>32</alias-max-length>
@@ -1674,7 +1674,7 @@
          <row-locking-template/>
          <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
          <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <auto-increment-template>?1 IDENTITY</auto-increment-template>
+         <auto-increment-template>?1 ?2 ?3 IDENTITY</auto-increment-template>
          <add-column-template>ALTER TABLE ?1 ADD COLUMN ?2 ?3</add-column-template>
          <drop-column-template>ALTER TABLE ?1 DROP COLUMN ?2</drop-column-template>
          <alias-header-prefix>t</alias-header-prefix>
@@ -1973,7 +1973,7 @@
               <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
          -->
          <fk-constraint-template>ALTER TABLE ?1 ADD INDEX (?3), ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <auto-increment-template>?1 auto_increment</auto-increment-template>
+         <auto-increment-template>?1 ?2 ?3 auto_increment</auto-increment-template>
          <alter-column-template>ALTER TABLE ?1 MODIFY ?2 ?3</alter-column-template>
          <alias-header-prefix>t</alias-header-prefix>
          <alias-header-suffix>_</alias-header-suffix>
@@ -2113,7 +2113,7 @@
          <row-locking-template>SELECT ?1 FROM ?2 with (updlock) WHERE ?3 ORDER BY ?4</row-locking-template>
          <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
          <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <auto-increment-template>?1 IDENTITY</auto-increment-template>
+         <auto-increment-template>?1 ?2 ?3 IDENTITY</auto-increment-template>
          <alter-column-template>ALTER TABLE ?1 ALTER COLUMN ?2 ?3</alter-column-template>
          <alias-header-prefix>t</alias-header-prefix>
          <alias-header-suffix>_</alias-header-suffix>
@@ -2245,7 +2245,7 @@
          <row-locking-template>SELECT ?1 FROM ?2 with (xlock) WHERE ?3 ORDER BY ?4</row-locking-template>
          <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
          <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
-         <auto-increment-template>?1 IDENTITY</auto-increment-template>
+         <auto-increment-template>?1 ?2 ?3 IDENTITY</auto-increment-template>
          <alias-header-prefix>t</alias-header-prefix>
          <alias-header-suffix>_</alias-header-suffix>
          <alias-max-length>32</alias-max-length>
diff -ruN ./server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java /home/jonc/ports/jboss4/work/jboss-4.0.2-src/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java
--- ./server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java	Tue Oct 26 22:28:23 2004
+++ /home/jonc/ports/jboss4/work/jboss-4.0.2-src/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java	Tue May 17 16:13:34 2005
@@ -916,14 +916,18 @@
       // apply auto-increment template
       if(type.getAutoIncrement()[0])
       {
-         String columnClause = SQLUtil.getCreateTableColumnsClause(type);
          JDBCFunctionMappingMetaData autoIncrement =
             manager.getMetaData().getTypeMapping().getAutoIncrementTemplate();
          if(autoIncrement == null)
          {
             throw new IllegalStateException("auto-increment template not found");
          }
-         String[] args = new String[]{columnClause};
+         String[] args = new String[]
+							{
+								type.getColumnNames () [0],
+								type.getSQLTypes () [0],
+								type.getNotNull () [0] ? " not null " : ""
+							};
          autoIncrement.getFunctionSql(args, sqlBuffer);
       }
       else
