From 168ea4bb620e2d050e290666b61f790e14e2602b Mon Sep 17 00:00:00 2001 From: Lillo Date: Thu, 20 Sep 2018 23:26:28 -0300 Subject: [PATCH 01/23] Add test --- .../NHSpecificTest/NH3426/Entity.cs | 10 +++ .../NHSpecificTest/NH3426/Fixture.cs | 74 ++++++++++++++++ .../NHSpecificTest/NH3594/Entity.cs | 10 +++ .../NHSpecificTest/NH3594/Fixture.cs | 79 ++++++++++++++++++ src/nhibernate.db | Bin 0 -> 12288 bytes 5 files changed, 173 insertions(+) create mode 100644 src/NHibernate.Test/NHSpecificTest/NH3426/Entity.cs create mode 100644 src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs create mode 100644 src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs create mode 100644 src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs create mode 100644 src/nhibernate.db diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Entity.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Entity.cs new file mode 100644 index 00000000000..7edf9b83318 --- /dev/null +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Entity.cs @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH3426 +{ + public class Entity + { + public virtual Guid Id { get; set; } + public virtual string Name { get; set; } + } +} diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs new file mode 100644 index 00000000000..f13ef104e45 --- /dev/null +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Dialect; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH3426 +{ + [TestFixture] + public class Fixture : TestCaseMappingByCode + { + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is SQLiteDialect; + } + + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + mapper.Class(rc => + { + rc.Id(x => x.Id); + rc.Property(x => x.Name); + }); + return mapper.CompileMappingForAllExplicitlyAddedEntities(); + } + + protected override void OnSetUp() + { + using (var session = OpenSession()) + { + session.Save(new Entity { Id = Guid.NewGuid(), Name = "Name 1" }); + session.Save(new Entity { Id = Guid.NewGuid(), Name = "Name 2" }); + session.Save(new Entity { Id = Guid.NewGuid(), Name = "Name 3" }); + + session.Flush(); + } + } + + protected override void OnTearDown() + { + using (var session = OpenSession()) + using (var transaction = session.BeginTransaction()) + { + session.Delete("from System.Object"); + + session.Flush(); + transaction.Commit(); + } + } + + [Test] + public void SelectAll() + { + using (var session = OpenSession()) + { + var list = session.Query() + .Select(x => new { Id = x.Id.ToString() }) + .ToList(); + + Assert.Equals(3, list.Count); + foreach (var x in list) + { + Assert.AreEqual(36, x.Id.Length); + } + + } + } + } +} diff --git a/src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs b/src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs new file mode 100644 index 00000000000..7ef95d91016 --- /dev/null +++ b/src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH3594 +{ + public class Entity + { + public virtual Guid Id { get; set; } + public virtual string Name { get; set; } + } +} diff --git a/src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs new file mode 100644 index 00000000000..d88604c69f6 --- /dev/null +++ b/src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Criterion; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH3594 +{ + [TestFixture] + public class Fixture : TestCaseMappingByCode + { + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + mapper.Class(rc => + { + rc.Id(x => x.Id, m => m.Generator(Generators.GuidComb)); + rc.Property(x => x.Name); + }); + + return mapper.CompileMappingForAllExplicitlyAddedEntities(); + } + + protected override void OnSetUp() + { + using (var session = OpenSession()) + { + session.Save(new Entity { Name = "Name 1" }); + session.Save(new Entity { Name = "Name 2" }); + session.Save(new Entity { Name = "Name 3" }); + session.Flush(); + } + } + + protected override void OnTearDown() + { + using (var session = OpenSession()) + using (var transaction = session.BeginTransaction()) + { + session.Delete("from System.Object"); + + session.Flush(); + transaction.Commit(); + } + } + + [Test] + public void Test() + { + using (var session = OpenSession()) + { + const int page = 2; + const int rows = 2; + + var criteria = DetachedCriteria + .For("e") + .SetProjection(Projections.Distinct( + Projections.ProjectionList() + .Add(Projections.Property("Id")) + .Add(Projections.Property("Name")) + )) + .SetFirstResult((page - 1) * rows) + .SetMaxResults(rows) + .SetResultTransformer(new Transform.AliasToBeanResultTransformer(typeof(Entity))); + + var query = criteria.GetExecutableCriteria(session); + var result = query.List(); + + Assert.That(result[0], Is.EqualTo("Name2")); + Assert.That(result[1], Is.EqualTo("Name3")); + + } + } + } +} diff --git a/src/nhibernate.db b/src/nhibernate.db new file mode 100644 index 0000000000000000000000000000000000000000..8f32891c6de9c4e54cbf6fcaa0237cb5ecfb6f00 GIT binary patch literal 12288 zcmeI$KS%;m90%}scTrl{3k&p`9<(GLfw=}{^@<~v)HB-T!mA|zl%0@cv@``l4b35B z1c5`ev^0fnHMF)wOIu50Pelm9xq|P5-~HZuzjp`s+1@V^3ukPLtrv+ghf_>?+6$4TAM2tWV=5P$##AOHafKmY;|fB*!3UqDq9O?|Fk z4V-&}yjnfDlpUW>&89$5l||`RAG;f^yhkpUZcbh|7Awutq$-J0rFMLDmN<-@t_;?u zmSeP83iOMAQs_OQAM`~e3 Date: Sun, 23 Sep 2018 10:56:44 -0300 Subject: [PATCH 02/23] fixes bug --- .../NHSpecificTest/NH3426/Fixture.cs | 28 +++++++----------- src/NHibernate/Dialect/Dialect.cs | 1 + src/NHibernate/Dialect/FirebirdDialect.cs | 1 + src/NHibernate/Dialect/MsSql2000Dialect.cs | 1 + src/NHibernate/Dialect/MsSqlCeDialect.cs | 1 + src/NHibernate/Dialect/Oracle8iDialect.cs | 1 + src/NHibernate/Dialect/PostgreSQLDialect.cs | 1 + src/NHibernate/Dialect/SQLiteDialect.cs | 2 ++ src/NHibernate/Dialect/SybaseASE15Dialect.cs | 2 ++ .../Dialect/SybaseSQLAnywhere10Dialect.cs | 1 + .../Linq/Functions/StringGenerator.cs | 5 ++++ src/nhibernate.db | Bin 12288 -> 0 bytes 12 files changed, 27 insertions(+), 17 deletions(-) delete mode 100644 src/nhibernate.db diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs index f13ef104e45..e8960ccba33 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using NHibernate.Cfg.MappingSchema; using NHibernate.Dialect; using NHibernate.Mapping.ByCode; @@ -29,13 +26,13 @@ protected override HbmMapping GetMappings() return mapper.CompileMappingForAllExplicitlyAddedEntities(); } + private static readonly string _id = "9FF2D288-56E6-F349-9CFC-48902132D65B"; + protected override void OnSetUp() { using (var session = OpenSession()) { - session.Save(new Entity { Id = Guid.NewGuid(), Name = "Name 1" }); - session.Save(new Entity { Id = Guid.NewGuid(), Name = "Name 2" }); - session.Save(new Entity { Id = Guid.NewGuid(), Name = "Name 3" }); + session.Save(new Entity { Id = Guid.Parse(_id), Name = "Name 1" }); session.Flush(); } @@ -44,17 +41,19 @@ protected override void OnSetUp() protected override void OnTearDown() { using (var session = OpenSession()) - using (var transaction = session.BeginTransaction()) { - session.Delete("from System.Object"); + using (var transaction = session.BeginTransaction()) + { + session.Delete("from System.Object"); - session.Flush(); - transaction.Commit(); + session.Flush(); + transaction.Commit(); + } } } [Test] - public void SelectAll() + public void SelectGuidToString() { using (var session = OpenSession()) { @@ -62,12 +61,7 @@ public void SelectAll() .Select(x => new { Id = x.Id.ToString() }) .ToList(); - Assert.Equals(3, list.Count); - foreach (var x in list) - { - Assert.AreEqual(36, x.Id.Length); - } - + Assert.AreEqual(list[0].Id.ToUpper(), _id.ToUpper()); } } } diff --git a/src/NHibernate/Dialect/Dialect.cs b/src/NHibernate/Dialect/Dialect.cs index 1dcdac383f0..7bd8e632abf 100644 --- a/src/NHibernate/Dialect/Dialect.cs +++ b/src/NHibernate/Dialect/Dialect.cs @@ -123,6 +123,7 @@ protected Dialect() RegisterFunction("bnot", new Function.BitwiseNativeOperation("~", true)); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as char)")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as char)")); // register hibernate types for default use in scalar sqlquery type auto detection RegisterHibernateType(DbType.Int64, NHibernateUtil.Int64.Name); diff --git a/src/NHibernate/Dialect/FirebirdDialect.cs b/src/NHibernate/Dialect/FirebirdDialect.cs index f79e29eb23e..0143a38fb59 100644 --- a/src/NHibernate/Dialect/FirebirdDialect.cs +++ b/src/NHibernate/Dialect/FirebirdDialect.cs @@ -419,6 +419,7 @@ private void OverrideStandardHQLFunctions() RegisterFunction("upper", new StandardSafeSQLFunction("upper", NHibernateUtil.String, 1)); RegisterFunction("mod", new StandardSafeSQLFunction("mod", NHibernateUtil.Double, 2)); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as VARCHAR(255))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as VARCHAR(255))")); RegisterFunction("sysdate", new CastedFunction("today", NHibernateUtil.Date)); RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "cast(?1 as date)")); // Bitwise operations diff --git a/src/NHibernate/Dialect/MsSql2000Dialect.cs b/src/NHibernate/Dialect/MsSql2000Dialect.cs index 929fc15ac74..c0ed779b42c 100644 --- a/src/NHibernate/Dialect/MsSql2000Dialect.cs +++ b/src/NHibernate/Dialect/MsSql2000Dialect.cs @@ -352,6 +352,7 @@ protected virtual void RegisterFunctions() // Casting to CHAR (without specified length) truncates to 30 characters. // A longer version would be safer, but 50 is enough to prevent errors when casting uniqueidentifer to a string representation (NH-2858) RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar(50))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar(50))")); RegisterFunction("substring", new EmulatedLengthSubstringFunction()); diff --git a/src/NHibernate/Dialect/MsSqlCeDialect.cs b/src/NHibernate/Dialect/MsSqlCeDialect.cs index 86407ba2530..90da41cf9bb 100644 --- a/src/NHibernate/Dialect/MsSqlCeDialect.cs +++ b/src/NHibernate/Dialect/MsSqlCeDialect.cs @@ -170,6 +170,7 @@ protected virtual void RegisterFunctions() { RegisterFunction("substring", new EmulatedLengthSubstringFunction()); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar)")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar)")); RegisterFunction("current_timestamp", new NoArgSQLFunction("getdate", NHibernateUtil.DateTime, true)); RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.DateTime, "dateadd(dd, 0, datediff(dd, 0, ?1))")); diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index 96587fbab2f..a0e9421be58 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -300,6 +300,7 @@ protected virtual void RegisterFunctions() RegisterFunction("next_day", new StandardSQLFunction("next_day", NHibernateUtil.Date)); RegisterFunction("str", new StandardSQLFunction("to_char", NHibernateUtil.String)); + RegisterFunction("strguid", new StandardSQLFunction("to_char", NHibernateUtil.String)); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); diff --git a/src/NHibernate/Dialect/PostgreSQLDialect.cs b/src/NHibernate/Dialect/PostgreSQLDialect.cs index a491862cab7..fe453bdd433 100644 --- a/src/NHibernate/Dialect/PostgreSQLDialect.cs +++ b/src/NHibernate/Dialect/PostgreSQLDialect.cs @@ -62,6 +62,7 @@ public PostgreSQLDialect() // Override standard HQL function RegisterFunction("current_timestamp", new NoArgSQLFunction("now", NHibernateUtil.DateTime, true)); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as varchar)")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar)")); RegisterFunction("locate", new PositionSubstringFunction()); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); RegisterFunction("replace", new StandardSQLFunction("replace", NHibernateUtil.String)); diff --git a/src/NHibernate/Dialect/SQLiteDialect.cs b/src/NHibernate/Dialect/SQLiteDialect.cs index 802ef14eb6e..f69f966ccfc 100644 --- a/src/NHibernate/Dialect/SQLiteDialect.cs +++ b/src/NHibernate/Dialect/SQLiteDialect.cs @@ -74,6 +74,8 @@ protected virtual void RegisterFunctions() // 'YYYY-MM-DD 00:00:00' format for the date function. RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "datetime(date(?1))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); + RegisterFunction("substring", new StandardSQLFunction("substr", NHibernateUtil.String)); RegisterFunction("left", new SQLFunctionTemplate(NHibernateUtil.String, "substr(?1,1,?2)")); RegisterFunction("trim", new AnsiTrimEmulationFunction()); diff --git a/src/NHibernate/Dialect/SybaseASE15Dialect.cs b/src/NHibernate/Dialect/SybaseASE15Dialect.cs index 5ccceff3176..f540f15f7f9 100644 --- a/src/NHibernate/Dialect/SybaseASE15Dialect.cs +++ b/src/NHibernate/Dialect/SybaseASE15Dialect.cs @@ -104,6 +104,8 @@ public SybaseASE15Dialect() RegisterFunction("sqrt", new StandardSQLFunction("sqrt", NHibernateUtil.Double)); RegisterFunction("square", new StandardSQLFunction("square")); RegisterFunction("str", new StandardSQLFunction("str", NHibernateUtil.String)); + RegisterFunction("strguid", new StandardSQLFunction("str", NHibernateUtil.String)); + RegisterFunction("strguid", new StandardSQLFunction("str", NHibernateUtil.String)); RegisterFunction("tan", new StandardSQLFunction("tan", NHibernateUtil.Double)); // TODO RegisterFunction("trim", new SQLFunctionTemplate(NHibernateUtil.String, "ltrim(rtrim(?1))")); RegisterFunction("upper", new StandardSQLFunction("upper")); diff --git a/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs b/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs index bd07ff22c2e..6e64aa2b8b6 100644 --- a/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs +++ b/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs @@ -273,6 +273,7 @@ protected virtual void RegisterStringFunctions() RegisterFunction("soundex", new StandardSQLFunction("soundex", NHibernateUtil.Int32)); RegisterFunction("space", new StandardSQLFunction("space", NHibernateUtil.String)); RegisterFunction("str", new VarArgsSQLFunction(NHibernateUtil.String, "str(", ",", ")")); + RegisterFunction("strguid", new VarArgsSQLFunction(NHibernateUtil.String, "str(", "," ,")")); RegisterFunction("string", new VarArgsSQLFunction(NHibernateUtil.String, "string(", ",", ")")); RegisterFunction("strtouuid", new StandardSQLFunction("strtouuid")); RegisterFunction("stuff", new StandardSQLFunction("stuff", NHibernateUtil.String)); diff --git a/src/NHibernate/Linq/Functions/StringGenerator.cs b/src/NHibernate/Linq/Functions/StringGenerator.cs index 149d635c3fe..cf8b0f2a815 100644 --- a/src/NHibernate/Linq/Functions/StringGenerator.cs +++ b/src/NHibernate/Linq/Functions/StringGenerator.cs @@ -324,6 +324,11 @@ public IEnumerable SupportedMethods public HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor) { + if (targetObject.Type == typeof(Guid)) + { + return treeBuilder.MethodCall("strguid", visitor.Visit(targetObject).AsExpression()); + } + return treeBuilder.MethodCall("str", visitor.Visit(targetObject).AsExpression()); } } diff --git a/src/nhibernate.db b/src/nhibernate.db deleted file mode 100644 index 8f32891c6de9c4e54cbf6fcaa0237cb5ecfb6f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI$KS%;m90%}scTrl{3k&p`9<(GLfw=}{^@<~v)HB-T!mA|zl%0@cv@``l4b35B z1c5`ev^0fnHMF)wOIu50Pelm9xq|P5-~HZuzjp`s+1@V^3ukPLtrv+ghf_>?+6$4TAM2tWV=5P$##AOHafKmY;|fB*!3UqDq9O?|Fk z4V-&}yjnfDlpUW>&89$5l||`RAG;f^yhkpUZcbh|7Awutq$-J0rFMLDmN<-@t_;?u zmSeP83iOMAQs_OQAM`~e3 Date: Sun, 23 Sep 2018 11:04:10 -0300 Subject: [PATCH 03/23] Remove unsed folder --- .../NHSpecificTest/NH3594/Entity.cs | 10 --- .../NHSpecificTest/NH3594/Fixture.cs | 79 ------------------- 2 files changed, 89 deletions(-) delete mode 100644 src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs delete mode 100644 src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs diff --git a/src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs b/src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs deleted file mode 100644 index 7ef95d91016..00000000000 --- a/src/NHibernate.Test/NHSpecificTest/NH3594/Entity.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace NHibernate.Test.NHSpecificTest.NH3594 -{ - public class Entity - { - public virtual Guid Id { get; set; } - public virtual string Name { get; set; } - } -} diff --git a/src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs deleted file mode 100644 index d88604c69f6..00000000000 --- a/src/NHibernate.Test/NHSpecificTest/NH3594/Fixture.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using NHibernate.Cfg.MappingSchema; -using NHibernate.Criterion; -using NHibernate.Mapping.ByCode; -using NUnit.Framework; - -namespace NHibernate.Test.NHSpecificTest.NH3594 -{ - [TestFixture] - public class Fixture : TestCaseMappingByCode - { - protected override HbmMapping GetMappings() - { - var mapper = new ModelMapper(); - mapper.Class(rc => - { - rc.Id(x => x.Id, m => m.Generator(Generators.GuidComb)); - rc.Property(x => x.Name); - }); - - return mapper.CompileMappingForAllExplicitlyAddedEntities(); - } - - protected override void OnSetUp() - { - using (var session = OpenSession()) - { - session.Save(new Entity { Name = "Name 1" }); - session.Save(new Entity { Name = "Name 2" }); - session.Save(new Entity { Name = "Name 3" }); - session.Flush(); - } - } - - protected override void OnTearDown() - { - using (var session = OpenSession()) - using (var transaction = session.BeginTransaction()) - { - session.Delete("from System.Object"); - - session.Flush(); - transaction.Commit(); - } - } - - [Test] - public void Test() - { - using (var session = OpenSession()) - { - const int page = 2; - const int rows = 2; - - var criteria = DetachedCriteria - .For("e") - .SetProjection(Projections.Distinct( - Projections.ProjectionList() - .Add(Projections.Property("Id")) - .Add(Projections.Property("Name")) - )) - .SetFirstResult((page - 1) * rows) - .SetMaxResults(rows) - .SetResultTransformer(new Transform.AliasToBeanResultTransformer(typeof(Entity))); - - var query = criteria.GetExecutableCriteria(session); - var result = query.List(); - - Assert.That(result[0], Is.EqualTo("Name2")); - Assert.That(result[1], Is.EqualTo("Name3")); - - } - } - } -} From c68b0ae82655cc09ca420c736848f9ac5b104851 Mon Sep 17 00:00:00 2001 From: Rafael Lillo Date: Sun, 23 Sep 2018 11:08:59 -0300 Subject: [PATCH 04/23] improve code --- src/NHibernate/Linq/Functions/StringGenerator.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/NHibernate/Linq/Functions/StringGenerator.cs b/src/NHibernate/Linq/Functions/StringGenerator.cs index cf8b0f2a815..45a458e96da 100644 --- a/src/NHibernate/Linq/Functions/StringGenerator.cs +++ b/src/NHibernate/Linq/Functions/StringGenerator.cs @@ -317,6 +317,7 @@ public IHqlGeneratorForMethod GetMethodGenerator(MethodInfo method) public class ToStringHqlGeneratorForMethod : IHqlGeneratorForMethod { + private static readonly System.Type _guidType = typeof(Guid); public IEnumerable SupportedMethods { get { throw new NotSupportedException(); } @@ -324,7 +325,7 @@ public IEnumerable SupportedMethods public HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor) { - if (targetObject.Type == typeof(Guid)) + if (targetObject.Type == _guidType) { return treeBuilder.MethodCall("strguid", visitor.Visit(targetObject).AsExpression()); } From cfb2de0b5dfc2584850fa893ea2c21a25afa2e3d Mon Sep 17 00:00:00 2001 From: Rafael Lillo Date: Sun, 23 Sep 2018 11:10:39 -0300 Subject: [PATCH 05/23] remove duplicate function --- src/NHibernate/Dialect/SybaseASE15Dialect.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/NHibernate/Dialect/SybaseASE15Dialect.cs b/src/NHibernate/Dialect/SybaseASE15Dialect.cs index f540f15f7f9..1321c2afd93 100644 --- a/src/NHibernate/Dialect/SybaseASE15Dialect.cs +++ b/src/NHibernate/Dialect/SybaseASE15Dialect.cs @@ -105,7 +105,6 @@ public SybaseASE15Dialect() RegisterFunction("square", new StandardSQLFunction("square")); RegisterFunction("str", new StandardSQLFunction("str", NHibernateUtil.String)); RegisterFunction("strguid", new StandardSQLFunction("str", NHibernateUtil.String)); - RegisterFunction("strguid", new StandardSQLFunction("str", NHibernateUtil.String)); RegisterFunction("tan", new StandardSQLFunction("tan", NHibernateUtil.Double)); // TODO RegisterFunction("trim", new SQLFunctionTemplate(NHibernateUtil.String, "ltrim(rtrim(?1))")); RegisterFunction("upper", new StandardSQLFunction("upper")); From 4657d5916b86f122f6b3568e90082ca702680b1a Mon Sep 17 00:00:00 2001 From: Lillo Date: Sun, 23 Sep 2018 17:21:26 -0300 Subject: [PATCH 06/23] apply to all dialect --- src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs index e8960ccba33..ad4ec3918ff 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -10,10 +10,6 @@ namespace NHibernate.Test.NHSpecificTest.NH3426 [TestFixture] public class Fixture : TestCaseMappingByCode { - protected override bool AppliesTo(Dialect.Dialect dialect) - { - return dialect is SQLiteDialect; - } protected override HbmMapping GetMappings() { From 1427a0059c683b788b57447993c166263f410a50 Mon Sep 17 00:00:00 2001 From: Lillo Date: Sun, 23 Sep 2018 18:21:42 -0300 Subject: [PATCH 07/23] fix test assert order --- src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs index ad4ec3918ff..1a59a95b761 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -57,7 +57,7 @@ public void SelectGuidToString() .Select(x => new { Id = x.Id.ToString() }) .ToList(); - Assert.AreEqual(list[0].Id.ToUpper(), _id.ToUpper()); + Assert.AreEqual(_id.ToUpper(), list[0].Id.ToUpper()); } } } From 8a3ceab10e356a4d7b71ed3a008e4492cb4afeab Mon Sep 17 00:00:00 2001 From: Lillo Date: Sun, 23 Sep 2018 18:30:40 -0300 Subject: [PATCH 08/23] fix problem on MySQL --- src/NHibernate/Dialect/MySQL55Dialect.cs | 5 ++++- src/NHibernate/Dialect/MySQL5Dialect.cs | 3 +++ src/NHibernate/Dialect/MySQLDialect.cs | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/MySQL55Dialect.cs b/src/NHibernate/Dialect/MySQL55Dialect.cs index fb5de2aa78b..743003950a7 100644 --- a/src/NHibernate/Dialect/MySQL55Dialect.cs +++ b/src/NHibernate/Dialect/MySQL55Dialect.cs @@ -1,5 +1,6 @@ using System.Data; +using NHibernate.Dialect.Function; namespace NHibernate.Dialect { @@ -8,6 +9,8 @@ public class MySQL55Dialect : MySQL5Dialect public MySQL55Dialect() { RegisterColumnType(DbType.Guid, "CHAR(36)"); + + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Dialect/MySQL5Dialect.cs b/src/NHibernate/Dialect/MySQL5Dialect.cs index 38de3759df3..2aa5c3bc7f2 100644 --- a/src/NHibernate/Dialect/MySQL5Dialect.cs +++ b/src/NHibernate/Dialect/MySQL5Dialect.cs @@ -1,4 +1,5 @@ using System.Data; +using NHibernate.Dialect.Function; using NHibernate.SqlCommand; namespace NHibernate.Dialect @@ -22,6 +23,8 @@ protected override void RegisterCastTypes() { RegisterCastType(DbType.Double, "DECIMAL(19,5)"); RegisterCastType(DbType.Single, "DECIMAL(19,5)"); RegisterCastType(DbType.Guid, "BINARY(16)"); + + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as char(36))")); } //Reference 5.x diff --git a/src/NHibernate/Dialect/MySQLDialect.cs b/src/NHibernate/Dialect/MySQLDialect.cs index 59539395226..2308f5c5f5d 100644 --- a/src/NHibernate/Dialect/MySQLDialect.cs +++ b/src/NHibernate/Dialect/MySQLDialect.cs @@ -107,6 +107,8 @@ public MySQLDialect() //special: RegisterColumnType(DbType.Guid, "VARCHAR(40)"); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); + RegisterKeywords(); RegisterCastTypes(); From 17540ed179770619ea8041a05aaae6a0835d178b Mon Sep 17 00:00:00 2001 From: Lillo Date: Sun, 23 Sep 2018 19:29:09 -0300 Subject: [PATCH 09/23] fixes postgresql --- src/NHibernate/Dialect/PostgreSQL82Dialect.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/PostgreSQL82Dialect.cs b/src/NHibernate/Dialect/PostgreSQL82Dialect.cs index af33c2b2aa4..c6fb884c715 100644 --- a/src/NHibernate/Dialect/PostgreSQL82Dialect.cs +++ b/src/NHibernate/Dialect/PostgreSQL82Dialect.cs @@ -1,5 +1,6 @@ using System; using System.Data; +using NHibernate.Dialect.Function; namespace NHibernate.Dialect { @@ -16,6 +17,7 @@ public class PostgreSQL82Dialect : PostgreSQL81Dialect public PostgreSQL82Dialect() { RegisterColumnType(DbType.Guid, "uuid"); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as varchar(36))")); } public override bool SupportsIfExistsBeforeTableName @@ -28,4 +30,4 @@ public override string GetDropSequenceString(string sequenceName) return string.Concat("drop sequence if exists ", sequenceName); } } -} \ No newline at end of file +} From a700fc6e6c0e4c85b168a4ada169a146c22da62b Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Mon, 24 Sep 2018 15:59:58 +1200 Subject: [PATCH 10/23] Fix strguid for Firebird --- src/NHibernate/Dialect/FirebirdDialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/FirebirdDialect.cs b/src/NHibernate/Dialect/FirebirdDialect.cs index 0143a38fb59..af32c3e09d5 100644 --- a/src/NHibernate/Dialect/FirebirdDialect.cs +++ b/src/NHibernate/Dialect/FirebirdDialect.cs @@ -419,7 +419,7 @@ private void OverrideStandardHQLFunctions() RegisterFunction("upper", new StandardSafeSQLFunction("upper", NHibernateUtil.String, 1)); RegisterFunction("mod", new StandardSafeSQLFunction("mod", NHibernateUtil.Double, 2)); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as VARCHAR(255))")); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as VARCHAR(255))")); + RegisterFunction("strguid", new StandardSQLFunction("uuid_to_char", NHibernateUtil.String)); RegisterFunction("sysdate", new CastedFunction("today", NHibernateUtil.Date)); RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "cast(?1 as date)")); // Bitwise operations From 4e97cced84eda53cc128c0ddd39dc5b328ddedc1 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Mon, 24 Sep 2018 20:48:05 +1200 Subject: [PATCH 11/23] Update FirebirdClient to 6.3.0 --- src/NHibernate.Test/NHibernate.Test.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/NHibernate.Test/NHibernate.Test.csproj b/src/NHibernate.Test/NHibernate.Test.csproj index 6e6df5e293d..b80937c451a 100644 --- a/src/NHibernate.Test/NHibernate.Test.csproj +++ b/src/NHibernate.Test/NHibernate.Test.csproj @@ -53,7 +53,7 @@ - + @@ -97,4 +97,4 @@ - \ No newline at end of file + From ce8f8966fb9ecb6f2fb853e47743142bcdae7fa3 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Mon, 24 Sep 2018 21:28:13 +1200 Subject: [PATCH 12/23] Fix strguid in MySql5Dialect --- src/NHibernate/Dialect/MySQL5Dialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/MySQL5Dialect.cs b/src/NHibernate/Dialect/MySQL5Dialect.cs index 2aa5c3bc7f2..e7a9872c253 100644 --- a/src/NHibernate/Dialect/MySQL5Dialect.cs +++ b/src/NHibernate/Dialect/MySQL5Dialect.cs @@ -24,7 +24,7 @@ protected override void RegisterCastTypes() { RegisterCastType(DbType.Single, "DECIMAL(19,5)"); RegisterCastType(DbType.Guid, "BINARY(16)"); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as char(36))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(substr(hex(?1), 1, 8), '-', substr(hex(?1), 9, 4), '-', substr(hex(?1), 13, 4), '-', substr(hex(?1), 17, 4), '-', substr(hex(?1), 21))")); } //Reference 5.x From f798727e01f3076e519ef5c20e9999bbe53dfe17 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Mon, 24 Sep 2018 23:08:47 +1200 Subject: [PATCH 13/23] Another attempt fixing MySQL --- src/NHibernate/Dialect/MySQL5Dialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/MySQL5Dialect.cs b/src/NHibernate/Dialect/MySQL5Dialect.cs index e7a9872c253..c7932abaed5 100644 --- a/src/NHibernate/Dialect/MySQL5Dialect.cs +++ b/src/NHibernate/Dialect/MySQL5Dialect.cs @@ -24,7 +24,7 @@ protected override void RegisterCastTypes() { RegisterCastType(DbType.Single, "DECIMAL(19,5)"); RegisterCastType(DbType.Guid, "BINARY(16)"); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(substr(hex(?1), 1, 8), '-', substr(hex(?1), 9, 4), '-', substr(hex(?1), 13, 4), '-', substr(hex(?1), 17, 4), '-', substr(hex(?1), 21))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(hex(reverse(substr(?1, 1, 4))), '-', hex(reverse(substring(?1, 5, 2))), '-', hex(reverse(substr(?1, 7, 2))), '-', hex(substr(?1, 9, 2)), '-', hex(substr(?1, 11)))")); } //Reference 5.x From d066e72edef83d2e94b682c5fa9b9c0b218a26e5 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Mon, 24 Sep 2018 23:22:03 +1200 Subject: [PATCH 14/23] Trying to fix Oracle --- src/NHibernate/Dialect/Oracle8iDialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index a0e9421be58..5ce9e4f6187 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -300,7 +300,7 @@ protected virtual void RegisterFunctions() RegisterFunction("next_day", new StandardSQLFunction("next_day", NHibernateUtil.Date)); RegisterFunction("str", new StandardSQLFunction("to_char", NHibernateUtil.String)); - RegisterFunction("strguid", new StandardSQLFunction("to_char", NHibernateUtil.String)); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "rawtohex(reverse(substr(?1, 1, 4))) || '-' || rawtohex(reverse(substring(?1, 5, 2))) || '-' || rawtohex(reverse(substr(?1, 7, 2))) || '-' || rawtohex(substr(?1, 9, 2)) || '-' || rawtohex(substr(?1, 11))")); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); From a0dcadeb1f78058913abab1c4afe3b95a1c92399 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Tue, 25 Sep 2018 00:31:30 +1200 Subject: [PATCH 15/23] Another attempt --- src/NHibernate/Dialect/Oracle8iDialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index 5ce9e4f6187..da5c2e1a1e6 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -300,7 +300,7 @@ protected virtual void RegisterFunctions() RegisterFunction("next_day", new StandardSQLFunction("next_day", NHibernateUtil.Date)); RegisterFunction("str", new StandardSQLFunction("to_char", NHibernateUtil.String)); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "rawtohex(reverse(substr(?1, 1, 4))) || '-' || rawtohex(reverse(substring(?1, 5, 2))) || '-' || rawtohex(reverse(substr(?1, 7, 2))) || '-' || rawtohex(substr(?1, 9, 2)) || '-' || rawtohex(substr(?1, 11))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "rawtohex(reverse(substr(?1, 1, 4))) || '-' || rawtohex(reverse(substr(?1, 5, 2))) || '-' || rawtohex(reverse(substr(?1, 7, 2))) || '-' || rawtohex(substr(?1, 9, 2)) || '-', rawtohex(substr(?1, 11))")); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); From f274dc46dc9d5357752f130df91019c71bb06022 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Tue, 25 Sep 2018 09:52:18 +1200 Subject: [PATCH 16/23] Fix for Oracle --- src/NHibernate/Dialect/Oracle8iDialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index da5c2e1a1e6..50220d6ee0c 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -300,7 +300,7 @@ protected virtual void RegisterFunctions() RegisterFunction("next_day", new StandardSQLFunction("next_day", NHibernateUtil.Date)); RegisterFunction("str", new StandardSQLFunction("to_char", NHibernateUtil.String)); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "rawtohex(reverse(substr(?1, 1, 4))) || '-' || rawtohex(reverse(substr(?1, 5, 2))) || '-' || rawtohex(reverse(substr(?1, 7, 2))) || '-' || rawtohex(substr(?1, 9, 2)) || '-', rawtohex(substr(?1, 11))")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "substr(rawtohex(?1), 7, 2) || substr(rawtohex(?1), 5, 2) || substr(rawtohex(?1), 3, 2) || substr(rawtohex(?1), 1, 2) || '-' || substr(rawtohex(?1), 11, 2) || substr(rawtohex(?1), 9, 2) || '-' || substr(rawtohex(?1), 15, 2) || substr(rawtohex(?1), 13, 2) || '-' || substr(rawtohex(?1), 17) ")); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); From 309e0a3bdac554b8cd3bc6cc5a5179a3a2d8c51d Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Tue, 25 Sep 2018 11:57:25 +1200 Subject: [PATCH 17/23] Forgot a final dash for Oracle --- src/NHibernate/Dialect/Oracle8iDialect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index 50220d6ee0c..c3fb9970f78 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -300,7 +300,7 @@ protected virtual void RegisterFunctions() RegisterFunction("next_day", new StandardSQLFunction("next_day", NHibernateUtil.Date)); RegisterFunction("str", new StandardSQLFunction("to_char", NHibernateUtil.String)); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "substr(rawtohex(?1), 7, 2) || substr(rawtohex(?1), 5, 2) || substr(rawtohex(?1), 3, 2) || substr(rawtohex(?1), 1, 2) || '-' || substr(rawtohex(?1), 11, 2) || substr(rawtohex(?1), 9, 2) || '-' || substr(rawtohex(?1), 15, 2) || substr(rawtohex(?1), 13, 2) || '-' || substr(rawtohex(?1), 17) ")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "substr(rawtohex(?1), 7, 2) || substr(rawtohex(?1), 5, 2) || substr(rawtohex(?1), 3, 2) || substr(rawtohex(?1), 1, 2) || '-' || substr(rawtohex(?1), 11, 2) || substr(rawtohex(?1), 9, 2) || '-' || substr(rawtohex(?1), 15, 2) || substr(rawtohex(?1), 13, 2) || '-' || substr(rawtohex(?1), 17, 4) || '-' || substr(rawtohex(?1), 21) ")); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); From cd7d155a8cf1b475a3f55c0a4089b4b97cc11ba4 Mon Sep 17 00:00:00 2001 From: Lillo Date: Sun, 30 Sep 2018 19:27:03 -0300 Subject: [PATCH 18/23] Simplify query and remove unsed reference on test --- src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs | 1 - src/NHibernate/Dialect/Dialect.cs | 2 +- src/NHibernate/Dialect/MsSql2000Dialect.cs | 1 - src/NHibernate/Dialect/MsSqlCeDialect.cs | 1 - src/NHibernate/Dialect/MySQL55Dialect.cs | 2 -- src/NHibernate/Dialect/MySQLDialect.cs | 2 -- src/NHibernate/Dialect/PostgreSQL82Dialect.cs | 1 - src/NHibernate/Dialect/PostgreSQLDialect.cs | 1 - src/NHibernate/Dialect/SQLiteDialect.cs | 2 -- src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs | 1 - 10 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs index 1a59a95b761..d0b79fbb149 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -1,7 +1,6 @@ using System; using System.Linq; using NHibernate.Cfg.MappingSchema; -using NHibernate.Dialect; using NHibernate.Mapping.ByCode; using NUnit.Framework; diff --git a/src/NHibernate/Dialect/Dialect.cs b/src/NHibernate/Dialect/Dialect.cs index 7bd8e632abf..cbfca91c972 100644 --- a/src/NHibernate/Dialect/Dialect.cs +++ b/src/NHibernate/Dialect/Dialect.cs @@ -123,7 +123,7 @@ protected Dialect() RegisterFunction("bnot", new Function.BitwiseNativeOperation("~", true)); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as char)")); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as char)")); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); // register hibernate types for default use in scalar sqlquery type auto detection RegisterHibernateType(DbType.Int64, NHibernateUtil.Int64.Name); diff --git a/src/NHibernate/Dialect/MsSql2000Dialect.cs b/src/NHibernate/Dialect/MsSql2000Dialect.cs index c0ed779b42c..929fc15ac74 100644 --- a/src/NHibernate/Dialect/MsSql2000Dialect.cs +++ b/src/NHibernate/Dialect/MsSql2000Dialect.cs @@ -352,7 +352,6 @@ protected virtual void RegisterFunctions() // Casting to CHAR (without specified length) truncates to 30 characters. // A longer version would be safer, but 50 is enough to prevent errors when casting uniqueidentifer to a string representation (NH-2858) RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar(50))")); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar(50))")); RegisterFunction("substring", new EmulatedLengthSubstringFunction()); diff --git a/src/NHibernate/Dialect/MsSqlCeDialect.cs b/src/NHibernate/Dialect/MsSqlCeDialect.cs index 90da41cf9bb..86407ba2530 100644 --- a/src/NHibernate/Dialect/MsSqlCeDialect.cs +++ b/src/NHibernate/Dialect/MsSqlCeDialect.cs @@ -170,7 +170,6 @@ protected virtual void RegisterFunctions() { RegisterFunction("substring", new EmulatedLengthSubstringFunction()); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar)")); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar)")); RegisterFunction("current_timestamp", new NoArgSQLFunction("getdate", NHibernateUtil.DateTime, true)); RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.DateTime, "dateadd(dd, 0, datediff(dd, 0, ?1))")); diff --git a/src/NHibernate/Dialect/MySQL55Dialect.cs b/src/NHibernate/Dialect/MySQL55Dialect.cs index 743003950a7..a64fbdcb6ae 100644 --- a/src/NHibernate/Dialect/MySQL55Dialect.cs +++ b/src/NHibernate/Dialect/MySQL55Dialect.cs @@ -9,8 +9,6 @@ public class MySQL55Dialect : MySQL5Dialect public MySQL55Dialect() { RegisterColumnType(DbType.Guid, "CHAR(36)"); - - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); } } } diff --git a/src/NHibernate/Dialect/MySQLDialect.cs b/src/NHibernate/Dialect/MySQLDialect.cs index 2308f5c5f5d..59539395226 100644 --- a/src/NHibernate/Dialect/MySQLDialect.cs +++ b/src/NHibernate/Dialect/MySQLDialect.cs @@ -107,8 +107,6 @@ public MySQLDialect() //special: RegisterColumnType(DbType.Guid, "VARCHAR(40)"); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); - RegisterKeywords(); RegisterCastTypes(); diff --git a/src/NHibernate/Dialect/PostgreSQL82Dialect.cs b/src/NHibernate/Dialect/PostgreSQL82Dialect.cs index c6fb884c715..676a617ed2c 100644 --- a/src/NHibernate/Dialect/PostgreSQL82Dialect.cs +++ b/src/NHibernate/Dialect/PostgreSQL82Dialect.cs @@ -17,7 +17,6 @@ public class PostgreSQL82Dialect : PostgreSQL81Dialect public PostgreSQL82Dialect() { RegisterColumnType(DbType.Guid, "uuid"); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as varchar(36))")); } public override bool SupportsIfExistsBeforeTableName diff --git a/src/NHibernate/Dialect/PostgreSQLDialect.cs b/src/NHibernate/Dialect/PostgreSQLDialect.cs index fe453bdd433..a491862cab7 100644 --- a/src/NHibernate/Dialect/PostgreSQLDialect.cs +++ b/src/NHibernate/Dialect/PostgreSQLDialect.cs @@ -62,7 +62,6 @@ public PostgreSQLDialect() // Override standard HQL function RegisterFunction("current_timestamp", new NoArgSQLFunction("now", NHibernateUtil.DateTime, true)); RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as varchar)")); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar)")); RegisterFunction("locate", new PositionSubstringFunction()); RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end")); RegisterFunction("replace", new StandardSQLFunction("replace", NHibernateUtil.String)); diff --git a/src/NHibernate/Dialect/SQLiteDialect.cs b/src/NHibernate/Dialect/SQLiteDialect.cs index f69f966ccfc..802ef14eb6e 100644 --- a/src/NHibernate/Dialect/SQLiteDialect.cs +++ b/src/NHibernate/Dialect/SQLiteDialect.cs @@ -74,8 +74,6 @@ protected virtual void RegisterFunctions() // 'YYYY-MM-DD 00:00:00' format for the date function. RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "datetime(date(?1))")); - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); - RegisterFunction("substring", new StandardSQLFunction("substr", NHibernateUtil.String)); RegisterFunction("left", new SQLFunctionTemplate(NHibernateUtil.String, "substr(?1,1,?2)")); RegisterFunction("trim", new AnsiTrimEmulationFunction()); diff --git a/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs b/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs index 6e64aa2b8b6..bd07ff22c2e 100644 --- a/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs +++ b/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs @@ -273,7 +273,6 @@ protected virtual void RegisterStringFunctions() RegisterFunction("soundex", new StandardSQLFunction("soundex", NHibernateUtil.Int32)); RegisterFunction("space", new StandardSQLFunction("space", NHibernateUtil.String)); RegisterFunction("str", new VarArgsSQLFunction(NHibernateUtil.String, "str(", ",", ")")); - RegisterFunction("strguid", new VarArgsSQLFunction(NHibernateUtil.String, "str(", "," ,")")); RegisterFunction("string", new VarArgsSQLFunction(NHibernateUtil.String, "string(", ",", ")")); RegisterFunction("strtouuid", new StandardSQLFunction("strtouuid")); RegisterFunction("stuff", new StandardSQLFunction("stuff", NHibernateUtil.String)); From ed9835bd9d57c41a459d5081af486bc25acff675 Mon Sep 17 00:00:00 2001 From: Rafael Lillo Date: Wed, 31 Oct 2018 10:37:50 -0300 Subject: [PATCH 19/23] Improve to select on MySQl55 with CHAR --- src/NHibernate/Dialect/MySQL55Dialect.cs | 1 + src/NHibernate/Dialect/MySQL5Dialect.cs | 4 ++-- src/NHibernate/Linq/Functions/StringGenerator.cs | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/NHibernate/Dialect/MySQL55Dialect.cs b/src/NHibernate/Dialect/MySQL55Dialect.cs index a64fbdcb6ae..9c47c111221 100644 --- a/src/NHibernate/Dialect/MySQL55Dialect.cs +++ b/src/NHibernate/Dialect/MySQL55Dialect.cs @@ -9,6 +9,7 @@ public class MySQL55Dialect : MySQL5Dialect public MySQL55Dialect() { RegisterColumnType(DbType.Guid, "CHAR(36)"); + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1")); } } } diff --git a/src/NHibernate/Dialect/MySQL5Dialect.cs b/src/NHibernate/Dialect/MySQL5Dialect.cs index c7932abaed5..ed9ab8c5d5c 100644 --- a/src/NHibernate/Dialect/MySQL5Dialect.cs +++ b/src/NHibernate/Dialect/MySQL5Dialect.cs @@ -12,6 +12,8 @@ public MySQL5Dialect() // My SQL supports precision up to 65, but .Net is limited to 28-29. RegisterColumnType(DbType.Decimal, 29, "DECIMAL($p, $s)"); RegisterColumnType(DbType.Guid, "BINARY(16)"); + + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(hex(reverse(substr(?1, 1, 4))), '-', hex(reverse(substring(?1, 5, 2))), '-', hex(reverse(substr(?1, 7, 2))), '-', hex(substr(?1, 9, 2)), '-', hex(substr(?1, 11)))")); } protected override void RegisterCastTypes() { @@ -23,8 +25,6 @@ protected override void RegisterCastTypes() { RegisterCastType(DbType.Double, "DECIMAL(19,5)"); RegisterCastType(DbType.Single, "DECIMAL(19,5)"); RegisterCastType(DbType.Guid, "BINARY(16)"); - - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(hex(reverse(substr(?1, 1, 4))), '-', hex(reverse(substring(?1, 5, 2))), '-', hex(reverse(substr(?1, 7, 2))), '-', hex(substr(?1, 9, 2)), '-', hex(substr(?1, 11)))")); } //Reference 5.x diff --git a/src/NHibernate/Linq/Functions/StringGenerator.cs b/src/NHibernate/Linq/Functions/StringGenerator.cs index 45a458e96da..6efd7d07f30 100644 --- a/src/NHibernate/Linq/Functions/StringGenerator.cs +++ b/src/NHibernate/Linq/Functions/StringGenerator.cs @@ -317,7 +317,7 @@ public IHqlGeneratorForMethod GetMethodGenerator(MethodInfo method) public class ToStringHqlGeneratorForMethod : IHqlGeneratorForMethod { - private static readonly System.Type _guidType = typeof(Guid); + private static readonly System.Type s_guidType = typeof(Guid); public IEnumerable SupportedMethods { get { throw new NotSupportedException(); } @@ -325,7 +325,7 @@ public IEnumerable SupportedMethods public HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor) { - if (targetObject.Type == _guidType) + if (targetObject.Type == s_guidType) { return treeBuilder.MethodCall("strguid", visitor.Visit(targetObject).AsExpression()); } From f8cc863bf7c2aa7ca83e4cd18323f6b574da507a Mon Sep 17 00:00:00 2001 From: Rafael Lillo Date: Wed, 31 Oct 2018 11:14:03 -0300 Subject: [PATCH 20/23] Improve MySQL5 query --- src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs | 6 +++--- src/NHibernate/Dialect/MySQL5Dialect.cs | 5 ++--- src/NHibernate/Linq/Functions/StringGenerator.cs | 1 + 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs index d0b79fbb149..24b2fc3d78d 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -21,13 +21,13 @@ protected override HbmMapping GetMappings() return mapper.CompileMappingForAllExplicitlyAddedEntities(); } - private static readonly string _id = "9FF2D288-56E6-F349-9CFC-48902132D65B"; + private const string id = "9FF2D288-56E6-F349-9CFC-48902132D65B"; protected override void OnSetUp() { using (var session = OpenSession()) { - session.Save(new Entity { Id = Guid.Parse(_id), Name = "Name 1" }); + session.Save(new Entity { Id = Guid.Parse(id), Name = "Name 1" }); session.Flush(); } @@ -56,7 +56,7 @@ public void SelectGuidToString() .Select(x => new { Id = x.Id.ToString() }) .ToList(); - Assert.AreEqual(_id.ToUpper(), list[0].Id.ToUpper()); + Assert.AreEqual(id.ToUpper(), list[0].Id.ToUpper()); } } } diff --git a/src/NHibernate/Dialect/MySQL5Dialect.cs b/src/NHibernate/Dialect/MySQL5Dialect.cs index ed9ab8c5d5c..89c58e921f4 100644 --- a/src/NHibernate/Dialect/MySQL5Dialect.cs +++ b/src/NHibernate/Dialect/MySQL5Dialect.cs @@ -12,11 +12,10 @@ public MySQL5Dialect() // My SQL supports precision up to 65, but .Net is limited to 28-29. RegisterColumnType(DbType.Decimal, 29, "DECIMAL($p, $s)"); RegisterColumnType(DbType.Guid, "BINARY(16)"); - - RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(hex(reverse(substr(?1, 1, 4))), '-', hex(reverse(substring(?1, 5, 2))), '-', hex(reverse(substr(?1, 7, 2))), '-', hex(substr(?1, 9, 2)), '-', hex(substr(?1, 11)))")); } - protected override void RegisterCastTypes() { + protected override void RegisterCastTypes() + { base.RegisterCastTypes(); // MySql 5 also supports DECIMAL as a cast type target // http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html diff --git a/src/NHibernate/Linq/Functions/StringGenerator.cs b/src/NHibernate/Linq/Functions/StringGenerator.cs index 6efd7d07f30..b43597e6585 100644 --- a/src/NHibernate/Linq/Functions/StringGenerator.cs +++ b/src/NHibernate/Linq/Functions/StringGenerator.cs @@ -318,6 +318,7 @@ public IHqlGeneratorForMethod GetMethodGenerator(MethodInfo method) public class ToStringHqlGeneratorForMethod : IHqlGeneratorForMethod { private static readonly System.Type s_guidType = typeof(Guid); + public IEnumerable SupportedMethods { get { throw new NotSupportedException(); } From 94c0f54a7f20a7da568c8a777f36d6e2fd0b39a0 Mon Sep 17 00:00:00 2001 From: Rafael Lillo Date: Sat, 10 Nov 2018 12:23:15 -0200 Subject: [PATCH 21/23] Add where test and fix error --- .../NHSpecificTest/NH3426/Fixture.cs | 13 +++++++++++++ src/NHibernate.sln.DotSettings | 6 ++++++ src/NHibernate/Dialect/MySQL5Dialect.cs | 2 ++ src/NHibernate/Dialect/PostgreSQLDialect.cs | 2 ++ src/NHibernate/Dialect/SQLiteDialect.cs | 2 ++ src/NHibernate/Linq/Functions/StringGenerator.cs | 4 ++-- 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs index 24b2fc3d78d..06ac532dea1 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3426/Fixture.cs @@ -59,5 +59,18 @@ public void SelectGuidToString() Assert.AreEqual(id.ToUpper(), list[0].Id.ToUpper()); } } + + [Test] + public void WhereGuidToString() + { + using (var session = OpenSession()) + { + var list = session.Query() + .Where(x => x.Id.ToString().ToUpper() == id) + .ToList(); + + Assert.That(list, Has.Count.EqualTo(1)); + } + } } } diff --git a/src/NHibernate.sln.DotSettings b/src/NHibernate.sln.DotSettings index a38b0a203a1..e159fd0bbbc 100644 --- a/src/NHibernate.sln.DotSettings +++ b/src/NHibernate.sln.DotSettings @@ -7,7 +7,9 @@ True True True + NEVER False + NEVER False True True @@ -20,9 +22,13 @@ <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> True + True + True True + True True True + True True True NUnit Assert.NotNull diff --git a/src/NHibernate/Dialect/MySQL5Dialect.cs b/src/NHibernate/Dialect/MySQL5Dialect.cs index 89c58e921f4..1dfac2f6f46 100644 --- a/src/NHibernate/Dialect/MySQL5Dialect.cs +++ b/src/NHibernate/Dialect/MySQL5Dialect.cs @@ -12,6 +12,8 @@ public MySQL5Dialect() // My SQL supports precision up to 65, but .Net is limited to 28-29. RegisterColumnType(DbType.Decimal, 29, "DECIMAL($p, $s)"); RegisterColumnType(DbType.Guid, "BINARY(16)"); + + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "concat(hex(reverse(substr(?1, 1, 4))), '-', hex(reverse(substring(?1, 5, 2))), '-', hex(reverse(substr(?1, 7, 2))), '-', hex(substr(?1, 9, 2)), '-', hex(substr(?1, 11)))")); } protected override void RegisterCastTypes() diff --git a/src/NHibernate/Dialect/PostgreSQLDialect.cs b/src/NHibernate/Dialect/PostgreSQLDialect.cs index a491862cab7..6eebc1a3679 100644 --- a/src/NHibernate/Dialect/PostgreSQLDialect.cs +++ b/src/NHibernate/Dialect/PostgreSQLDialect.cs @@ -94,6 +94,8 @@ public PostgreSQLDialect() // Register the date function, since when used in LINQ select clauses, NH must know the data type. RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "cast(?1 as date)")); + + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "?1::TEXT")); RegisterKeywords(); } diff --git a/src/NHibernate/Dialect/SQLiteDialect.cs b/src/NHibernate/Dialect/SQLiteDialect.cs index e9724cc0dee..dd72bdf5d8a 100644 --- a/src/NHibernate/Dialect/SQLiteDialect.cs +++ b/src/NHibernate/Dialect/SQLiteDialect.cs @@ -94,6 +94,8 @@ protected virtual void RegisterFunctions() // NH-3787: SQLite requires the cast in SQL too for not defaulting to string. RegisterFunction("transparentcast", new CastFunction()); + + RegisterFunction("strguid", new SQLFunctionTemplate(NHibernateUtil.String, "substr(hex(?1), 7, 2) || substr(hex(?1), 5, 2) || substr(hex(?1), 3, 2) || substr(hex(?1), 1, 2) || '-' || substr(hex(?1), 11, 2) || substr(hex(?1), 9, 2) || '-' || substr(hex(?1), 15, 2) || substr(hex(?1), 13, 2) || '-' || substr(hex(?1), 17, 4) || '-' || substr(hex(?1), 21) ")); } #region private static readonly string[] DialectKeywords = { ... } diff --git a/src/NHibernate/Linq/Functions/StringGenerator.cs b/src/NHibernate/Linq/Functions/StringGenerator.cs index b43597e6585..02cf535951f 100644 --- a/src/NHibernate/Linq/Functions/StringGenerator.cs +++ b/src/NHibernate/Linq/Functions/StringGenerator.cs @@ -317,7 +317,7 @@ public IHqlGeneratorForMethod GetMethodGenerator(MethodInfo method) public class ToStringHqlGeneratorForMethod : IHqlGeneratorForMethod { - private static readonly System.Type s_guidType = typeof(Guid); + private static readonly System.Type _guidType = typeof(Guid); public IEnumerable SupportedMethods { @@ -326,7 +326,7 @@ public IEnumerable SupportedMethods public HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor) { - if (targetObject.Type == s_guidType) + if (targetObject.Type == _guidType) { return treeBuilder.MethodCall("strguid", visitor.Visit(targetObject).AsExpression()); } From 11d3b121faf513d0b6206c2d66fa7cd6d97080a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?= <12201973+fredericdelaporte@users.noreply.github.com> Date: Sun, 11 Nov 2018 16:18:08 +0100 Subject: [PATCH 22/23] Generate async and revert undue change --- .../Async/NHSpecificTest/NH3426/Fixture.cs | 88 +++++++++++++++++++ src/NHibernate.sln.DotSettings | 6 -- 2 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 src/NHibernate.Test/Async/NHSpecificTest/NH3426/Fixture.cs diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3426/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3426/Fixture.cs new file mode 100644 index 00000000000..a762cbef796 --- /dev/null +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3426/Fixture.cs @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by AsyncGenerator. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +using System; +using System.Linq; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using NHibernate.Linq; + +namespace NHibernate.Test.NHSpecificTest.NH3426 +{ + using System.Threading.Tasks; + [TestFixture] + public class FixtureAsync : TestCaseMappingByCode + { + + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + mapper.Class(rc => + { + rc.Id(x => x.Id); + rc.Property(x => x.Name); + }); + return mapper.CompileMappingForAllExplicitlyAddedEntities(); + } + + private const string id = "9FF2D288-56E6-F349-9CFC-48902132D65B"; + + protected override void OnSetUp() + { + using (var session = OpenSession()) + { + session.Save(new Entity { Id = Guid.Parse(id), Name = "Name 1" }); + + session.Flush(); + } + } + + protected override void OnTearDown() + { + using (var session = OpenSession()) + { + using (var transaction = session.BeginTransaction()) + { + session.Delete("from System.Object"); + + session.Flush(); + transaction.Commit(); + } + } + } + + [Test] + public async Task SelectGuidToStringAsync() + { + using (var session = OpenSession()) + { + var list = await (session.Query() + .Select(x => new { Id = x.Id.ToString() }) + .ToListAsync()); + + Assert.AreEqual(id.ToUpper(), list[0].Id.ToUpper()); + } + } + + [Test] + public async Task WhereGuidToStringAsync() + { + using (var session = OpenSession()) + { + var list = await (session.Query() + .Where(x => x.Id.ToString().ToUpper() == id) + .ToListAsync()); + + Assert.That(list, Has.Count.EqualTo(1)); + } + } + } +} diff --git a/src/NHibernate.sln.DotSettings b/src/NHibernate.sln.DotSettings index e159fd0bbbc..a38b0a203a1 100644 --- a/src/NHibernate.sln.DotSettings +++ b/src/NHibernate.sln.DotSettings @@ -7,9 +7,7 @@ True True True - NEVER False - NEVER False True True @@ -22,13 +20,9 @@ <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> True - True - True True - True True True - True True True NUnit Assert.NotNull From db44444286ef18fb3e50c497efa4e7fc92960b75 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Wed, 14 Nov 2018 16:19:24 +1300 Subject: [PATCH 23/23] Revert changes --- src/NHibernate/Dialect/PostgreSQL82Dialect.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/NHibernate/Dialect/PostgreSQL82Dialect.cs b/src/NHibernate/Dialect/PostgreSQL82Dialect.cs index 676a617ed2c..af33c2b2aa4 100644 --- a/src/NHibernate/Dialect/PostgreSQL82Dialect.cs +++ b/src/NHibernate/Dialect/PostgreSQL82Dialect.cs @@ -1,6 +1,5 @@ using System; using System.Data; -using NHibernate.Dialect.Function; namespace NHibernate.Dialect { @@ -29,4 +28,4 @@ public override string GetDropSequenceString(string sequenceName) return string.Concat("drop sequence if exists ", sequenceName); } } -} +} \ No newline at end of file