You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Craig Russell (JIRA)" <ji...@apache.org> on 2007/11/06 16:56:50 UTC

[jira] Commented: (OPENJPA-427) PostgresDictionary should set "63" as "maxAutoAssignNameLength".

    [ https://issues.apache.org/jira/browse/OPENJPA-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12540463 ] 

Craig Russell commented on OPENJPA-427:
---------------------------------------

This patch seems innocuous, and I'd like to check it in without testing.

Any objection to putting it into trunk? 

How about 1.0.x? 

How about 1.0.1? Do we think 1.0.1 is finished?

> PostgresDictionary should set "63" as "maxAutoAssignNameLength".
> ----------------------------------------------------------------
>
>                 Key: OPENJPA-427
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-427
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 1.0.0, 1.1.0
>         Environment: PostgreSQL 8.1.
>            Reporter: Ryosuke Iwata
>            Priority: Blocker
>         Attachments: mychanges.patch
>
>
> PostgresDictionary should set "63" (or something correct) as "maxAutoAssignNameLength", in order to let DBDictionary#getGeneratedKeySequenceName() generate correct names for IDENTITY sequences.
> OpenJPA trims IDENTITY sequence names longer than 32 characters, while PostgreSQL uses longer names for BIGSERIAL sequences. So, persisting entities with @Id column with GenerationType.IDENTITY often results in a database error such as :
>         org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: relation "x_school_membershi_entityid_seq" does not exist {prepstmnt 2398193 SELECT CURRVAL(X_SCHOOL_TRANSFER_entityId_SEQ')} [code=0, state=42P01]
> The followings are the examples. "OK"s are the sequence names which PostgreSQL uses. "NG"s are those which OpenJPA attempts to use.
> Ex.1 -
>         Table : X_SCHOOL_TRANSFER_EVENT
>         BIGSERIAL Column : ENTITYID
>    OK : X_SCHOOL_TRANSFER_EVENT_ENTITY_ID_SEQ
>    NG : 'X_SCHOOL_TRANSFER__ENTITYID_SEQ
> Ex.2 -
>         Table : X_SCHOOL_MEMBERSHIP
>         BIGSERIAL Column : ENTITYID
>    OK : X_SCHOOL_MEMBERSHIP_ENTITYID_SEQ
>    NG : X_SCHOOL_MEMBERSHI_ENTITYID_SEQ

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Commented: (OPENJPA-427) PostgresDictionary should set "63" as "maxAutoAssignNameLength".

Posted by Albert Lee <al...@gmail.com>.
+1 for trunk
0   for 1.0.x
-1  for 1.0.1

Albert Lee.

On Nov 6, 2007 9:56 AM, Craig Russell (JIRA) <ji...@apache.org> wrote:
>
>     [ https://issues.apache.org/jira/browse/OPENJPA-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12540463 ]
>
> Craig Russell commented on OPENJPA-427:
> ---------------------------------------
>
> This patch seems innocuous, and I'd like to check it in without testing.
>
> Any objection to putting it into trunk?
>
> How about 1.0.x?
>
> How about 1.0.1? Do we think 1.0.1 is finished?
>
> > PostgresDictionary should set "63" as "maxAutoAssignNameLength".
> > ----------------------------------------------------------------
> >
> >                 Key: OPENJPA-427
> >                 URL: https://issues.apache.org/jira/browse/OPENJPA-427
> >             Project: OpenJPA
> >          Issue Type: Bug
> >          Components: sql
> >    Affects Versions: 1.0.0, 1.1.0
> >         Environment: PostgreSQL 8.1.
> >            Reporter: Ryosuke Iwata
> >            Priority: Blocker
> >         Attachments: mychanges.patch
> >
> >
> > PostgresDictionary should set "63" (or something correct) as "maxAutoAssignNameLength", in order to let DBDictionary#getGeneratedKeySequenceName() generate correct names for IDENTITY sequences.
> > OpenJPA trims IDENTITY sequence names longer than 32 characters, while PostgreSQL uses longer names for BIGSERIAL sequences. So, persisting entities with @Id column with GenerationType.IDENTITY often results in a database error such as :
> >         org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: relation "x_school_membershi_entityid_seq" does not exist {prepstmnt 2398193 SELECT CURRVAL(X_SCHOOL_TRANSFER_entityId_SEQ')} [code=0, state=42P01]
> > The followings are the examples. "OK"s are the sequence names which PostgreSQL uses. "NG"s are those which OpenJPA attempts to use.
> > Ex.1 -
> >         Table : X_SCHOOL_TRANSFER_EVENT
> >         BIGSERIAL Column : ENTITYID
> >    OK : X_SCHOOL_TRANSFER_EVENT_ENTITY_ID_SEQ
> >    NG : 'X_SCHOOL_TRANSFER__ENTITYID_SEQ
> > Ex.2 -
> >         Table : X_SCHOOL_MEMBERSHIP
> >         BIGSERIAL Column : ENTITYID
> >    OK : X_SCHOOL_MEMBERSHIP_ENTITYID_SEQ
> >    NG : X_SCHOOL_MEMBERSHI_ENTITYID_SEQ
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>