Max,

Thank you for your reply. It seems I am the only one, messing with
SQLBase :)
I have partially completed the SQLBaseDialect and patched the
Configuration in 
addition to Dialect class. This works for my cases so far, yet I have to
tested
it properly. Once I have something "pretty" I will submit a patch to
CVS.
Are there any predefined test procedures you have developed for the
Dialects?

Thank you,

Sergey Menis

-----Original Message-----
From: Max Rydahl Andersen [mailto:[EMAIL PROTECTED] 
Sent: Monday, January 31, 2005 7:12 AM
To: Sergey Menis; hibernate-devel@lists.sourceforge.net
Subject: Re: [Hibernate] Index creation on PK (Hibernate3, Gupta SQL
Base)

On Mon, 24 Jan 2005 14:42:38 -0500, Sergey Menis <[EMAIL PROTECTED]>
wrote:

I didn't notice if you got an answer to this yet - so just ignore me if
otherwise ;)

You are correct about your need to extend configuration/dialect.

You probably also need to look at Table.primaryKey and see where it is
used when creating primary keys.

I also *think* HSQLDialect has the same issues and that it is not
handled in a good way at the moment (some instanceof HSQLDialect
somewhere).

Thus you should add something like "requireAlterTableForPrimaryKey()" or
something to Dialect to handle it more smoothly.

/max

>  All,
>
> I am in the process of creating a dialect to communicate with Gupta 
> SQLbase database. Currently I am facing a problem of "Table in 
> incomplete state". According to Gupta this problem is caused by a 
> missing index on the primary key. This appears to be correct since 
> there are no indexes created on my table (NOTATION), once the 
> SchemaExport runs. I have tested the same mapping documents and 
> identical code on MSSQL Server, using the provided dialect 
> (SQLServerDialect) and there are no problems with index creation. This

