Index: src/NHibernate/Dialect/MySQLDialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/MySQLDialect.cs,v retrieving revision 1.20 diff -u -r1.20 MySQLDialect.cs --- src/NHibernate/Dialect/MySQLDialect.cs 29 Oct 2004 05:52:44 -0000 1.20 +++ src/NHibernate/Dialect/MySQLDialect.cs 5 Dec 2004 20:32:42 -0000 @@ -2,6 +2,7 @@ using System.Data; using System.Text; +using NHibernate.SqlCommand; using NHibernate.SqlTypes; using NHibernate.Util; @@ -23,7 +24,7 @@ Register( DbType.AnsiString, 65535, "TEXT" ); Register( DbType.AnsiString, 16777215, "MEDIUMTEXT" ); Register( DbType.Binary, "LONGBLOB"); - Register( DbType.Binary, 255, "VARCHAR($1) BINARY"); + Register( DbType.Binary, 127, "TINYBLOB"); Register( DbType.Binary, 65535, "BLOB"); Register( DbType.Binary, 16777215, "MEDIUMBLOB"); Register( DbType.Boolean, "TINYINT(1)" ); @@ -33,7 +34,7 @@ Register( DbType.DateTime, "DATETIME" ); Register( DbType.Decimal, "NUMERIC(19,5)" ); Register( DbType.Decimal, 19, "NUMERIC(19, $1)"); - Register( DbType.Double, "FLOAT" ); + Register( DbType.Double, "DOUBLE" ); Register( DbType.Guid, "VARCHAR(40)" ); Register( DbType.Int16, "SMALLINT" ); Register( DbType.Int32, "INTEGER" ); @@ -91,6 +92,37 @@ get { return '`';} } + public override bool SupportsLimit + { + get { return true; } + } + + public override bool PreferLimit + { + get { return true; } + } + + public override SqlString GetLimitString(SqlString querySqlString) + { + Parameter p1 = new Parameter(); + Parameter p2 = new Parameter(); + + p1.Name = "p1"; + p1.SqlType = new Int32SqlType(); + + p2.Name = "p2"; + p2.SqlType = new Int32SqlType(); + + SqlStringBuilder pagingBuilder = new SqlStringBuilder(); + pagingBuilder.Add(querySqlString); + pagingBuilder.Add(" limit "); + pagingBuilder.Add(p1); + pagingBuilder.Add(", "); + pagingBuilder.Add(p2); + + return pagingBuilder.ToSqlString(); + } + public override string GetAddForeignKeyConstraintString(string constraintName, string[] foreignKey, string referencedTable, string[] primaryKey) { string cols = String.Join(StringHelper.CommaSpace, foreignKey);