[
https://issues.apache.org/jira/browse/TRAFODION-1424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14654492#comment-14654492
]
Suresh Subbiah commented on TRAFODION-1424:
-------------------------------------------
Further changes made to
a) disable this change when the table is of regular format AND has added
columns.
b) Use reduced size of row for regular format tables also, after the convert
expr has been applied
c) When creating hbase filter use the exploded format in tuple desc. Otherwise
thefilter does not work correctly.
Change can be disabled with cqd COMPRESSED_INTERNAL_FORMAT 'OFF' ;
Note that this change applied to (a) regular format Trafodion tables (b)
aligned format Trafodion tables and (c) native HBase tables accessed through
Trafodion in either _CELL_ or _ROW_ form.
In the following showplan outputs note that the Tuple Data Format is
SQLMX_ALIGNED_FORMAT in the result of convert expr clauses. That can be used to
verify that the change has kicked in. Otherwise those clauses will will have a
result of SQLARK_EXPLODED_FORMAT.
create table t_regular(a int, b varchar(1000)) ;
create table t_aligned(a int, b varchar(1000)) attributes aligned format;
showplan select * from t_regular ;
For ComTdbHbaseAccess :
accessType_ = SELECT_
accessDetail_ = EX_TRAF_SELECT
tableName_ = TRAFODION.REGRESS.T_REGULAR
asciiTI_ = 4, convertTI_ = 2, rowIdTI_ = 3, returnedTI_ = 2
rowIdAsciiTI_ = 5, updateTI_ = 0, mergeInsertTI_ = 0
returnedFetchedTI_ = 0, returnedUpdatedTI_ = 0, mergeInsertRowIdTI_ = 0
hbaseTimestampTI_ = 0, hbaseVersionTI_ = 0
asciiRowLen_ = 1020, convertRowLen_ = 1032, rowIdLen_ = 8, outputRowLen_ = 1032
updateRowLen_ = 0, returnFetchedRowLen_ = 0, returnUpdateedRowLen_ = 0
mergeInsertRowLen_ = 0, keyLen_ = 0
Flag = 0000000000000100
....
# of Expressions = 15
Expression: Convert Expr
Expr Len: 632, Consts Len: 8
flags_ = 0000000010001000
Clause #1: ex_function_clause
OperatorTypeEnum = ITM_HEADER(2375), NumOperands = 1
ex_clause::flags_ = 0000000010000000
ex_function_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_F_ASCII(0), Length = 16, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 0
Text = Hdr
Clause #2: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 16, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 30
Text = cast
Operand #1:
Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 29
Text = LARGEINT
Clause #3: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000110
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BIN32_SIGNED(132), Length = 4, Null Flag = 1
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 24, NullIndOffset = 12, VClenIndOffset = -1
RelOffset = 8, VoaOffset = -1, NullBitIdx = 0
NullIndLength = 0, VClenIndLength = 0
ValueId = 32
Text = cast
Operand #1:
Datatype = REC_BIN32_SIGNED(132), Length = 4, Null Flag = 1
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 12, NullIndOffset = 8, VClenIndOffset = -1
NullIndLength = 2, VClenIndLength = 0
ValueId = 31
Text = INTEGER SIGNED
Clause #4: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000110
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 1000, Null Flag = 1
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 32, NullIndOffset = 12, VClenIndOffset = 28
RelOffset = 0, VoaOffset = 8, NullBitIdx = 1
NullIndLength = 0, VClenIndLength = 4
ValueId = 34
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 1000, Null Flag = 1
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 20, NullIndOffset = 16, VClenIndOffset = 18
NullIndLength = 2, VClenIndLength = 2
ValueId = 33
Text = VARCHAR(1000) CHARACTER SET ISO88591
PCode:
...
Expression: ScanExpr is NULL
showplan select * from t_aligned ;
For ComTdbHbaseAccess :
accessType_ = SELECT_
accessDetail_ = EX_TRAF_SELECT
tableName_ = TRAFODION.REGRESS.T_ALIGNED
asciiTI_ = 4, convertTI_ = 2, rowIdTI_ = 3, returnedTI_ = 2
rowIdAsciiTI_ = 5, updateTI_ = 0, mergeInsertTI_ = 0
returnedFetchedTI_ = 0, returnedUpdatedTI_ = 0, mergeInsertRowIdTI_ = 0
hbaseTimestampTI_ = 0, hbaseVersionTI_ = 0
asciiRowLen_ = 1032, convertRowLen_ = 1032, rowIdLen_ = 8, outputRowLen_ = 1032
updateRowLen_ = 0, returnFetchedRowLen_ = 0, returnUpdateedRowLen_ = 0
mergeInsertRowLen_ = 0, keyLen_ = 0
Flag = 0100000000000100
...
# of Expressions = 15
Expression: Convert Expr
Expr Len: 632, Consts Len: 8
flags_ = 0000000010001000
Clause #1: ex_function_clause
OperatorTypeEnum = ITM_HEADER(2375), NumOperands = 1
ex_clause::flags_ = 0000000010000000
ex_function_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_F_ASCII(0), Length = 16, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 0
Text = Hdr
Clause #2: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 16, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 30
Text = cast
Operand #1:
Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 16, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 29
Text = LARGEINT
Clause #3: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000110
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BIN32_SIGNED(132), Length = 4, Null Flag = 1
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 24, NullIndOffset = 12, VClenIndOffset = -1
RelOffset = 8, VoaOffset = -1, NullBitIdx = 0
NullIndLength = 0, VClenIndLength = 0
ValueId = 32
Text = cast
Operand #1:
Datatype = REC_BIN32_SIGNED(132), Length = 4, Null Flag = 1
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 24, NullIndOffset = 12, VClenIndOffset = -1
RelOffset = 8, VoaOffset = -1, NullBitIdx = 0
NullIndLength = 0, VClenIndLength = 0
ValueId = 31
Text = INTEGER SIGNED
Clause #4: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000110
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 1000, Null Flag = 1
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 32, NullIndOffset = 12, VClenIndOffset = 28
RelOffset = 0, VoaOffset = 8, NullBitIdx = 1
NullIndLength = 0, VClenIndLength = 4
ValueId = 34
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 1000, Null Flag = 1
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 32, NullIndOffset = 12, VClenIndOffset = 28
RelOffset = 0, VoaOffset = 8, NullBitIdx = 1
NullIndLength = 0, VClenIndLength = 4
ValueId = 33
Text = VARCHAR(1000) CHARACTER SET ISO88591
PCode:
...
Expression: ScanExpr is NULL
showplan select * from hbase."_CELL_"."TRAFODION.REGRESS.T_REGULAR" ;
For ComTdbHbaseAccess :
accessType_ = SELECT_
accessDetail_ = EX_HBASE_SELECT
tableName_ = TRAFODION.REGRESS.T_REGULAR
asciiTI_ = 4, convertTI_ = 2, rowIdTI_ = 3, returnedTI_ = 2
rowIdAsciiTI_ = 5, updateTI_ = 0, mergeInsertTI_ = 0
returnedFetchedTI_ = 0, returnedUpdatedTI_ = 0, mergeInsertRowIdTI_ = 0
hbaseTimestampTI_ = 0, hbaseVersionTI_ = 0
asciiRowLen_ = 1322, convertRowLen_ = 1348, rowIdLen_ = 103, outputRowLen_ =
1348
updateRowLen_ = 0, returnFetchedRowLen_ = 0, returnUpdateedRowLen_ = 0
mergeInsertRowLen_ = 0, keyLen_ = 0
Flag = 0000000000000000
...
# of Expressions = 15
Expression: Convert Expr
Expr Len: 584, Consts Len: 8
flags_ = 0000000010001000
Clause #1: ex_function_clause
OperatorTypeEnum = ITM_HEADER(2375), NumOperands = 1
ex_clause::flags_ = 0000000010000000
ex_function_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_F_ASCII(0), Length = 24, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 0
Text = Hdr
Clause #2: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 36, NullIndOffset = -1, VClenIndOffset = 32
RelOffset = 0, VoaOffset = 8, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 4
ValueId = 43
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 2, NullIndOffset = -1, VClenIndOffset = 0
NullIndLength = 0, VClenIndLength = 2
ValueId = 42
Text = VARCHAR(100) CHARACTER SET ISO88591
Clause #3: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = -1, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = 12, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 4
ValueId = 45
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 104, NullIndOffset = -1, VClenIndOffset = 102
NullIndLength = 0, VClenIndLength = 2
ValueId = 44
Text = VARCHAR(100) CHARACTER SET ISO88591
Clause #4: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = -1, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = 16, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 4
ValueId = 47
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 206, NullIndOffset = -1, VClenIndOffset = 204
NullIndLength = 0, VClenIndLength = 2
ValueId = 46
Text = VARCHAR(100) CHARACTER SET ISO88591
Clause #5: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 24, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 49
Text = cast
Operand #1:
Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 312, NullIndOffset = -1, VClenIndOffset = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 48
Text = LARGEINT
Clause #6: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 1000, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = -1, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = 20, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 4
ValueId = 51
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 1000, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 322, NullIndOffset = -1, VClenIndOffset = 320
NullIndLength = 0, VClenIndLength = 2
ValueId = 50
Text = VARCHAR(1000) CHARACTER SET ISO88591
PCode: ...
Expression: ScanExpr is NULL
showplan select * from hbase."_ROW_"."TRAFODION.REGRESS.T_REGULAR" ;
For ComTdbHbaseAccess :
accessType_ = SELECT_
accessDetail_ = EX_HBASE_SELECT
tableName_ = TRAFODION.REGRESS.T_REGULAR
asciiTI_ = 4, convertTI_ = 2, rowIdTI_ = 3, returnedTI_ = 2
rowIdAsciiTI_ = 5, updateTI_ = 0, mergeInsertTI_ = 0
returnedFetchedTI_ = 0, returnedUpdatedTI_ = 0, mergeInsertRowIdTI_ = 0
hbaseTimestampTI_ = 0, hbaseVersionTI_ = 0
asciiRowLen_ = 10104, convertRowLen_ = 10124, rowIdLen_ = 103, outputRowLen_ =
10124
updateRowLen_ = 0, returnFetchedRowLen_ = 0, returnUpdateedRowLen_ = 0
mergeInsertRowLen_ = 0, keyLen_ = 0
Flag = 0000000000000001
...
# of Expressions = 15
Expression: Convert Expr
Expr Len: 472, Consts Len: 8
flags_ = 0000000010001000
Clause #1: ex_function_clause
OperatorTypeEnum = ITM_HEADER(2375), NumOperands = 1
ex_clause::flags_ = 0000000010000000
ex_function_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_F_ASCII(0), Length = 16, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 0
ValueId = 0
Text = Hdr
Clause #2: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = 20, NullIndOffset = -1, VClenIndOffset = 16
RelOffset = 0, VoaOffset = 8, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 4
ValueId = 22
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 2, NullIndOffset = -1, VClenIndOffset = 0
NullIndLength = 0, VClenIndLength = 2
ValueId = 21
Text = VARCHAR(100) CHARACTER SET ISO88591
Clause #3: ex_conv_clause
OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
ex_clause::flags_ = 0000000010000000
ex_conv_clause::flags_ = 0000000000000000
PCODE = supported
Operand #0 (result):
Datatype = REC_BYTE_V_ASCII(64), Length = 10000, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLMX_ALIGNED_FORMAT
Atp = 1, AtpIndex = 2
Offset = -1, NullIndOffset = -1, VClenIndOffset = -1
RelOffset = 0, VoaOffset = 12, NullBitIdx = -1
NullIndLength = 0, VClenIndLength = 4
ValueId = 24
Text = cast
Operand #1:
Datatype = REC_BYTE_V_ASCII(64), Length = 10000, Null Flag = 0
Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
Tuple Data Format = SQLARK_EXPLODED_FORMAT
Atp = 1, AtpIndex = 4
Offset = 104, NullIndOffset = -1, VClenIndOffset = 102
NullIndLength = 0, VClenIndLength = 2
ValueId = 23
Text = VARCHAR(10000) CHARACTER SET ISO88591
PCode: ...
Expression: ScanExpr is NULL
> Enable CIF (compressed internal format) for Trafodion scan operator
> -------------------------------------------------------------------
>
> Key: TRAFODION-1424
> URL: https://issues.apache.org/jira/browse/TRAFODION-1424
> Project: Apache Trafodion
> Issue Type: Improvement
> Components: sql-cmp, sql-exe
> Affects Versions: 0.6 (pre-incubation)
> Reporter: Suresh Subbiah
> Assignee: Suresh Subbiah
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> When varchar data is read from a Trafodion table by the scan operator it is
> converted to exploded format by blank padding data to its maximum declared
> length. A change contributed by Khaled Bouaziz extends Trafodion's compressed
> internal format (CIF) feature to now include the Traf scan operator.
> Here is an email exchange with Khaled on this subject
> Hi Anoop:
> I made few changes to use CIF with traf scan
> The changes are mostly for the the convert expression:
> - Changed the row format of the convert row to aligned format
> - Added code to use cif so that we only use the needed space
> If we can store the CIF row length with row when we insert/update that we can
> bypass the convert expression I think.
> >>select * from testcif;
> A B
> -----------
> ----------------------------------------------------------------------------------------------------
> 1 aaa
>
> 1 bbbbb
>
> 1 ccccccccccccc
>
> 1 eeeeeeeeeeeeeeeeeeeeeeeeeeeeee
>
> --- 4 row(s) selected.
> >>fc
> Expression: Convert Expr
> Expr Len: 632, Consts Len: 8
> flags_ = 0000000010001000
> Clause #1: ex_function_clause
> OperatorTypeEnum = ITM_HEADER(2375), NumOperands = 1
> ex_clause::flags_ = 0000000010000000
> ex_function_clause::flags_ = 0000000000000000
> PCODE = supported
> Operand #0 (result):
> Datatype = REC_BYTE_F_ASCII(0), Length = 16, Null Flag = 0
> Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 2
> Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
> RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 0
> Text = Hdr
> Clause #2: ex_conv_clause
> OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
> ex_clause::flags_ = 0000000010000000
> ex_conv_clause::flags_ = 0000000000000000
> PCODE = supported
> Operand #0 (result):
> Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
> Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 2
> Offset = 16, NullIndOffset = -1, VClenIndOffset = -1
> RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 30
> Text = cast
> Operand #1:
> Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
> Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 4
> Offset = 16, NullIndOffset = -1, VClenIndOffset = -1
> RelOffset = 0, VoaOffset = -1, NullBitIdx = -1
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 29
> Text = LARGEINT
> Clause #3: ex_conv_clause
> OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
> ex_clause::flags_ = 0000000010000110
> ex_conv_clause::flags_ = 0000000000000000
> PCODE = supported
> Operand #0 (result):
> Datatype = REC_BIN32_SIGNED(132), Length = 4, Null Flag = 1
> Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 2
> Offset = 24, NullIndOffset = 12, VClenIndOffset = -1
> RelOffset = 8, VoaOffset = -1, NullBitIdx = 0
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 32
> Text = cast
> Operand #1:
> Datatype = REC_BIN32_SIGNED(132), Length = 4, Null Flag = 1
> Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001001
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 4
> Offset = 24, NullIndOffset = 12, VClenIndOffset = -1
> RelOffset = 8, VoaOffset = -1, NullBitIdx = 0
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 31
> Text = INTEGER SIGNED
> Clause #4: ex_conv_clause
> OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
> ex_clause::flags_ = 0000000010000110
> ex_conv_clause::flags_ = 0000000000000000
> PCODE = supported
> Operand #0 (result):
> Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 1
> Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 2
> Offset = 32, NullIndOffset = 12, VClenIndOffset = 28
> RelOffset = 0, VoaOffset = 8, NullBitIdx = 1
> NullIndLength = 0, VClenIndLength = 4
> ValueId = 34
> Text = cast
> Operand #1:
> Datatype = REC_BYTE_V_ASCII(64), Length = 100, Null Flag = 1
> Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLMX_ALIGNED_FORMAT
> Atp = 1, AtpIndex = 4
> Offset = 32, NullIndOffset = 12, VClenIndOffset = 28
> RelOffset = 0, VoaOffset = 8, NullBitIdx = 1
> NullIndLength = 0, VClenIndLength = 4
> ValueId = 33
> Text = VARCHAR(100) CHARACTER SET ISO88591
> PCode:
> PCode Expr Length: 332
> [1]
> HDR_MPTR32_IBIN32S_IBIN32S_IBIN32S_IBIN32S_IBIN32S (303) 4 0 16 16 4 12 4
> MOVE_MBIN64S_MBIN64S (203) 4 16 5 16
> NOT_NULL_BRANCH_MBIN32S_MBIN32S_IATTR3_IBIN32S (248) 4 12 5 12 134219270
> 0 0 14 (Tgt: 3)
> [2]
> MOVE_MBIN32S_IBIN32S (3) 4 24 0
> BRANCH (95) 6 (Tgt: 4)
> [3] (Preds: 1 )
> MOVE_MBIN32U_MBIN32U (202) 4 24 5 24
> [4] (Preds: 2 )
> NOT_NULL_BRANCH_MBIN32S_MBIN32S_IATTR3_IBIN32S (248) 4 12 5 12 134219270
> 1 1 24 (Tgt: 6)
> [5]
> FILL_MEM_BYTES_VARIABLE (317) 4 32 8 100 1024 0 0
> UPDATE_ROWLEN3_MATTR5_IBIN32S (316) 4 32 8 -1 1024 4
> RETURN (264)
> [6] (Preds: 4 )
> MOVE_MATTR5_MATTR5 (284) 4 32 8 100 1024 5 32 8 100 1024
> UPDATE_ROWLEN3_MATTR5_IBIN32S (316) 4 32 8 -1 1024 4
> RETURN (264)
> Expression: ScanExpr is NULL
> Expression: RowIdExpr
> Expr Len: 384, Consts Len: 8
> flags_ = 0000000010001000
> Clause #1: ex_conv_clause
> OperatorTypeEnum = ITM_CAST(2452), NumOperands = 2
> ex_clause::flags_ = 0000000010000000
> ex_conv_clause::flags_ = 0000000000010000
> PCODE = supported
> Operand #0 (result):
> Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
> Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLARK_EXPLODED_FORMAT
> Atp = 0, AtpIndex = 1 (Temporary)
> Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 36
> Text = cast
> Operand #1:
> Datatype = REC_BYTE_V_ASCII(64), Length = 8, Null Flag = 0
> Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLARK_EXPLODED_FORMAT
> Atp = 1, AtpIndex = 5
> Offset = 2, NullIndOffset = -1, VClenIndOffset = 0
> NullIndLength = 0, VClenIndLength = 2
> ValueId = 35
> Text = VARCHAR(8) CHARACTER SET ISO88591
> Clause #2: ex_function_clause
> OperatorTypeEnum = ITM_COMP_ENCODE(2114), NumOperands = 2
> ex_clause::flags_ = 0000000010000000
> ex_function_clause::flags_ = 0000000000000000
> PCODE = supported
> Operand #0 (result):
> Datatype = REC_BYTE_F_ASCII(0), Length = 8, Null Flag = 0
> Precision = 0, Scale = 1, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLARK_EXPLODED_FORMAT
> Atp = 1, AtpIndex = 3
> Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 37
> Text = comp_encode
> Operand #1:
> Datatype = REC_BIN64_SIGNED(134), Length = 8, Null Flag = 0
> Precision = 0, Scale = 0, Collation = 1, flags_ = 0000001000001000
> Tuple Data Format = SQLARK_EXPLODED_FORMAT
> Atp = 0, AtpIndex = 1 (Temporary)
> Offset = 0, NullIndOffset = -1, VClenIndOffset = -1
> NullIndLength = 0, VClenIndLength = 0
> ValueId = 36
> Text = cast
> PCode:
> PCode Expr Length: 88
> [1]
> CONVVCPTR_MBIN64S_MATTR5_IBIN32S (330) 2 0 5 2 -1 8 512 8
> ENCODE_MASCII_MBIN64S_IBIN32S (91) 4 0 2 0 0
> RETURN (264)
> Expression: UpdateExpr is NULL
> Expression: MergeInsertExpr is NULL
> Expression: LowKeyExpr is NULL
> Expression: HighKeyExpr is NULL
> Expression: ReturnFetchExpr is NULL
> Expression: ReturnUpdateExpr is NULL
> Expression: ReturnMergeInsertExpr is NULL
> Expression: mergeUpdScanExpr is NULL
> Expression: mergeInsertRowIdExpr is NULL
> Expression: encodedKeyExpr is NULL
> Expression: keyColValExpr is NULL
> Expression: hbaseFilterExpr is NULL
> From: Sharma, Anoop
> Sent: Tuesday, April 21, 2015 10:04 AM
> To: Bouaziz, Khaled; Subbiah, Suresh
> Subject: CIF question
> hi
> do we use CIF when selecting out of traf scan operator?
> for ex:
> create table t (a int not null primary key, b varchar(1000), c
> varchar(1000));
> would “select * from t” use CIF for the output row from scan operator?
> Right now I see exploded format in HbaseAccess even if I set cqd
> compressed_internal_format to ON?
> But if I do a join, then the hash join operator uses CIF but scan operator
> uses exploded.
> When is the conversion from exploded to aligned(cif) format done?
> anoop
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)