Yes, indeed we are! Rainer
> from: [email protected] [mailto:[email protected]] Im Auftrag von > Francis De Brabandere > to: [email protected] > Cc: [email protected] > Betreff: Re: Please review: svn commit: r1365599 > > Great, > > then we're ready for a release... > > Cheers, > F > > On 30 July 2012 11:56, Rainer Döbele <[email protected]> wrote: > > > Hi Franics, > > > > > > > > sorry I missed that question. > > > > > > > > Oh, no I have absolutely no objections - it's straight forward and > > appealing. > > > > One could only argue that for Columns other than AUTOINC type columns, > > this method has no meaning. > > > > But I am absolutely happy with the solution. > > > > > > > > Thanks > > > > Rainer > > > > > > > > > > > > from: [email protected] [mailto:[email protected]] Im Auftrag von > > Francis De Brabandere > > to: Rainer Döbele > > re: Fwd: Please review: svn commit: r1365599 > > > > > > > > Hi Rainer, > > > > > > > > A final comment on this one before I start the release? > > > > > > > > Cheers, > > > > F > > > > ---------- Forwarded message ---------- > > From: Francis De Brabandere <[email protected]> > > Date: 25 July 2012 16:35 > > Subject: Please review: svn commit: r1365599 > > To: dev <[email protected]> > > > > > > Hi Rainer, > > > > Do you have any objections against that getSequenceName() method in > > DBTableColumn? Added it to avoid duplication between ddl and sequence > > code (which was broken) > > > > More info on why here: > > https://issues.apache.org/jira/browse/EMPIREDB-151 > > > > commit added at the bottom of this mail > > > > Cheers, > > Francis > > > > > > ---------- Forwarded message ---------- > > From: <[email protected]> > > Date: 25 July 2012 16:24 > > Subject: svn commit: r1365599 - in /empire-db/trunk/empire-db/src: > > main/java/org/apache/empire/db/ > main/java/org/apache/empire/db/oracle/ > > main/java/org/apache/empire/db/postgresql/ > > test/java/org/apache/empire/db/hsql/ > > To: [email protected] > > > > > > Author: francisdb > > Date: Wed Jul 25 14:24:23 2012 > > New Revision: 1365599 > > > > URL: http://svn.apache.org/viewvc?rev=1365599&view=rev > > Log: > > EMPIREDB-151 DBDatabaseDriverHSQL fails on selection of NEXT VALUE > > > > Modified: > > > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBDatabas > > eDriver.java > > > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBTableCo > > lumn.java > > > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/oracle/Or > > acleDDLGenerator.java > > > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/postgresq > > l/PostgreDDLGenerator.java > > > > empire-db/trunk/empire- > db/src/test/java/org/apache/empire/db/hsql/DBDa > > tabaseDriverHSqlTest.java > > > > Modified: > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBDatabas > > eDriver.java > > URL: > > http://svn.apache.org/viewvc/empire-db/trunk/empire- > db/src/main/java/o > > > rg/apache/empire/db/DBDatabaseDriver.java?rev=1365599&r1=1365598&r2 > =13 > > 65599&view=diff > > > > > ========================================================== > ============ > > ======== > > --- > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBDatabas > > eDriver.java > > (original) > > +++ > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBDatabas > > eDriver.java > > Wed Jul 25 14:24:23 2012 > > @@ -374,9 +374,7 @@ public abstract class DBDatabaseDriver i > > { // Use a numeric sequence > > if (isSupported(DBDriverFeature.SEQUENCES)==false) > > return null; // Create Later > > - // Detect the Sequence Name > > - Object defValue= column.getDefaultValue(); > > - String SeqName = (defValue != null) ? defValue.toString() > > : this.toString(); > > + String SeqName = column.getSequenceName(); > > return db.getNextSequenceValue(SeqName, conn); > > } > > else if (type== DataType.UNIQUEID) > > > > Modified: > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBTableCo > > lumn.java > > URL: > > http://svn.apache.org/viewvc/empire-db/trunk/empire- > db/src/main/java/o > > > rg/apache/empire/db/DBTableColumn.java?rev=1365599&r1=1365598&r2=1 > 3655 > > 99&view=diff > > > > > ========================================================== > ============ > > ======== > > --- > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBTableCo > > lumn.java > > (original) > > +++ > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/DBTableCo > > lumn.java > > Wed Jul 25 14:24:23 2012 > > @@ -439,4 +439,31 @@ public class DBTableColumn extends DBCol > > // done > > return elem; > > } > > + > > + /** > > + * Gets the sequence name for this table's sequence (if it has one) > > + * This is derived form the default value or auto generated if no > > default value is set > > + * @return the sequence name > > + */ > > + public String getSequenceName() > > + { > > + String seqName; > > + Object defValue = getDefaultValue(); > > + if(defValue != null) > > + { > > + seqName = defValue.toString(); > > + } > > + else > > + { > > + if (rowset != null) > > + { > > + seqName = rowset.getName() + "." + name; > > + } > > + else > > + { > > + seqName = name; > > + } > > + } > > + return seqName; > > + } > > } > > \ No newline at end of file > > > > Modified: > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/oracle/Or > > acleDDLGenerator.java > > URL: > > http://svn.apache.org/viewvc/empire-db/trunk/empire- > db/src/main/java/o > > > rg/apache/empire/db/oracle/OracleDDLGenerator.java?rev=1365599&r1=13 > 65 > > 598&r2=1365599&view=diff > > > > > ========================================================== > ============ > > ======== > > --- > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/oracle/Or > > acleDDLGenerator.java > > (original) > > +++ > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/oracle/Or > > acleDDLGenerator.java > > Wed Jul 25 14:24:23 2012 > > @@ -123,8 +123,7 @@ public class OracleDDLGenerator extends > > */ > > protected void createSequence(DBDatabase db, DBTableColumn c, > > DBSQLScript script) > > { > > - Object defValue = c.getDefaultValue(); > > - String seqName = (defValue != null) ? defValue.toString() : > > c.toString(); > > + String seqName = c.getSequenceName(); > > // createSQL > > StringBuilder sql = new StringBuilder(); > > sql.append("-- creating sequence for column "); > > > > Modified: > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/postgresq > > l/PostgreDDLGenerator.java > > URL: > > http://svn.apache.org/viewvc/empire-db/trunk/empire- > db/src/main/java/o > > > rg/apache/empire/db/postgresql/PostgreDDLGenerator.java?rev=1365599& > r1 > > =1365598&r2=1365599&view=diff > > > > > ========================================================== > ============ > > ======== > > --- > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/postgresq > > l/PostgreDDLGenerator.java > > (original) > > +++ > > empire-db/trunk/empire- > db/src/main/java/org/apache/empire/db/postgresq > > l/PostgreDDLGenerator.java > > Wed Jul 25 14:24:23 2012 > > @@ -108,8 +108,7 @@ public class PostgreDDLGenerator extends > > */ > > protected void createSequence(DBDatabase db, DBTableColumn c, > > DBSQLScript script) > > { > > - Object defValue = c.getDefaultValue(); > > - String seqName = (defValue != null) ? defValue.toString() : > > c.toString(); > > + String seqName = c.getSequenceName(); > > // createSQL > > StringBuilder sql = new StringBuilder(); > > sql.append("-- creating sequence for column "); > > > > Modified: > > empire-db/trunk/empire- > db/src/test/java/org/apache/empire/db/hsql/DBDa > > tabaseDriverHSqlTest.java > > URL: > > http://svn.apache.org/viewvc/empire-db/trunk/empire- > db/src/test/java/o > > > rg/apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java?rev=1365599&r1 > = > > 1365598&r2=1365599&view=diff > > > > > ========================================================== > ============ > > ======== > > --- > > empire-db/trunk/empire- > db/src/test/java/org/apache/empire/db/hsql/DBDa > > tabaseDriverHSqlTest.java > > (original) > > +++ > > empire-db/trunk/empire- > db/src/test/java/org/apache/empire/db/hsql/DBDa > > tabaseDriverHSqlTest.java > > Wed Jul 25 14:24:23 2012 > > @@ -27,11 +27,16 @@ import java.util.Date; > > > > import org.apache.empire.DBResource; > > import org.apache.empire.DBResource.DB; > > +import org.apache.empire.data.DataMode; import > > +org.apache.empire.data.DataType; > > import org.apache.empire.db.CompanyDB; import > > org.apache.empire.db.DBCmdType; > > +import org.apache.empire.db.DBDatabase; > > import org.apache.empire.db.DBDatabaseDriver; > > import org.apache.empire.db.DBRecord; import > > org.apache.empire.db.DBSQLScript; > > +import org.apache.empire.db.DBTable; > > +import org.apache.empire.db.DBTableColumn; > > import org.junit.Rule; > > import org.junit.Test; > > > > @@ -90,9 +95,70 @@ public class DBDatabaseDriverHSqlTest{ > > > > assertEquals("123456", > > emp.getString(db.EMPLOYEE.PHONE_NUMBER)); > > > > + > > script = new DBSQLScript(); > > db.getDriver().getDDLScript(DBCmdType.DROP, db.EMPLOYEE, script); > > db.getDriver().getDDLScript(DBCmdType.DROP, db.DEPARTMENT, > > script); > > script.run(db.getDriver(), conn, true); > > } > > + > > + > > + /** > > + * See https://issues.apache.org/jira/browse/EMPIREDB-151 > > + */ > > + @Test > > + public void testSequence(){ > > + Connection conn = dbResource.getConnection(); > > + > > + DBDatabaseDriver driver = dbResource.newDriver(); > > + SeqDB db = new SeqDB(); > > + db.open(driver, dbResource.getConnection()); > > + DBSQLScript script = new DBSQLScript(); > > + db.getCreateDDLScript(db.getDriver(), script); > > + script.run(db.getDriver(), dbResource.getConnection(), > > + false); > > + > > + DBRecord data = new DBRecord(); > > + data.create(db.DATA); > > + data.setValue(db.DATA.VALUE, "test"); > > + data.update(conn); > > + > > + final Object id = data.getLong(db.DATA.ID); > > + > > + DBRecord read = new DBRecord(); > > + read.read(db.DATA, id, conn); > > + > > + assertEquals("test", read.getString(db.DATA.VALUE)); > > + > > + script = new DBSQLScript(); > > + db.getDriver().getDDLScript(DBCmdType.DROP, db.DATA, script); > > + script.run(db.getDriver(), conn, true); > > + } > > + > > + /** > > + * This is the basic database for testing > > + * > > + */ > > + private class SeqDB extends DBDatabase > > + { > > + private final static long serialVersionUID = 1L; > > + public final Data DATA = new Data(this); > > + } > > + > > + /** > > + * For testing SEQUENCE auto generation stuff > > + */ > > + public static class Data extends DBTable > > + { > > + private final static long serialVersionUID = 1L; > > + public final DBTableColumn ID; > > + public final DBTableColumn VALUE; > > + > > + public Data(DBDatabase db) > > + { > > + super("DATA", db); > > + ID = addColumn("DATA_ID", > > DataType.AUTOINC, 0, DataMode.AutoGenerated); > > + VALUE = addColumn("VALUE", DataType.TEXT, > > 256, DataMode.NotNull); > > + setPrimaryKey(ID); > > + } > > + } > > } > > > > > > > >
