You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2011/11/10 10:16:55 UTC

svn commit: r1200232 - in /db/derby/code/trunk/java: engine/org/apache/derby/iapi/sql/dictionary/ engine/org/apache/derby/impl/sql/catalog/ storeless/org/apache/derby/impl/storeless/

Author: kahatlen
Date: Thu Nov 10 09:16:55 2011
New Revision: 1200232

URL: http://svn.apache.org/viewvc?rev=1200232&view=rev
Log:
DERBY-4845: Improve the dependency tracking for our build targets

Don't access the readOnlyUpgrade field in DataDictionaryImpl directly
from iapi code. Added a method to the DataDictionary interface instead.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java
    db/derby/code/trunk/java/storeless/org/apache/derby/impl/storeless/EmptyDictionary.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java?rev=1200232&r1=1200231&r2=1200232&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java Thu Nov 10 09:16:55 2011
@@ -1871,6 +1871,16 @@ public interface DataDictionary
 		@return True if the database has been upgraded to the required level, false otherwise.
 	*/
 	public boolean checkVersion(int majorVersion, String feature) throws StandardException;
+
+    /**
+     * Check if the database is read only and requires some form of upgrade
+     * that makes the stored prepared statements invalid.
+     *
+     * @return {@code true} if the stored prepared statements are invalid
+     * because of an upgrade and the database is read only, {@code false}
+     * otherwise
+     */
+    public boolean isReadOnlyUpgrade();
 	
     /**
      * Add or remove a permission to the permission database.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java?rev=1200232&r1=1200231&r2=1200232&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java Thu Nov 10 09:16:55 2011
@@ -393,7 +393,7 @@ public class SPSDescriptor extends Tuple
 		setCompileTime();
 		setParams(preparedStatement.getParameterTypes());
 
-		if (!((org.apache.derby.impl.sql.catalog.DataDictionaryImpl) dd).readOnlyUpgrade) {
+		if (!dd.isReadOnlyUpgrade()) {
 
 			/*
 			** Indicate that we are going to write the data
@@ -689,7 +689,7 @@ public class SPSDescriptor extends Tuple
 			
 
 
-			if (!((org.apache.derby.impl.sql.catalog.DataDictionaryImpl) (lcc.getDataDictionary())).readOnlyUpgrade) {
+			if (!lcc.getDataDictionary().isReadOnlyUpgrade()) {
 
 				//bug 4821 - First try compiling on a nested transaction so we can release
 				//the locks after the compilation. But if we get lock time out on the
@@ -1100,7 +1100,7 @@ public class SPSDescriptor extends Tuple
 
 		DataDictionary dd = getDataDictionary();
 
-		if (((org.apache.derby.impl.sql.catalog.DataDictionaryImpl) dd).readOnlyUpgrade)
+		if (dd.isReadOnlyUpgrade())
 			return;
 
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java?rev=1200232&r1=1200231&r2=1200232&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java Thu Nov 10 09:16:55 2011
@@ -555,7 +555,7 @@ public	class DD_Version implements	Forma
 			// invalidate all the procedures we need to indicate that
 			// any procedure we read off disk is automatically invalid,
 			// so we do not try to load the generated class.
-			bootingDictionary.readOnlyUpgrade = true;
+			bootingDictionary.setReadOnlyUpgrade();
 		}
 
 		bootingDictionary.clearCaches();

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java?rev=1200232&r1=1200231&r2=1200232&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java Thu Nov 10 09:16:55 2011
@@ -428,7 +428,8 @@ public final class	DataDictionaryImpl
 		that created it.
 
 	*/
-	public boolean readOnlyUpgrade;
+	private boolean readOnlyUpgrade;
+
     /**
      * Tells if the automatic index statistics refresher has been disabled.
      * <p>
@@ -10486,7 +10487,19 @@ public final class	DataDictionaryImpl
 
 		return dictionaryVersion.checkVersion(requiredMajorVersion, feature);
 	}
-		
+
+    public boolean isReadOnlyUpgrade() {
+        return readOnlyUpgrade;
+    }
+
+    /**
+     * Mark this database as a read only database whose stored prepared
+     * statements are invalid because some kind of upgrade is needed.
+     */
+    void setReadOnlyUpgrade() {
+        readOnlyUpgrade = true;
+    }
+
 	/**
 	** Create system built-in metadata stored prepared statements.
 	*/

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java?rev=1200232&r1=1200231&r2=1200232&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java Thu Nov 10 09:16:55 2011
@@ -307,7 +307,7 @@ public class SYSSTATEMENTSRowFactory ext
 
 		// In soft upgrade mode the plan may not be understand by this engine
 		// so force a recompile.
-		if (((DataDictionaryImpl) dd).readOnlyUpgrade) {
+		if (dd.isReadOnlyUpgrade()) {
 			valid = false;
 		} else {
 			// 5th column is VALID (boolean)

Modified: db/derby/code/trunk/java/storeless/org/apache/derby/impl/storeless/EmptyDictionary.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/storeless/org/apache/derby/impl/storeless/EmptyDictionary.java?rev=1200232&r1=1200231&r2=1200232&view=diff
==============================================================================
--- db/derby/code/trunk/java/storeless/org/apache/derby/impl/storeless/EmptyDictionary.java (original)
+++ db/derby/code/trunk/java/storeless/org/apache/derby/impl/storeless/EmptyDictionary.java Thu Nov 10 09:16:55 2011
@@ -775,6 +775,10 @@ public class EmptyDictionary implements 
 		return false;
 	}
 
+    public boolean isReadOnlyUpgrade() {
+        return false;
+    }
+
 	public boolean addRemovePermissionsDescriptor(boolean add,
 			PermissionsDescriptor perm, String grantee, TransactionController tc)
 			throws StandardException {