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 2007/03/06 16:13:47 UTC
svn commit: r515139 [1/2] - in /db/derby/code/trunk:
java/engine/org/apache/derby/iapi/jdbc/
java/engine/org/apache/derby/impl/jdbc/
java/engine/org/apache/derby/impl/sql/catalog/
java/engine/org/apache/derby/loc/ java/shared/org/apache/derby/shared/co...
Author: kahatlen
Date: Tue Mar 6 07:13:34 2007
New Revision: 515139
URL: http://svn.apache.org/viewvc?view=rev&rev=515139
Log:
DERBY-2257: Implementing the stored procedures called by the LOB
related JDBC methods
Patch contributed by V. Narayanan.
Added:
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/LOBStoredProcedure.java (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/BlobStoredProcedureTest.java (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ClobStoredProcedureTest.java (with props)
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/EngineConnection.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection40.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/build.xml
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestDbMetaData.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
db/derby/code/trunk/tools/jar/extraDBMSclasses.properties
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java Tue Mar 6 07:13:34 2007
@@ -615,4 +615,25 @@
return holdability;
}
+ /**
+ * Dummy implementation for method in EngineConnection.
+ *
+ * @param LOBReference The object which contains the LOB object that
+ * that is added to the HashMap.
+ * @return an integer that represents the locator that has been
+ * allocated to this LOB.
+ */
+ public int addLOBMapping(Object LOBReference) { return -1;}
+
+ /**
+ * Dummy implementation for method in EngineConnection.
+ */
+ public void clearLOBMapping() {}
+
+ /**
+ * Dummy implementation for method in EngineConnection.
+ * @param key the integer that represents the LOB locator value.
+ * @return the LOB Object corresponding to this locator.
+ */
+ public Object getLOBMapping(int key) { return null;}
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/EngineConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/EngineConnection.java?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/EngineConnection.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/jdbc/EngineConnection.java Tue Mar 6 07:13:34 2007
@@ -93,4 +93,27 @@
public void addWarning(SQLWarning newWarning)
throws SQLException;
+ /**
+ * Add the locator and the corresponding LOB object into the
+ * HashMap
+ * @param LOBReference The object which contains the LOB object that
+ * that is added to the HashMap.
+ * @return an integer that represents the locator that has been
+ * allocated to this LOB.
+ */
+ public int addLOBMapping(Object LOBReference);
+
+ /**
+ * Clear the HashTable of all entries.
+ * Called when a commit or rollback of the transaction
+ * happens.
+ */
+ public void clearLOBMapping() throws SQLException;
+
+ /**
+ * Get the LOB reference corresponding to the locator.
+ * @param key the integer that represents the LOB locator value.
+ * @return the LOB Object corresponding to this locator.
+ */
+ public Object getLOBMapping(int key);
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java Tue Mar 6 07:13:34 2007
@@ -52,12 +52,16 @@
*/
import java.sql.PreparedStatement;
import java.sql.CallableStatement;
+import java.sql.Blob;
+import java.sql.Clob;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
+import java.util.HashMap;
import java.util.Properties;
+import java.util.Iterator;
import org.apache.derby.impl.jdbc.authentication.NoneAuthenticationServiceImpl;
@@ -117,6 +121,8 @@
final TransactionResourceImpl tr; // always access tr thru getTR()
+ private HashMap lobHashMap = null;
+ private int lobHMKey = 0;
//////////////////////////////////////////////////////////
// STATE (copied to new nested connections, but nesting
@@ -950,6 +956,7 @@
try
{
getTR().commit();
+ clearLOBMapping();
}
catch (Throwable t)
{
@@ -985,6 +992,7 @@
try
{
getTR().rollback();
+ clearLOBMapping();
} catch (Throwable t) {
throw handleException(t);
}
@@ -2057,4 +2065,118 @@
}
+ /**
+ *
+ * Constructs an object that implements the <code>Clob</code> interface. The object
+ * returned initially contains no data. The <code>setAsciiStream</code>,
+ * <code>setCharacterStream</code> and <code>setString</code> methods of
+ * the <code>Clob</code> interface may be used to add data to the <code>Clob</code>.
+ *
+ * @return An object that implements the <code>Clob</code> interface
+ * @throws SQLException if an object that implements the
+ * <code>Clob</code> interface can not be constructed, this method is
+ * called on a closed connection or a database access error occurs.
+ *
+ */
+ public Clob createClob() throws SQLException {
+ checkIfClosed();
+ return new EmbedClob("", this);
+ }
+
+ /**
+ *
+ * Constructs an object that implements the <code>Blob</code> interface. The object
+ * returned initially contains no data. The <code>setBinaryStream</code> and
+ * <code>setBytes</code> methods of the <code>Blob</code> interface may be used to add data to
+ * the <code>Blob</code>.
+ *
+ * @return An object that implements the <code>Blob</code> interface
+ * @throws SQLException if an object that implements the
+ * <code>Blob</code> interface can not be constructed, this method is
+ * called on a closed connection or a database access error occurs.
+ *
+ */
+ public Blob createBlob() throws SQLException {
+ checkIfClosed();
+ return new EmbedBlob(new byte[0], this);
+ }
+
+ /**
+ * Add the locator and the corresponding LOB object into the
+ * HashMap
+ *
+ * @param lobHashMap The object which contains the LOB object that
+ * that is added to the HashMap.
+ * @return an integer that represents the locator that has been
+ * allocated to this LOB.
+ */
+ public int addLOBMapping(Object LOBReference) {
+ int loc = getIncLOBKey();
+ getlobHMObj().put(new Integer(loc), LOBReference);
+ return loc;
+ }
+
+ /**
+ * Remove the key(LOCATOR) from the hash table.
+ * @param key an integer that represents the locator that needs to be
+ * removed from the table.
+ */
+ public void removeLOBMapping(int key) {
+ getlobHMObj().remove(new Integer(key));
+ }
+
+ /**
+ * Get the LOB reference corresponding to the locator.
+ * @param key the integer that represents the LOB locator value.
+ * @return the LOB Object corresponding to this locator.
+ */
+ public Object getLOBMapping(int key) {
+ return getlobHMObj().get(new Integer(key));
+ }
+
+ /**
+ * Clear the HashMap of all entries.
+ * Called when a commit or rollback of the transaction
+ * happens.
+ */
+ public void clearLOBMapping() throws SQLException {
+
+ //free all the lob resources in the HashMap
+ //initialize the locator value to 0 and
+ //the hash table object to null.
+ if (lobHashMap != null) {
+ for (Iterator e = getlobHMObj().keySet().iterator();
+ e.hasNext() ;) {
+ Object obj = e.next();
+ if (obj instanceof Clob) {
+ EmbedClob temp = (EmbedClob)obj;
+ temp.free();
+ }
+ if (obj instanceof Blob) {
+ EmbedBlob temp = (EmbedBlob)obj;
+ temp.free();
+ }
+ }
+ }
+ getlobHMObj().clear();
+ }
+
+ /**
+ * Return the current locator value
+ * @return an integer that represents the most recent locator value.
+ */
+ private int getIncLOBKey() {
+ return ++rootConnection.lobHMKey;
+ }
+
+ /**
+ * Return the Hash Map in the root connection
+ * @return the HashMap that contains the locator to LOB object mapping
+ */
+ public HashMap getlobHMObj() {
+ if (rootConnection.lobHashMap == null) {
+ rootConnection.lobHashMap = new HashMap();
+ }
+ return rootConnection.lobHashMap;
+ }
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection40.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection40.java?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection40.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection40.java Tue Mar 6 07:13:34 2007
@@ -65,42 +65,6 @@
throw Util.notImplemented();
}
- /**
- *
- * Constructs an object that implements the <code>Clob</code> interface. The object
- * returned initially contains no data. The <code>setAsciiStream</code>,
- * <code>setCharacterStream</code> and <code>setString</code> methods of
- * the <code>Clob</code> interface may be used to add data to the <code>Clob</code>.
- *
- * @return An object that implements the <code>Clob</code> interface
- * @throws SQLException if an object that implements the
- * <code>Clob</code> interface can not be constructed, this method is
- * called on a closed connection or a database access error occurs.
- *
- */
- public Clob createClob() throws SQLException {
- checkIfClosed();
- return new EmbedClob("",this);
- }
-
- /**
- *
- * Constructs an object that implements the <code>Blob</code> interface. The object
- * returned initially contains no data. The <code>setBinaryStream</code> and
- * <code>setBytes</code> methods of the <code>Blob</code> interface may be used to add data to
- * the <code>Blob</code>.
- *
- * @return An object that implements the <code>Blob</code> interface
- * @throws SQLException if an object that implements the
- * <code>Blob</code> interface can not be constructed, this method is
- * called on a closed connection or a database access error occurs.
- *
- */
- public Blob createBlob() throws SQLException {
- checkIfClosed();
- return new EmbedBlob(new byte[0],this);
- }
-
public NClob createNClob() throws SQLException {
throw Util.notImplemented();
}
Added: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/LOBStoredProcedure.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/LOBStoredProcedure.java?view=auto&rev=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/LOBStoredProcedure.java (added)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/LOBStoredProcedure.java Tue Mar 6 07:13:34 2007
@@ -0,0 +1,376 @@
+/*
+
+ Derby - Class org.apache.derby.impl.jdbc.LOBStoredProcedure
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+
+package org.apache.derby.impl.jdbc;
+
+import java.sql.Blob;
+import java.sql.Connection;
+import java.sql.Clob;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+import org.apache.derby.iapi.reference.SQLState;
+
+/**
+ * Contains the stored procedures that will be used in the
+ * LOB client side methods.
+ */
+public class LOBStoredProcedure {
+
+ /**
+ * Creates a new empty Clob and registers it in the HashMap in the
+ * Connection and returns the locator value corresponding to this Clob.
+ * @return an integer that maps to the Clob value created.
+ * @throws a SQLException.
+ */
+ public static int CLOBCREATELOCATOR() throws SQLException {
+ Clob clob = getEmbedConnection().createClob();
+ return getEmbedConnection().addLOBMapping(clob);
+ }
+
+ /**
+ * Removes the supplied LOCATOR entry from the hash map.
+ * @param LOCATOR an integer that represents the locator that needs to be
+ * removed from the hash map.
+ * @throws SQLException.
+ */
+ public static void CLOBRELEASELOCATOR(int LOCATOR) throws SQLException {
+ Clob clob = (Clob)getEmbedConnection().getLOBMapping(LOCATOR);
+ if (clob == null) {
+ throw newSQLException(SQLState.LOB_LOCATOR_INVALID);
+ }
+ EmbedClob embedClob = (EmbedClob)clob;
+ embedClob.free();
+ getEmbedConnection().removeLOBMapping(LOCATOR);
+ }
+
+ /**
+ * returns the first occurrence of the given search string from the
+ * given start search position inside the Clob.
+ *
+ * @param LOCATOR an integer that represents the locator of the Clob
+ * in which the given position of the given sub-string
+ * needs to be found.
+ *
+ * @param searchLiteral a String whose occurence inside the Clob needs to
+ * be found starting from pos.
+ *
+ * @param pos an integer that represents the position inside the Clob from
+ * which the search needs to begin.
+ *
+ * @return an integer that represents the position inside the Clob of the
+ * first occurrence of the sub-string from the given starting
+ * position.
+ *
+ * @throws an SQLException
+ */
+ public static long CLOBGETPOSITIONFROMSTRING(int LOCATOR, String searchLiteral,
+ long fromPosition) throws SQLException {
+ return getClobObjectCorrespondingtoLOCATOR(LOCATOR).
+ position(searchLiteral, fromPosition);
+ }
+
+ /**
+ * returns the first occurrence of the given search string from the
+ * given start search position inside the Clob.
+ *
+ * @param LOCATOR an integer that represents the locator of the Clob
+ * in which the given position of the given sub-string
+ * needs to be found.
+ *
+ * @param searchLocator a Locator representing a Clob whose occurence inside
+ * the Clob needs to be found starting from pos.
+ *
+ * @param pos an integer that represents the position inside the Clob from
+ * which the search needs to begin.
+ *
+ * @return an integer that represents the position inside the Clob of the
+ * first occurrence of the sub-string from the given starting
+ * position.
+ *
+ * @throws an SQLException
+ */
+ public static long CLOBGETPOSITIONFROMLOCATOR(int LOCATOR, int searchLocator,
+ long fromPosition) throws SQLException {
+ return getClobObjectCorrespondingtoLOCATOR(LOCATOR).position(
+ getClobObjectCorrespondingtoLOCATOR(searchLocator), fromPosition);
+ }
+
+ /**
+ * returns the length of the Clob corresponding to the LOCATOR value.
+ *
+ * @param LOCATOR an integer that represents the locator of the Clob whose
+ * length needs to be obtained.
+ * @return an integer that represents the length of the Clob.
+ *
+ */
+ public static long CLOBGETLENGTH(int LOCATOR) throws SQLException {
+ return getClobObjectCorrespondingtoLOCATOR(LOCATOR).length();
+ }
+
+ /**
+ * returns the String starting from pos and of len length
+ * from the LOB corresponding to LOCATOR.
+ * @param LOCATOR_TYPE an integer that defines if the LOCATOR is
+ * a CLOB or a BLOB locator.
+ * @param LOCATOR an integer that represents the LOCATOR used
+ * to retrieve an instance of the LOB.
+ * @param pos a long that represents the position from which
+ * the substring begins.
+ * @param len an integer that represents the length of the substring.
+ * @return the substring conforming to the indexes we requested for from
+ * inside the LOB.
+ * @throws a SQLException
+ */
+ public static String CLOBGETSUBSTRING(int LOCATOR,
+ long pos, int len) throws SQLException {
+ return getClobObjectCorrespondingtoLOCATOR(LOCATOR).getSubString(pos, len);
+ }
+
+ /**
+ * replaces the characters starting at fromPosition and with length ForLength
+ *
+ * @param LOCATOR an integer that represents the locator of the Clob in which
+ * the characters need to be replaced.
+ *
+ * @param pos an integer that represents the position inside the Clob from which
+ * the string needs to be replaced.
+ *
+ * @param length the number of characters from the string that need to be used for
+ * replacement.
+ *
+ * @param str the string from which the repalcement characters are built.
+ *
+ * @throws an SQLException.
+ */
+ public static void CLOBSETSTRING(int LOCATOR, long pos, int length,
+ String str) throws SQLException {
+ //Temporary code that will insert a clob with data into
+ //the hashmap and will allow the testing of the locator
+ //stored procedures.
+ //This code will be removed once the set methods are implemented.
+ java.util.HashMap hm = getEmbedConnection().getlobHMObj();
+ EmbedClob clob = new EmbedClob(str, getEmbedConnection());
+ hm.remove(new Integer(LOCATOR));
+ hm.put(new Integer(LOCATOR), clob);
+ getClobObjectCorrespondingtoLOCATOR(LOCATOR).setString(pos, str, 0, length);
+ }
+
+ /**
+ * truncates the Clob value represented by LOCATOR to have a length
+ * of length.
+ *
+ * @param LOCATOR an integer that represents the LOCATOR used to retrieve an
+ * instance of the LOB.
+ * @param length an integer that represents the length to which the Clob
+ * must be truncated to.
+ * @throws a SQLException.
+ */
+ public static void CLOBTRUNCATE(int LOCATOR, long length) throws SQLException {
+ getClobObjectCorrespondingtoLOCATOR(LOCATOR).truncate(length);
+ }
+
+ /**
+ * returns the Clob object corresponding to the locator.
+ * @param LOCATOR an integer that represents the locator corresponding
+ * to the Clob object requested.
+ * @return a Clob object that is mapped to the LOCATOR object passed in.
+ * @throws a SQLException.
+ */
+ private static Clob getClobObjectCorrespondingtoLOCATOR(int LOCATOR)
+ throws SQLException {
+ Clob clob = (Clob)getEmbedConnection().getLOBMapping(LOCATOR);
+ if (clob == null) {
+ throw newSQLException(SQLState.LOB_LOCATOR_INVALID);
+ }
+ return clob;
+ }
+
+ /**
+ * Creates a new empty Blob and registers it in the HashMap in the
+ * Connection and returns the locator value corresponding to this Blob.
+ * @return an integer that maps to the Blob value created.
+ * @throws a SQLException.
+ */
+ public static int BLOBCREATELOCATOR() throws SQLException {
+ Blob blob = getEmbedConnection().createBlob();
+ return getEmbedConnection().addLOBMapping(blob);
+ }
+
+ /**
+ * Removes the supplied LOCATOR entry from the hash map.
+ * @param LOCATOR an integer that represents the locator that needs to be
+ * removed from the hash map.
+ * @throws SQLException.
+ */
+ public static void BLOBRELEASELOCATOR(int LOCATOR) throws SQLException {
+ Blob blob = (Blob)getEmbedConnection().getLOBMapping(LOCATOR);
+ if (blob == null) {
+ throw newSQLException(SQLState.LOB_LOCATOR_INVALID);
+ }
+ EmbedBlob embedBlob = (EmbedBlob)blob;
+ embedBlob.free();
+ getEmbedConnection().removeLOBMapping(LOCATOR);
+ }
+
+ /**
+ *
+ * Returns the first occurrence of locator in the Blob.
+ *
+ * @param LOCATOR the locator value of the Blob in which the seaching needs
+ * to be done.
+ * @param searchLocator the locator value of the Blob whose position needs
+ * needs to be found.
+ * @param pos the position from which the seaching needs to be done.
+ * @return the position at which the first occurrence of the Blob is
+ * found.
+ * @throws a SQLException.
+ *
+ */
+ public static long BLOBGETPOSITIONFROMLOCATOR(int LOCATOR,
+ int searchLocator, long pos) throws SQLException {
+ return getBlobObjectCorrespondingtoLOCATOR(LOCATOR).position(
+ getBlobObjectCorrespondingtoLOCATOR(searchLocator), pos);
+ }
+
+ /**
+ *
+ * Returns the first occurrence of the byte array in the Blob.
+ *
+ * @param LOCATOR the locator value of the Blob in which the seaching needs
+ * to be done.
+ * @param searchBytes the byte array whose position needs needs to be found.
+ * @param pos the position from which the seaching needs to be done.
+ * @return the position at which the first occurrence of the Byte array is
+ * found.
+ * @throws a SQLException.
+ *
+ */
+ public static long BLOBGETPOSITIONFROMBYTES(int LOCATOR,
+ byte [] searchBytes, long pos) throws SQLException {
+ return getBlobObjectCorrespondingtoLOCATOR(LOCATOR).position(searchBytes, pos);
+ }
+
+ /**
+ *
+ * Returns the length in bytes of the Blob.
+ *
+ * @param LOCATOR the locator value of the Blob whose length needs to
+ * be found.
+ * @return the length of the Blob object mapped to the locator .
+ * @throws a SQLException.
+ *
+ */
+ public static long BLOBGETLENGTH(int LOCATOR) throws SQLException {
+ return getBlobObjectCorrespondingtoLOCATOR(LOCATOR).length();
+ }
+
+ /**
+ * Returns the Byte array containing the bytes starting from pos and
+ * of length len
+ *
+ * @param LOCATOR the locator value of the Blob from which the byte array
+ * needs to be retrieved.
+ * @param len the length of te byte array that needs to be retrieved from
+ * pos
+ * @param pos the position from which the bytes from the Blob need to be
+ * retrieved.
+ * @return a byte array containing the bytes stating from pos and
+ * of length len.
+ * @throws a SQLException.
+ *
+ */
+ public static byte[] BLOBGETBYTES(int LOCATOR, long pos, int len)
+ throws SQLException {
+ return getBlobObjectCorrespondingtoLOCATOR(LOCATOR).getBytes(pos, len);
+ }
+
+ /**
+ *
+ * Replaces the bytes at pos with len bytes
+ *
+ * @param LOCATOR the integer that represents the Blob in which the bytes
+ * need to be replaced.
+ * @param pos the position stating from which the byte replacement needs to
+ * happen.
+ * @param len the number of bytes that need to be used in replacement.
+ * @param replaceBytes the byte array that contains the bytes that needs to
+ * be used for replacement.
+ * @return the number of bytes that have been replaced.
+ * @throws a SQLException.
+ *
+ */
+ public static void BLOBSETBYTES(int LOCATOR, long pos, int len,
+ byte [] replaceBytes) throws SQLException {
+ getBlobObjectCorrespondingtoLOCATOR(LOCATOR).setBytes
+ (pos, replaceBytes, 0, len);
+ }
+
+ /**
+ * truncates the Blob value represented by LOCATOR to have a length
+ * of length.
+ *
+ * @param LOCATOR an integer that represents the LOCATOR used to retrieve an
+ * instance of the LOB.
+ * @param length an integer that represents the length to which the Blob
+ * must be truncated to.
+ * @throws a SQLException.
+ */
+ public static void BLOBTRUNCATE(int LOCATOR, long length) throws SQLException {
+ getBlobObjectCorrespondingtoLOCATOR(LOCATOR).truncate(length);
+ }
+
+ /**
+ * returns the Blob object corresponding to the locator.
+ * @param LOCATOR an integer that represents the locator corresponding
+ * to the Blob object requested.
+ * @return a Blob object that is mapped to the LOCATOR object passed in.
+ * @throws a SQLException.
+ */
+ private static Blob getBlobObjectCorrespondingtoLOCATOR(int LOCATOR)
+ throws SQLException {
+ Blob blob = (Blob)getEmbedConnection().getLOBMapping(LOCATOR);
+ if (blob == null) {
+ throw newSQLException(SQLState.LOB_LOCATOR_INVALID);
+ }
+ return blob;
+ }
+
+ /**
+ * Returns the EmbedConnection object.
+ * @throws SQLException.
+ */
+ private static EmbedConnection getEmbedConnection() throws SQLException {
+ return (EmbedConnection)DriverManager
+ .getConnection("jdbc:default:connection");
+ }
+
+ /**
+ * Generate the SQLException with the appropriate
+ * SQLState.
+ *
+ * @param messageId The messageId of the message associated with this message.
+ * @return a SQLEXception.
+ */
+ private static SQLException newSQLException(String messageId) {
+ return Util.generateCsSQLException(messageId);
+ }
+}
Propchange: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/LOBStoredProcedure.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/build.xml
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/build.xml?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/build.xml (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/build.xml Tue Mar 6 07:13:34 2007
@@ -58,6 +58,7 @@
<exclude name="${derby.dir}/impl/jdbc/*20.java"/>
<exclude name="${derby.dir}/impl/jdbc/*30.java"/>
<exclude name="${derby.dir}/impl/jdbc/*40.java"/>
+ <exclude name="${derby.dir}/impl/jdbc/LOBStoredProcedure.java"/>
</javac>
<copy file="metadata.properties" tofile="${out.dir}/org/apache/derby/impl/jdbc/metadata.properties"/>
<javac
@@ -159,6 +160,7 @@
<pathelement path="${java14compile.classpath}"/>
</classpath>
<include name="${derby.dir}/impl/jdbc/*30.java"/>
+ <include name="${derby.dir}/impl/jdbc/LOBStoredProcedure.java"/>
</javac>
</target>
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?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- 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 Tue Mar 6 07:13:34 2007
@@ -8490,6 +8490,11 @@
* @param return_type null for procedure. For functions the return type
* of the function.
*
+ * @param tc an instance of the TransactionController
+ *
+ * @param procClass the fully qualified name of the class that contains
+ * java definitions for the stored procedures
+ *
* @return UUID UUID of system routine that got created.
*
* @exception StandardException Standard exception policy.
@@ -8503,7 +8508,8 @@
int num_result_sets,
short routine_sql_control,
TypeDescriptor return_type,
- TransactionController tc)
+ TransactionController tc,
+ String procClass)
throws StandardException
{
int num_args = 0;
@@ -8520,9 +8526,6 @@
}
}
- // Actual procedures are in this class:
- String procClass = "org.apache.derby.catalog.SystemProcedures";
-
// all args are only "in" arguments
int[] arg_modes = null;
if (num_args != 0)
@@ -8576,6 +8579,55 @@
}
/**
+ * Generic create procedure routine.
+ * Takes the input procedure and inserts it into the appropriate
+ * catalog.
+ *
+ * Assumes all arguments are "IN" type.
+ *
+ * @param routine_name name of the routine in java and the SQL
+ * procedure name.
+ *
+ * @param arg_names String array of procedure argument names in order.
+ *
+ * @param arg_types Internal SQL types of the arguments
+ *
+ * @param routine_sql_control
+ * One of the RoutineAliasInfo constants:
+ * MODIFIES_SQL_DATA
+ * READS_SQL_DATA
+ * CONTAINS_SQL
+ * NO_SQL
+ *
+ * @param return_type null for procedure. For functions the return type
+ * of the function.
+ *
+ * @param tc an instance of the TransactionController
+ *
+ * @return UUID UUID of system routine that got created.
+ *
+ * @throws StandardException Standard exception policy.
+ **/
+ private final UUID createSystemProcedureOrFunction(
+ String routine_name,
+ UUID schema_uuid,
+ String[] arg_names,
+ TypeDescriptor[] arg_types,
+ int num_out_param,
+ int num_result_sets,
+ short routine_sql_control,
+ TypeDescriptor return_type,
+ TransactionController tc)
+ throws StandardException
+ {
+ UUID routine_uuid = createSystemProcedureOrFunction(routine_name,
+ schema_uuid, arg_names, arg_types,
+ num_out_param, num_result_sets, routine_sql_control,
+ return_type, tc, "org.apache.derby.catalog.SystemProcedures");
+ return routine_uuid;
+ }
+
+ /**
* Create system procedures
* <p>
* Used to add the system procedures to the database when
@@ -9207,6 +9259,9 @@
create_10_2_system_procedures(tc, sysUtilUUID);
// add 10.3 specific system procedures
create_10_3_system_procedures(tc, sysUtilUUID);
+ //create 10.3 functions used by LOB methods.
+ UUID sysIBMUUID = getSysIBMSchemaDescriptor().getUUID();
+ create_10_3_LOB_Specific_functions(tc, sysIBMUUID);
}
/**
@@ -9984,7 +10039,402 @@
}
}
+ /**
+ * Create system procedures added in version 10.3.
+ * Create 10.3 system procedures related to the LOB Methods ,
+ * called by either code creating new
+ * database, or code doing hard upgrade from previous version.
+ *
+ * @param tc an instance of the TransactionController class.
+ * @param sysUtilUUID uuid of the SYSUTIL schema.
+ *
+ * @throws StandardException Standard exception policy.
+ **/
+ private void create_10_3_LOB_Specific_functions(
+ TransactionController tc,
+ UUID schema_uuid)
+ throws StandardException {
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = null;
+
+ TypeDescriptor[] arg_types = null;
+
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBCREATELOCATOR",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER, Integer.MAX_VALUE),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR"};
+
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER)};
+
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBRELEASELOCATOR",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ null,
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","SEARCHSTR","POS"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.VARCHAR),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBGETPOSITIONFROMSTRING",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT, Limits.DB2_LOB_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","SEARCHLOCATOR","POS"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBGETPOSITIONFROMLOCATOR",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT, Limits.DB2_LOB_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBGETLENGTH",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT, Limits.DB2_LOB_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","POS","LEN"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBGETSUBSTRING",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.VARCHAR, Limits.DB2_VARCHAR_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","POS","LEN","REPLACESTR"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.VARCHAR)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBSETSTRING",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ null,
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","LEN"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "CLOBTRUNCATE",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ null,
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+
+ //Now create the Stored procedures required for BLOB
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = null;
+
+ TypeDescriptor[] arg_types = null;
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBCREATELOCATOR",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER, Integer.MAX_VALUE),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR"};
+
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER)};
+
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBRELEASELOCATOR",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ null,
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","SEARCHBYTES","POS"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.VARBINARY),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBGETPOSITIONFROMBYTES",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT, Limits.DB2_LOB_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","SEARCHLOCATOR","POS"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBGETPOSITIONFROMLOCATOR",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT, Limits.DB2_LOB_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBGETLENGTH",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT, Limits.DB2_LOB_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","POS","LEN"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBGETBYTES",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.VARBINARY, Limits.DB2_VARCHAR_MAXWIDTH),
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","POS","LEN","REPLACEBYTES"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.VARBINARY)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBSETBYTES",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ null,
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ {
+ UUID routine_uuid = null;
+ String[] arg_names = {"LOCATOR","LEN"};
+
+ // procedure argument types
+ TypeDescriptor[] arg_types = {
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.INTEGER),
+ DataTypeDescriptor.getBuiltInDataTypeDescriptor(
+ Types.BIGINT)
+ };
+ routine_uuid = createSystemProcedureOrFunction(
+ "BLOBTRUNCATE",
+ schema_uuid,
+ arg_names,
+ arg_types,
+ 0,
+ 0,
+ RoutineAliasInfo.CONTAINS_SQL,
+ null,
+ tc,
+ "org.apache.derby.impl.jdbc.LOBStoredProcedure");
+ }
+ }
/**
* Create system procedures added in version 10.3.
Modified: db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml Tue Mar 6 07:13:34 2007
@@ -4430,6 +4430,10 @@
<name>XJ216.S</name>
<text>The length of this BLOB/CLOB is not available yet. When a BLOB or CLOB is accessed as a stream, the length is not available until the entire stream has been processed.</text>
</msg>
+ <msg>
+ <name>XJ217.S</name>
+ <text>The locator that was supplied for this CLOB/BLOB is invalid</text>
+ </msg>
</family>
Modified: db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java (original)
+++ db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java Tue Mar 6 07:13:34 2007
@@ -1500,6 +1500,7 @@
String IO_ERROR_UPON_LOB_FREE = "XJ214.S";
String LOB_OBJECT_INVALID = "XJ215.S";
String LOB_OBJECT_LENGTH_UNKNOWN_YET = "XJ216.S";
+ String LOB_LOCATOR_INVALID = "XJ217.S";
//XN - Network-level messages
String NET_CONNECTION_RESET_NOT_ALLOWED_IN_UNIT_OF_WORK = "XN001.S";
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out Tue Mar 6 07:13:34 2007
@@ -57,6 +57,16 @@
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions("Dummy Catalog",null,null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,APP,DUMMY1,java.some.func,xxxxGENERATED-IDxxxx
@@ -66,15 +76,43 @@
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions(null,"%SYS%",null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions(null,null,"%GET%"):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions("","",null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
getFunctionColumns(null,null,null,null):
@@ -96,6 +134,36 @@
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,BLOBCREATELOCATOR,,4,4,INTEGER,0,2147483647,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,BLOBGETBYTES,,4,-3,VARCHAR () FOR BIT DATA,32672,32672,null,null,1,null,32672,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETBYTES,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETBYTES,POS,1,-5,BIGINT,19,40,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETBYTES,LEN,1,4,INTEGER,10,4,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,BLOBGETLENGTH,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSIBM,BLOBGETLENGTH,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,SEARCHBYTES,1,-3,VARCHAR () FOR BIT DATA,32672,32672,null,null,1,null,32672,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,SEARCHLOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBCREATELOCATOR,,4,4,INTEGER,0,2147483647,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,CLOBGETLENGTH,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSIBM,CLOBGETLENGTH,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,SEARCHLOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,SEARCHSTR,1,12,VARCHAR,32672,65344,null,null,1,null,65344,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBGETSUBSTRING,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETSUBSTRING,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETSUBSTRING,POS,1,-5,BIGINT,19,40,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETSUBSTRING,LEN,1,4,INTEGER,10,4,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
getFunctionColumns(null,"APP","DUMMY%","X"):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],COLUMN_NAME[VARCHAR],COLUMN_TYPE[SMALLINT],DATA_TYPE[INTEGER],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out Tue Mar 6 07:13:34 2007
@@ -87,6 +87,16 @@
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions("Dummy Catalog",null,null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,APP,DUMMY1,java.some.func,xxxxGENERATED-IDxxxx
@@ -96,15 +106,43 @@
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions(null,"%SYS%",null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions(null,null,"%GET%"):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions("","",null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
getFunctionColumns(null,null,null,null):
@@ -126,6 +164,36 @@
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,BLOBCREATELOCATOR,,4,4,INTEGER,0,2147483647,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,BLOBGETBYTES,,4,-3,VARCHAR () FOR BIT DATA,32672,32672,null,null,1,null,32672,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETBYTES,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETBYTES,POS,1,-5,BIGINT,19,40,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETBYTES,LEN,1,4,INTEGER,10,4,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,BLOBGETLENGTH,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSIBM,BLOBGETLENGTH,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,SEARCHBYTES,1,-3,VARCHAR () FOR BIT DATA,32672,32672,null,null,1,null,32672,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,SEARCHLOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBCREATELOCATOR,,4,4,INTEGER,0,2147483647,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,CLOBGETLENGTH,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSIBM,CLOBGETLENGTH,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,SEARCHLOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,SEARCHSTR,1,12,VARCHAR,32672,65344,null,null,1,null,65344,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBGETSUBSTRING,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETSUBSTRING,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETSUBSTRING,POS,1,-5,BIGINT,19,40,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETSUBSTRING,LEN,1,4,INTEGER,10,4,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
getFunctionColumns(null,"APP","DUMMY%","X"):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],COLUMN_NAME[VARCHAR],COLUMN_TYPE[SMALLINT],DATA_TYPE[INTEGER],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out?view=diff&rev=515139&r1=515138&r2=515139
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out Tue Mar 6 07:13:34 2007
@@ -57,6 +57,16 @@
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions("Dummy Catalog",null,null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,APP,DUMMY1,java.some.func,xxxxGENERATED-IDxxxx
@@ -66,15 +76,43 @@
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions(null,"%SYS%",null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,SYSCS_UTIL,SYSCS_CHECK_TABLE,org.apache.derby.catalog.SystemProcedures.SYSCS_CHECK_TABLE,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBCREATELOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBCREATELOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions(null,null,"%GET%"):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_DATABASE_PROPERTY,xxxxGENERATED-IDxxxx
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,org.apache.derby.catalog.SystemProcedures.SYSCS_GET_RUNTIMESTATISTICS,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMBYTES,xxxxGENERATED-IDxxxx
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.BLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETLENGTH,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETLENGTH,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMLOCATOR,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETPOSITIONFROMSTRING,xxxxGENERATED-IDxxxx
+null,SYSIBM,CLOBGETSUBSTRING,org.apache.derby.impl.jdbc.LOBStoredProcedure.CLOBGETSUBSTRING,xxxxGENERATED-IDxxxx
getFunctions("","",null):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],REMARKS[VARCHAR],SPECIFIC_NAME[VARCHAR]
getFunctionColumns(null,null,null,null):
@@ -96,6 +134,36 @@
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,1,-1
null,SYSCS_UTIL,SYSCS_GET_DATABASE_PROPERTY,KEY,1,12,VARCHAR,128,256,null,null,1,null,256,1,YES,xxxxGENERATED-IDxxxx,1,0
null,SYSCS_UTIL,SYSCS_GET_RUNTIMESTATISTICS,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,BLOBCREATELOCATOR,,4,4,INTEGER,0,2147483647,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,BLOBGETBYTES,,4,-3,VARCHAR () FOR BIT DATA,32672,32672,null,null,1,null,32672,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETBYTES,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETBYTES,POS,1,-5,BIGINT,19,40,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETBYTES,LEN,1,4,INTEGER,10,4,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,BLOBGETLENGTH,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSIBM,BLOBGETLENGTH,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,SEARCHBYTES,1,-3,VARCHAR () FOR BIT DATA,32672,32672,null,null,1,null,32672,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETPOSITIONFROMBYTES,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,SEARCHLOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,BLOBGETPOSITIONFROMLOCATOR,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBCREATELOCATOR,,4,4,INTEGER,0,2147483647,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,0,-1
+null,SYSIBM,CLOBGETLENGTH,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,1,-1
+null,SYSIBM,CLOBGETLENGTH,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,SEARCHLOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETPOSITIONFROMLOCATOR,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,,4,-5,BIGINT,0,40,0,10,1,null,null,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,SEARCHSTR,1,12,VARCHAR,32672,65344,null,null,1,null,65344,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETPOSITIONFROMSTRING,POS,1,-5,BIGINT,19,40,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
+null,SYSIBM,CLOBGETSUBSTRING,,4,12,VARCHAR,32672,65344,null,null,1,null,65344,0,YES,xxxxGENERATED-IDxxxx,3,-1
+null,SYSIBM,CLOBGETSUBSTRING,LOCATOR,1,4,INTEGER,10,4,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,3,0
+null,SYSIBM,CLOBGETSUBSTRING,POS,1,-5,BIGINT,19,40,0,10,1,null,null,2,YES,xxxxGENERATED-IDxxxx,3,1
+null,SYSIBM,CLOBGETSUBSTRING,LEN,1,4,INTEGER,10,4,0,10,1,null,null,3,YES,xxxxGENERATED-IDxxxx,3,2
getFunctionColumns(null,"APP","DUMMY%","X"):
FUNCTION_CAT[VARCHAR],FUNCTION_SCHEM[VARCHAR],FUNCTION_NAME[VARCHAR],COLUMN_NAME[VARCHAR],COLUMN_TYPE[SMALLINT],DATA_TYPE[INTEGER],TYPE_NAME[VARCHAR],PRECISION[INTEGER],LENGTH[INTEGER],SCALE[SMALLINT],RADIX[SMALLINT],NULLABLE[SMALLINT],REMARKS[VARCHAR],CHAR_OCTET_LENGTH[INTEGER],ORDINAL_POSITION[INTEGER],IS_NULLABLE[VARCHAR],SPECIFIC_NAME[VARCHAR],METHOD_ID[SMALLINT],PARAMETER_ID[SMALLINT]
null,APP,DUMMY1,X,1,5,SMALLINT,5,2,0,10,1,null,null,1,YES,xxxxGENERATED-IDxxxx,1,0