[hibernate-commits] Hibernate SVN: r17786 - in core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate: hql/ast/exec and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Oct 16 12:53:48 EDT 2009


Author: stliu
Date: 2009-10-16 12:53:47 -0400 (Fri, 16 Oct 2009)
New Revision: 17786

Modified:
   core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java
   core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java
   core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/ast/exec/AbstractStatementExecutor.java
Log:
JBPAPP-2900 HHH-4486 : Account for MySQL's <DROP TEMPORARY TABLE> statement

Modified: core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java	2009-10-16 16:44:01 UTC (rev 17785)
+++ core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java	2009-10-16 16:53:47 UTC (rev 17786)
@@ -487,6 +487,15 @@
 	public boolean supportsIdentityColumns() {
 		return false;
 	}
+	
+	/**
+	 * Command used to drop a temporary table.
+	 *
+	 * @return The command used to drop a temporary table.
+	 */
+	public String getDropTemporaryTableString() {
+		return "drop table";
+	}
 
 	/**
 	 * Does the dialect support some form of inserting and selecting

Modified: core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java	2009-10-16 16:44:01 UTC (rev 17785)
+++ core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java	2009-10-16 16:53:47 UTC (rev 17786)
@@ -277,7 +277,17 @@
 	public String getCreateTemporaryTableString() {
 		return "create temporary table if not exists";
 	}
+	
+	public String getDropTemporaryTableString() {
+		return "drop temporary table";
+	}
 
+	public Boolean performTemporaryTableDDLInIsolation() {
+		// because we [drop *temporary* table...] we do not
+		// have to perform these in isolation.
+		return Boolean.FALSE;
+	}
+
 	public String getCastTypeName(int code) {
 		if ( code==Types.INTEGER ) {
 			return "signed";
@@ -321,11 +331,7 @@
 		return true;
 	}
 
-	public Boolean performTemporaryTableDDLInIsolation() {
-		return Boolean.FALSE;
-	}
 
-
 	// Overridden informational metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 	public boolean supportsEmptyInList() {

Modified: core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/ast/exec/AbstractStatementExecutor.java
===================================================================
--- core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/ast/exec/AbstractStatementExecutor.java	2009-10-16 16:44:01 UTC (rev 17785)
+++ core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/ast/exec/AbstractStatementExecutor.java	2009-10-16 16:53:47 UTC (rev 17786)
@@ -182,8 +182,12 @@
 				public void doWork(Connection connection) throws HibernateException {
 					Statement stmnt = null;
 					try {
+						final String command = session.getFactory()
+								.getSettings().getDialect()
+								.getDropTemporaryTableString()
+								+ " " + persister.getTemporaryIdTableName();
 						stmnt = connection.createStatement();
-						stmnt.executeUpdate( "drop table " + persister.getTemporaryIdTableName() );
+						stmnt.executeUpdate(command);
 					}
 					catch( Throwable t ) {
 						log.warn( "unable to drop temporary id table after use [" + t.getMessage() + "]" );



More information about the hibernate-commits mailing list