> is due to the fact that indexes on primary key are created implicitly 
> under such DBs as Oracle and MSSQL Server. Unfortunately this is not 
> the case with Gupta SQL Base, where the index must be created
explicitly. Hence my question:
>
> Since this problem is DB specific, any ideas on how to incorporate 
> functionality to force explicit index creation on PK, after table 
> generation?
>
> As I understand it I am faced with extending:
>
> org.hibernate.cfg.Configuration
> org.hibernate.dialect.Dialect
> + my own dialect
>
> I have less then a month of exposure with Hibernate so there are 
> probably many misconceptions in the above. Please correct me if you 
> see anything wrong.
>
> Thanks,
>
> Sergei
>
> ************************RELEVANT INFORMATION************** Hibernate 
> version: Hibernate3
>
> Full stack trace of any exception that occurs:
>
>
> [java] 12:19:02,110 DEBUG SQL:290 - insert into NOTATION (NOTE, TYPE, 
> OWNER_ID, CREATE_DATE) values (?, ?, ?, ?) [java] Hibernate: insert 
> into NOTATION (NOTE, TYPE, OWNER_ID,
> CREATE_DATE) values (?, ?, ?, ?)
> [java] 12:19:02,110 DEBUG AbstractBatcher:341 - preparing statement 
> [java] 12:19:02,157 DEBUG JDBCExceptionReporter:49 - SQL Exception 
> [java] java.sql.SQLException: 01417 DLU TIC Table in incomplete state
>
> [java] at
> jdbc.gupta.sqlbase.SqlbaseStatement.SQLException(SqlbaseStatement.java
> :8
> 26)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:147)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:92)
> [java] at
>
jdbc.gupta.sqlbase.SqlbaseConnection.prepareStatement(SqlbaseConnection.
> java:195)
> [java] at
>
org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.
> java:349)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :71)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :65)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatch
> er
> .java:125)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:1653)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:2006)
> [java] at
>
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:
> 42)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:232)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:137)
> [java] at
> org.hibernate.event.AbstractFlushingEventListener.performExecutions(Ab
> st
> ractFlushingEventListener.java:255)
> [java] at
> org.hibernate.event.DefaultFlushEventListener.onFlush(DefaultFlushEven
> tL
> istener.java:26)
> [java] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:814)
> [java] at
> org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:
> 75
> )
> [java] at org.hibernate.auction.Main.createNotation(Main.java:127)
> [java] at org.hibernate.auction.Main.main(Main.java:425)
> [java] 12:19:02,173 WARN JDBCExceptionReporter:57 - SQL Error: 0,
> SQLState: null
> [java] 12:19:02,173 ERROR JDBCExceptionReporter:58 - 01417 DLU TIC 
> Table in incomplete state [java] 12:19:02,188 DEBUG 
> JDBCExceptionReporter:49 - could not insert:
> [org.hibernate.auction.Notation] [insert into NOTATION (NOTE, T YPE, 
> OWNER_ID, CREATE_DATE) values (?, ?, ?, ?)] [java] 
> java.sql.SQLException: 01417 DLU TIC Table in incomplete state [java] 
> at
> jdbc.gupta.sqlbase.SqlbaseStatement.SQLException(SqlbaseStatement.java
> :8
> 26)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:147)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:92)
> [java] at
>
jdbc.gupta.sqlbase.SqlbaseConnection.prepareStatement(SqlbaseConnection.
> java:195)
> [java] at
>
org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.
> java:349)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :71)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :65)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatch
> er
> .java:125)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:1653)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:2006)
> [java] at
>
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:
> 42)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:232)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:137)
> [java] at
> org.hibernate.event.AbstractFlushingEventListener.performExecutions(Ab
> st
> ractFlushingEventListener.java:255)
> [java] at
> org.hibernate.event.DefaultFlushEventListener.onFlush(DefaultFlushEven
> tL
> istener.java:26)
> [java] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:814)
> [java] at
> org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:
> 75
> )
> [java] at org.hibernate.auction.Main.createNotation(Main.java:127)
> [java] at org.hibernate.auction.Main.main(Main.java:425)
> [java] 12:19:02,282 WARN JDBCExceptionReporter:57 - SQL Error: 0,
> SQLState: null
> [java] 12:19:02,282 ERROR JDBCExceptionReporter:58 - 01417 DLU TIC 
> Table in incomplete state [java] 12:19:02,282 ERROR 
> AbstractFlushingEventListener:258 - Could not synchronize database 
> state with session [java] 
> org.hibernate.exception.GenericJDBCException: could not insert:
> [org.hibernate.auction.Notation]
> [java] at
> org.hibernate.exception.SQLStateConverter.handledNonSpecificException(
> SQ
> LStateConverter.java:82)
> [java] at
> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.ja
> va
> :70)
> [java] at
>
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.
> java:43)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:1683)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:2006)
> [java] at
>
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:
> 42)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:232)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:137)
> [java] at
> org.hibernate.event.AbstractFlushingEventListener.performExecutions(Ab
> st
> ractFlushingEventListener.java:255)
> [java] at
> org.hibernate.event.DefaultFlushEventListener.onFlush(DefaultFlushEven
> tL
> istener.java:26)
> [java] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:814)
> [java] at
> org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:
> 75
> )
> [java] at org.hibernate.auction.Main.createNotation(Main.java:127)
> [java] at org.hibernate.auction.Main.main(Main.java:425)
> [java] Caused by: java.sql.SQLException: 01417 DLU TIC Table in 
> incomplete state [java] at
> jdbc.gupta.sqlbase.SqlbaseStatement.SQLException(SqlbaseStatement.java
> :8
> 26)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:147)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:92)
> [java] at
>
jdbc.gupta.sqlbase.SqlbaseConnection.prepareStatement(SqlbaseConnection.
> java:195)
> [java] at
>
org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.
> java:349)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :71)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :65)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatch
> er
> .java:125)
> [java] Exception in thread "main"
> org.hibernate.exception.GenericJDBCException: could not insert:
> [org.hibernate.auction.Notation]
> [java] at
> org.hibernate.exception.SQLStateConverter.handledNonSpecificException(
> SQ
> LStateConverter.java:82)
> [java] at
> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.ja
> va
> :70)
> [java] at
>
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.
> java:43)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:1683)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:2006)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:1653)
> [java] ... 10 more
> [java] 12:19:02,407 DEBUG JDBCTransaction:99 - rollback [java] 
> 12:19:02,423 DEBUG SessionImpl:363 - transaction completion [java] 
> 12:19:02,423 DEBUG SessionImpl:232 - closing session [java] 
> 12:19:02,423 DEBUG SessionImpl:311 - disconnecting session [java] 
> 12:19:02,423 DEBUG AbstractBatcher:392 - closing JDBC connection (open

> PreparedStatements: 1, globally: 1) (open ResultSets: 0,
> globally: 0)
> [java] 12:19:02,423 DEBUG DriverManagerConnectionProvider:129 - 
> returning connection to pool, pool size: 1 [java] 12:19:02,423 DEBUG 
> SessionImpl:363 - transaction completion [java] at
>
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:
> 42)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:232)
> [java] at
> org.hibernate.impl.ActionQueue.executeActions(ActionQueue.java:137)
> [java] at
> org.hibernate.event.AbstractFlushingEventListener.performExecutions(Ab
> st
> ractFlushingEventListener.java:255)
> [java] at
> org.hibernate.event.DefaultFlushEventListener.onFlush(DefaultFlushEven
> tL
> istener.java:26)
> [java] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:814)
> [java] at
> org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:
> 75
> )
> [java] at org.hibernate.auction.Main.createNotation(Main.java:127)
> [java] at org.hibernate.auction.Main.main(Main.java:425)
> [java] Caused by: java.sql.SQLException: 01417 DLU TIC Table in 
> incomplete state [java] at
> jdbc.gupta.sqlbase.SqlbaseStatement.SQLException(SqlbaseStatement.java
> :8
> 26)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:147)
> [java] at
> jdbc.gupta.sqlbase.SqlbasePreparedStatement.<init>(SqlbasePreparedStat
> em
> ent.java:92)
> [java] at
>
jdbc.gupta.sqlbase.SqlbaseConnection.prepareStatement(SqlbaseConnection.
> java:195)
> [java] at
>
org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.
> java:349)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :71)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.ja
> va
> :65)
> [java] at
> org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatch
> er
> .java:125)
> [java] at
> org.hibernate.persister.BasicEntityPersister.insert(BasicEntityPersist
> er
> .java:1653)
> [java] ... 10 more
>
> BUILD FAILED
> C:\java\eclipse\workspace\HibernateSQLBase\build.xml:624: Java
returned:
> 1     
>
>
> Name and version of the database you are using: Gupta SQL Base 7.6.0
>
> The generated SQL (show_sql=true):
> [java] 12:19:01,751 DEBUG SchemaExport:154 - create table NOTATION ( 
> [java] TYPE varchar(2) not null, [java] OWNER_ID varchar(40) not null,

> [java] CREATE_DATE date not null, [java] NOTE LONG VARCHAR, [java] 
> primary key (TYPE, OWNER_ID, CREATE_DATE)
> [java] )      



-- 
Max Rydahl Andersen
callto://max.rydahl.andersen

Hibernate
[EMAIL PROTECTED]
http://hibernate.org

JBoss Inc
[EMAIL PROTECTED]
http://jboss.com


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
hibernate-devel mailing list
hibernate-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to