Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27998/Dialect
Modified Files:
MySQLDialect.cs
Log Message:
patch for Sergey for LIMIT support and modified driver to no longer prepare
commands.
Index: MySQLDialect.cs
===================================================================
RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/MySQLDialect.cs,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** MySQLDialect.cs 29 Oct 2004 05:52:44 -0000 1.20
--- MySQLDialect.cs 6 Dec 2004 03:39:23 -0000 1.21
***************
*** 3,6 ****
--- 3,7 ----
using System.Text;
+ using NHibernate.SqlCommand;
using NHibernate.SqlTypes;
using NHibernate.Util;
***************
*** 24,28 ****
Register( DbType.AnsiString, 16777215, "MEDIUMTEXT" );
Register( DbType.Binary, "LONGBLOB");
! Register( DbType.Binary, 255, "VARCHAR($1) BINARY");
Register( DbType.Binary, 65535, "BLOB");
Register( DbType.Binary, 16777215, "MEDIUMBLOB");
--- 25,29 ----
Register( DbType.AnsiString, 16777215, "MEDIUMTEXT" );
Register( DbType.Binary, "LONGBLOB");
! Register( DbType.Binary, 127, "TINYBLOB");
Register( DbType.Binary, 65535, "BLOB");
Register( DbType.Binary, 16777215, "MEDIUMBLOB");
***************
*** 34,38 ****
Register( DbType.Decimal, "NUMERIC(19,5)" );
Register( DbType.Decimal, 19, "NUMERIC(19, $1)");
! Register( DbType.Double, "FLOAT" );
Register( DbType.Guid, "VARCHAR(40)" );
Register( DbType.Int16, "SMALLINT" );
--- 35,39 ----
Register( DbType.Decimal, "NUMERIC(19,5)" );
Register( DbType.Decimal, 19, "NUMERIC(19, $1)");
! Register( DbType.Double, "DOUBLE" );
Register( DbType.Guid, "VARCHAR(40)" );
Register( DbType.Int16, "SMALLINT" );
***************
*** 92,95 ****
--- 93,127 ----
}
+ 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)
{
|