Repository: incubator-trafodion Updated Branches: refs/heads/master 9f9d27664 -> 625cd8a32
Fix for hang when preparing insert statements using values tuple list inot lob columns. The fix is to detect the values list at compile time and if the target type is LOB, return an error. Additional fix is to exclude LOb descriptor files from being classified as "special" type. This ensures they will be included in query cache. Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/545318f3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/545318f3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/545318f3 Branch: refs/heads/master Commit: 545318f32e636856f024d7c770ed6ca32bac8fc9 Parents: e4ef5e3 Author: Sandhya Sundaresan <[email protected]> Authored: Thu Dec 7 21:17:57 2017 +0000 Committer: Sandhya Sundaresan <[email protected]> Committed: Thu Dec 7 21:17:57 2017 +0000 ---------------------------------------------------------------------- core/sql/optimizer/BindRelExpr.cpp | 108 ++++++++++++++++------------- core/sql/optimizer/ObjectNames.cpp | 9 +++ core/sql/optimizer/ObjectNames.h | 9 ++- core/sql/regress/executor/EXPECTED130 | 90 ++++++++++++++---------- core/sql/regress/executor/TEST130 | 4 ++ 5 files changed, 132 insertions(+), 88 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/545318f3/core/sql/optimizer/BindRelExpr.cpp ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/BindRelExpr.cpp b/core/sql/optimizer/BindRelExpr.cpp index bb40e55..64c1a16 100644 --- a/core/sql/optimizer/BindRelExpr.cpp +++ b/core/sql/optimizer/BindRelExpr.cpp @@ -9723,54 +9723,7 @@ RelExpr *Insert::bindNode(BindWA *bindWA) setInsertSelectQuery(TRUE); } - // if table has a lob column, then fix up any reference to LOBinsert - // function in the source values list. - // - if ((getOperatorType() == REL_UNARY_INSERT) && - (getTableDesc()->getNATable()->hasLobColumn()) && - (child(0)->getOperatorType() == REL_TUPLE || // VALUES (1,'b') - child(0)->getOperatorType() == REL_TUPLE_LIST)) // VALUES (1,'b'),(2,'Y') - { - if (child(0)->getOperatorType() == REL_TUPLE_LIST) - { - TupleList * tl = (TupleList*)(child(0)->castToRelExpr()); - for (CollIndex x = 0; x < (UInt32)tl->numTuples(); x++) - { - ValueIdList tup; - if (!tl->getTuple(bindWA, tup, x)) - { - bindWA->setErrStatus(); - - return boundExpr; // something went wrong - } - - for (CollIndex n = 0; n < tup.entries(); n++) - { - ItemExpr * ie = tup[n].getItemExpr(); - if (ie->getOperatorType() == ITM_LOBINSERT) - { - // cannot have this function in a values list with multiple - // tuples. Use a single tuple. - *CmpCommon::diags() << DgSqlCode(-4483); - bindWA->setErrStatus(); - - return boundExpr; - - LOBinsert * li = (LOBinsert*)ie; - li->insertedTableObjectUID() = - getTableDesc()->getNATable()->objectUid().castToInt64(); - li->lobNum() = n; - - li->insertedTableSchemaName() = - getTableDesc()->getNATable()-> - getTableName().getSchemaName(); - } - } // for - } // for - } // if tuplelist - } // if - // Prepare for any IDENTITY column checking later on NAString identityColumnName; @@ -10196,6 +10149,8 @@ RelExpr *Insert::bindNode(BindWA *bindWA) if(bindWA->errStatus()) return NULL; + + if (stoiInList && !getUpdateCKorUniqueIndexKey()) { if(!getBoundView()) @@ -10550,6 +10505,65 @@ RelExpr *Insert::bindNode(BindWA *bindWA) } } + if ((getOperatorType() == REL_UNARY_INSERT) && + (getTableDesc()->getNATable()->hasLobColumn()) && + child(0)->getOperatorType() == REL_TUPLE_LIST) // VALUES (1,'b'),(2,'Y') + { + if (child(0)->getOperatorType() == REL_TUPLE_LIST) + { + TupleList * tl = (TupleList*)(child(0)->castToRelExpr()); + for (CollIndex x = 0; x < (UInt32)tl->numTuples(); x++) + { + ValueIdList tup; + if (!tl->getTuple(bindWA, tup, x)) + { + bindWA->setErrStatus(); + + return boundExpr; // something went wrong + } + + for (CollIndex n = 0; n < tup.entries(); n++) + { + ItemExpr * ie = tup[n].getItemExpr(); + + if (ie->getOperatorType() == ITM_LOBINSERT) + { + // cannot have this function in a values list with + // multiple tuples. Use a single tuple. + *CmpCommon::diags() << DgSqlCode(-4483); + bindWA->setErrStatus(); + return boundExpr; + + } + + else + { + Assign * assign = (Assign*)newRecExprArray()[n].getItemExpr(); + ItemExpr *assign_child = NULL; + if (assign) + { + assign_child = assign->child(1); + } + if ( assign_child && assign_child->getOperatorType() == ITM_CAST ) + { + const NAType& type = assign_child->getValueId().getType(); + if ( type.getTypeQualifier() == NA_LOB_TYPE ) + { + // cannot have this function in a values list with multiple + // tuples. Use a single tuple. + *CmpCommon::diags() << DgSqlCode(-4483); + bindWA->setErrStatus(); + return boundExpr; + } + } + } + } + } + } + } + + + // It is a system generated identity value if // identityColumn() != NULL_VALUE_ID. The identityColumn() // is set two places (1) earlier in this method. http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/545318f3/core/sql/optimizer/ObjectNames.cpp ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/ObjectNames.cpp b/core/sql/optimizer/ObjectNames.cpp index f7bf1c9..ab51e66 100644 --- a/core/sql/optimizer/ObjectNames.cpp +++ b/core/sql/optimizer/ObjectNames.cpp @@ -708,6 +708,15 @@ NABoolean QualifiedName::isHbaseCellOrRow() const return FALSE; } +NABoolean QualifiedName::isLOBDesc() const +{ + NAString ansiNameString = getQualifiedNameAsString() ; + if (ansiNameString.contains(LOB_DESC_HANDLE_PREFIX)) + return TRUE; + else + return FALSE; + +} // ----------------------------------------------------------------------- // Methods for class CorrName // ----------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/545318f3/core/sql/optimizer/ObjectNames.h ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/ObjectNames.h b/core/sql/optimizer/ObjectNames.h index c900a2a..5ed7450 100644 --- a/core/sql/optimizer/ObjectNames.h +++ b/core/sql/optimizer/ObjectNames.h @@ -332,7 +332,7 @@ public: NABoolean isHistograms() const; NABoolean isHistogramIntervals() const; - + NABoolean isLOBDesc() const; void setObjectName(const NAString &objName) { objectName_ = objName; } void setObjectNameSpace(ComAnsiNameSpace objNameSpace) { objectNameSpace_ = objNameSpace; } @@ -566,12 +566,14 @@ public: //can this type of object be put in the NATable cache NABoolean isCacheable() const - { return (type_ == NORMAL_TABLE) + { + return (type_ == NORMAL_TABLE) || (type_ == TRIGTEMP_TABLE) || (type_ == EXCEPTION_TABLE) //|| (type_ == IUD_LOG_TABLE) //|| (type_ == RANGE_LOG_TABLE) - || (type_ == INDEX_TABLE) + || (type_ == INDEX_TABLE) + || ((type_ == GHOST_TABLE)&& qualName_.isLOBDesc()) ; } NABoolean hasPartnClause() const {return NOT partnClause_.isEmpty();} @@ -869,6 +871,7 @@ public: NABoolean isHbaseCell() const; NABoolean isHbaseRow() const; NABoolean isHbaseMap() const; + NABoolean isExternal() const { return (flagbits_ & IS_EXTERNAL) != 0; } void setIsExternal(NABoolean v) http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/545318f3/core/sql/regress/executor/EXPECTED130 ---------------------------------------------------------------------- diff --git a/core/sql/regress/executor/EXPECTED130 b/core/sql/regress/executor/EXPECTED130 index 6b52203..4ef2b51 100644 --- a/core/sql/regress/executor/EXPECTED130 +++ b/core/sql/regress/executor/EXPECTED130 @@ -63,9 +63,9 @@ C1 C1 C2 ----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------------- - 1 LOBH0000000200010789269709250085236319789269709263410318218212370878104855192020"TRAFODION"."LOB130" - 2 LOBH0000000200010789269709250085236319789269709264004324418212370878112140465020"TRAFODION"."LOB130" - 3 LOBH0000000200010789269709250085236319789269709264603729518212370878118079347020"TRAFODION"."LOB130" + 1 LOBH0000000200010684167783903023229919684167783929468270818212379187803875502020"TRAFODION"."LOB130" + 2 LOBH0000000200010684167783903023229919684167783930244221218212379187811728769020"TRAFODION"."LOB130" + 3 LOBH0000000200010684167783903023229919684167783931095112818212379187819814558020"TRAFODION"."LOB130" --- 3 row(s) selected. >> @@ -120,6 +120,20 @@ fgfgfhfhfhfhhfhfhfhjfkkfkffllflflfll --- 1 row(s) selected. >> +>>--negative test for values tuple list +>>prepare s from insert into t130lob2 values (1,'gg'),(2,'hh'); + +*** 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. + +>>prepare s from insert into t130lob2 values (1,stringtolob('hh')),(2,stringtolob('gg')); + +*** 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. + +>> >>--test update with param >>prepare s from update t130lob2 set c2=? where c1 =1; @@ -654,7 +668,7 @@ And the dish ran away with the fork ! >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , >>'tlob130_txt1.txt');/g" >> t130_extract_command; >> >>obey t130_extract_command; ->>extract lobtofile(LOB 'LOBH0000000200010789269709250093030419789269709339542449418212370878867608341020"TRAFODION"."LOB130" ' , 'tlob130_txt1.txt'); +>>extract lobtofile(LOB 'LOBH0000000200010684167783903032825819684167784024315676018212379188752592782020"TRAFODION"."LOB130" ' , 'tlob130_txt1.txt'); Success. Targetfile :tlob130_txt1.txt Length : 19 --- SQL operation complete. @@ -670,7 +684,7 @@ Success. Targetfile :tlob130_txt1.txt Length : 19 >>sh rm t130_extract_command; >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , >>'tlob130_deep.jpg');/g" >> t130_extract_command; >>obey t130_extract_command; ->>extract lobtofile(LOB 'LOBH0000000200010789269709250093195519789269709346199639118212370878934176767020"TRAFODION"."LOB130" ' , 'tlob130_deep.jpg'); +>>extract lobtofile(LOB 'LOBH0000000200010684167783903033003019684167784032532137618212379188834776548020"TRAFODION"."LOB130" ' , 'tlob130_deep.jpg'); Success. Targetfile :tlob130_deep.jpg Length : 159018 --- SQL operation complete. @@ -686,7 +700,7 @@ Success. Targetfile :tlob130_deep.jpg Length : 159018 >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , >>'tlob130_anoush.jpg');/g" >> t130_extract_command; >> >>obey t130_extract_command; ->>extract lobtofile(LOB 'LOBH0000000200010789269709250093195519789269709346199639118212370878934176767020"TRAFODION"."LOB130" ' , 'tlob130_anoush.jpg'); +>>extract lobtofile(LOB 'LOBH0000000200010684167783903033003019684167784032532137618212379188834776548020"TRAFODION"."LOB130" ' , 'tlob130_anoush.jpg'); Success. Targetfile :tlob130_anoush.jpg Length : 230150 --- SQL operation complete. @@ -847,7 +861,7 @@ Column Name : c2 Input a filename to extract to : Output File Name : lobc2out.jpg Extracting lob handle for column c2... -LOB handle for c2: LOBH0000000200010789269709250093195519789269709346199639118212370878934176767020"TRAFODION"."LOB130" +LOB handle for c2: LOBH0000000200010684167783903033003019684167784032532137618212379188834776548020"TRAFODION"."LOB130" Extracting LOB data length for the above handle... LOB data length :230150 Extracting lob data into file in chunks ... @@ -921,7 +935,7 @@ And the dish ran away with the spoon. >>sh rm t130_extract_command; >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , >>'tlob130_deep2.jpg');/g" >> t130_extract_command; >>obey t130_extract_command; ->>extract lobtofile(LOB 'LOBH0000000200020789269709250096808819789269709373537864718212370879207561632020"TRAFODION"."LOB130" ' , 'tlob130_deep2.jpg'); +>>extract lobtofile(LOB 'LOBH0000000200020684167783903037314519684167784064680849818212379189156209716020"TRAFODION"."LOB130" ' , 'tlob130_deep2.jpg'); Success. Targetfile :tlob130_deep2.jpg Length : 159018 --- SQL operation complete. @@ -953,7 +967,7 @@ Hey diddle diddle, >>sh rm t130_extract_command; >>sh grep "^LOBH" TMP130 | sed "s/^/extract lobtofile(LOB '/g" | sed "s/$/' , >>'tlob130_anoush3.jpg',create,truncate);/g" >> t130_extract_command; >>obey t130_extract_command; ->>extract lobtofile(LOB 'LOBH0000000200030789269709250097259519789269709378642018118212370879258524867020"TRAFODION"."LOB130" ' , 'tlob130_anoush3.jpg',create,truncate); +>>extract lobtofile(LOB 'LOBH0000000200030684167783903037826119684167784070505285418212379189214460936020"TRAFODION"."LOB130" ' , 'tlob130_anoush3.jpg',create,truncate); Success. Targetfile :tlob130_anoush3.jpg Length : 230150 --- SQL operation complete. @@ -1054,12 +1068,12 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT2 ColumnName : C2 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092501002172_0001 + LOB Data File: LOBP_06841677839030414947_0001 LOB EOD : 0 LOB Used Len : 0 ColumnName : C3 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092501002172_0002 + LOB Data File: LOBP_06841677839030414947_0002 LOB EOD : 0 LOB Used Len : 0 ColumnName : C4 @@ -1074,8 +1088,8 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT2 CATALOG_NAME SCHEMA_NAME OBJECT_NAME COLUMN_NAME LOB_LOCATION LOB_DATA_FILE LOB_DATA_FILE_SIZE_EOD LOB_DATA_FILE_SIZE_USED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------- ----------------------- -TRAFODION LOB130 TLOB130GT2 C2 /user/trafodion/lobs LOBP_07892697092501002172_0001 0 0 -TRAFODION LOB130 TLOB130GT2 C3 /user/trafodion/lobs LOBP_07892697092501002172_0002 0 0 +TRAFODION LOB130 TLOB130GT2 C2 /user/trafodion/lobs LOBP_06841677839030414947_0001 0 0 +TRAFODION LOB130 TLOB130GT2 C3 /user/trafodion/lobs LOBP_06841677839030414947_0002 0 0 TRAFODION LOB130 TLOB130GT2 C4 External HDFS Location External HDFS File 0 0 --- 3 row(s) selected. @@ -1096,17 +1110,17 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT ColumnName : C2 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092500999026_0001 + LOB Data File: LOBP_06841677839030411144_0001 LOB EOD : 15 LOB Used Len : 15 ColumnName : C3 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092500999026_0002 + LOB Data File: LOBP_06841677839030411144_0002 LOB EOD : 15 LOB Used Len : 15 ColumnName : C4 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092500999026_0003 + LOB Data File: LOBP_06841677839030411144_0003 LOB EOD : 45 LOB Used Len : 45 @@ -1116,9 +1130,9 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT CATALOG_NAME SCHEMA_NAME OBJECT_NAME COLUMN_NAME LOB_LOCATION LOB_DATA_FILE LOB_DATA_FILE_SIZE_EOD LOB_DATA_FILE_SIZE_USED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------- ----------------------- -TRAFODION LOB130 TLOB130GT C2 /user/trafodion/lobs LOBP_07892697092500999026_0001 15 15 -TRAFODION LOB130 TLOB130GT C3 /user/trafodion/lobs LOBP_07892697092500999026_0002 15 15 -TRAFODION LOB130 TLOB130GT C4 /user/trafodion/lobs LOBP_07892697092500999026_0003 45 45 +TRAFODION LOB130 TLOB130GT C2 /user/trafodion/lobs LOBP_06841677839030411144_0001 15 15 +TRAFODION LOB130 TLOB130GT C3 /user/trafodion/lobs LOBP_06841677839030411144_0002 15 15 +TRAFODION LOB130 TLOB130GT C4 /user/trafodion/lobs LOBP_06841677839030411144_0003 45 45 --- 3 row(s) selected. >>delete from tlob130gt where c1=2; @@ -1135,17 +1149,17 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT ColumnName : C2 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092500999026_0001 + LOB Data File: LOBP_06841677839030411144_0001 LOB EOD : 30 LOB Used Len : 25 ColumnName : C3 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092500999026_0002 + LOB Data File: LOBP_06841677839030411144_0002 LOB EOD : 31 LOB Used Len : 26 ColumnName : C4 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092500999026_0003 + LOB Data File: LOBP_06841677839030411144_0003 LOB EOD : 71 LOB Used Len : 56 @@ -1155,9 +1169,9 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT CATALOG_NAME SCHEMA_NAME OBJECT_NAME COLUMN_NAME LOB_LOCATION LOB_DATA_FILE LOB_DATA_FILE_SIZE_EOD LOB_DATA_FILE_SIZE_USED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------- ----------------------- -TRAFODION LOB130 TLOB130GT C2 /user/trafodion/lobs LOBP_07892697092500999026_0001 30 25 -TRAFODION LOB130 TLOB130GT C3 /user/trafodion/lobs LOBP_07892697092500999026_0002 31 26 -TRAFODION LOB130 TLOB130GT C4 /user/trafodion/lobs LOBP_07892697092500999026_0003 71 56 +TRAFODION LOB130 TLOB130GT C2 /user/trafodion/lobs LOBP_06841677839030411144_0001 30 25 +TRAFODION LOB130 TLOB130GT C3 /user/trafodion/lobs LOBP_06841677839030411144_0002 31 26 +TRAFODION LOB130 TLOB130GT C4 /user/trafodion/lobs LOBP_06841677839030411144_0003 71 56 --- 3 row(s) selected. >> @@ -1328,12 +1342,12 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130EXT ColumnName : C2 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092501013739_0001 + LOB Data File: LOBP_06841677839030429611_0001 LOB EOD : 70 LOB Used Len : 42 ColumnName : C3 Lob Location : /user/trafodion/lobs - LOB Data File: LOBP_07892697092501013739_0002 + LOB Data File: LOBP_06841677839030429611_0002 LOB EOD : 125 LOB Used Len : 68 ColumnName : C4 @@ -1348,8 +1362,8 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130EXT CATALOG_NAME SCHEMA_NAME OBJECT_NAME COLUMN_NAME LOB_LOCATION LOB_DATA_FILE LOB_DATA_FILE_SIZE_EOD LOB_DATA_FILE_SIZE_USED ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------- ----------------------- -TRAFODION LOB130 TLOB130EXT C2 /user/trafodion/lobs LOBP_07892697092501013739_0001 70 42 -TRAFODION LOB130 TLOB130EXT C3 /user/trafodion/lobs LOBP_07892697092501013739_0002 125 68 +TRAFODION LOB130 TLOB130EXT C2 /user/trafodion/lobs LOBP_06841677839030429611_0001 70 42 +TRAFODION LOB130 TLOB130EXT C3 /user/trafodion/lobs LOBP_06841677839030429611_0002 125 68 TRAFODION LOB130 TLOB130EXT C4 External HDFS Location External HDFS File 0 0 --- 3 row(s) selected. @@ -1366,7 +1380,7 @@ Column Name : c4 Input a filename to extract to : Output File Name : lobc4ext.txt Extracting lob handle for column c4... -LOB handle for c4: LOBH0000000800030789269709250101373919789269709433659319618212370879808793595020"TRAFODION"."LOB130" +LOB handle for c4: LOBH0000000800030684167783903042961119684167784136680234118212379189876220716020"TRAFODION"."LOB130" Extracting LOB data length for the above handle... LOB data length :19 Extracting lob data into file in chunks ... @@ -1432,7 +1446,7 @@ Table name : TRAFODION.LOB130.t130lob5 Input lob column name to get handle from : Column Name : c2 Extracting lob handle for column c2... -LOB handle for c2: LOBH0000000200010789269709250106581019789269709470354926518212370880175708319020"TRAFODION"."LOB130" +LOB handle for c2: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130" >>select lobtostring(c2,20) from t130lob5; (EXPR) @@ -1449,7 +1463,7 @@ Table name : TRAFODION.LOB130.t130lob5 Input lob column name to get handle from : Column Name : c2 Extracting lob handle for column c2... -LOB handle for c2: LOBH0000000200010789269709250106581019789269709470354926518212370880175708319020"TRAFODION"."LOB130" +LOB handle for c2: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130" >>select lobtostring(c2,40) from t130lob5; (EXPR) @@ -1466,7 +1480,7 @@ Table name : TRAFODION.LOB130.t130lob5 Input lob column name to get handle from : Column Name : c2 Extracting lob handle for column c2... -LOB handle for c2: LOBH0000000200010789269709250106581019789269709470354926518212370880175708319020"TRAFODION"."LOB130" +LOB handle for c2: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130" >>select lobtostring(c2,20) from t130lob5; (EXPR) @@ -1483,7 +1497,7 @@ Table name : TRAFODION.LOB130.t130lob5 Input lob column name to get handle from : Column Name : c2 Extracting lob handle for column c2... -LOB handle for c2: LOBH0000000200010789269709250106581019789269709470354926518212370880175708319020"TRAFODION"."LOB130" +LOB handle for c2: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130" >>select lobtostring(c2,40) from t130lob5; (EXPR) @@ -1510,7 +1524,7 @@ zzzzzzzzzzzzzzzzzzzz C2 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------- -LOBH0000000200010789269709250101373919789269709484761570418212370880319729808020"TRAFODION"."LOB130" +LOBH0000000200010684167783903042961119684167784191698308218212379190426424539020"TRAFODION"."LOB130" --- 1 row(s) selected. >>-- following should return error since only external lobs will be allowed @@ -1553,9 +1567,9 @@ LOBH0000000200010789269709250101373919789269709484761570418212370880319729808020 Tables in Schema TRAFODION.LOBSCH ================================= -LOBDescChunks__07892697092501086222_0001 -LOBDescHandle__07892697092501086222_0001 -LOBMD__07892697092501086222 +LOBDescChunks__06841677839030508209_0001 +LOBDescHandle__06841677839030508209_0001 +LOBMD__06841677839030508209 SB_HISTOGRAMS SB_HISTOGRAM_INTERVALS SB_PERSISTENT_SAMPLES http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/545318f3/core/sql/regress/executor/TEST130 ---------------------------------------------------------------------- diff --git a/core/sql/regress/executor/TEST130 b/core/sql/regress/executor/TEST130 index b9c3e2c..38214c6 100755 --- a/core/sql/regress/executor/TEST130 +++ b/core/sql/regress/executor/TEST130 @@ -88,6 +88,10 @@ prepare s from insert into t130lob2 values (1, ?); execute s using 'fgfgfhfhfhfhhfhfhfhjfkkfkffllflflfll'; select lobtostring(c2,50) from t130lob2; +--negative test for values tuple list +prepare s from insert into t130lob2 values (1,'gg'),(2,'hh'); +prepare s from insert into t130lob2 values (1,stringtolob('hh')),(2,stringtolob('gg')); + --test update with param prepare s from update t130lob2 set c2=? where c1 =1; execute s using 'xyxyxyxyxyxyx';
