openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pinaki Poddar (JIRA)" <>
Subject [jira] Commented: (OPENJPA-1051) [patch] Mappingtool doesn't check name conflicts if MappingDefaultsImpl is called with multiple columns.
Date Wed, 16 Sep 2009 17:05:57 GMT


Pinaki Poddar commented on OPENJPA-1051:

A more parsimonious solution (perhaps) would be to simply add the valid name to NameSet.addName(...),
after the name is validated by DBDictionary.makeNameValid() which also ensures uniqueness
against the name set, 

The issue of naming is getting trickier with several aspects
  a) The logic/protocol of naming of database elements (Table/Column/Schema/Sequence) is somewhat
well-spread at different parts
  b) few assumptions are implicit (like full name of a table is a concatenation of schema.table
-- but MySQL, for example, will not like that) 
  c) other 'container' things often cache these elements by their names but these names may
get shortened/modified because of database length restrictions/keyword clash 
-- all these make naming a complex issue. One can see when methods like MappingDefaults.correctName()
appears -- as if we know we have done mistakes :)

  d) the proverbial straw on the camel's back is the new JPA 2.0 requirement of these names
be optionally quoted/delimited with default/platform specific quote characters.
In light of all the above, having a NameSet._subNames and adding/resetting it everywhere may
add to the complexities.


> [patch] Mappingtool doesn't check name conflicts if MappingDefaultsImpl is called with
multiple columns.
> --------------------------------------------------------------------------------------------------------
>                 Key: OPENJPA-1051
>                 URL:
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 1.0.0, 2.0.0-M2
>         Environment: OpenJPA Trunk.
>            Reporter: Ravi P Palacherla
>            Assignee: David Ezzio
>             Fix For: 1.1.1, 2.0.0-M2
>         Attachments: OPENJPA-1051_Trunk.patch
>  In  OpenJPA implementation, it looks that MappingDefaultsImpl.populateColumns can accept
multiple columns 
>  because it has Column[] signature.
>  If column name is longer than DBDictionary restriction (it's very short in some databases.

>  For example, oracle max name length is 32), names are truncated. 
>  Because name conflict is detected based on actual Table info,given Column[] data does
not get checked. 
>  So, if given Column[] have very long name and truncated name of these Column[] is conflicted,

>  it could not be detected.

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

View raw message