This should fix the timestamp issues for PostgreSQL and Firebird: https://nhibernate.jira.com/browse/NH-2962 https://github.com/nhibernate/nhibernate-core/pull/31
/Oskar 2011/12/4 Oskar Berggren <[email protected]>: > The failing tests on Postgres are DbVersionFixture.CollectionNoVersion > and DbVersionFixture.CollectionVersion. These are tests for using > timestampas version, and have actually failed before. Exploring the > test history in Teamcity reveals that they fail _almost_ every build > for Firebird, and occasionally for Postgres. It's a timing problem, > unrelated to the id generator changes. > > From test CollectionNoVersion: > [...] > DateTime guyTimestamp = guy.Timestamp; > > s = OpenSession(); > t = s.BeginTransaction(); > guy = s.Get<User>(guy.Id); > perm = s.Get<Permission>(perm.Id); > guy.Permissions.Add(perm); > t.Commit(); > s.Close(); > > Assert.That(NHibernateUtil.Timestamp.IsEqual(guyTimestamp, > guy.Timestamp), "owner version was incremented"); > > So we record the timestamp, then reload the object (and the timestamp) > from the database, and expect them to be the same. This works on MSSQL > since its dialect correctly claim that we can get timestamps from the > database, so both timestamps are from the database, and of the correct > precision. > > However, it fails on at least Postgresql and Firebird, since their > dialects does _not_ claim "SupportsCurrentTimestampSelection". NH then > falls back to vm-timestamp, rounded by the dialect's > "TimestampResolutionInTicks" value, which is also not overridden by > these dialects, causing no rounding to occur in memory. However, when > stored in the db some precision is lost and thus the value doesn't > match when read back. > > > Patch on the way. > > /Oskar > > > 2011/12/3 Oskar Berggren <[email protected]>: >> I suspected that, about jira. Thanks! >> >> As for tests failing, I'm heading out for a party right now. If you >> prefer, feel free to revert, and I will have a look at the test >> failures tomorrow. >> >> /Oskar >> >> >> 2011/12/3 Julian Maughan <[email protected]>: >>> Hello Oskar >>> >>> I increased your privileges on Jira so you could close the issues yourself >>> :) Sorry I should have sent a follow-up email, but I got distracted. >>> >>> I have committed your latest ID generator changes, but there have been a few >>> test failures on Oracle, Firebird, and PostgreSQL. There seem to be >>> different causes. The weirdest is the PostgreSQL tests which are existing >>> tests that now fail - but only on PostgreSQL. I'm actively looking into the >>> problems, but any help is appreciated. >>> >>> Regards >>> Julian >>> >>> >>> On 2 December 2011 04:46, Oskar Berggren <[email protected]> wrote: >>>> >>>> Great! I don't know if I was just blind at first, or if I've suddenly >>>> gained some additional Jira-powers, but a few days after sending the >>>> mail I discovered that I had the ability to mark them resolved myself. >>>> :) >>>> >>>> /Oskar >>>> >>>> >>>> 2011/12/1 Richard Brown (gmail) <[email protected]>: >>>> > Hi Oskar, >>>> > >>>> > I've closed both of these off. Thanks for your time looking into these. >>>> > >>>> > Cheers, >>>> > Richard >>>> > >>>> > >>>> > -----Original Message----- From: Oskar Berggren >>>> > Sent: Sunday, November 27, 2011 9:06 PM >>>> > To: [email protected] >>>> > Subject: [nhibernate-development] Close some bugs >>>> > >>>> > I looked at a few bugs. Some modest results: >>>> > >>>> > NH-2395 Schema name inconsistency when working SQLite20 >>>> > Recommend close as not an issue. User should use consistent spelling in >>>> > mapping. >>>> > >>>> > NH-2349 SetMaxResult works not properly with MySQL5Dialect >>>> > Duplicate of NH-2371 (which in turn was fixed in 3.0.0GA). >>>> > >>>> > >>>> > /Oskar >>>> > >>> >>>
