[ 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)