From 7dafa5d853074b6ddbc1778853ea57a0fef30ea3 Mon Sep 17 00:00:00 2001 From: tohidemyname Date: Sat, 29 Jun 2024 09:32:51 +0800 Subject: [PATCH] fixing a truncated table name --- .../DialectTest/Oracle8iDialectFixture.cs | 17 +++++++++++++++-- src/NHibernate/Dialect/Oracle8iDialect.cs | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs b/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs index 0691d0fd957..5476c498621 100644 --- a/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs +++ b/src/NHibernate.Test/DialectTest/Oracle8iDialectFixture.cs @@ -1,4 +1,4 @@ -using NHibernate.Cfg; +using NHibernate.Cfg; using NHibernate.Dialect; using NHibernate.SqlCommand; using NHibernate.Util; @@ -148,5 +148,18 @@ public void CheckUnicodeWithPrefix() } #endregion + [Test] + public void TemporaryTableNameTruncation() + { + string temporaryTableName = new Oracle8iDialect().GenerateTemporaryTableName( + "TABLE_NAME_THAT_EXCEEDS_30_CHARACTERS"); + Assert.AreEqual( + 30, + temporaryTableName.Length); + Assert.AreEqual( + "HT_TABLE_NAME_THAT_EXCEEDS_30_", + temporaryTableName + ); + } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Dialect/Oracle8iDialect.cs b/src/NHibernate/Dialect/Oracle8iDialect.cs index 2843db5e58f..e49323f3bd9 100644 --- a/src/NHibernate/Dialect/Oracle8iDialect.cs +++ b/src/NHibernate/Dialect/Oracle8iDialect.cs @@ -529,7 +529,7 @@ public override bool SupportsTemporaryTables public override string GenerateTemporaryTableName(String baseTableName) { string name = base.GenerateTemporaryTableName(baseTableName); - return name.Length > 30 ? name.Substring(1, (30) - (1)) : name; + return name.Length > 30 ? name.Substring(0, (30) - (1)) : name; } ///