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 rh...@apache.org on 2006/08/25 22:02:11 UTC
svn commit: r436921 [1/5] - in /db/derby/code/branches/10.2: ./
java/engine/org/apache/derby/iapi/sql/depend/
java/engine/org/apache/derby/iapi/sql/dictionary/
java/engine/org/apache/derby/iapi/sql/execute/
java/engine/org/apache/derby/impl/sql/catalog...
Author: rhillegas
Date: Fri Aug 25 13:02:02 2006
New Revision: 436921
URL: http://svn.apache.org/viewvc?rev=436921&view=rev
Log:
DERBY-1725: Merge the following from the trunk to the 10.2 branch: No JIRA (434169, 433931), DERBY-1582 (434408), DERBY-1500 (434309), DERBY-1555 (434273, 434257, 434192), DERBY-1691 (434245), DERBY-1633 (434111), DERBY-1674 (434100), DERBY-1734 (434083), DERBY-1621 (434046), DERBY-1743 (434018).
Modified:
db/derby/code/branches/10.2/BUILDING.txt
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/depend/DependencyManager.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/CatalogRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TabInfo.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TriggerDescriptor.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/execute/RowChanger.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSALIASESRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCHECKSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLUMNSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONGLOMERATESRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONSTRAINTSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDEPENDSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDUMMY1RowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFILESRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFOREIGNKEYSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSKEYSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSCHEMASRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATISTICSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLESRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTRIGGERSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/TabInfoImpl.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/BinaryRelationalOperatorNode.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/ColumnReference.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/OptimizerImpl.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/Predicate.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/ProjectRestrictNode.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/ResultColumnList.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/SelectNode.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/compile/SetOperatorNode.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/depend/BasicDependencyManager.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/execute/PrivilegeInfo.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/execute/RoutinePrivilegeInfo.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/execute/RowChangerImpl.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/execute/TablePrivilegeInfo.java
db/derby/code/branches/10.2/java/engine/org/apache/derby/loc/messages_en.properties
db/derby/code/branches/10.2/java/shared/org/apache/derby/shared/common/reference/SQLState.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL.out
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/master/predicatePushdown.out
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/master/triggerGeneral.out
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNet.exclude
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ShutDownDBWhenNSShutsDownTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/AutoloadBooting.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/AutoloadTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/BlobClobTestSetup.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/BlobTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/CallableStatementTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/CallableStatementTestSetup.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClobTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ClosedObjectTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ConnectionTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/JDBC40TranslationTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ParameterMetaDataWrapperTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/PreparedStatementTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ResultSetMetaDataTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/ResultSetTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/RowIdNotImplementedTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/SetObjectUnsupportedTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/StatementTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/StatementTestSetup.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/UnsupportedVetter.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/VerifySignatures.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/BLOBTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ConcurrencyTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/HoldabilityTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ProcedureTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ResultSetCloseTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURQueryMixTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ScrollResultSetTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/URCoveringIndexTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/UpdateXXXTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/lang/PrepareExecuteDDL.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL.sql
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/lang/largeCodeGen.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/lang/predicatePushdown.sql
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/lang/triggerGeneral.sql
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/store/BootAllTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/tools/IJRunScriptTest.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/tests/tools/sysinfo_api.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/functionTests/util/ScriptTestCase.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestSetup.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/junit/BaseTestCase.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/junit/NetworkServerTestSetup.java
db/derby/code/branches/10.2/java/testing/org/apache/derbyTesting/junit/TestConfiguration.java
Modified: db/derby/code/branches/10.2/BUILDING.txt
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/BUILDING.txt?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/BUILDING.txt (original)
+++ db/derby/code/branches/10.2/BUILDING.txt Fri Aug 25 13:02:02 2006
@@ -370,9 +370,16 @@
On newer Windows systems, ${user.home} is often equivalent
to the value of the environment variable %USERPROFILE%.
+ NOTE: It is not a requirement that ant.properties reside in your
+ user.home directory. The file can be placed anywhere accessible
+ on the local filesystem, but ant must then be invoked with the
+ -propertyfile option:
+
+ ant -propertyfile {path_to_propertyfile}
+
(2) Create a file called "ant.properties" in your ${user.home}
directory and define the following variables in
- "ant.properties".
+ "ant.properties".
NOTE TO MAC OS X USERS: See section 5.
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/depend/DependencyManager.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/depend/DependencyManager.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/depend/DependencyManager.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/depend/DependencyManager.java Fri Aug 25 13:02:02 2006
@@ -27,6 +27,7 @@
import org.apache.derby.iapi.sql.conn.LanguageConnectionContext;
+import org.apache.derby.iapi.store.access.TransactionController;
/**
Dependency Manager Interface
@@ -491,4 +492,54 @@
@exception java.sql.SQLException thrown if something goes wrong
*/
public String dumpDependencies() throws StandardException, java.sql.SQLException;
+
+ /**
+ Erases all of the dependencies the dependent has, be they
+ valid or invalid, of any dependency type. This action is
+ usually performed as the first step in revalidating a
+ dependent; it first erases all the old dependencies, then
+ revalidates itself generating a list of new dependencies,
+ and then marks itself valid if all its new dependencies are
+ valid.
+ <p>
+ There might be a future want to clear all dependencies for
+ a particular provider, e.g. when destroying the provider.
+ However, at present, they are assumed to stick around and
+ it is the responsibility of the dependent to erase them when
+ revalidating against the new version of the provider.
+ <p>
+ clearDependencies will delete dependencies if they are
+ stored; the delete is finalized at the next commit.
+
+ @param lcc Compiler state
+ @param d the dependent
+ @param tc transaction controller
+
+ @exception StandardException Thrown on failure
+ */
+ public void clearDependencies(LanguageConnectionContext lcc,
+ Dependent d,
+ TransactionController tc)
+ throws StandardException;
+
+
+ /**
+ * Copy dependencies from one dependent to another.
+ *
+ * @param copy_From the dependent to copy from
+ * @param copyTo the dependent to copy to
+ * @param persistentOnly only copy persistent dependencies
+ * @param cm Current ContextManager
+ * @param tc Transaction Controller
+ *
+ * @exception StandardException Thrown on error.
+ */
+ public void copyDependencies(
+ Dependent copy_From,
+ Dependent copyTo,
+ boolean persistentOnly,
+ ContextManager cm,
+ TransactionController tc)
+ throws StandardException;
+
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/CatalogRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/CatalogRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/CatalogRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/CatalogRowFactory.java Fri Aug 25 13:02:02 2006
@@ -349,14 +349,6 @@
/** builds a column list for the catalog */
public abstract SystemColumn[] buildColumnList();
-
-
- /**
- * builds an empty row given for a given index number.
- */
- public abstract ExecIndexRow buildEmptyIndexRow(int indexNumber,
- RowLocation rowLocation)
- throws StandardException;
/** Return the column positions for a given index number */
public int[] getIndexColumnPositions(int indexNumber)
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/DataDictionary.java Fri Aug 25 13:02:02 2006
@@ -1687,4 +1687,52 @@
public String getVTIClass(TableDescriptor td)
throws StandardException;
+
+ /**
+ * Adds a descriptor to a system catalog identified by the catalogNumber.
+ *
+ * @param tuple descriptor to insert.
+ * @param parent parent descriptor; e.g for a column parent is the
+ * tabledescriptor to which the descriptor is beign inserted. for most other
+ * objects it is the schema descriptor.
+ * @param catalogNumber a value which identifies the catalog into which
+ * the descriptor should be inserted. It is the users responsibility to
+ * ensure that the catalogNumber is consistent with the tuple being
+ * inserted.
+ * @see DataDictionary#SYSCONGLOMERATES_CATALOG_NUM
+ * @param allowsDuplicates whether an exception should be thrown if the
+ * insert results in a duplicate; if this parameter is FALSE then one
+ * of the following exception will be thrown; LANG_OBJECT_ALREADY_EXISTS (if
+ * parent is null) or LANG_OBJECT_ALREADY_EXISTS_IN_OBJECT (if parent is not
+ * null). The error message is created by getting the name and type of the
+ * tuple and parent.
+ * @see org.apache.derby.impl.sql.catalog.DataDictionaryImpl#duplicateDescriptorException
+ * @param tc the transaction controller to use to do all of this.
+ * @param wait If true, then the caller wants to wait for locks. False will
+ * be when we using a nested user xaction - we want to timeout
+ * right away if the parent holds the lock.
+ * @see #addDescriptorArray
+ */
+ public void addDescriptor(TupleDescriptor tuple, TupleDescriptor parent,
+ int catalogNumber, boolean allowsDuplicates,
+ TransactionController tc, boolean wait)
+ throws StandardException;
+
+ /**
+ * Remove all of the stored dependencies for a given dependent's ID
+ * from the data dictionary.
+ *
+ * @param dependentsUUID Dependent's uuid
+ * @param tc TransactionController for the transaction
+ * @param wait If true, then the caller wants to wait for locks. False will
+ * be when we using a nested user xaction - we want to timeout
+ * right away if the parent holds the lock.
+ *
+ * @exception StandardException Thrown on failure
+ */
+ public void dropDependentsStoredDependencies(UUID dependentsUUID,
+ TransactionController tc,
+ boolean wait)
+ throws StandardException;
+
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/SPSDescriptor.java Fri Aug 25 13:02:02 2006
@@ -260,13 +260,15 @@
* @param lcc the language connection context
* @param triggerTable the table descriptor to bind against. Had
* better be null if this isn't a trigger sps.
+ * @param tc the transaction controller
*
* @exception StandardException on error
*/
public final synchronized void prepareAndRelease
(
LanguageConnectionContext lcc,
- TableDescriptor triggerTable
+ TableDescriptor triggerTable,
+ TransactionController tc
) throws StandardException
{
if (SanityManager.DEBUG)
@@ -277,10 +279,36 @@
}
}
- compileStatement(lcc, triggerTable);
+ compileStatement(lcc, triggerTable, tc);
preparedStatement.makeInvalid(DependencyManager.PREPARED_STATEMENT_RELEASE, lcc);
}
+
+ /**
+ * FOR TRIGGERS ONLY
+ * <p>
+ * Generate the class for this SPS and immediately
+ * release it. This is useful for cases where we
+ * don't want to immediately execute the statement
+ * corresponding to this sps (e.g. CREATE STATEMENT).
+ * <p>
+ * <I>SIDE EFFECTS</I>: will update and SYSDEPENDS
+ * with the prepared statement dependency info.
+ *
+ * @param lcc the language connection context
+ * @param triggerTable the table descriptor to bind against. Had
+ * better be null if this isn't a trigger sps.
+ *
+ * @exception StandardException on error
+ */
+ public final synchronized void prepareAndRelease
+ (
+ LanguageConnectionContext lcc,
+ TableDescriptor triggerTable
+ ) throws StandardException
+ {
+ prepareAndRelease(lcc, triggerTable, (TransactionController)null);
+ }
/**
* Generate the class for this SPS and immediately
@@ -297,13 +325,14 @@
*/
public final synchronized void prepareAndRelease(LanguageConnectionContext lcc) throws StandardException
{
- prepareAndRelease(lcc, (TableDescriptor)null);
+ prepareAndRelease(lcc, (TableDescriptor)null, (TransactionController)null);
}
private void compileStatement
(
LanguageConnectionContext lcc,
- TableDescriptor triggerTable
+ TableDescriptor triggerTable,
+ TransactionController tc
)
throws StandardException
{
@@ -388,7 +417,7 @@
** before we recreate them so we don't grow
** SYS.SYSDEPENDS forever.
*/
- dm.clearDependencies(lcc, this);
+ dm.clearDependencies(lcc, this, tc);
/*
** Copy over all the dependencies to me
@@ -396,7 +425,8 @@
dm.copyDependencies(preparedStatement, // from
this, // to
false, // persistent only
- cm);
+ cm,
+ tc);
}
// mark it as valid
@@ -673,7 +703,7 @@
*/
LanguageConnectionContext lcc = (LanguageConnectionContext)
cm.getContext(LanguageConnectionContext.CONTEXT_ID);
- prepareAndRelease(lcc);
+
if (!((org.apache.derby.impl.sql.catalog.DataDictionaryImpl) (lcc.getDataDictionary())).readOnlyUpgrade) {
@@ -697,6 +727,7 @@
try
{
+ prepareAndRelease(lcc, null, nestedTC);
updateSYSSTATEMENTS(lcc, RECOMPILE, nestedTC);
}
catch (StandardException se)
@@ -711,6 +742,7 @@
}
// if we couldn't do this with a nested xaction, retry with
// parent-- we need to wait this time!
+ prepareAndRelease(lcc, null, null);
updateSYSSTATEMENTS(lcc, RECOMPILE, null);
}
else throw se;
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TabInfo.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TabInfo.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TabInfo.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TabInfo.java Fri Aug 25 13:02:02 2006
@@ -444,4 +444,64 @@
* @return The Properties associated with creating the specified index.
*/
public Properties getCreateIndexProperties(int indexNumber);
+
+ /**
+ * Given a key row, delete all matching heap rows and their index
+ * rows.
+ * <p>
+ * LOCKING: row locking if there is a key; otherwise,
+ * table locking.
+ *
+ * @param tc transaction controller
+ * @param key key to delete by.
+ * @param indexNumber Key is appropriate for this index.
+ * @param wait If true, then the caller wants to wait for locks.
+ * False will be when we using a nested user xaction
+ * - we want to timeout right away if the parent holds
+ * the lock.
+ * @return the number of rows deleted. If key is not unique,
+ * this may be more than one.
+ * @exception StandardException Thrown on failure
+ */
+ public int deleteRow( TransactionController tc,
+ ExecIndexRow key,
+ int indexNumber,
+ boolean wait)
+ throws StandardException;
+
+ /**
+ * Delete the set of rows defined by a scan on an index
+ * from the table. Most of the parameters are simply passed
+ * to TransactionController.openScan. Please refer to the
+ * TransactionController documentation for details.
+ * <p>
+ * LOCKING: row locking if there is a start and a stop
+ * key; otherwise, table locking
+ *
+ * @param tc transaction controller
+ * @param startKey key to start the scan.
+ * @param startOp operation to start the scan.
+ * @param stopKey key to start the scan.
+ * @param qualifier a qualifier for the scan.
+ * @param filter filter on base rows
+ * @param stopOp operation to start the scan.
+ * @param indexNumber Key is appropriate for this index.
+ * @param wait If true, then the caller wants to wait for locks.
+ * False will be when we using a nested user xaction
+ * - we want to timeout right away if the parent holds
+ * the lock.
+ * @return the number of rows deleted.
+ * @exception StandardException Thrown on failure
+ * @see TransactionController#openScan
+ */
+ public int deleteRows(TransactionController tc,
+ ExecIndexRow startKey,
+ int startOp,
+ Qualifier[][] qualifier,
+ TupleFilter filter,
+ ExecIndexRow stopKey,
+ int stopOp,
+ int indexNumber,
+ boolean wait)
+ throws StandardException;
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TriggerDescriptor.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TriggerDescriptor.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TriggerDescriptor.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/dictionary/TriggerDescriptor.java Fri Aug 25 13:02:02 2006
@@ -689,17 +689,29 @@
// the trigger table, so there is a very large number of actions
// that we would have to check against. This is hard to maintain,
// so don't bother.
- // When REVOKE_PRIVILEGE gets sent (this happens for privilege
- // types SELECT, UPDATE, DELETE, INSERT, REFERENCES, TRIGGER), we
- // make the TriggerDescriptor drop itself.
- if (action == DependencyManager.REVOKE_PRIVILEGE)
+
+ switch (action)
{
- DropTriggerConstantAction.dropTriggerDescriptor(
- lcc,getDataDictionary().getDependencyManager(),
- getDataDictionary(), lcc.getTransactionExecute(), this,
- null);
- return;
+ // invalidate this trigger descriptor
+ case DependencyManager.USER_RECOMPILE_REQUEST:
+ DependencyManager dm = getDataDictionary().getDependencyManager();
+ dm.invalidateFor(this, DependencyManager.PREPARED_STATEMENT_RELEASE, lcc);
+ break;
+
+ // When REVOKE_PRIVILEGE gets sent (this happens for privilege
+ // types SELECT, UPDATE, DELETE, INSERT, REFERENCES, TRIGGER), we
+ // make the TriggerDescriptor drop itself.
+ case DependencyManager.REVOKE_PRIVILEGE:
+ DropTriggerConstantAction.dropTriggerDescriptor(
+ lcc, getDataDictionary().getDependencyManager(),
+ getDataDictionary(), lcc.getTransactionExecute(), this,
+ null);
+ break;
+
+ default:
+ break;
}
+
}
/**
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/execute/RowChanger.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/execute/RowChanger.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/execute/RowChanger.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/iapi/sql/execute/RowChanger.java Fri Aug 25 13:02:02 2006
@@ -146,4 +146,19 @@
*/
public ConglomerateController getHeapConglomerateController();
+ /**
+ Open this RowChanger.
+
+ <P>Note to avoid the cost of fixing indexes that do not
+ change during update operations use openForUpdate().
+ @param lockMode The lock mode to use
+ (row or table, see TransactionController)
+ @param wait If true, then the caller wants to wait for locks. False will be
+ when we using a nested user xaction - we want to timeout right away
+ if the parent holds the lock.
+
+ @exception StandardException thrown on failure to convert
+ */
+ public void open(int lockMode, boolean wait)
+ throws StandardException;
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java Fri Aug 25 13:02:02 2006
@@ -1636,10 +1636,13 @@
TransactionController tc)
throws StandardException
{
- addDescriptorNow(td, parent, catalogNumber, duplicatesAllowed, tc, true);
+ addDescriptor(td, parent, catalogNumber, duplicatesAllowed, tc, true);
}
- private void addDescriptorNow(TupleDescriptor td, TupleDescriptor parent,
+ /**
+ * @inheritDoc
+ */
+ public void addDescriptor(TupleDescriptor td, TupleDescriptor parent,
int catalogNumber, boolean duplicatesAllowed,
TransactionController tc, boolean wait)
throws StandardException
@@ -3242,7 +3245,7 @@
uuid,
(UUID) null, 0, 0);
- addDescriptorNow(cd, null, SYSCOLUMNS_CATALOG_NUM,
+ addDescriptor(cd, null, SYSCOLUMNS_CATALOG_NUM,
false, // no chance of duplicates here
tc, wait);
}
@@ -5873,6 +5876,17 @@
TransactionController tc)
throws StandardException
{
+ dropDependentsStoredDependencies(dependentsUUID, tc, true);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public void dropDependentsStoredDependencies(UUID dependentsUUID,
+ TransactionController tc,
+ boolean wait)
+ throws StandardException
+ {
ExecIndexRow keyRow1 = null;
DataValueDescriptor dependentIDOrderable;
TabInfoImpl ti = getNonCoreTI(SYSDEPENDS_CATALOG_NUM);
@@ -5886,7 +5900,8 @@
keyRow1 = (ExecIndexRow) exFactory.getIndexableRow(1);
keyRow1.setColumn(1, dependentIDOrderable);
- ti.deleteRow( tc, keyRow1, SYSDEPENDSRowFactory.SYSDEPENDS_INDEX1_ID );
+ ti.deleteRow( tc, keyRow1, SYSDEPENDSRowFactory.SYSDEPENDS_INDEX1_ID,
+ wait );
}
@@ -6710,7 +6725,7 @@
DataValueDescriptor tableNameOrderable;
ScanController scanController;
TabInfoImpl ti = coreInfo[SYSTABLES_CORE_NUM];
- CatalogRowFactory rf = ti.getCatalogRowFactory();
+ SYSTABLESRowFactory rf = (SYSTABLESRowFactory) ti.getCatalogRowFactory();
// We only want the 1st column from the heap
row = exFactory.getValueRow(1);
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSALIASESRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSALIASESRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSALIASESRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSALIASESRowFactory.java Fri Aug 25 13:02:02 2006
@@ -243,57 +243,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSALIASES_INDEX1_ID:
- /* 1st column is SCHEMAID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- /* 2nd column is ALIAS (varchar(128)) */
- row.setColumn(2, getDataValueFactory().getVarcharDataValue((String) null));
-
- /* 3rd column is NAMESPACE (char(1)) */
- row.setColumn(3, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- case SYSALIASES_INDEX2_ID:
- /* 1st column is ALIASID (UUID - char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- case SYSALIASES_INDEX3_ID:
- /* 1st column is SCHEMAID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- /* 2nd column is SPECIFICNAME (varchar(128)) */
- row.setColumn(2, getDataValueFactory().getVarcharDataValue((String) null));
-
- break;
- } // end switch
-
- return row;
- }
-
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCHECKSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCHECKSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCHECKSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCHECKSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -55,6 +55,7 @@
import org.apache.derby.iapi.services.uuid.UUIDFactory;
import org.apache.derby.catalog.UUID;
+import java.sql.Types;
import java.util.Properties;
/**
@@ -63,18 +64,16 @@
* @author jerry
*/
-public class SYSCHECKSRowFactory extends CatalogRowFactory
+class SYSCHECKSRowFactory extends CatalogRowFactory
{
private static final String TABLENAME_STRING = "SYSCHECKS";
- protected static final int SYSCHECKS_COLUMN_COUNT = 3;
- protected static final int SYSCHECKS_CONSTRAINTID = 1;
- protected static final int SYSCHECKS_CHECKDEFINITION = 2;
- protected static final int SYSCHECKS_REFERENCEDCOLUMNS = 3;
-
- // Column widths
- protected static final int SYSCHECKS_CONSTRAINTID_WIDTH = 36;
- protected static final int SYSCHECKS_INDEX1_ID = 0;
+ private static final int SYSCHECKS_COLUMN_COUNT = 3;
+ private static final int SYSCHECKS_CONSTRAINTID = 1;
+ private static final int SYSCHECKS_CHECKDEFINITION = 2;
+ private static final int SYSCHECKS_REFERENCEDCOLUMNS = 3;
+
+ static final int SYSCHECKS_INDEX1_ID = 0;
// index is unique.
private static final boolean[] uniqueness = null;
@@ -99,7 +98,6 @@
//
/////////////////////////////////////////////////////////////////////////////
- public
SYSCHECKSRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
boolean convertIdToLower)
{
@@ -164,35 +162,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSCHECKS_INDEX1_ID:
- /* 1st column is CONSTRAINTID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
- break;
- } // end switch
-
- return row;
- }
-
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
@@ -261,50 +230,14 @@
*
* @return array of SystemColumn suitable for making this catalog.
*/
- public SystemColumn[] buildColumnList()
- {
- int index = 0;
- int columnNumber = 1;
- SystemColumn[] columnList = new SystemColumn[SYSCHECKS_COLUMN_COUNT];
-
- // describe columns
-
- columnList[index++] = new SystemColumnImpl(
- convertIdCase( "CONSTRAINTID"), // name
- SYSCHECKS_CONSTRAINTID, // column number
- 0, // precision
- 0, // scale
- false, // nullability
- "CHAR", // dataType
- true, // built-in type
- 36 // maxLength
- );
- columnList[index++] =
- new SystemColumnImpl(
- convertIdCase( "CHECKDEFINITION"), // column name
- SYSCHECKS_CHECKDEFINITION, // column number
- 0, // precision
- 0, // scale
- false, // nullability
- "LONG VARCHAR", // dataType
- true, // built-in type
- TypeId.LONGVARCHAR_MAXWIDTH // maxLength
- );
- columnList[index++] =
- new SystemColumnImpl(
- convertIdCase( "REFERENCEDCOLUMNS"), // column name
- SYSCHECKS_REFERENCEDCOLUMNS, // column number
- 0, // precision
- 0, // scale
- false, // nullability
- "org.apache.derby.catalog.ReferencedColumns", // datatype
- false, // built-in type
- TypeDescriptor.MAXIMUM_WIDTH_UNKNOWN
- // maxLength
- );
-
-
- return columnList;
- }
+ public SystemColumn[] buildColumnList() {
+
+ return new SystemColumn[] {
+ SystemColumnImpl.getUUIDColumn("CONSTRAINTID", false),
+ SystemColumnImpl.getColumn("CHECKDEFINITION", Types.LONGVARCHAR, false),
+ SystemColumnImpl.getJavaColumn("REFERENCEDCOLUMNS",
+ "org.apache.derby.catalog.ReferencedColumns", false)
+ };
+ }
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLPERMSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -54,7 +54,7 @@
*
*/
-public class SYSCOLPERMSRowFactory extends PermissionsCatalogRowFactory
+class SYSCOLPERMSRowFactory extends PermissionsCatalogRowFactory
{
static final String TABLENAME_STRING = "SYSCOLPERMS";
@@ -67,9 +67,9 @@
private static final int COLUMNS_COL_NUM = 6;
private static final int COLUMN_COUNT = 6;
- public static final int GRANTEE_TABLE_TYPE_GRANTOR_INDEX_NUM = 0;
- public static final int COLPERMSID_INDEX_NUM = 1;
- public static final int TABLEID_INDEX_NUM = 2;
+ static final int GRANTEE_TABLE_TYPE_GRANTOR_INDEX_NUM = 0;
+ static final int COLPERMSID_INDEX_NUM = 1;
+ static final int TABLEID_INDEX_NUM = 2;
private static final int[][] indexColumnPositions =
{
{ GRANTEE_COL_NUM, TABLEID_COL_NUM, TYPE_COL_NUM, GRANTOR_COL_NUM},
@@ -90,7 +90,7 @@
private SystemColumn[] columnList;
- public SYSCOLPERMSRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
+ SYSCOLPERMSRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
boolean convertIdToLower)
{
super(uuidf,ef,dvf,convertIdToLower);
@@ -170,98 +170,18 @@
} // end of buildDescriptor
/** builds a column list for the catalog */
- public SystemColumn[] buildColumnList()
+ public SystemColumn[] buildColumnList()
{
- if (columnList == null)
- {
- columnList = new SystemColumn[ COLUMN_COUNT];
-
- columnList[ COLPERMSID_COL_NUM - 1] =
- new SystemColumnImpl( convertIdCase( "COLPERMSID"),
- COLPERMSID_COL_NUM,
- 0, // precision
- 0, // scale
- false, // nullability
- "CHAR",
- true,
- 36);
- columnList[ GRANTEE_COL_NUM - 1] =
- new SystemColumnImpl( convertIdCase( "GRANTEE"),
- GRANTEE_COL_NUM,
- 0, // precision
- 0, // scale
- false, // nullability
- AUTHORIZATION_ID_TYPE,
- AUTHORIZATION_ID_IS_BUILTIN_TYPE,
- AUTHORIZATION_ID_LENGTH);
- columnList[ GRANTOR_COL_NUM - 1] =
- new SystemColumnImpl( convertIdCase( "GRANTOR"),
- GRANTOR_COL_NUM,
- 0, // precision
- 0, // scale
- false, // nullability
- AUTHORIZATION_ID_TYPE,
- AUTHORIZATION_ID_IS_BUILTIN_TYPE,
- AUTHORIZATION_ID_LENGTH);
- columnList[ TABLEID_COL_NUM - 1] =
- new SystemColumnImpl( convertIdCase( "TABLEID"),
- TABLEID_COL_NUM,
- 0, // precision
- 0, // scale
- false, // nullability
- "CHAR", // dataType
- true, // built-in type
- 36);
- columnList[ TYPE_COL_NUM - 1] =
- new SystemColumnImpl( convertIdCase( "TYPE"),
- TYPE_COL_NUM,
- 0, // precision
- 0, // scale
- false, // nullability
- "CHAR", // dataType
- true, // built-in type
- 1);
- columnList[ COLUMNS_COL_NUM - 1] =
- new SystemColumnImpl( convertIdCase( "COLUMNS"),
- COLUMNS_COL_NUM,
- 0, // precision
- 0, // scale
- false, // nullability
- "org.apache.derby.iapi.services.io.FormatableBitSet", // datatype
- false, // built-in type
- DataTypeDescriptor.MAXIMUM_WIDTH_UNKNOWN // maxLength
- );
- }
- return columnList;
- } // end of buildColumnList
-
- /**
- * builds an empty row given for a given index number.
- */
- public ExecIndexRow buildEmptyIndexRow(int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- ExecIndexRow row = getExecutionFactory().getIndexableRow( indexColumnPositions[indexNumber].length + 1);
- row.setColumn( row.nColumns(), rowLocation);
-
- switch( indexNumber)
- {
- case GRANTEE_TABLE_TYPE_GRANTOR_INDEX_NUM:
- row.setColumn(1, getNullAuthorizationID()); // grantee
- row.setColumn(2, getDataValueFactory().getNullChar( (StringDataValue) null)); // table UUID
- row.setColumn(3, getDataValueFactory().getNullChar( (StringDataValue) null)); // type
- row.setColumn(4, getNullAuthorizationID()); // grantor
- break;
- case COLPERMSID_INDEX_NUM:
- row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // COLPERMSID
- break;
- case TABLEID_INDEX_NUM:
- row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // TABLEID
- break;
- }
- return row;
- } // end of buildEmptyIndexRow
+ return new SystemColumn[] {
+ SystemColumnImpl.getUUIDColumn("COLPERMSID", false),
+ SystemColumnImpl.getIdentifierColumn("GRANTEE", false),
+ SystemColumnImpl.getIdentifierColumn("GRANTOR", false),
+ SystemColumnImpl.getUUIDColumn("TABLEID", false),
+ SystemColumnImpl.getIndicatorColumn("TYPE"),
+ SystemColumnImpl.getJavaColumn("COLUMNS",
+ "org.apache.derby.iapi.services.io.FormatableBitSet", false)
+ };
+ }
/**
* builds an index key row for a given index number.
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLUMNSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLUMNSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLUMNSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCOLUMNSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -326,51 +326,6 @@
///////////////////////////////////////////////////////////////////////////
/**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch(indexNumber)
- {
- case SYSCOLUMNS_INDEX1_ID:
- /* 1st column is REFERENCEID (UUID - char(36)) */
- row.setColumn
- (1, getDataValueFactory().getCharDataValue((String) null));
-
- /* 2nd column is COLUMNNAME (varchar(128)) */
- row.setColumn
- (2,
- getDataValueFactory().getVarcharDataValue((String) null));
-
- break;
-
- case SYSCOLUMNS_INDEX2_ID:
-
- /* 1st column is DEFAULTID (UUID - char(36)) */
- row.setColumn
- (1, getDataValueFactory().getCharDataValue((String) null));
-
- break;
- } // end switch
-
- return row;
- }
-
-
- /**
* Make a ColumnDescriptor out of a SYSCOLUMNS row
*
* @param row a SYSCOLUMNS row
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONGLOMERATESRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONGLOMERATESRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONGLOMERATESRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONGLOMERATESRowFactory.java Fri Aug 25 13:02:02 2006
@@ -213,58 +213,6 @@
return makeRow(null, null);
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSCONGLOMERATES_INDEX1_ID:
-
- /* 1st column is CONGLOMERATEID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
- break;
-
- case SYSCONGLOMERATES_INDEX2_ID:
-
- /* 1st column is CONGLOMERATENAME (varchar(128)) */
- row.setColumn(1, getDataValueFactory().getVarcharDataValue((String) null));
-
- /* 2nd column is SCHEMAID (char(36)) */
- row.setColumn(2, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- case SYSCONGLOMERATES_INDEX3_ID:
-
- /* Build the row */
- /* NOTE: this index is not unique, need extra column in template for
- * drop method in DataDictionary.
- */
-
- /* 1st column is TABLEID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- } // end switch
-
- return row;
- }
/**
* Get the Properties associated with creating the heap.
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONSTRAINTSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONSTRAINTSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONSTRAINTSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSCONSTRAINTSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -224,57 +224,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSCONSTRAINTS_INDEX1_ID:
- /* 1st column is CONSTRAINTID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
- break;
-
- case SYSCONSTRAINTS_INDEX2_ID:
- /* 1st column is CONSTRAINTNAME (varchar(128)) */
- row.setColumn(1, getDataValueFactory().getVarcharDataValue((String) null));
-
- /* 2nd column is SCHEMAID (UUID - char(36)) */
- row.setColumn(2, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- case SYSCONSTRAINTS_INDEX3_ID:
- /* 1st column is TABLEID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- default:
-
- if (SanityManager.DEBUG)
- SanityManager.NOTREACHED();
- return null;
-
-
- } // end switch
-
- return row;
- }
///////////////////////////////////////////////////////////////////////////
//
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDEPENDSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDEPENDSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDEPENDSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDEPENDSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -180,29 +180,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- ExecIndexRow row = getExecutionFactory().getIndexableRow(2);
-
- /* both indices are on UUID */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- row.setColumn(2, rowLocation);
-
- return row;
- }
-
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDUMMY1RowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDUMMY1RowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDUMMY1RowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSDUMMY1RowFactory.java Fri Aug 25 13:02:02 2006
@@ -21,6 +21,8 @@
package org.apache.derby.impl.sql.catalog;
+import java.sql.Types;
+
import org.apache.derby.iapi.sql.dictionary.SystemColumn;
import org.apache.derby.iapi.sql.dictionary.TupleDescriptor;
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
@@ -46,16 +48,8 @@
*
*/
-public class SYSDUMMY1RowFactory extends CatalogRowFactory
+class SYSDUMMY1RowFactory extends CatalogRowFactory
{
- static final String TABLENAME_STRING = "SYSDUMMY1";
-
- /* column #s for sysstatistics (1 based) */
-
- /* only column
- */
- protected static final int SYSDUMMY1_IBMREQD = 1;
-
protected static final int SYSDUMMY1_COLUMN_COUNT = 1;
private static final String[] uuids =
@@ -63,22 +57,18 @@
"c013800d-00f8-5b70-bea3-00000019ed88", // catalog UUID
"c013800d-00f8-5b70-fee8-000000198c88" // heap UUID.
};
- /*
- * STATE
- */
- private SystemColumn[] columnList;
/*
* CONSTRUCTORS
*/
- public SYSDUMMY1RowFactory(UUIDFactory uuidf,
+ SYSDUMMY1RowFactory(UUIDFactory uuidf,
ExecutionFactory ef,
DataValueFactory dvf,
boolean convertIdToLower)
{
super(uuidf,ef,dvf,convertIdToLower);
- initInfo(SYSDUMMY1_COLUMN_COUNT, TABLENAME_STRING,
+ initInfo(SYSDUMMY1_COLUMN_COUNT, "SYSDUMMY1",
null, null, uuids);
}
@@ -111,12 +101,6 @@
return null;
}
- public ExecIndexRow buildEmptyIndexRow(int indexNumber, RowLocation rowLocation)
- throws StandardException
- {
- return null;
- }
-
/**
* Builds a list of columns suitable for creating this Catalog.
*
@@ -124,24 +108,10 @@
* @return array of SystemColumn suitable for making this catalog.
*/
public SystemColumn[] buildColumnList()
- {
- if (columnList != null)
- return columnList;
-
- columnList = new SystemColumn[SYSDUMMY1_COLUMN_COUNT];
-
- columnList[0] = new SystemColumnImpl(
- convertIdCase( "IBMREQD"), // column name
- SYSDUMMY1_IBMREQD, // column number
- 0, // precision
- 0, // scale
- true, // nullability
- "CHAR", // dataType
- true, // built-in type
- 1 // maxLength
- );
-
- return columnList;
+ {
+ return new SystemColumn[] {
+ SystemColumnImpl.getColumn("IBMREQD", Types.CHAR, true, 1)
+ };
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFILESRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFILESRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFILESRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFILESRowFactory.java Fri Aug 25 13:02:02 2006
@@ -46,6 +46,8 @@
import org.apache.derby.iapi.services.uuid.UUIDFactory;
import org.apache.derby.catalog.TypeDescriptor;
import org.apache.derby.catalog.UUID;
+
+import java.sql.Types;
import java.util.Properties;
/**
@@ -56,27 +58,27 @@
* @author Rick Hillegas (extracted from DataDictionaryImpl).
*/
-public class SYSFILESRowFactory extends CatalogRowFactory
+class SYSFILESRowFactory extends CatalogRowFactory
{
- protected static final String TABLENAME_STRING = "SYSFILES";
+ private static final String TABLENAME_STRING = "SYSFILES";
- protected static final int SYSFILES_COLUMN_COUNT = 4;
+ private static final int SYSFILES_COLUMN_COUNT = 4;
/* Column #s (1 based) */
- protected static final int ID_COL_NUM = 1;
- protected static final String ID_COL_NAME = "FILEID";
+ private static final int ID_COL_NUM = 1;
+ private static final String ID_COL_NAME = "FILEID";
- protected static final int SCHEMA_ID_COL_NUM = 2;
- protected static final String SCHEMA_ID_COL_NAME = "SCHEMAID";
+ private static final int SCHEMA_ID_COL_NUM = 2;
+ private static final String SCHEMA_ID_COL_NAME = "SCHEMAID";
- protected static final int NAME_COL_NUM = 3;
- protected static final String NAME_COL_NAME = "FILENAME";
+ private static final int NAME_COL_NUM = 3;
+ private static final String NAME_COL_NAME = "FILENAME";
- protected static final int GENERATION_ID_COL_NUM = 4;
- protected static final String GENERATION_ID_COL_NAME = "GENERATIONID";
+ private static final int GENERATION_ID_COL_NUM = 4;
+ private static final String GENERATION_ID_COL_NAME = "GENERATIONID";
- protected static final int SYSFILES_INDEX1_ID = 0;
- protected static final int SYSFILES_INDEX2_ID = 1;
+ static final int SYSFILES_INDEX1_ID = 0;
+ static final int SYSFILES_INDEX2_ID = 1;
private static final int[][] indexColumnPositions =
{
@@ -100,7 +102,7 @@
//
/////////////////////////////////////////////////////////////////////////////
- public SYSFILESRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
+ SYSFILESRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
boolean convertIdToLower)
{
super(uuidf,ef,dvf,convertIdToLower);
@@ -159,46 +161,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSFILES_INDEX1_ID:
- /* 1st column is NAME (varchar(128)) */
- row.setColumn(1, getDataValueFactory().getVarcharDataValue((String) null));
-
- /* 2nd column is SCHEMAID (UUID - char(36)) */
- row.setColumn(2, getDataValueFactory().getCharDataValue((String) null));
-
- break;
-
- case SYSFILES_INDEX2_ID:
- /* 1st column is ID (UUID - char(36)) */
- row.setColumn(1,
- getDataValueFactory().getCharDataValue((String) null));
-
- break;
- } // end switch
-
- return row;
- }
-
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
@@ -282,52 +244,14 @@
*
* @return array of SystemColumn suitable for making this catalog.
*/
- public SystemColumn[] buildColumnList()
- {
- int index = 0;
- SystemColumn[] columnList = new SystemColumn[SYSFILES_COLUMN_COUNT];
-
- // describe columns
-
- columnList[index++] = new SystemColumnImpl(
- convertIdCase( ID_COL_NAME), // column name
- ID_COL_NUM, // column number
- 0, // precision
- 0, // scale
- false, // nullability
- "CHAR", // dataType
- true, // built-in type
- 36 // maxLength
- );
-
- columnList[index++] = new SystemColumnImpl(
- convertIdCase( SCHEMA_ID_COL_NAME), // column name
- SCHEMA_ID_COL_NUM, // schema number
- 0, // precision
- 0, // scale
- false, // nullability
- "CHAR", // dataType
- true, // built-in type
- 36 // maxLength
- );
-
- columnList[index++] = new SystemColumnImpl(
- convertIdCase( NAME_COL_NAME), // column name
- NAME_COL_NUM, // column number
- false // nullability
- );
- columnList[index++] =
- new SystemColumnImpl(
- convertIdCase( GENERATION_ID_COL_NAME), // column name
- GENERATION_ID_COL_NUM, // column number
- 0, // precision
- 0, // scale
- false, // nullability
- "BIGINT", // dataType
- true, // built-in type
- TypeId.LONGINT_MAXWIDTH // maxLength
- );
- return columnList;
- }
-
+ public SystemColumn[] buildColumnList()
+ {
+ return new SystemColumn[] {
+ SystemColumnImpl.getUUIDColumn(ID_COL_NAME, false),
+ SystemColumnImpl.getUUIDColumn(SCHEMA_ID_COL_NAME, false),
+ SystemColumnImpl.getIdentifierColumn(NAME_COL_NAME, false),
+ SystemColumnImpl.getColumn(GENERATION_ID_COL_NAME, Types.BIGINT, false)
+
+ };
+ }
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFOREIGNKEYSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFOREIGNKEYSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFOREIGNKEYSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSFOREIGNKEYSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -178,30 +178,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols +1, rowLocation);
-
- /* 1st column is CONSTRAINTID (char(36)) or KEYCONSTRAINTID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- return row;
- }
-
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSKEYSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSKEYSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSKEYSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSKEYSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -151,46 +151,7 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- ExecIndexRow row = null;
- switch( indexNumber )
- {
- case SYSKEYS_INDEX1_ID:
-
- /* Build the row */
- row = getExecutionFactory().getIndexableRow(2);
-
- /* 1st column is CONSTRAINTID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- row.setColumn(2, rowLocation);
-
- break;
-
- default:
-
- if (SanityManager.DEBUG)
- SanityManager.NOTREACHED();
- return null;
-
-
- } // end switch
-
- return row;
- }
///////////////////////////////////////////////////////////////////////////
//
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSROUTINEPERMSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -206,33 +206,6 @@
} // end of buildColumnList
/**
- * builds an empty row given for a given index number.
- */
- public ExecIndexRow buildEmptyIndexRow(int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- ExecIndexRow row = getExecutionFactory().getIndexableRow( indexColumnPositions[indexNumber].length + 1);
- row.setColumn( row.nColumns(), rowLocation);
-
- switch( indexNumber)
- {
- case GRANTEE_ALIAS_GRANTOR_INDEX_NUM:
- row.setColumn(1, getNullAuthorizationID()); // grantee
- row.setColumn(2, getDataValueFactory().getNullChar( (StringDataValue) null)); // table UUID
- row.setColumn(3, getNullAuthorizationID()); // grantor
- break;
- case ROUTINEPERMSID_INDEX_NUM:
- row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // ROUTINEPERMSID
- break;
- case ALIASID_INDEX_NUM:
- row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // ROUTINEPERMSID
- break;
- }
- return row;
- } // end of buildEmptyIndexRow
-
- /**
* builds an index key row given for a given index number.
*/
public ExecIndexRow buildIndexKeyRow( int indexNumber,
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSCHEMASRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSCHEMASRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSCHEMASRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSCHEMASRowFactory.java Fri Aug 25 13:02:02 2006
@@ -158,41 +158,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
-
- switch( indexNumber )
- {
- case SYSSCHEMAS_INDEX1_ID:
- /* 1st column is SCHEMANAME (varchar(128)) */
- row.setColumn(1, getDataValueFactory().getVarcharDataValue((String) null));
- break;
-
- case SYSSCHEMAS_INDEX2_ID:
- /* 1st column is SCHEMAID (UUID - char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
- break;
-
- } // end switch
-
- return row;
- }
///////////////////////////////////////////////////////////////////////////
//
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATEMENTSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -234,40 +234,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSSTATEMENTS_INDEX1_ID:
- /* 1st column is STMTID (UUID - char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
- break;
-
- case SYSSTATEMENTS_INDEX2_ID:
- /* 1st column is STMTNAME (varchar(128)) */
- row.setColumn(1, getDataValueFactory().getVarcharDataValue((String) null));
- break;
- } // end switch
-
- return row;
- }
-
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATISTICSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATISTICSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATISTICSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSSTATISTICSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -232,18 +232,6 @@
statType, stat, columnCount);
}
- public ExecIndexRow buildEmptyIndexRow(int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- /* there is only one index-- just use hardwired values. */
- ExecIndexRow row = getExecutionFactory().getIndexableRow(3);
- row.setColumn(1, getDataValueFactory().getCharDataValue((String)null));
- row.setColumn(2, getDataValueFactory().getCharDataValue((String)null));
- row.setColumn(3, rowLocation);
- return row;
- }
-
/**
* Builds a list of columns suitable for creating this Catalog.
*
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLEPERMSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -296,33 +296,6 @@
} // end of buildColumnList
/**
- * builds an empty row given for a given index number.
- */
- public ExecIndexRow buildEmptyIndexRow(int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- ExecIndexRow row = getExecutionFactory().getIndexableRow( indexColumnPositions[indexNumber].length + 1);
- row.setColumn( row.nColumns(), rowLocation);
-
- switch( indexNumber)
- {
- case GRANTEE_TABLE_GRANTOR_INDEX_NUM:
- row.setColumn(1, getNullAuthorizationID()); // grantee
- row.setColumn(2, getDataValueFactory().getNullChar( (StringDataValue) null)); // table UUID
- row.setColumn(3, getNullAuthorizationID()); // grantor
- break;
- case TABLEPERMSID_INDEX_NUM:
- row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // TABLEPERMSID
- break;
- case TABLEID_INDEX_NUM:
- row.setColumn(1, getDataValueFactory().getNullChar( (StringDataValue) null)); // TABLEID
- break;
- }
- return row;
- } // end of buildEmptyIndexRow
-
- /**
* builds a key row given for a given index number.
*/
public ExecIndexRow buildIndexKeyRow( int indexNumber,
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLESRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLESRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLESRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTABLESRowFactory.java Fri Aug 25 13:02:02 2006
@@ -55,7 +55,7 @@
* @author Rick Hillegas (extracted from DataDictionaryImpl).
*/
-public class SYSTABLESRowFactory extends CatalogRowFactory
+class SYSTABLESRowFactory extends CatalogRowFactory
{
private static final String TABLENAME_STRING = "SYSTABLES";
@@ -96,7 +96,7 @@
//
/////////////////////////////////////////////////////////////////////////////
- public SYSTABLESRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
+ SYSTABLESRowFactory(UUIDFactory uuidf, ExecutionFactory ef, DataValueFactory dvf,
boolean convertIdToLower)
{
super(uuidf,ef,dvf,convertIdToLower);
@@ -227,7 +227,7 @@
* @return corresponding empty index row
* @exception StandardException thrown on failure
*/
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
+ ExecIndexRow buildEmptyIndexRow( int indexNumber,
RowLocation rowLocation)
throws StandardException
{
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTRIGGERSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTRIGGERSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTRIGGERSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSTRIGGERSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -248,50 +248,6 @@
return row;
}
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- int ncols = getIndexColumnCount(indexNumber);
- ExecIndexRow row = getExecutionFactory().getIndexableRow(ncols + 1);
-
- row.setColumn(ncols + 1, rowLocation);
-
- switch( indexNumber )
- {
- case SYSTRIGGERS_INDEX1_ID:
- /* 1st column is TRIGGERID (UUID - char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
- break;
-
- case SYSTRIGGERS_INDEX2_ID:
- /* 1st column is TRIGGERNAME (varchar(128)) */
- row.setColumn(1, getDataValueFactory().getVarcharDataValue((String) null));
-
- /* 2nd column is SCHEMAID (char(32)) */
- row.setColumn(2, getDataValueFactory().getCharDataValue((String) null));
- break;
-
- case SYSTRIGGERS_INDEX3_ID:
- /* 1nd column is TABLEID (char(32)) */
- row.setColumn(2, getDataValueFactory().getCharDataValue((String) null));
-
- /* 2nd column is COMPILATIONTIMESTAMP (timestamp) */
- row.setColumn(2, new SQLTimestamp());
- break;
- } // end switch
-
- return row;
- }
///////////////////////////////////////////////////////////////////////////
//
@@ -666,11 +622,6 @@
);
return columnList;
- }
-
- public int heapColumnCount()
- {
- return SYSTRIGGERS_COLUMN_COUNT;
}
// a little helper
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/SYSVIEWSRowFactory.java Fri Aug 25 13:02:02 2006
@@ -188,31 +188,7 @@
return row;
}
-
- /**
- * Builds an empty index row.
- *
- * @param indexNumber Index to build empty row for.
- * @param rowLocation Row location for last column of index row
- *
- * @return corresponding empty index row
- * @exception StandardException thrown on failure
- */
- public ExecIndexRow buildEmptyIndexRow( int indexNumber,
- RowLocation rowLocation)
- throws StandardException
- {
- /* Build the row */
- ExecIndexRow row = getExecutionFactory().getIndexableRow(2);
-
- /* 1st column is TABLEID (char(36)) */
- row.setColumn(1, getDataValueFactory().getCharDataValue((String) null));
-
- row.setColumn(2, rowLocation);
-
- return row;
- }
-
+
///////////////////////////////////////////////////////////////////////////
//
// ABSTRACT METHODS TO BE IMPLEMENTED BY CHILDREN OF CatalogRowFactory
@@ -349,10 +325,5 @@
36 // maxLength
);
return columnList;
- }
-
- public int heapColumnCount()
- {
- return SYSVIEWS_COLUMN_COUNT;
}
}
Modified: db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/TabInfoImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/TabInfoImpl.java?rev=436921&r1=436920&r2=436921&view=diff
==============================================================================
--- db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/TabInfoImpl.java (original)
+++ db/derby/code/branches/10.2/java/engine/org/apache/derby/impl/sql/catalog/TabInfoImpl.java Fri Aug 25 13:02:02 2006
@@ -616,9 +616,26 @@
null,
key,
ScanController.GT,
- indexNumber);
+ indexNumber,
+ true);
}
+ public int deleteRow( TransactionController tc, ExecIndexRow key,
+ int indexNumber, boolean wait)
+ throws StandardException
+ {
+ // Always row locking
+ return deleteRows(tc,
+ key,
+ ScanController.GE,
+ null,
+ null,
+ key,
+ ScanController.GT,
+ indexNumber,
+ wait);
+ }
+
/**
* LOCKING: row locking if there is both a start and
* stop key; otherwise table locking
@@ -627,13 +644,37 @@
* @see TabInfo#deleteRows
*/
public int deleteRows(TransactionController tc,
+ ExecIndexRow startKey,
+ int startOp,
+ Qualifier[][] qualifier,
+ TupleFilter filter,
+ ExecIndexRow stopKey,
+ int stopOp,
+ int indexNumber) throws StandardException
+ {
+ return deleteRows(tc,
+ startKey,
+ startOp,
+ qualifier,
+ filter,
+ stopKey,
+ stopOp,
+ indexNumber,
+ true);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public int deleteRows(TransactionController tc,
ExecIndexRow startKey,
int startOp,
Qualifier[][] qualifier,
TupleFilter filter,
ExecIndexRow stopKey,
int stopOp,
- int indexNumber)
+ int indexNumber,
+ boolean wait)
throws StandardException
{
ConglomerateController heapCC;
@@ -644,7 +685,7 @@
ExecRow baseRow = crf.makeEmptyRow();
int rowsDeleted = 0;
boolean passedFilter = true;
-
+
rc = getRowChanger( tc, (int[])null,baseRow );
/*
@@ -666,7 +707,7 @@
TransactionController.ISOLATION_SERIALIZABLE;
// Row level locking
- rc.open(lockMode);
+ rc.open(lockMode, wait);
DataValueDescriptor[] startKeyRow =
startKey == null ? null : startKey.getRowArray();
@@ -678,14 +719,16 @@
heapCC = tc.openConglomerate(
getHeapConglomerate(),
false,
- TransactionController.OPENMODE_FORUPDATE,
+ (TransactionController.OPENMODE_FORUPDATE |
+ ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
lockMode,
TransactionController.ISOLATION_REPEATABLE_READ);
drivingScan = tc.openScan(
getIndexConglomerate(indexNumber), // conglomerate to open
false, // don't hold open across commit
- TransactionController.OPENMODE_FORUPDATE, // for update
+ (TransactionController.OPENMODE_FORUPDATE |
+ ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
lockMode,
isolation,
(FormatableBitSet) null, // all fields as objects
@@ -729,6 +772,7 @@
heapCC.close();
drivingScan.close();
rc.close();
+
return rowsDeleted;
}