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 dj...@apache.org on 2005/04/11 21:01:19 UTC

svn commit: r160935 - incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile

Author: djd
Date: Mon Apr 11 12:01:17 2005
New Revision: 160935

URL: http://svn.apache.org/viewcvs?view=rev&rev=160935
Log:
Add some comments for upgraded related methods and new constant
for the 10.1 database format. This constant will be used in a future submission.

Modified:
    incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
    incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java
    incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj

Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java?view=diff&r1=160934&r2=160935
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java Mon Apr 11 12:01:17 2005
@@ -74,15 +74,34 @@
 	public static final int DD_VERSION_CS_5_2			= 100;
 	/** Cloudscape 8.1 (Pre-Gandalf) System Catalog version */
 	public static final int DD_VERSION_CS_8_1			= 110;
-	/** Cloudscape 10.0 (Gandalf) System Catalog version */
+	/** Cloudscape/Derby 10.0 (Gandalf) System Catalog version */
 	public static final int DD_VERSION_CS_10_0			= 120;
 
+	/** Derby 10.1 System Catalog version */
+	public static final int DD_VERSION_DERBY_10_1		= 130;
+
 	// general info
 	public	static	final	String	DATABASE_ID = "derby.databaseID";
 
 	// version ids
+	/**
+	 * DataDictionaryVersion property indicates the updgrade level of the system catalogs.
+	 * Stored as a database property. Set to an instance of DD_Version with
+	 * the major number one of the DataDictionary.DD_* values.
+	 */
 	public	static	final	String	CORE_DATA_DICTIONARY_VERSION = "DataDictionaryVersion";
+	/**
+	 * CreateDataDictionaryVersion property indicates the level of the system catalogs,
+	 * at the time of database creation.
+	 * Stored as a database property. Set to an instance of DD_Version.
+	 */
 	public	static	final	String	CREATE_DATA_DICTIONARY_VERSION = "CreateDataDictionaryVersion";
+	/**
+	 * derby.softDataDictionaryVersion property indicates the soft upgrade level of the system catalogs.
+	 * Soft upgrade will sometime make minor changes to the system catalogs that can be safely consumed by
+	 * earlier versions, such as correcting values.
+	 * Stored as a database property. Set to an instance of DD_Version.
+	 */
 	public  static  final   String  SOFT_DATA_DICTIONARY_VERSION = "derby.softDataDictionaryVersion";
     public  static  final   String  PROPERTY_CONGLOMERATE_VERSION = "PropertyConglomerateVersion";
 
@@ -1493,8 +1512,27 @@
 	/**
 		Check to see if a database has been upgraded to the required
 		level in order to use a langauge feature that is.
+		<P>
+		This is used to ensure new functionality that would lead on disk
+		information not understood by a previous release is not executed
+		while in soft upgrade mode. Ideally this is called at compile time
+		and the parser has a utility method to enable easy use at parse time.
+		<P>
+		To use this method, a feature implemented in a certain release (DataDictionary version)
+		would call it with the constant matching the release. E.g. for a new feature added
+		in 10.1, a call such as 
+		<PRE>
+		// check and throw an exception if the database is not at 10.1
+		dd.checkVersion(DataDictionary.DD_VERSION_DERBY_10_1, "NEW FEATURE NAME");
+		
+		</PRE>
+		This call would occur during the compile time, usually indirectly through
+		the parser utility method, but direct calls can be made during QueryNode initialization,
+		or even at bind time.
+		<BR>
+		It is not expected that this method would be called at execution time.
 
-		@param majorVersion Data Dictionary major version
+		@param majorVersion Data Dictionary major version (DataDictionary.DD_ constant)
 		@param feature Non-null to throw an error, null to return the state of the version match.
 
 		@return True if the database has been upgraded to the required level, false otherwise.

Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java?view=diff&r1=160934&r2=160935
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DD_Version.java Mon Apr 11 12:01:17 2005
@@ -143,6 +143,8 @@
 			return "8.1";
 		case DataDictionary.DD_VERSION_CS_10_0:
 			return "10.0";
+		case DataDictionary.DD_VERSION_DERBY_10_1:
+			return "10.1";
 		default:
 			return null;
 		}

Modified: incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?view=diff&r1=160934&r2=160935
==============================================================================
--- incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ incubator/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Mon Apr 11 12:01:17 2005
@@ -281,6 +281,19 @@
 										LanguageConnectionContext.CONTEXT_ID);
 	}
 
+	/**
+		Utility method for checking that the underlying database has been
+		upgraded to the required level to use this functionality. Used to
+		disallow SQL statements that would leave on-disk formats that would
+		not be understood by a engine that matches the current upgrade level
+		of the database. Throws an exception if the database is not a the required level.
+		<P>
+		Typically used for CREATE statements at the parser level. Called usually just
+		before the node is created, or can be called in just a partial syntax fragment
+		
+		@param majorVersion Data Dictionary major version (DataDictionary.DD_ constant)
+		@param feature SQL Feature name, for error text.
+	*/
 	private void checkVersion(int version, String feature) throws StandardException
 	{
 		getLanguageConnectionContext().getDataDictionary().checkVersion(