db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From e...@jpox.org
Subject Re: [jira] Updated: (JDO-308) Remove attribute strategy from elements datastore-identity in ORM files
Date Mon, 27 Feb 2006 21:41:22 GMT
I'm working on the action item, and I have one question about it. JPOX will have
to validate primary key columns, and one of the primary key fields is String.
The column for the primary key in the db has 16 chars length, but in the
metadata it defaults to 255 (JPOX). Spec says it should defaults to 256.

1-what should the impl do: take the schema from db as valid or the metadata?

2-The most common limit for CHAR in RDBMS is 255, why is it set to 256 in the
spec?

Quoting "Michael Watzek (JIRA)" <jira@apache.org>:

>      [ http://issues.apache.org/jira/browse/JDO-308?page=all ]
>
> Michael Watzek updated JDO-308:
> -------------------------------
>
>     Attachment: JDO-308.patch
>
> The attached patch fixes this issue. Applying this patch, a TCK run results
> in 4 failures and 409 errors. Most of the errors are due to the same problem:
> JPOX generates SQL which inserts a value into an identity column (see below).
> Eric has an action item to investigate JPOX's ability to use native identity
> strategy given an identity column in the schema (see minutes Feb 17 2006).
>
> 133)
> testPositive(org.apache.jdo.tck.query.sql.NewQuery)javax.jdo.JDOUserException:
> One or more instances could not be made persistent
> 	at
>
org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:1217)
> 	at org.apache.jdo.tck.query.QueryTest.makePersistentAll(QueryTest.java:225)
> 	at
>
org.apache.jdo.tck.query.QueryTest.loadAndPersistCompanyModel(QueryTest.java:201)
> 	at org.apache.jdo.tck.query.sql.NewQuery.localSetUp(NewQuery.java:87)
> 	at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:187)
> 	at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:203)
> 	at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
> 	at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
> NestedThrowablesStackTrace:
> javax.jdo.JDODataStoreException: Insert request failed: INSERT INTO
> datastoreidentity0.COMPANIES
>
(DATASTORE_IDENTITY,ID,FOUNDEDDATE,"NAME",ADDRID,CITY,COUNTRY,"STATE",STREET,ZIPCODE)
> VALUES (?,?,?,?,?,?,?,?,?,?)
> 	at
> org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:338)
> 	at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2110)
> 	at org.jpox.store.StoreManager.insert(StoreManager.java:735)
> 	at
>
org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3310)
> 	at
> org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3283)
> 	at
>
org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1112)
> 	at
>
org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1167)
> 	at
>
org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:1207)
> 	at org.apache.jdo.tck.query.QueryTest.makePersistentAll(QueryTest.java:225)
> 	at
>
org.apache.jdo.tck.query.QueryTest.loadAndPersistCompanyModel(QueryTest.java:201)
> 	at org.apache.jdo.tck.query.sql.NewQuery.localSetUp(NewQuery.java:87)
> 	at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:187)
> 	at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:203)
> 	at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
> 	at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
> NestedThrowablesStackTrace:
> ERROR 42Z23: Attempt to modify an identity column 'DATASTORE_IDENTITY'.
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> 	at
> org.apache.derby.impl.sql.compile.ResultColumnList.checkAutoincrement(Unknown
> Source)
> 	at org.apache.derby.impl.sql.compile.InsertNode.bind(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> 	at
>
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
> Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown
> Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown
> Source)
> 	at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown
> Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown
> Source)
> 	at
>
com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:190)
> 	at org.jpox.store.rdbms.RDBMSManager.getStatement(RDBMSManager.java:359)
> 	at org.jpox.store.rdbms.RDBMSManager.getStatement(RDBMSManager.java:316)
> 	at
> org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:181)
> 	at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2110)
> 	at org.jpox.store.StoreManager.insert(StoreManager.java:735)
> 	at
>
org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3310)
> 	at
> org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3283)
> 	at
>
org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1112)
> 	at
>
org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1167)
> 	at
>
org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:1207)
> 	at org.apache.jdo.tck.query.QueryTest.makePersistentAll(QueryTest.java:225)
> 	at
>
org.apache.jdo.tck.query.QueryTest.loadAndPersistCompanyModel(QueryTest.java:201)
> 	at org.apache.jdo.tck.query.sql.NewQuery.localSetUp(NewQuery.java:87)
> 	at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:187)
> 	at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:203)
> 	at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
> 	at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)
>
>
> > Remove attribute strategy from elements datastore-identity in ORM files
> > -----------------------------------------------------------------------
> >
> >          Key: JDO-308
> >          URL: http://issues.apache.org/jira/browse/JDO-308
> >      Project: JDO
> >         Type: Bug
> >   Components: tck20
> >     Versions: JDO 2 beta
> >     Reporter: Michael Watzek
> >     Assignee: Michael Watzek
> >     Priority: Minor
> >      Fix For: JDO 2 final
> >  Attachments: JDO-308.patch
> >
> > We decided to remove attribute strategy rom elements datastore-identity in
> ORM files. Thus, default strategy "native" will apply. The rationale is to
> also support JDO implementations, which only support datastore identity and
> which only runs on a RDBMS that has sequences and no identity columns.
>
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the administrators:
>    http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
>    http://www.atlassian.com/software/jira
>
>




Mime
View raw message