[
https://issues.apache.org/jira/browse/TRAFODION-2832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sandhya Sundaresan closed TRAFODION-2832.
-----------------------------------------
> LOB: Insert hangs with a mutli-row insertion that requires internal
> stringtolob() conversion
> --------------------------------------------------------------------------------------------
>
> Key: TRAFODION-2832
> URL: https://issues.apache.org/jira/browse/TRAFODION-2832
> Project: Apache Trafodion
> Issue Type: Bug
> Reporter: Sandhya Sundaresan
> Assignee: Sandhya Sundaresan
> Priority: Major
>
> The LOB feature allows the user to specify a char string as the insert value.
> EsgynDB will automatically convert it into a LOB datatype, just as if the
> user has specified stringtolob() explicitly. The following execution output
> shows that both insert..values('1') and insert..values(stringtolob('2')) work
> fine.
> The design has prohibited the user from using stringtolob() to insert
> multiple rows at the same time. It's a 4483 error as shown by insert..values
> (stringtolob('3')),(stringtolob('4')). However, if the user doesn't specify
> stringtolob(), the multi-row insertion insert..values('5'),('6') doesn't
> return such an error. It simply hangs, presumably because it tries to invoke
> stringtolob() underneath and has run into the situation that the 4483 error
> is designed to prevent. It probably needs to return the same error to avoid
> such a hang problem.
> >>cqd TRAF_BLOB_AS_VARCHAR 'OFF';
> --- SQL operation complete.
> >>cqd TRAF_CLOB_AS_VARCHAR 'OFF';
> --- SQL operation complete.
> >>
> >>drop table if exists t cascade;
> --- SQL operation complete.
> >>
> >>create table t (a clob);
> --- SQL operation complete.
> >>insert into t values ('1');
> --- 1 row(s) inserted.
> >>insert into t values (stringtolob('2'));
> --- 1 row(s) inserted.
> >>select cast(lobtostring(a) as char(5)) from t;
> (EXPR)
> ------
> 1
> 2
> --- 2 row(s) selected.
> >>insert into t values (stringtolob('3')),(stringtolob('4'));
> *** ERROR[4483] This LOB conversion function is not allowed in the VALUES
> clause with multiple input value rows. Use it with a single value row.
> *** ERROR[8822] The statement was not prepared.
> >>insert into t values ('5'),('6');
> ----------------------------------------------------------------
> To reproduce :
> cqd TRAF_BLOB_AS_VARCHAR 'OFF';
> cqd TRAF_CLOB_AS_VARCHAR 'OFF';
> drop table if exists t cascade;
> create table t (a clob);
> insert into t values ('1');
> insert into t values (stringtolob('2'));
> select cast(lobtostring(a) as char(5)) from t;
> insert into t values (stringtolob('3')),(stringtolob('4'));
> insert into t values ('5'),('6');
> drop table t cascade;
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)