Hi Alexander, I'm afraid I didn't understand you quite right. I did post 2 links to my fork of the repository and the changes i've made! Did I misunderstood you? Of course I can make a pull request if it helps more, it's just that I consider the work done so far to be "in Progress".
Amro Von: [email protected] [mailto:[email protected]] Im Auftrag von Alexander I. Zaytsev Gesendet: Donnerstag, 9. Januar 2014 07:38 An: [email protected] Betreff: Re: [nhibernate-development] Firebirds broken tests Ho Amro, Can you please share some code or make a pull request? Best Regards, Alexander 2014/1/9 Amro El-Fakharany <[email protected] <mailto:[email protected]> > Hi Oskar, thanks for taking the time and looking at this. I created the first 2 Issues in Jira (https://nhibernate.jira.com/browse/NH-3586 and https://nhibernate.jira.com/browse/NH-3587). The second issue is unfortunatly still not solved so I'll wait with the pull request. You can find my current work here: https://github.com/amroel/nhibernate-core/tree/fix_firebird with the list of current changes: https://github.com/amroel/nhibernate-core/compare/fix_firebird The changes includes the refactoring for the third Issue which is now working for both Firebird and MS-SQL. I have'nt tested it for other dialects but it should be working. The failing tests dropped from 500+x down to 54, but there is still a lot of work to do. On Wednesday, January 8, 2014 7:21:31 AM UTC+1, Oskar Berggren wrote: 2013/12/23 Amro El-Fakharany < <mailto:[email protected]> [email protected]> Hi Everybody, I noticed that there are some (actually a lot!) tests broken for Firebird and I decided to tackle each Problem one by one. Excellent! So far I have found three Issues wich are (roughly description): 1) Decimal data type: Firebird does'nt support precisions larger than 18 and the default of nh is 19. I extended the FirebirdDialect to override the "GetTypeName" method and swap larger Decimal precisions with 18. 2) Parameters Within a select clause: Firebird needs a typecast if a parameter is used within a select clause. I extended the FirebirdClientDriver to override the AdjustCommand method and typecast the parameter. Please open separate issues in Jira and submit pull requests for this. 3) Temporary Tables: Firebird supports temporary Tables, which must be created in an isolated transaction, and so I thought it is just a matter of extending the dialect and overriding the related properties and methods. I read somewhere that Firebird supports transactional DDL - does it not include temporary tables in this? As for the below, the code in TmpIdTableCreationIsolatedWork was added in 2009 and appears to only be used in fairly limited scenarios, so it's not inconceivable that there are still bugs in it. It certainly looks a bit strange. You might have a look at the corresponding java code in Hibernate to see how that looks. [...] return result; Now I think the solution is actually simple, namly refactor the TmpIdTableCreationIsolatedWork.DoWork to use the passed in parameters, but I need to make sure that other dialects will not be affected. (After all there must be a reason why the original author(s) ignored the passed in parameters right?) 1) Does any dialect support DDL statements within the same transaction as the one which actually usese them (such as selects or inserts) at all? Yes, Postgresql has a very robust implementation of mixing DDL and DML inside the same transaction. SQL Server too can handle many things, as can several other RDBMS. 2) If yes, will they be broken if we did the refactoring or do they also support DDL in separate transactions? Whatever refactoring is made, for the databases where the current behavior is correct, that behavior should remain. (even if the current connection happens to be accessed using a different parameter.) 3) Can we remove the if (Factory.Settings.IsDataDefinitionInTransactionSupported) and instead just stick with Isolater.DoIsolatedWork(work, session);? I haven't analyzed this. /Oskar -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:nhibernate-development%[email protected]> . For more options, visit https://groups.google.com/groups/opt_out. -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to <mailto:[email protected]> [email protected]. For more options, visit https://groups.google.com/groups/opt_out. -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
