I believe I inquired about the ordering years ago and I think Andrus gave a reason why, but it escapes me at the moment. Perhaps he will remember and chime in here.
mrg On Wed, Jun 22, 2016 at 6:58 PM, Aristedes Maniatis <a...@maniatis.org> wrote: > On 23/06/2016 5:25am, Lon Varscsak wrote: > > Okay, I’ve found where it’s at (DataDomainFlushAction.preprocess). I > don’t > > see an easy way to override this, without just forking (which is totally > > doable). Does anyone know why the default order of operations is INSERT > -> > > UPDATE -> DELETE? Because if there’s no specific reason, it seems like > we > > could change this to support DBs that don’t have deferred constraints. > (or > > provide a hook to reorder these) > > > That's a pretty old piece of code, probably before my time. The history is > unfortunately broken by a move back in 2013 [1] but it would be interesting > to go back to the origins of that file and see if any commit message sheds > light on why that ordering was chosen. It does seem an odd choice, but > perhaps there was a reason. > > Before you fork Cayenne let's see if we can improve this behaviour for the > entire community. > > > [1] > https://github.com/apache/cayenne/commits/b0631deb251f036840d1ca3aee6d4ae50f2441bf/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java > > -- > --------------------------> > Aristedes Maniatis > GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A >