broken before, broken afterward. Sorry that is not a use case which justifies 
tons of effort on our side.

LieGrue,
strub

> Am 25.04.2021 um 14:08 schrieb Romain Manni-Bucau <rmannibu...@gmail.com>:
> 
> Le dim. 25 avr. 2021 à 13:47, Mark Struberg <strub...@yahoo.de.invalid 
> <mailto:strub...@yahoo.de.invalid>> a
> écrit :
> 
>> No, not a change.
>> 
>> If an Entity had a 'double' field it was mapped to NUMERIC. Which has no
>> fraction digits at all
>> 
>> 7.23456789d would be stored as 3.
>> So we can rather safely assume that people worked around this by using
>> float, BigDecimal, etc.
>> Thus no change for existing projects.
>> 
> 
> Sure that some projects use the default and do diff between snapshots and
> previous release ddl based on that so a change ;).
> 
> 
>> LieGrue,
>> strub
>> 
>> 
>>> Am 25.04.2021 um 13:39 schrieb Romain Manni-Bucau <rmannibu...@gmail.com
>>> :
>>> 
>>> AFAIK org.apache.openjpa.jdbc.meta.MappingInfo#mergeColumn will use
>>> getJDBCType and in case of HSQLDB it will move from NUMERIC to BIGINTEGER
>>> which is a breaking change for existing apps - detail in
>>> https://issues.apache.org/jira/browse/OPENJPA-2648 <
>> https://issues.apache.org/jira/browse/OPENJPA-2648>. This kind of change
>> is
>>> fine for 3.2 but not 3.1.3 we should release IMHO. Same kind of change
>>> happent to SQLServer (for blob IIRC) and a few other dicts IIRC (not all
>>> impact DDL but it can impact the runtime and for sure impacts the dict
>>> customizations (not sure how important it is but it happens our dicts are
>>> extended to use some driver specificities).
>>> 
>>> I'm not sure of the SQLServer dict usage but HSQLDB one is really used,
>>> even with 1.8 branch so can be neat to at least ensure this part does not
>>> break *by default* for next immediate release.
>>> 
>>> Romain Manni-Bucau
>>> @rmannibucau <https://twitter.com/rmannibucau <
>> https://twitter.com/rmannibucau>> |  Blog
>>> <https://rmannibucau.metawerx.net/ <https://rmannibucau.metawerx.net/>>
>> | Old Blog
>>> <http://rmannibucau.wordpress.com <http://rmannibucau.wordpress.com/>>
>> | Github <https://github.com/rmannibucau <https://github.com/rmannibucau>>
>> |
>>> LinkedIn <https://www.linkedin.com/in/rmannibucau <
>> https://www.linkedin.com/in/rmannibucau>> | Book
>>> <
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> <
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>> 
>>> 
>>> 
>>> Le dim. 25 avr. 2021 à 13:14, Mark Struberg <strub...@yahoo.de.invalid
>> <mailto:strub...@yahoo.de.invalid>> a
>>> écrit :
>>> 
>>>> No, the DDL remains the same. We just switched to using java.time types
>> in
>>>> Oracle natively on the JDBC level. But the type names stood the same.
>>>> 
>>>> LieGrue,
>>>> strub
>>>> 
>>>> 
>>>>> Am 24.04.2021 um 22:41 schrieb Romain Manni-Bucau <
>> rmannibu...@gmail.com
>>>>> :
>>>>> 
>>>>> Le sam. 24 avr. 2021 à 22:08, Mark Struberg <strub...@yahoo.de.invalid
>>>> <mailto:strub...@yahoo.de.invalid <mailto:strub...@yahoo.de.invalid>>>
>> a
>>>>> écrit :
>>>>> 
>>>>>> Romain, I have about 20 BIG apps which I did run past the new version.
>>>> We
>>>>>> needed to change maybe 3 lines of code over all those apps. It's
>> really
>>>>>> edge cases! And we didn't totally turn around the dictionary at all.
>> We
>>>>>> just improved it. People likely were forced to give names manually
>>>> already
>>>>>> because it would simply not run without in the old version when a
>>>> reserved
>>>>>> word was not catched as invalid column name.
>>>>>> Same goes for the tag handling. If someone did write a query "... and
>>>> case
>>>>>> .. when... x.bla=true" then it did just NOT work before. So people
>>>> likely
>>>>>> had to use a parameter instead. This still works, but now also the
>>>> variant
>>>>>> with using a tag does work. Again, nothing is broken which did work
>>>>>> before...
>>>>>> 
>>>>>> I've deployed 3.2.0-SNAPSHOT now manually. Happy to get feedback if
>>>>>> something is broken.
>>>>>> 
>>>>> 
>>>>> Some keywords change make the generated ddl different now IIRC.
>>>>> This is the part i had in mind which is a blocker to upgrade since ddl
>>>> are
>>>>> no more stable.
>>>>> Not all were forced to be changed for ddl generation - depends
>> driver/db
>>>>> version.
>>>>> Dont recall if it was about hsqldb or another one but dont think we can
>>>>> release it without a 3.1.3.
>>>>> Doing a subdict keeping old one can mitigate it and enable to bypass
>>>> 3.1.3.
>>>>> 
>>>>> 
>>>>>> LieGrue,
>>>>>> strub
>>>>>> 
>>>>>> 
>>>>>>> Am 24.04.2021 um 18:32 schrieb Romain Manni-Bucau <
>>>> rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>
>>>>>>> :
>>>>>>> 
>>>>>>> Le sam. 24 avr. 2021 à 17:13, Mark Struberg
>> <strub...@yahoo.de.invalid <mailto:strub...@yahoo.de.invalid>
>>>>>> <mailto:strub...@yahoo.de.invalid <mailto:strub...@yahoo.de.invalid>>>
>> a
>>>>>>> écrit :
>>>>>>> 
>>>>>>>> Who needs it?
>>>>>>> 
>>>>>>> 
>>>>>>> Most 3.1.2 users, we had several expected fixes which shouldnt
>> trigger
>>>>>> more
>>>>>>> than a build revalidation (and in particular not a multidb
>> validation).
>>>>>>> 
>>>>>>> 
>>>>>>>> For now it's not on my personal agenda as the fixes are good and
>>>> moving
>>>>>> to
>>>>>>>> 3.2.0 is for me personally just a signal to our users that they
>> should
>>>>>> not
>>>>>>>> blindly do an upgrade without a small test run first. The changes
>> are
>>>>>>>> really subtle, but again, they _might_ break in some edge cases. For
>>>>>> vast
>>>>>>>> majority of people it will be a drop in replacement.
>>>>>>>> 
>>>>>>> 
>>>>>>> We touched dicts and mapping so i expect it to not be that
>> transparent.
>>>>>>> At least it breaks ddl which is unexpexted
>>>>>>> 
>>>>>>> 
>>>>>>>> LieGrue,
>>>>>>>> strub
>>>>>>>> 
>>>>>>>>> Am 24.04.2021 um 13:16 schrieb Romain Manni-Bucau <
>>>>>> rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>
>>>>>>>>> :
>>>>>>>>> 
>>>>>>>>> What's the plan for 3.1.3 release then?
>>>>>>>>> 
>>>>>>>>> Le sam. 24 avr. 2021 à 11:38, Mark Struberg
>>>> <strub...@yahoo.de.invalid <mailto:strub...@yahoo.de.invalid>
>>>>>>> 
>>>>>>>> a
>>>>>>>>> écrit :
>>>>>>>>> 
>>>>>>>>>> I'll move forward and update to 3.2.0-SNAPSHOT
>>>>>>>>>> 
>>>>>>>>>> LieGrue,
>>>>>>>>>> strub
>>>>>>>>>> 
>>>>>>>>>>> Am 19.04.2021 um 08:35 schrieb Francesco Chicchiriccò <
>>>>>>>>>> ilgro...@apache.org>:
>>>>>>>>>>> 
>>>>>>>>>>> On 18/04/21 12:31, Mark Struberg wrote:
>>>>>>>>>>>> Hi folks!
>>>>>>>>>>>> 
>>>>>>>>>>>> We fixed a lot of tickets since the last release. Some of them
>>>> also
>>>>>>>>>> change/fix the behaviour slightly. There are a few main tickets
>>>> which
>>>>>> do
>>>>>>>>>> not introduce a big change, but might very subtly break existing
>>>> apps
>>>>>> in
>>>>>>>>>> very rare edge cases:
>>>>>>>>>>>> 
>>>>>>>>>>>> * UnaryOp now respects the target type. For doing that I had to
>>>> also
>>>>>>>>>> change the Raw handling, finally fixing a bug that got introduced
>> in
>>>>>>>> 2009
>>>>>>>>>> ;) Before this fix all UnaryOps (SUM, MIN, MAX, CASE, etc) did
>>>> return
>>>>>>>> the
>>>>>>>>>> native type coming from the JDBC driver. That means that for a
>> TIME
>>>>>> WITH
>>>>>>>>>> TIME ZONE field we even did return vendor specific jdbc types like
>>>>>>>>>> com.microsoft.jdbc.* or com.oracle.* types, etc.
>>>>>>>>>>>> 
>>>>>>>>>>>> This mainly affects 2 areas: First, if there is a select sum,
>> max,
>>>>>>>> min,
>>>>>>>>>> case, etc which is used to return an Object[] and then cast up to
>>>> the
>>>>>>>> type.
>>>>>>>>>> This might now fail, because we now return the correct type
>> defined
>>>> in
>>>>>>>> the
>>>>>>>>>> field.
>>>>>>>>>>>> E.g. if one did do a "select max(f.localDateTimeField) from ..."
>>>>>> then
>>>>>>>>>> this used to return a driver specific type for many databases as
>>>>>>>> described
>>>>>>>>>> above. After the fix, we now return the type of the
>>>>>>>> 'localDateFimeField',
>>>>>>>>>> in this case java.time.LocalDateTime.
>>>>>>>>>>>> 
>>>>>>>>>>>> Same happens for "select NEW" because right now we only look
>> for a
>>>>>>>>>> perfectly matching constructor and do no coercing. Should we
>>>> introduce
>>>>>>>>>> coercing probably? Means if a select new will result in a float
>>>> value
>>>>>>>> but
>>>>>>>>>> there is only a constructor for double, do we want to also accept
>> it
>>>>>> in
>>>>>>>> the
>>>>>>>>>> future?
>>>>>>>>>>>> 
>>>>>>>>>>>> * Along the way I also implemented BooleanRepresentation
>> handling
>>>>>> for
>>>>>>>>>> SQL literals via DBDictionary.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> * respect TIMESTAMP precision in Oracle. Due to a bug we did
>>>>>> hardcoded
>>>>>>>>>> round at 3 digits precision. So we essentially only allowed
>> millis,
>>>>>>>> even on
>>>>>>>>>> a TIMESTAMP(6) field. The new code does respect the second
>> fractions
>>>>>> and
>>>>>>>>>> now defaults to 6. It should be compatible but it might behave
>> very
>>>>>>>> subtle
>>>>>>>>>> different.
>>>>>>>>>>>> 
>>>>>>>>>>>> * fix the reserved column name handling by introducing
>>>>>>>>>> ColumnIdentifierRule (using the invalidColumnWordSet from the
>>>>>>>> DBDictionary
>>>>>>>>>> being used), separating it from the ColumnDefIdentifierRule.
>>>>>>>>>>>> 
>>>>>>>>>>>> * fix SUM to always return Double as requested by the spec.
>>>>>> Previously
>>>>>>>>>> we did return whatever Numeric the JDBC driver did serve,
>> resulting
>>>> in
>>>>>>>> non
>>>>>>>>>> portable code.
>>>>>>>>>>>> 
>>>>>>>>>>>> * PostgreSQL now supports setQueryTimeout. User might see this
>>>> come
>>>>>>>>>> alive and now return different when the situation occurs.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Does all that mean we should rather call the release 3.2.0
>> rather
>>>>>> than
>>>>>>>>>> 3.1.3?
>>>>>>>>>>>> Or is the change so subtle that we still continue with 3.1.x?
>>>>>>>>>>> Hi Mark,
>>>>>>>>>>> first of all, thanks for your recent (hard) work to review and
>>>> close
>>>>>>>>>> long-standing issues.
>>>>>>>>>>> 
>>>>>>>>>>> I don't have strong preference about versioning, but maybe 3.2.0
>>>>>> would
>>>>>>>>>> report more, to external, the idea of the amount of work done.
>>>>>>>>>>> 
>>>>>>>>>>> Regards.
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Francesco Chicchiriccò
>>>>>>>>>>> 
>>>>>>>>>>> Tirasa - Open Source Excellence
>>>>>>>>>>> http://www.tirasa.net/ <http://www.tirasa.net/>
>>>>>>>>>>> 
>>>>>>>>>>> Member at The Apache Software Foundation
>>>>>>>>>>> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
>>>>>>>>>>> http://home.apache.org/~ilgrosso/ <
>>>> http://home.apache.org/~ilgrosso/

Reply via email to