[
https://issues.apache.org/jira/browse/DERBY-595?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kristian Waagan updated DERBY-595:
----------------------------------
Affects Version/s: 10.3.0.0
10.2.1.6
Hello Mayuresh,
I had a look at this. It seems DERBY-1693 fixed this problem for [BC]lob, but
not for other data types. The fix was too specific/narrow (sorry 'bout that...).
One way to fix this, would be to implement a mechanism similar to what is found
in SQLClob.getTraceString for all data types that can be set from a stream (or
where draining the stream would cause problems). I do not know if there is a
single point of interception for this, or if we must implement the method in
each appropriate data type. It might also depend on whether we want to include
the name of the data type in the trace string.
I would suggest having a look at the type hierarchy in 'iapi.types' and see if
a clear solution stands out.
The current intent of getTraceString for streamable types, is to not drain the
stream if the data is represented as a stream. Obtaining length information in
this case is not feasible. One must also consider if the data itself should be
printed to the log, or only the length. For Clob, "CLOB(32453)" is printed if
the data is materialized, "CLOB([EMAIL PROTECTED])" otherwise.
When I applied a temporary fix to SQLLongVarbit, 'resultsetStream' passed with
statement logging enabled.
> Using derby.language.logStatementText=true can mask certain exceptions and
> lead to incorrect behavior in some cases
> -------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-595
> URL: https://issues.apache.org/jira/browse/DERBY-595
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.2.1.6, 10.3.0.0
> Environment: all
> Reporter: Sunitha Kambhampati
> Assigned To: Mayuresh Nirhali
>
> Using derby.language.logStatementText=true can mask certain exceptions and
> lead to incorrect behavior.
> I observed this with tests using streams, where if valid (expected)
> exceptions are raised when DVD.getString() is called, the exception gets
> eaten up when this property is set.
> See
> 1)in GenericParameter.toString()
> try
> {
> return value.getString();
> }
> catch (StandardException se)
> {
> return "unexpected exception from getString() - " + se;
> }
> }
> 2)in GenericPreparedStatement.execute(), where pvs.toString() is called for
> the parameters.
> ________
> Reproduction: Run the test jdbcapi/resultsetStream.java , with
> derby.language.logStatementText=true and expected error exceptions wont be
> thrown for the error cases.
> I looked at the tests that use streams , only the store/streamingColumn.java
> uses derby.language.logStatementText=true. I'll file another bug to resolve
> this test.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.