From: <fab...@us...> - 2008-12-16 18:39:22
|
Revision: 3958 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3958&view=rev Author: fabiomaulo Date: 2008-12-16 18:39:12 +0000 (Tue, 16 Dec 2008) Log Message: ----------- - Fix NH-1443 - prevent another bug on PK Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Mappings.cs trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/RootClassBinder.cs trunk/nhibernate/src/NHibernate/Mapping/PrimaryKey.cs trunk/nhibernate/src/NHibernate/Mapping/Table.cs trunk/nhibernate/src/NHibernate.Test/MappingTest/TableFixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithDefault.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithNothing.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithSpecific.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/Fixture.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Mappings.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Mappings.cs 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate/Cfg/Mappings.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -289,6 +289,7 @@ Table table = new DenormalizedTable(includedTable); table.IsAbstract = isAbstract; table.Name = name; + table.Catalog = catalog; table.Schema = schema; table.Subselect = subselect; tables[key] = table; Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -44,6 +44,7 @@ private void SetMappingsProperties(HbmMapping mappingSchema) { mappings.SchemaName = mappingSchema.schema; + mappings.CatalogName = mappingSchema.catalog; mappings.DefaultCascade = mappingSchema.defaultcascade; mappings.DefaultAccess = mappingSchema.defaultaccess; mappings.DefaultLazy = mappingSchema.defaultlazy; Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/RootClassBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/RootClassBinder.cs 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/RootClassBinder.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -20,7 +20,7 @@ //TABLENAME string schema = classSchema.schema ?? mappings.SchemaName; - string catalog = mappings.CatalogName; //string catalog = classSchema.catalog ?? mappings.CatalogName; + string catalog = classSchema.catalog ?? mappings.CatalogName; string tableName = GetClassTableName(rootClass, classSchema); if (string.IsNullOrEmpty(tableName)) { Modified: trunk/nhibernate/src/NHibernate/Mapping/PrimaryKey.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/PrimaryKey.cs 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate/Mapping/PrimaryKey.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -76,7 +76,7 @@ public override string SqlDropString(Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) { string ifExists = dialect.GetIfExistsDropConstraint(Table, Name); - string drop = string.Format("alter table {0}{1}", Table.GetQualifiedName(dialect, defaultSchema), dialect.GetDropPrimaryKeyConstraintString(Name)); + string drop = string.Format("alter table {0}{1}", Table.GetQualifiedName(dialect, defaultCatalog, defaultSchema), dialect.GetDropPrimaryKeyConstraintString(Name)); string end = dialect.GetIfExistsDropConstraintEnd(Table, Name); return ifExists + Environment.NewLine + drop + Environment.NewLine + end; } Modified: trunk/nhibernate/src/NHibernate/Mapping/Table.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/Table.cs 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate/Mapping/Table.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -118,14 +118,10 @@ /// Gets the schema qualified name of the Table using the specified qualifier /// </summary> /// <param name="dialect">The <see cref="Dialect"/> that knows how to Quote the Table name.</param> - /// <param name="defaultQualifier">The Qualifier to use when accessing the table.</param> + /// <param name="defaultCatalog">The catalog name.</param> + /// <param name="defaultSchema">The schema name.</param> /// <returns>A String representing the Qualified name.</returns> /// <remarks>If this were used with MSSQL it would return a dbo.table_name.</remarks> - public string GetQualifiedName(Dialect.Dialect dialect, string defaultQualifier) - { - return GetQualifiedName(dialect, null, defaultQualifier); - } - public virtual string GetQualifiedName(Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) { if (!string.IsNullOrEmpty(subselect)) @@ -410,7 +406,7 @@ dialect.CreateTableString : dialect.CreateMultisetTableString) .Append(' ') - .Append(GetQualifiedName(dialect, defaultSchema)) + .Append(GetQualifiedName(dialect, defaultCatalog, defaultSchema)) .Append(" ("); bool identityColumn = idValue != null && idValue.IsIdentityColumn(dialect); Modified: trunk/nhibernate/src/NHibernate.Test/MappingTest/TableFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingTest/TableFixture.cs 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate.Test/MappingTest/TableFixture.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -20,9 +20,9 @@ Assert.AreEqual("[keyword]", tbl.GetQuotedName(dialect)); - Assert.AreEqual("dbo.[keyword]", tbl.GetQualifiedName(dialect, "dbo")); + Assert.AreEqual("dbo.[keyword]", tbl.GetQualifiedName(dialect, null, "dbo")); - Assert.AreEqual("[keyword]", tbl.GetQualifiedName(dialect, null)); + Assert.AreEqual("[keyword]", tbl.GetQualifiedName(dialect, null, null)); tbl.Schema = "sch"; @@ -39,9 +39,9 @@ Assert.AreEqual("notkeyword", tbl.GetQuotedName(dialect)); - Assert.AreEqual("dbo.notkeyword", tbl.GetQualifiedName(dialect, "dbo")); + Assert.AreEqual("dbo.notkeyword", tbl.GetQualifiedName(dialect, null, "dbo")); - Assert.AreEqual("notkeyword", tbl.GetQualifiedName(dialect, null)); + Assert.AreEqual("notkeyword", tbl.GetQualifiedName(dialect, null, null)); tbl.Schema = "sch"; Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithDefault.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithDefault.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithDefault.hbm.xml 2008-12-16 18:39:12 UTC (rev 3958) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1443" + assembly="NHibernate.Test" + catalog="nhibernate" + schema="dbo"> + + <class name="Aclass"> + <id name="Id"> + <generator class="native"/> + </id> + </class> +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithNothing.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithNothing.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithNothing.hbm.xml 2008-12-16 18:39:12 UTC (rev 3958) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1443" + assembly="NHibernate.Test"> + + <class name="Aclass"> + <id name="Id"> + <generator class="native"/> + </id> + </class> +</hibernate-mapping> Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithNothing.hbm.xml ___________________________________________________________________ Added: svn:mergeinfo + Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithSpecific.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithSpecific.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/AclassWithSpecific.hbm.xml 2008-12-16 18:39:12 UTC (rev 3958) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1443" + assembly="NHibernate.Test" + catalog="somethingDifferent" + schema="somethingDifferent"> + + <class name="Aclass" catalog="nhibernate" schema="dbo"> + <id name="Id"> + <generator class="native"/> + </id> + </class> +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1443/Fixture.cs 2008-12-16 18:39:12 UTC (rev 3958) @@ -0,0 +1,63 @@ +using System.Text; +using NHibernate.Cfg; +using NHibernate.Tool.hbm2ddl; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.NHSpecificTest.NH1443 +{ + [TestFixture] + public class Fixture + { + private static void Bug(Configuration cfg) + { + var su = new SchemaExport(cfg); + var sb = new StringBuilder(500); + su.Execute(x => sb.AppendLine(x), false, false, true); + string script = sb.ToString(); + Assert.That(script, Text.Contains("drop table nhibernate.dbo.Aclass")); + Assert.That(script, Text.Contains("create table nhibernate.dbo.Aclass")); + } + + [Test] + public void WithDefaultValuesInConfiguration() + { + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1443.AclassWithNothing.hbm.xml", GetType().Assembly); + cfg.SetProperty(Environment.DefaultCatalog, "nhibernate"); + cfg.SetProperty(Environment.DefaultSchema, "dbo"); + Bug(cfg); + } + + [Test] + public void WithDefaultValuesInMapping() + { + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1443.AclassWithDefault.hbm.xml", GetType().Assembly); + Bug(cfg); + } + + [Test] + public void WithSpecificValuesInMapping() + { + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1443.AclassWithSpecific.hbm.xml", GetType().Assembly); + Bug(cfg); + } + + [Test] + public void WithDefaultValuesInConfigurationPriorityToMapping() + { + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1443.AclassWithDefault.hbm.xml", GetType().Assembly); + cfg.SetProperty(Environment.DefaultCatalog, "somethingDifferent"); + cfg.SetProperty(Environment.DefaultSchema, "somethingDifferent"); + Bug(cfg); + } + } + + public class Aclass + { + public int Id { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-12-16 16:17:49 UTC (rev 3957) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-12-16 18:39:12 UTC (rev 3958) @@ -376,6 +376,7 @@ <Compile Include="NHSpecificTest\NH1274ExportExclude\Home.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\NH1274ExportExcludeFixture.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\Person.cs" /> + <Compile Include="NHSpecificTest\NH1443\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1611OneToOneIdentity\Adjunct.cs" /> <Compile Include="NHSpecificTest\NH1611OneToOneIdentity\NH1611OneToOneIdentityFixture.cs" /> <Compile Include="NHSpecificTest\NH1611OneToOneIdentity\Primary.cs" /> @@ -1569,6 +1570,9 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1443\AclassWithSpecific.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\NH1443\AclassWithDefault.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\NH1443\AclassWithNothing.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1274ExportExclude\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1611OneToOneIdentity\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1533\Mappings.hbm.xml" /> @@ -1669,4 +1673,4 @@ if exist "$(ProjectDir)hibernate.cfg.xml" (copy "$(ProjectDir)hibernate.cfg.xml" "hibernate.cfg.xml") copy /y "..\..\..\NHibernate.DomainModel\ABC.hbm.xml" "ABC.hbm.xml"</PostBuildEvent> </PropertyGroup> -</Project> +</Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |