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 fu...@apache.org on 2005/06/13 23:41:35 UTC
svn commit: r190514 [1/7] - in /incubator/derby/code/branches/10.1/java:
engine/org/apache/derby/iapi/reference/
engine/org/apache/derby/iapi/services/io/
engine/org/apache/derby/iapi/services/loader/
engine/org/apache/derby/iapi/types/ engine/org/apache/derby/impl/jdbc/
engine/org/apache/derby/impl/sql/compile/ engine/org/apache/derby/loc/
testing/org/apache/derbyTesting/functionTests/master/
testing/org/apache/derbyTesting/functionTests/master/DerbyNet/
testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/
testing/org/apache/derbyTesting/functionTests/master/j9_13/
testing/org/apache/derbyTesting/functionTests/master/j9_22/
testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/
testing/org/apache/derbyTesting/functionTests/tests/lang/
testing/org/apache/derbyTesting/functionTests/tests/tools/
Author: fuzzylogic
Date: Mon Jun 13 14:41:33 2005
New Revision: 190514
URL: http://svn.apache.org/viewcvs?rev=190514&view=rev
Log:
Merge changes from 189890 to 190512 in preparation for making release candidate
jars for Derby 10.1
Modified:
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/reference/SQLState.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/io/LimitReader.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLChar.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLVarchar.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/jdbc/ReaderToUTF8Stream.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/CreateAliasNode.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java
incubator/derby/code/branches/10.1/java/engine/org/apache/derby/loc/messages_en.properties
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/parameterMapping.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/procedure.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/synonym.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMapping.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/procedure.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/synonym.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/functions.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/distinct.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/ejbql.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/floattypes.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/groupBy.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/outparams.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_13/parameterMapping.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_22/distinct.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/j9_22/groupBy.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/miscerrors.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/parameterMapping.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/procedure.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/synonym.out
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/parameterMapping.java
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/lang/copyfiles.ant
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/lang/functions.sql
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/lang/miscerrors.sql
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/lang/procedure.java
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/lang/synonym.sql
incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/tests/tools/dblook_makeDB_2.sql
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/reference/SQLState.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/reference/SQLState.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/reference/SQLState.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/reference/SQLState.java Mon Jun 13 14:41:33 2005
@@ -1456,9 +1456,12 @@
String UU_INVALID_PARAMETER = "XCZ02.S";
/*
+ ** SQL Java DDL 46xxx
** SQLJ jar file support
*/
String SQLJ_INVALID_JAR = "46001";
+ String SQLJ_SIGNATURE_INVALID = "46J01";
+ String SQLJ_SIGNATURE_PARAMETER_COUNT = "46J02";
/*
** Import/Export
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/io/LimitReader.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/io/LimitReader.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/io/LimitReader.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/io/LimitReader.java Mon Jun 13 14:41:33 2005
@@ -119,6 +119,16 @@
limitInPlace = true;
return;
}
+
+ /**
+ * return limit of the stream that can be read without throwing
+ * EOFException
+ * @return the remaining bytes left to be read from the stream
+ */
+ public final int getLimit()
+ {
+ return remainingBytes;
+ }
/**
Clear any limit set by setLimit. After this call no limit checking
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/services/loader/ClassInspector.java Mon Jun 13 14:41:33 2005
@@ -316,41 +316,6 @@
primParamClasses, isParam, staticMethod, repeatLastParameter, methodList);
}
- public Method findPublicMethod(String className, String signature, boolean isStatic) throws ClassNotFoundException {
- Class javaClass = getClass(className);
- StringTokenizer tokenizer = new StringTokenizer(signature, "(,)", true);
- try {
- String methodName = tokenizer.nextToken();
- if (!tokenizer.nextToken().equals("(")) {
- return null;
- }
- List paramTypes;
- String token = tokenizer.nextToken();
- if (")".equals(token)) {
- paramTypes = Collections.EMPTY_LIST;
- } else {
- paramTypes = new ArrayList();
- paramTypes.add(getClass(token));
- while ((token = tokenizer.nextToken()).equals(",")) {
- token = tokenizer.nextToken();
- paramTypes.add(getClass(token));
- }
- }
-
- Method method;
- try {
- method = javaClass.getMethod(methodName, (Class[])paramTypes.toArray(new Class[paramTypes.size()]));
- if (isStatic != Modifier.isStatic(method.getModifiers())) {
- return null;
- }
- } catch (NoSuchMethodException e) {
- return null;
- }
- return method;
- } catch (NoSuchElementException e) {
- return null;
- }
- }
/**
* Find a public field for a class.
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLChar.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLChar.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLChar.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLChar.java Mon Jun 13 14:41:33 2005
@@ -86,6 +86,18 @@
extends DataType implements StringDataValue, StreamStorable
{
+ /**
+ * threshold, that decides when we return space back to the VM
+ * see getString() where it is used
+ */
+ protected final static int RETURN_SPACE_THRESHOLD = 4096;
+
+ /**
+ * when we know that the array needs to grow by at least
+ * one byte, it is not performant to grow by just one byte
+ * instead this amount is used to provide a reasonable growby size.
+ */
+ private final static int GROWBY_FOR_CHAR = 64;
/**
Static array that can be used for blank padding.
*/
@@ -335,7 +347,7 @@
// data is stored in the char[] array
value = new String(rawData, 0, len);
- if (len > 4096) {
+ if (len > RETURN_SPACE_THRESHOLD) {
// free up this char[] array to reduce memory usage
rawData = null;
rawLength = -1;
@@ -641,6 +653,11 @@
int utflen = in.readUnsignedShort();
int requiredLength;
+ // minimum amount that is reasonable to grow the array
+ // when we know the array needs to growby at least one
+ // byte but we dont want to grow by one byte as that
+ // is not performant
+ int minGrowBy = growBy();
if (utflen != 0)
{
// the object was not stored as a streaming column
@@ -654,8 +671,8 @@
// OR
// The original string was a 0 length string.
requiredLength = in.available();
- if (requiredLength < 64)
- requiredLength = 64;
+ if (requiredLength < minGrowBy)
+ requiredLength = minGrowBy;
}
char str[];
@@ -707,12 +724,26 @@
if (strlen >= arrayLength) // the char array needs to be grown
{
int growby = in.available();
-
- // We know at the array needs to be grown by at least one.
+ // We know that the array needs to be grown by at least one.
// However, even if the input stream wants to block on every
// byte, we don't want to grow by a byte at a time.
- if (growby < 64)
- growby = 64;
+ // Note, for large data (clob > 32k), it is performant
+ // to grow the array by atleast 4k rather than a small amount
+ // Even better maybe to grow by 32k but then may be
+ // a little excess(?) for small data.
+ // hopefully in.available() will give a fair
+ // estimate of how much data can be read to grow the
+ // array by larger and necessary chunks.
+ // This performance issue due to
+ // the slow growth of this array was noticed since inserts
+ // on clobs was taking a really long time as
+ // the array here grew previously by 64 bytes each time
+ // till stream was drained. (Derby-302)
+ // for char, growby 64 seems reasonable, but for varchar
+ // clob 4k or 32k is performant and hence
+ // growBy() is override correctly to ensure this
+ if (growby < minGrowBy)
+ growby = minGrowBy;
int newstrlength = arrayLength + growby;
char oldstr[] = str;
@@ -804,6 +835,18 @@
cKey = null;
}
+ /**
+ * returns the reasonable minimum amount by
+ * which the array can grow . See readExternal.
+ * when we know that the array needs to grow by at least
+ * one byte, it is not performant to grow by just one byte
+ * instead this amount is used to provide a resonable growby size.
+ * @return minimum reasonable growby size
+ */
+ protected int growBy()
+ {
+ return GROWBY_FOR_CHAR; //seems reasonable for a char
+ }
/**
* @see Storable#restoreToNull
*
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLVarchar.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLVarchar.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLVarchar.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/iapi/types/SQLVarchar.java Mon Jun 13 14:41:33 2005
@@ -182,4 +182,17 @@
{
return TypeId.VARCHAR_PRECEDENCE;
}
+
+ /**
+ * returns the reasonable minimum amount by
+ * which the array can grow . See readExternal.
+ * when we know that the array needs to grow by at least
+ * one byte, it is not performant to grow by just one byte
+ * instead this amount is used to provide a resonable growby size.
+ * @return minimum reasonable growby size
+ */
+ protected final int growBy()
+ {
+ return RETURN_SPACE_THRESHOLD; //seems reasonable for a varchar or clob
+ }
}
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/jdbc/ReaderToUTF8Stream.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/jdbc/ReaderToUTF8Stream.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/jdbc/ReaderToUTF8Stream.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/jdbc/ReaderToUTF8Stream.java Mon Jun 13 14:41:33 2005
@@ -43,11 +43,14 @@
private int blen;
private boolean eof;
private boolean multipleBuffer;
+ // buffer to hold the data read from stream
+ // and converted to UTF8 format
+ private final static int BUFSIZE = 32768;
ReaderToUTF8Stream(LimitReader reader)
{
this.reader = reader;
- buffer = new byte[4096];
+ buffer = new byte[BUFSIZE];
blen = -1;
}
@@ -196,5 +199,20 @@
reader.close();
}
+ /**
+ * Return an optimized version of bytes available to read from
+ * the stream
+ * Note, it is not exactly per java.io.InputStream#available()
+ */
+ public final int available()
+ {
+ int remainingBytes = reader.getLimit();
+ // this object buffers BUFSIZE bytes that can be read
+ // and when that is finished it reads the next available bytes
+ // from the reader object
+ // reader.getLimit() returns the remaining bytes available
+ // on this stream
+ return (BUFSIZE > remainingBytes ? remainingBytes : BUFSIZE);
+ }
}
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/CreateAliasNode.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/CreateAliasNode.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/CreateAliasNode.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/CreateAliasNode.java Mon Jun 13 14:41:33 2005
@@ -201,6 +201,7 @@
case AliasInfo.ALIAS_TYPE_SYNONYM_AS_CHAR:
String targetSchema;
+ implicitCreateSchema = true;
TableName t = (TableName) targetObject;
if (t.getSchemaName() != null)
targetSchema = t.getSchemaName();
@@ -257,13 +258,8 @@
this.getFullName(),
targetSchema+"."+targetTable);
- // Raise error if targetSchema doesn't exists
- SchemaDescriptor targetSD = getSchemaDescriptor(targetSchema);
-
- // Synonym can't be defined on temporary tables.
- TableDescriptor targetTD = getTableDescriptor(targetTable, targetSD);
- if (targetTD != null &&
- targetTD.getTableType() == TableDescriptor.GLOBAL_TEMPORARY_TABLE_TYPE)
+ SchemaDescriptor targetSD = getSchemaDescriptor(targetSchema, false);
+ if ((targetSD != null) && isSessionSchema(targetSD))
throw StandardException.newException(SQLState.LANG_OPERATION_NOT_ALLOWED_ON_SESSION_SCHEMA_TABLES);
return this;
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/impl/sql/compile/MethodCallNode.java Mon Jun 13 14:41:33 2005
@@ -56,6 +56,7 @@
import java.lang.reflect.Modifier;
import java.lang.reflect.Member;
+import java.util.StringTokenizer;
import java.util.Vector;
/**
@@ -671,7 +672,8 @@
ClassInspector classInspector = getClassFactory().getClassInspector();
- String[] parmTypeNames = getObjectSignature();
+
+ String[] parmTypeNames;
String[] primParmTypeNames = null;
boolean[] isParam = getIsParam();
@@ -680,16 +682,27 @@
/*
** Find the matching method that is public.
*/
- try
- {
+
+ int signatureOffset = methodName.indexOf('(');
+
// support Java signatures by checking if the method name contains a '('
- if (methodName.indexOf('(') != -1) {
- method = classInspector.findPublicMethod(javaClassName, methodName, staticMethod);
- methodName = method.getName();
+ if (signatureOffset != -1) {
+ parmTypeNames = parseValidateSignature(methodName, signatureOffset, hasDynamicResultSets);
+ methodName = methodName.substring(0, signatureOffset);
+
+ // If the signature is specified then Derby resolves to exactly
+ // that method. Setting this flag to false disables the method
+ // resolution from automatically optionally repeating the last
+ // parameter as needed.
+ hasDynamicResultSets = false;
+
}
else
{
- /* First try with built-in types and mappings */
+ parmTypeNames = getObjectSignature();
+ }
+ try
+ {
method = classInspector.findPublicMethod(javaClassName,
methodName,
parmTypeNames,
@@ -702,7 +715,8 @@
// DB2 LUW does not support Java object types for SMALLINT, INTEGER, BIGINT, REAL, DOUBLE
// and these are the only types that can map to a primitive or an object type according
// to SQL part 13. So we never have a second chance match.
- if (routineInfo == null) {
+ // Also if the DDL specified a signature, then no alternate resolution
+ if (signatureOffset == -1 && routineInfo == null) {
/* If no match, then retry with combinations of object and
* primitive types.
@@ -720,7 +734,6 @@
hasDynamicResultSets);
}
}
- }
}
catch (ClassNotFoundException e)
{
@@ -829,7 +842,7 @@
}
}
- if (classInspector.primitiveType(methodParameter))
+ if (ClassInspector.primitiveType(methodParameter))
methodParms[i].castToPrimitive(true);
}
@@ -853,6 +866,137 @@
getCompilerContext().getParameterTypes()[0] = dts;
}
}
+
+ /**
+ * Parse the user supplied signature for a method and validate
+ * it, need to match the number of parameters passed in and match
+ * the valid types for the parameter.
+ * @param signature complete external name with signature
+ * @param offset Character offset of first paren
+ * @param hasDynamicResultSets Can ResultSet[] parameters be specified.
+ * @return The valid array of types for resolution.
+ * @throws StandardException
+ */
+ private String[] parseValidateSignature(String externalName, int offset,
+ boolean hasDynamicResultSets)
+ throws StandardException
+ {
+ int siglen = externalName.length();
+
+ // Ensure the opening paren is not the last
+ // character and that the last character is a close paren
+ if (((offset + 1) == siglen)
+ || (externalName.charAt(siglen - 1) != ')'))
+ throw StandardException.newException(SQLState.SQLJ_SIGNATURE_INVALID); // invalid
+
+ StringTokenizer st = new StringTokenizer(externalName.substring(offset + 1, siglen - 1), ",", true);
+
+ String[] signatureTypes = new String[signature.length];
+ int count;
+ boolean seenClass = false;
+ for (count = 0; st.hasMoreTokens();)
+ {
+ String type = st.nextToken().trim();
+
+ // check sequence is <class><comma>class> etc.
+ if (",".equals(type))
+ {
+ if (!seenClass)
+ throw StandardException.newException(SQLState.SQLJ_SIGNATURE_INVALID); // invalid
+ seenClass = false;
+ continue;
+ }
+ else
+ {
+ if (type.length() == 0)
+ throw StandardException.newException(SQLState.SQLJ_SIGNATURE_INVALID); // invalid
+ seenClass = true;
+ count++;
+ }
+
+ if (count > signature.length)
+ {
+ if (hasDynamicResultSets)
+ {
+ // Allow any number of dynamic result set holders
+ // but they must match the exact type.
+ String rsType = signature[signature.length - 1].getSQLType().
+ getTypeId().getCorrespondingJavaTypeName();
+
+ if (!type.equals(rsType))
+ throw StandardException.newException(SQLState.LANG_DATA_TYPE_GET_MISMATCH,
+ type, rsType);
+
+ if (signatureTypes.length == signature.length)
+ {
+ // expand once
+ String[] sigs = new String[st.countTokens()];
+ System.arraycopy(signatureTypes, 0, sigs, 0, signatureTypes.length);
+ signatureTypes = sigs;
+ }
+
+ signatureTypes[count - 1] = type;
+ continue;
+
+ }
+ throw StandardException.newException(SQLState.SQLJ_SIGNATURE_PARAMETER_COUNT,
+ Integer.toString(count),
+ Integer.toString(signature.length)); // too many types
+ }
+
+
+ TypeId paramTypeId = signature[count - 1].getSQLType().getTypeId();
+
+ // Does it match the object name
+ if (type.equals(paramTypeId.getCorrespondingJavaTypeName()))
+ {
+ signatureTypes[count - 1] = type;
+ continue;
+ }
+
+ // how about the primitive name
+ if ((paramTypeId.isNumericTypeId() && !paramTypeId.isDecimalTypeId())
+ || paramTypeId.isBooleanTypeId())
+ {
+ TypeCompiler tc = getTypeCompiler(paramTypeId);
+ if (type.equals(tc.getCorrespondingPrimitiveTypeName()))
+ {
+ signatureTypes[count - 1] = type;
+ continue;
+ }
+ }
+ throw StandardException.newException(SQLState.LANG_DATA_TYPE_GET_MISMATCH,
+ type, paramTypeId.getSQLTypeName()); // type conversion error
+ }
+
+ // Did signature end with trailing comma?
+ if (count != 0 && !seenClass)
+ throw StandardException.newException(SQLState.SQLJ_SIGNATURE_INVALID); // invalid
+
+ if (count < signatureTypes.length)
+ {
+ if (hasDynamicResultSets)
+ {
+ // we can tolerate a count of one less than the
+ // expected count, which means the procedure is declared
+ // to have dynamic result sets, but the explict signature
+ // doesn't have any ResultSet[] types.
+ // So accept, and procedure will automatically have 0
+ // dynamic results at runtime
+ if (count == (signature.length - 1))
+ {
+ String[] sigs = new String[count];
+ System.arraycopy(signatureTypes, 0, sigs, 0, count);
+ return sigs;
+ }
+ }
+ throw StandardException.newException(SQLState.SQLJ_SIGNATURE_PARAMETER_COUNT,
+ Integer.toString(count),
+ Integer.toString(signature.length)); // too few types
+ }
+
+ return signatureTypes;
+ }
/**
* Return true if some parameters are null, false otherwise.
Modified: incubator/derby/code/branches/10.1/java/engine/org/apache/derby/loc/messages_en.properties
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/engine/org/apache/derby/loc/messages_en.properties?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/engine/org/apache/derby/loc/messages_en.properties (original)
+++ incubator/derby/code/branches/10.1/java/engine/org/apache/derby/loc/messages_en.properties Mon Jun 13 14:41:33 2005
@@ -1135,6 +1135,8 @@
# SQL J Jar support
46001=Exception while accessing jar file using URL ''{0}''.
+46J01=Java method signature has invalid format.
+46J02=Java method signature contains incorrect number ({0}) of parameters, expected {1}.
###############################################################################
#
Modified: incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/parameterMapping.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/parameterMapping.out?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/parameterMapping.out (original)
+++ incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/parameterMapping.out Mon Jun 13 14:41:33 2005
@@ -92,24 +92,39 @@
setXXX() with all JDBC Types on SMALLINT
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getShort=98 was null false JDBC MATCH(OK)
+ setByte() as batch getShort=98 was null false JDBC MATCH(OK)
setShort() getShort=98 was null false JDBC MATCH(OK)
+ setShort() as batch getShort=98 was null false JDBC MATCH(OK)
setInt() getShort=98 was null false JDBC MATCH(OK)
+ setInt() as batch getShort=98 was null false JDBC MATCH(OK)
setLong() getShort=98 was null false JDBC MATCH(OK)
+ setLong() as batch getShort=98 was null false JDBC MATCH(OK)
setFloat() getShort=98 was null false JDBC MATCH(OK)
+ setFloat() as batch getShort=98 was null false JDBC MATCH(OK)
setDouble() getShort=98 was null false JDBC MATCH(OK)
+ setDouble() as batch getShort=98 was null false JDBC MATCH(OK)
setBigDecimal() getShort=99 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getShort=99 was null false JDBC MATCH(OK)
setBigDecimal(null) getShort=0 was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getShort=0 was null true JDBC MATCH(OK)
setBoolean() getShort=1 was null false JDBC MATCH(OK)
+ setBoolean() as batch getShort=1 was null false JDBC MATCH(OK)
setString() getShort=97 was null false JDBC MATCH(OK)
+ setString() as batch getShort=97 was null false JDBC MATCH(OK)
setString(null) getShort=0 was null true JDBC MATCH(OK)
+ setString(null) as batch getShort=0 was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getShort=0 was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getShort=0 was null true CLOUD EXT (OK)
+ setDate(null) as batch getShort=0 was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getShort=0 was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getShort=0 was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getShort=0 was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getShort=0 was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -223,24 +238,39 @@
setXXX() with all JDBC Types on INTEGER
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getInt=98 was null false JDBC MATCH(OK)
+ setByte() as batch getInt=98 was null false JDBC MATCH(OK)
setShort() getInt=98 was null false JDBC MATCH(OK)
+ setShort() as batch getInt=98 was null false JDBC MATCH(OK)
setInt() getInt=98 was null false JDBC MATCH(OK)
+ setInt() as batch getInt=98 was null false JDBC MATCH(OK)
setLong() getInt=98 was null false JDBC MATCH(OK)
+ setLong() as batch getInt=98 was null false JDBC MATCH(OK)
setFloat() getInt=98 was null false JDBC MATCH(OK)
+ setFloat() as batch getInt=98 was null false JDBC MATCH(OK)
setDouble() getInt=98 was null false JDBC MATCH(OK)
+ setDouble() as batch getInt=98 was null false JDBC MATCH(OK)
setBigDecimal() getInt=99 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getInt=99 was null false JDBC MATCH(OK)
setBigDecimal(null) getInt=0 was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getInt=0 was null true JDBC MATCH(OK)
setBoolean() getInt=1 was null false JDBC MATCH(OK)
+ setBoolean() as batch getInt=1 was null false JDBC MATCH(OK)
setString() getInt=97 was null false JDBC MATCH(OK)
+ setString() as batch getInt=97 was null false JDBC MATCH(OK)
setString(null) getInt=0 was null true JDBC MATCH(OK)
+ setString(null) as batch getInt=0 was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getInt=0 was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getInt=0 was null true CLOUD EXT (OK)
+ setDate(null) as batch getInt=0 was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getInt=0 was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getInt=0 was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getInt=0 was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getInt=0 was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -354,24 +384,39 @@
setXXX() with all JDBC Types on BIGINT
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getLong=98 was null false JDBC MATCH(OK)
+ setByte() as batch getLong=98 was null false JDBC MATCH(OK)
setShort() getLong=98 was null false JDBC MATCH(OK)
+ setShort() as batch getLong=98 was null false JDBC MATCH(OK)
setInt() getLong=98 was null false JDBC MATCH(OK)
+ setInt() as batch getLong=98 was null false JDBC MATCH(OK)
setLong() getLong=98 was null false JDBC MATCH(OK)
+ setLong() as batch getLong=98 was null false JDBC MATCH(OK)
setFloat() getLong=98 was null false JDBC MATCH(OK)
+ setFloat() as batch getLong=98 was null false JDBC MATCH(OK)
setDouble() getLong=98 was null false JDBC MATCH(OK)
+ setDouble() as batch getLong=98 was null false JDBC MATCH(OK)
setBigDecimal() getLong=99 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getLong=99 was null false JDBC MATCH(OK)
setBigDecimal(null) getLong=0 was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getLong=0 was null true JDBC MATCH(OK)
setBoolean() getLong=1 was null false JDBC MATCH(OK)
+ setBoolean() as batch getLong=1 was null false JDBC MATCH(OK)
setString() getLong=97 was null false JDBC MATCH(OK)
+ setString() as batch getLong=97 was null false JDBC MATCH(OK)
setString(null) getLong=0 was null true JDBC MATCH(OK)
+ setString(null) as batch getLong=0 was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getLong=0 was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getLong=0 was null true CLOUD EXT (OK)
+ setDate(null) as batch getLong=0 was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getLong=0 was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getLong=0 was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getLong=0 was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getLong=0 was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -485,24 +530,39 @@
setXXX() with all JDBC Types on REAL
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getFloat=98.0 was null false JDBC MATCH(OK)
+ setByte() as batch getFloat=98.0 was null false JDBC MATCH(OK)
setShort() getFloat=98.0 was null false JDBC MATCH(OK)
+ setShort() as batch getFloat=98.0 was null false JDBC MATCH(OK)
setInt() getFloat=98.0 was null false JDBC MATCH(OK)
+ setInt() as batch getFloat=98.0 was null false JDBC MATCH(OK)
setLong() getFloat=98.0 was null false JDBC MATCH(OK)
+ setLong() as batch getFloat=98.0 was null false JDBC MATCH(OK)
setFloat() getFloat=98.4 was null false JDBC MATCH(OK)
+ setFloat() as batch getFloat=98.4 was null false JDBC MATCH(OK)
setDouble() getFloat=98.5 was null false JDBC MATCH(OK)
+ setDouble() as batch getFloat=98.5 was null false JDBC MATCH(OK)
setBigDecimal() getFloat=99.0 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getFloat=99.0 was null false JDBC MATCH(OK)
setBigDecimal(null) getFloat=0.0 was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getFloat=0.0 was null true JDBC MATCH(OK)
setBoolean() getFloat=1.0 was null false JDBC MATCH(OK)
+ setBoolean() as batch getFloat=1.0 was null false JDBC MATCH(OK)
setString() getFloat=97.0 was null false JDBC MATCH(OK)
+ setString() as batch getFloat=97.0 was null false JDBC MATCH(OK)
setString(null) getFloat=0.0 was null true JDBC MATCH(OK)
+ setString(null) as batch getFloat=0.0 was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getFloat=0.0 was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getFloat=0.0 was null true CLOUD EXT (OK)
+ setDate(null) as batch getFloat=0.0 was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getFloat=0.0 was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getFloat=0.0 was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getFloat=0.0 was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getFloat=0.0 was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -617,24 +677,39 @@
setXXX() with all JDBC Types on FLOAT
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getDouble=98.0 was null false JDBC MATCH(OK)
+ setByte() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setShort() getDouble=98.0 was null false JDBC MATCH(OK)
+ setShort() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setInt() getDouble=98.0 was null false JDBC MATCH(OK)
+ setInt() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setLong() getDouble=98.0 was null false JDBC MATCH(OK)
+ setLong() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setFloat() getDouble=98.4 was null false JDBC MATCH(OK)
+ setFloat() as batch getDouble=98.4 was null false JDBC MATCH(OK)
setDouble() getDouble=98.5 was null false JDBC MATCH(OK)
+ setDouble() as batch getDouble=98.5 was null false JDBC MATCH(OK)
setBigDecimal() getDouble=99.0 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getDouble=99.0 was null false JDBC MATCH(OK)
setBigDecimal(null) getDouble=0.0 was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getDouble=0.0 was null true JDBC MATCH(OK)
setBoolean() getDouble=1.0 was null false JDBC MATCH(OK)
+ setBoolean() as batch getDouble=1.0 was null false JDBC MATCH(OK)
setString() getDouble=97.0 was null false JDBC MATCH(OK)
+ setString() as batch getDouble=97.0 was null false JDBC MATCH(OK)
setString(null) getDouble=0.0 was null true JDBC MATCH(OK)
+ setString(null) as batch getDouble=0.0 was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getDouble=0.0 was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getDouble=0.0 was null true CLOUD EXT (OK)
+ setDate(null) as batch getDouble=0.0 was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getDouble=0.0 was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getDouble=0.0 was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getDouble=0.0 was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getDouble=0.0 was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -748,24 +823,39 @@
setXXX() with all JDBC Types on DOUBLE
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getDouble=98.0 was null false JDBC MATCH(OK)
+ setByte() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setShort() getDouble=98.0 was null false JDBC MATCH(OK)
+ setShort() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setInt() getDouble=98.0 was null false JDBC MATCH(OK)
+ setInt() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setLong() getDouble=98.0 was null false JDBC MATCH(OK)
+ setLong() as batch getDouble=98.0 was null false JDBC MATCH(OK)
setFloat() getDouble=98.4 was null false JDBC MATCH(OK)
+ setFloat() as batch getDouble=98.4 was null false JDBC MATCH(OK)
setDouble() getDouble=98.5 was null false JDBC MATCH(OK)
+ setDouble() as batch getDouble=98.5 was null false JDBC MATCH(OK)
setBigDecimal() getDouble=99.0 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getDouble=99.0 was null false JDBC MATCH(OK)
setBigDecimal(null) getDouble=0.0 was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getDouble=0.0 was null true JDBC MATCH(OK)
setBoolean() getDouble=1.0 was null false JDBC MATCH(OK)
+ setBoolean() as batch getDouble=1.0 was null false JDBC MATCH(OK)
setString() getDouble=97.0 was null false JDBC MATCH(OK)
+ setString() as batch getDouble=97.0 was null false JDBC MATCH(OK)
setString(null) getDouble=0.0 was null true JDBC MATCH(OK)
+ setString(null) as batch getDouble=0.0 was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getDouble=0.0 was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getDouble=0.0 was null true CLOUD EXT (OK)
+ setDate(null) as batch getDouble=0.0 was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getDouble=0.0 was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getDouble=0.0 was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getDouble=0.0 was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getDouble=0.0 was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -879,24 +969,39 @@
setXXX() with all JDBC Types on DECIMAL(10,5)
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getBigDecimal=98.00000 was null false JDBC MATCH(OK)
+ setByte() as batch getBigDecimal=98.00000 was null false JDBC MATCH(OK)
setShort() getBigDecimal=98.00000 was null false JDBC MATCH(OK)
+ setShort() as batch getBigDecimal=98.00000 was null false JDBC MATCH(OK)
setInt() getBigDecimal=98.00000 was null false JDBC MATCH(OK)
+ setInt() as batch getBigDecimal=98.00000 was null false JDBC MATCH(OK)
setLong() getBigDecimal=98.00000 was null false JDBC MATCH(OK)
+ setLong() as batch getBigDecimal=98.00000 was null false JDBC MATCH(OK)
setFloat() getBigDecimal=98.40000 was null false JDBC MATCH(OK)
+ setFloat() as batch getBigDecimal=98.40000 was null false JDBC MATCH(OK)
setDouble() getBigDecimal=98.50000 was null false JDBC MATCH(OK)
+ setDouble() as batch getBigDecimal=98.50000 was null false JDBC MATCH(OK)
setBigDecimal() getBigDecimal=99.00000 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getBigDecimal=99.00000 was null false JDBC MATCH(OK)
setBigDecimal(null) getBigDecimal=null was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getBigDecimal=null was null true JDBC MATCH(OK)
setBoolean() getBigDecimal=1.00000 was null false JDBC MATCH(OK)
+ setBoolean() as batch getBigDecimal=1.00000 was null false JDBC MATCH(OK)
setString() getBigDecimal=97.00000 was null false JDBC MATCH(OK)
+ setString() as batch getBigDecimal=97.00000 was null false JDBC MATCH(OK)
setString(null) getBigDecimal=null was null true JDBC MATCH(OK)
+ setString(null) as batch getBigDecimal=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getBigDecimal=null was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getBigDecimal=null was null true CLOUD EXT (OK)
+ setDate(null) as batch getBigDecimal=null was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getBigDecimal=null was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getBigDecimal=null was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getBigDecimal=null was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getBigDecimal=null was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1016,24 +1121,39 @@
setXXX() with all JDBC Types on CHAR(60)
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getString=98 was null false JDBC MATCH(OK)
+ setByte() as batch getString=98 was null false JDBC MATCH(OK)
setShort() getString=98 was null false JDBC MATCH(OK)
+ setShort() as batch getString=98 was null false JDBC MATCH(OK)
setInt() getString=98 was null false JDBC MATCH(OK)
+ setInt() as batch getString=98 was null false JDBC MATCH(OK)
setLong() getString=98 was null false JDBC MATCH(OK)
+ setLong() as batch getString=98 was null false JDBC MATCH(OK)
setFloat() getString=98.4 was null false JDBC MATCH(OK)
+ setFloat() as batch getString=98.4 was null false JDBC MATCH(OK)
setDouble() getString=98.5 was null false JDBC MATCH(OK)
+ setDouble() as batch getString=98.5 was null false JDBC MATCH(OK)
setBigDecimal() getString=99 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getString=99 was null false JDBC MATCH(OK)
setBigDecimal(null) getString=null was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getString=null was null true JDBC MATCH(OK)
setBoolean() getString=1 was null false JDBC MATCH(OK)
+ setBoolean() as batch getString=1 was null false JDBC MATCH(OK)
setString() getString=97 was null false JDBC MATCH(OK)
+ setString() as batch getString=97 was null false JDBC MATCH(OK)
setString(null) getString=null was null true JDBC MATCH(OK)
+ setString(null) as batch getString=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getString=null was null true CLOUD EXT (OK)
setDate() getString=2004-02-14 was null false JDBC MATCH(OK)
+ setDate() as batch getString=2004-02-14 was null false JDBC MATCH(OK)
setDate(null) getString=null was null true JDBC MATCH(OK)
+ setDate(null) as batch getString=null was null true JDBC MATCH(OK)
setTime() getString=13:26:42 was null false JDBC MATCH(OK)
setTime(null) getString=null was null true JDBC MATCH(OK)
setTimestamp() getString=xxxxxxFILTERED-TIMESTAMPxxxxxwas null false JDBC MATCH(OK)
+ setTimestamp() as batch getString=xxxxxxFILTERED-TIMESTAMPxxxxxwas null false JDBC MATCH(OK)
setTimestamp(null) getString=null was null true JDBC MATCH(OK)
+ setTimestamp(null) as batch getString=null was null true JDBC MATCH(OK)
setAsciiStream() getString=eg012d was null false JDBC MATCH(OK)
setAsciiStream(null) getString=null was null true JDBC MATCH(OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1147,24 +1267,39 @@
setXXX() with all JDBC Types on VARCHAR(60)
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getString=98 was null false JDBC MATCH(OK)
+ setByte() as batch getString=98 was null false JDBC MATCH(OK)
setShort() getString=98 was null false JDBC MATCH(OK)
+ setShort() as batch getString=98 was null false JDBC MATCH(OK)
setInt() getString=98 was null false JDBC MATCH(OK)
+ setInt() as batch getString=98 was null false JDBC MATCH(OK)
setLong() getString=98 was null false JDBC MATCH(OK)
+ setLong() as batch getString=98 was null false JDBC MATCH(OK)
setFloat() getString=98.4 was null false JDBC MATCH(OK)
+ setFloat() as batch getString=98.4 was null false JDBC MATCH(OK)
setDouble() getString=98.5 was null false JDBC MATCH(OK)
+ setDouble() as batch getString=98.5 was null false JDBC MATCH(OK)
setBigDecimal() getString=99 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getString=99 was null false JDBC MATCH(OK)
setBigDecimal(null) getString=null was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getString=null was null true JDBC MATCH(OK)
setBoolean() getString=1 was null false JDBC MATCH(OK)
+ setBoolean() as batch getString=1 was null false JDBC MATCH(OK)
setString() getString=97 was null false JDBC MATCH(OK)
+ setString() as batch getString=97 was null false JDBC MATCH(OK)
setString(null) getString=null was null true JDBC MATCH(OK)
+ setString(null) as batch getString=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getString=null was null true CLOUD EXT (OK)
setDate() getString=2004-02-14 was null false JDBC MATCH(OK)
+ setDate() as batch getString=2004-02-14 was null false JDBC MATCH(OK)
setDate(null) getString=null was null true JDBC MATCH(OK)
+ setDate(null) as batch getString=null was null true JDBC MATCH(OK)
setTime() getString=13:26:42 was null false JDBC MATCH(OK)
setTime(null) getString=null was null true JDBC MATCH(OK)
setTimestamp() getString=xxxxxxFILTERED-TIMESTAMPxxxxxwas null false JDBC MATCH(OK)
+ setTimestamp() as batch getString=xxxxxxFILTERED-TIMESTAMPxxxxxwas null false JDBC MATCH(OK)
setTimestamp(null) getString=null was null true JDBC MATCH(OK)
+ setTimestamp(null) as batch getString=null was null true JDBC MATCH(OK)
setAsciiStream() getString=eg012d was null false JDBC MATCH(OK)
setAsciiStream(null) getString=null was null true JDBC MATCH(OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1278,24 +1413,39 @@
setXXX() with all JDBC Types on LONG VARCHAR
For setXXX() methods that pass an object, a null and valid values are checked
setByte() getString=98 was null false JDBC MATCH(OK)
+ setByte() as batch getString=98 was null false JDBC MATCH(OK)
setShort() getString=98 was null false JDBC MATCH(OK)
+ setShort() as batch getString=98 was null false JDBC MATCH(OK)
setInt() getString=98 was null false JDBC MATCH(OK)
+ setInt() as batch getString=98 was null false JDBC MATCH(OK)
setLong() getString=98 was null false JDBC MATCH(OK)
+ setLong() as batch getString=98 was null false JDBC MATCH(OK)
setFloat() getString=98.4 was null false JDBC MATCH(OK)
+ setFloat() as batch getString=98.4 was null false JDBC MATCH(OK)
setDouble() getString=98.5 was null false JDBC MATCH(OK)
+ setDouble() as batch getString=98.5 was null false JDBC MATCH(OK)
setBigDecimal() getString=99 was null false JDBC MATCH(OK)
+ setBigDecimal() as batch getString=99 was null false JDBC MATCH(OK)
setBigDecimal(null) getString=null was null true JDBC MATCH(OK)
+ setBigDecimal(null) as batch getString=null was null true JDBC MATCH(OK)
setBoolean() getString=1 was null false JDBC MATCH(OK)
+ setBoolean() as batch getString=1 was null false JDBC MATCH(OK)
setString() getString=97 was null false JDBC MATCH(OK)
+ setString() as batch getString=97 was null false JDBC MATCH(OK)
setString(null) getString=null was null true JDBC MATCH(OK)
+ setString(null) as batch getString=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getString=null was null true CLOUD EXT (OK)
setDate() getString=2004-02-14 was null false JDBC MATCH(OK)
+ setDate() as batch getString=2004-02-14 was null false JDBC MATCH(OK)
setDate(null) getString=null was null true JDBC MATCH(OK)
+ setDate(null) as batch getString=null was null true JDBC MATCH(OK)
setTime() getString=13:26:42 was null false JDBC MATCH(OK)
setTime(null) getString=null was null true JDBC MATCH(OK)
setTimestamp() getString=xxxxxxFILTERED-TIMESTAMPxxxxxwas null false JDBC MATCH(OK)
+ setTimestamp() as batch getString=xxxxxxFILTERED-TIMESTAMPxxxxxwas null false JDBC MATCH(OK)
setTimestamp(null) getString=null was null true JDBC MATCH(OK)
+ setTimestamp(null) as batch getString=null was null true JDBC MATCH(OK)
setAsciiStream() getString=eg012d was null false JDBC MATCH(OK)
setAsciiStream(null) getString=null was null true JDBC MATCH(OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1411,24 +1561,39 @@
setXXX() with all JDBC Types on VARCHAR(60) FOR BIT DATA
For setXXX() methods that pass an object, a null and valid values are checked
setByte() IC JDBC MATCH (INVALID)
+ setByte() as batch IC JDBC MATCH (INVALID)
setShort() IC JDBC MATCH (INVALID)
+ setShort() as batch IC JDBC MATCH (INVALID)
setInt() IC JDBC MATCH (INVALID)
+ setInt() as batch IC JDBC MATCH (INVALID)
setLong() IC JDBC MATCH (INVALID)
+ setLong() as batch IC JDBC MATCH (INVALID)
setFloat() IC JDBC MATCH (INVALID)
+ setFloat() as batch IC JDBC MATCH (INVALID)
setDouble() IC JDBC MATCH (INVALID)
+ setDouble() as batch IC JDBC MATCH (INVALID)
setBigDecimal() IC JDBC MATCH (INVALID)
+ setBigDecimal() as batch IC JDBC MATCH (INVALID)
setBigDecimal(null) getBytes=null was null true CLOUD EXT (OK)
+ setBigDecimal(null) as batch getBytes=null was null true CLOUD EXT (OK)
setBoolean() IC JDBC MATCH (INVALID)
+ setBoolean() as batch IC JDBC MATCH (INVALID)
setString() IC JDBC MATCH (INVALID)
+ setString() as batch IC JDBC MATCH (INVALID)
setString(null) getBytes=null was null true CLOUD EXT (OK)
+ setString(null) as batch getBytes=null was null true CLOUD EXT (OK)
setBytes() getBytes=0x4,0x3 was null false JDBC MATCH(OK)
setBytes(null) getBytes=null was null true JDBC MATCH(OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getBytes=null was null true CLOUD EXT (OK)
+ setDate(null) as batch getBytes=null was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getBytes=null was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getBytes=null was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getBytes=null was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getBytes=null was null true CLOUD EXT (OK)
setBinaryStream() getBytes=0x82,0x43 was null false JDBC MATCH(OK)
@@ -1544,25 +1709,41 @@
setXXX() with all JDBC Types on DATE
For setXXX() methods that pass an object, a null and valid values are checked
setByte() IC JDBC MATCH (INVALID)
+ setByte() as batch IC JDBC MATCH (INVALID)
setShort() IC JDBC MATCH (INVALID)
+ setShort() as batch IC JDBC MATCH (INVALID)
setInt() IC JDBC MATCH (INVALID)
+ setInt() as batch IC JDBC MATCH (INVALID)
setLong() IC JDBC MATCH (INVALID)
+ setLong() as batch IC JDBC MATCH (INVALID)
setFloat() IC JDBC MATCH (INVALID)
+ setFloat() as batch IC JDBC MATCH (INVALID)
setDouble() IC JDBC MATCH (INVALID)
+ setDouble() as batch IC JDBC MATCH (INVALID)
setBigDecimal() IC JDBC MATCH (INVALID)
+ setBigDecimal() as batch IC JDBC MATCH (INVALID)
setBigDecimal(null) getDate=null was null true CLOUD EXT (OK)
+ setBigDecimal(null) as batch getDate=null was null true CLOUD EXT (OK)
setBoolean() IC JDBC MATCH (INVALID)
+ setBoolean() as batch IC JDBC MATCH (INVALID)
setString() String index out of range: 2
JDBC FAIL DATE
+ setString() as batch String index out of range: 2
+ JDBC FAIL DATE
setString(null) getDate=null was null true JDBC MATCH(OK)
+ setString(null) as batch getDate=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getDate=null was null true CLOUD EXT (OK)
setDate() getDate=2004-02-14 was null false JDBC MATCH(OK)
+ setDate() as batch getDate=2004-02-14 was null false JDBC MATCH(OK)
setDate(null) getDate=null was null true JDBC MATCH(OK)
+ setDate(null) as batch getDate=null was null true JDBC MATCH(OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getDate=null was null true CLOUD EXT (OK)
setTimestamp() getDate=2004-02-23 was null false JDBC MATCH(OK)
+ setTimestamp() as batch getDate=2004-02-23 was null false JDBC MATCH(OK)
setTimestamp(null) getDate=null was null true JDBC MATCH(OK)
+ setTimestamp(null) as batch getDate=null was null true JDBC MATCH(OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getDate=null was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1676,25 +1857,41 @@
setXXX() with all JDBC Types on TIME
For setXXX() methods that pass an object, a null and valid values are checked
setByte() IC JDBC MATCH (INVALID)
+ setByte() as batch IC JDBC MATCH (INVALID)
setShort() IC JDBC MATCH (INVALID)
+ setShort() as batch IC JDBC MATCH (INVALID)
setInt() IC JDBC MATCH (INVALID)
+ setInt() as batch IC JDBC MATCH (INVALID)
setLong() IC JDBC MATCH (INVALID)
+ setLong() as batch IC JDBC MATCH (INVALID)
setFloat() IC JDBC MATCH (INVALID)
+ setFloat() as batch IC JDBC MATCH (INVALID)
setDouble() IC JDBC MATCH (INVALID)
+ setDouble() as batch IC JDBC MATCH (INVALID)
setBigDecimal() IC JDBC MATCH (INVALID)
+ setBigDecimal() as batch IC JDBC MATCH (INVALID)
setBigDecimal(null) getTime=null was null true CLOUD EXT (OK)
+ setBigDecimal(null) as batch getTime=null was null true CLOUD EXT (OK)
setBoolean() IC JDBC MATCH (INVALID)
+ setBoolean() as batch IC JDBC MATCH (INVALID)
setString() String index out of range: 2
JDBC FAIL TIME
+ setString() as batch String index out of range: 2
+ JDBC FAIL TIME
setString(null) getTime=null was null true JDBC MATCH(OK)
+ setString(null) as batch getTime=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getTime=null was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getTime=null was null true CLOUD EXT (OK)
+ setDate(null) as batch getTime=null was null true CLOUD EXT (OK)
setTime() getTime=13:26:42 was null false JDBC MATCH(OK)
setTime(null) getTime=null was null true JDBC MATCH(OK)
setTimestamp() getTime=17:14:24 was null false JDBC MATCH(OK)
+ setTimestamp() as batch getTime=17:14:24 was null false JDBC MATCH(OK)
setTimestamp(null) getTime=null was null true JDBC MATCH(OK)
+ setTimestamp(null) as batch getTime=null was null true JDBC MATCH(OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getTime=null was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1808,25 +2005,41 @@
setXXX() with all JDBC Types on TIMESTAMP
For setXXX() methods that pass an object, a null and valid values are checked
setByte() IC JDBC MATCH (INVALID)
+ setByte() as batch IC JDBC MATCH (INVALID)
setShort() IC JDBC MATCH (INVALID)
+ setShort() as batch IC JDBC MATCH (INVALID)
setInt() IC JDBC MATCH (INVALID)
+ setInt() as batch IC JDBC MATCH (INVALID)
setLong() IC JDBC MATCH (INVALID)
+ setLong() as batch IC JDBC MATCH (INVALID)
setFloat() IC JDBC MATCH (INVALID)
+ setFloat() as batch IC JDBC MATCH (INVALID)
setDouble() IC JDBC MATCH (INVALID)
+ setDouble() as batch IC JDBC MATCH (INVALID)
setBigDecimal() IC JDBC MATCH (INVALID)
+ setBigDecimal() as batch IC JDBC MATCH (INVALID)
setBigDecimal(null) getTimestamp=null was null true CLOUD EXT (OK)
+ setBigDecimal(null) as batch getTimestamp=null was null true CLOUD EXT (OK)
setBoolean() IC JDBC MATCH (INVALID)
+ setBoolean() as batch IC JDBC MATCH (INVALID)
setString() String index out of range: 2
JDBC FAIL TIMESTAMP
+ setString() as batch String index out of range: 2
+ JDBC FAIL TIMESTAMP
setString(null) getTimestamp=null was null true JDBC MATCH(OK)
+ setString(null) as batch getTimestamp=null was null true JDBC MATCH(OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getTimestamp=null was null true CLOUD EXT (OK)
setDate() getTimestamp=00:00:00 was null false JDBC MATCH(OK)
+ setDate() as batch getTimestamp=00:00:00 was null false JDBC MATCH(OK)
setDate(null) getTimestamp=null was null true JDBC MATCH(OK)
+ setDate(null) as batch getTimestamp=null was null true JDBC MATCH(OK)
setTime() (?????):Illegal Conversion JDBC FAIL TIMESTAMP
setTime(null) getTimestamp=null was null true JDBC MATCH(OK)
setTimestamp() getTimestamp=17:14:24 was null false JDBC MATCH(OK)
+ setTimestamp() as batch getTimestamp=17:14:24 was null false JDBC MATCH(OK)
setTimestamp(null) getTimestamp=null was null true JDBC MATCH(OK)
+ setTimestamp(null) as batch getTimestamp=null was null true JDBC MATCH(OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getTimestamp=null was null true CLOUD EXT (OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -1940,24 +2153,39 @@
setXXX() with all JDBC Types on CLOB(1k)
For setXXX() methods that pass an object, a null and valid values are checked
setByte() IC JDBC MATCH (INVALID)
+ setByte() as batch IC JDBC MATCH (INVALID)
setShort() IC JDBC MATCH (INVALID)
+ setShort() as batch IC JDBC MATCH (INVALID)
setInt() IC JDBC MATCH (INVALID)
+ setInt() as batch IC JDBC MATCH (INVALID)
setLong() IC JDBC MATCH (INVALID)
+ setLong() as batch IC JDBC MATCH (INVALID)
setFloat() IC JDBC MATCH (INVALID)
+ setFloat() as batch IC JDBC MATCH (INVALID)
setDouble() IC JDBC MATCH (INVALID)
+ setDouble() as batch IC JDBC MATCH (INVALID)
setBigDecimal() IC JDBC MATCH (INVALID)
+ setBigDecimal() as batch IC JDBC MATCH (INVALID)
setBigDecimal(null) getClob=null was null true CLOUD EXT (OK)
+ setBigDecimal(null) as batch getClob=null was null true CLOUD EXT (OK)
setBoolean() IC JDBC MATCH (INVALID)
+ setBoolean() as batch IC JDBC MATCH (INVALID)
setString() getClob=0x39,0x37 was null false CLOUD EXT (OK)
+ setString() as batch getClob=0x39,0x37 was null false CLOUD EXT (OK)
setString(null) getClob=null was null true CLOUD EXT (OK)
+ setString(null) as batch getClob=null was null true CLOUD EXT (OK)
setBytes() IC JDBC MATCH (INVALID)
setBytes(null) getClob=null was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getClob=null was null true CLOUD EXT (OK)
+ setDate(null) as batch getClob=null was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getClob=null was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getClob=null was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getClob=null was null true CLOUD EXT (OK)
setAsciiStream() getClob=0x65,0x67 was null false JDBC MATCH(OK)
setAsciiStream(null) getClob=null was null true JDBC MATCH(OK)
setBinaryStream() IC JDBC MATCH (INVALID)
@@ -2071,24 +2299,39 @@
setXXX() with all JDBC Types on BLOB(1k)
For setXXX() methods that pass an object, a null and valid values are checked
setByte() IC JDBC MATCH (INVALID)
+ setByte() as batch IC JDBC MATCH (INVALID)
setShort() IC JDBC MATCH (INVALID)
+ setShort() as batch IC JDBC MATCH (INVALID)
setInt() IC JDBC MATCH (INVALID)
+ setInt() as batch IC JDBC MATCH (INVALID)
setLong() IC JDBC MATCH (INVALID)
+ setLong() as batch IC JDBC MATCH (INVALID)
setFloat() IC JDBC MATCH (INVALID)
+ setFloat() as batch IC JDBC MATCH (INVALID)
setDouble() IC JDBC MATCH (INVALID)
+ setDouble() as batch IC JDBC MATCH (INVALID)
setBigDecimal() IC JDBC MATCH (INVALID)
+ setBigDecimal() as batch IC JDBC MATCH (INVALID)
setBigDecimal(null) getBlob=null was null true CLOUD EXT (OK)
+ setBigDecimal(null) as batch getBlob=null was null true CLOUD EXT (OK)
setBoolean() IC JDBC MATCH (INVALID)
+ setBoolean() as batch IC JDBC MATCH (INVALID)
setString() IC JDBC MATCH (INVALID)
+ setString() as batch IC JDBC MATCH (INVALID)
setString(null) getBlob=null was null true CLOUD EXT (OK)
+ setString(null) as batch getBlob=null was null true CLOUD EXT (OK)
setBytes() getBlob=0x4,0x3 was null false CLOUD EXT (OK)
setBytes(null) getBlob=null was null true CLOUD EXT (OK)
setDate() IC JDBC MATCH (INVALID)
+ setDate() as batch IC JDBC MATCH (INVALID)
setDate(null) getBlob=null was null true CLOUD EXT (OK)
+ setDate(null) as batch getBlob=null was null true CLOUD EXT (OK)
setTime() IC JDBC MATCH (INVALID)
setTime(null) getBlob=null was null true CLOUD EXT (OK)
setTimestamp() IC JDBC MATCH (INVALID)
+ setTimestamp() as batch IC JDBC MATCH (INVALID)
setTimestamp(null) getBlob=null was null true CLOUD EXT (OK)
+ setTimestamp(null) as batch getBlob=null was null true CLOUD EXT (OK)
setAsciiStream() IC JDBC MATCH (INVALID)
setAsciiStream(null) getBlob=null was null true CLOUD EXT (OK)
setBinaryStream() getBlob=0x82,0x43 was null false JDBC MATCH(OK)
Modified: incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/procedure.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/procedure.out?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/procedure.out (original)
+++ incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/procedure.out Mon Jun 13 14:41:33 2005
@@ -51,6 +51,27 @@
EXPECTED SQL Exception: (42Y03) 'APP.NSP' is not recognized as a function or procedure.
call syscs_util.syscs_set_database_property("foo", "bar")
EXPECTED SQL Exception: (42X15) Column name 'foo' appears in a statement without a FROM list.
+signature mismatched types
+CALL APP.SIGNATURE_BUG_DERBY_258_A(4)
+EXPECTED SQL Exception: (22005) An attempt was made to get a data value of type 'java.lang.String' from a data value of type 'INTEGER'.
+signature too many parameters
+VALUES APP.SIGNATURE_BUG_DERBY_258_B(4)
+EXPECTED SQL Exception: (46J02) Java method signature contains incorrect number (2) of parameters, expected 1.
+signature too few parameters
+CALL APP.SIGNATURE_BUG_DERBY_258_C(4)
+EXPECTED SQL Exception: (46J02) Java method signature contains incorrect number (0) of parameters, expected 1.
+signature invalid format
+CALL APP.SIGNATURE_BUG_DERBY_258_F(4)
+EXPECTED SQL Exception: (46J01) Java method signature has invalid format.
+signature invalid format
+CALL APP.SIGNATURE_BUG_DERBY_258_G(4)
+EXPECTED SQL Exception: (46J01) Java method signature has invalid format.
+signature invalid format
+CALL APP.SIGNATURE_BUG_DERBY_258_H(4)
+EXPECTED SQL Exception: (46J01) Java method signature has invalid format.
+signature invalid format
+CALL APP.SIGNATURE_BUG_DERBY_258_I(4)
+EXPECTED SQL Exception: (46J01) Java method signature has invalid format.
testDelayedClassChecking
call noclass()
EXPECTED SQL Exception: (42X51) The class 'asdf' does not exist or is inaccessible. This can happen if the class is not public. SQLSTATE: XJ001: Java exception: 'asdf: java.lang.ClassNotFoundException'.
Modified: incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/synonym.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/synonym.out?rev=190514&r1=190513&r2=190514&view=diff
==============================================================================
--- incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/synonym.out (original)
+++ incubator/derby/code/branches/10.1/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/synonym.out Mon Jun 13 14:41:33 2005
@@ -216,6 +216,54 @@
0 rows inserted/updated/deleted
ij> drop synonym synPrimary;
0 rows inserted/updated/deleted
+ij> -- Tests with non existant schemas
+----- Implicitly creates junkSchema
+create synonym junkSchema.syn1 for table2;
+0 rows inserted/updated/deleted
+WARNING 01522: The newly defined synonym 'SYN1' resolved to the object 'JUNKSCHEMA.TABLE2' which is currently undefined. :
+ij> select * from junkSchema.syn1;
+ERROR 42X05: Table 'JUNKSCHEMA.TABLE2' does not exist.
+ij> set schema junkSchema;
+0 rows inserted/updated/deleted
+ij> create table table2(c char(10));
+0 rows inserted/updated/deleted
+ij> select * from syn1;
+C
+-----
+ij> set schema APP;
+0 rows inserted/updated/deleted
+ij> -- Should resolve to junkSchema.table2
+select * from junkSchema.syn1;
+C
+-----
+ij> drop table junkSchema.table2;
+0 rows inserted/updated/deleted
+ij> -- Should fail. Need to drop synonym first
+drop schema junkSchema restrict;
+ERROR X0Y54: Schema 'JUNKSCHEMA' cannot be dropped because it is not empty.
+ij> drop synonym junkSchema.syn1;
+0 rows inserted/updated/deleted
+ij> drop schema junkSchema restrict;
+0 rows inserted/updated/deleted
+ij> -- Test with target schema missing
+create synonym mySynonym for notPresent.t1;
+0 rows inserted/updated/deleted
+WARNING 01522: The newly defined synonym 'MYSYNONYM' resolved to the object 'NOTPRESENT.T1' which is currently undefined. :
+ij> select * from mySynonym;
+ERROR 42Y07: Schema 'NOTPRESENT' does not exist
+ij> create table notPresent.t1(j int, c char(10));
+0 rows inserted/updated/deleted
+ij> insert into notPresent.t1 values (100, 'satheesh');
+1 row inserted/updated/deleted
+ij> -- Should resolve now
+select * from mySynonym;
+J |C
+-----
+100 |satheesh
+ij> drop table notPresent.t1;
+0 rows inserted/updated/deleted
+ij> drop synonym mySynonym;
+0 rows inserted/updated/deleted
ij> -- Positive test case with three levels of synonym chaining
create schema synonymSchema;
0 rows inserted/updated/deleted