|
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.
|