You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by sa...@apache.org on 2018/02/08 19:29:36 UTC
[1/5] trafodion git commit: New syntax to retrieve the LOB HDFS
filename for both external and internal LOBs . Also added syntax to return
starting offset of a particular LOB handle in the LOB Hdfs data file.
Repository: trafodion
Updated Branches:
refs/heads/master fb3a5e4bb -> bd886c121
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/regress/executor/EXPECTED130
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/EXPECTED130 b/core/sql/regress/executor/EXPECTED130
index 4ef2b51..5d274b6 100644
--- a/core/sql/regress/executor/EXPECTED130
+++ b/core/sql/regress/executor/EXPECTED130
@@ -63,9 +63,9 @@ C1
C1 C2
----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------
- 1 LOBH0000000200010684167783903023229919684167783929468270818212379187803875502020"TRAFODION"."LOB130"
- 2 LOBH0000000200010684167783903023229919684167783930244221218212379187811728769020"TRAFODION"."LOB130"
- 3 LOBH0000000200010684167783903023229919684167783931095112818212379187819814558020"TRAFODION"."LOB130"
+ 1 LOBH0000000200010599162824891000214319599162824908088805718212384027254904057020"TRAFODION"."LOB130"
+ 2 LOBH0000000200010599162824891000214319599162824908906372018212384027264411730020"TRAFODION"."LOB130"
+ 3 LOBH0000000200010599162824891000214319599162824909696994518212384027272355484020"TRAFODION"."LOB130"
--- 3 row(s) selected.
>>
@@ -668,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 'LOBH0000000200010684167783903032825819684167784024315676018212379188752592782020"TRAFODION"."LOB130"
' , 'tlob130_txt1.txt');
+>>extract lobtofile(LOB 'LOBH0000000200010599162824891010592019599162825008788792718212384028263167191020"TRAFODION"."LOB130"
' , 'tlob130_txt1.txt');
Success. Targetfile :tlob130_txt1.txt Length : 19
--- SQL operation complete.
@@ -684,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 'LOBH0000000200010684167783903033003019684167784032532137618212379188834776548020"TRAFODION"."LOB130"
' , 'tlob130_deep.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010599162824891010783319599162825017613184818212384028351739389020"TRAFODION"."LOB130"
' , 'tlob130_deep.jpg');
Success. Targetfile :tlob130_deep.jpg Length : 159018
--- SQL operation complete.
@@ -700,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 'LOBH0000000200010684167783903033003019684167784032532137618212379188834776548020"TRAFODION"."LOB130"
' , 'tlob130_anoush.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010599162824891010783319599162825017613184818212384028351739389020"TRAFODION"."LOB130"
' , 'tlob130_anoush.jpg');
Success. Targetfile :tlob130_anoush.jpg Length : 230150
--- SQL operation complete.
@@ -861,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: LOBH0000000200010684167783903033003019684167784032532137618212379188834776548020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010599162824891010783319599162825017613184818212384028351739389020"TRAFODION"."LOB130"
Extracting LOB data length for the above handle...
LOB data length :230150
Extracting lob data into file in chunks ...
@@ -935,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 'LOBH0000000200020684167783903037314519684167784064680849818212379189156209716020"TRAFODION"."LOB130"
' , 'tlob130_deep2.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200020599162824891015449419599162825052851369318212384028704041429020"TRAFODION"."LOB130"
' , 'tlob130_deep2.jpg');
Success. Targetfile :tlob130_deep2.jpg Length : 159018
--- SQL operation complete.
@@ -967,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 'LOBH0000000200030684167783903037826119684167784070505285418212379189214460936020"TRAFODION"."LOB130"
' , 'tlob130_anoush3.jpg',create,truncate);
+>>extract lobtofile(LOB 'LOBH0000000200030599162824891016047719599162825059292319718212384028768498788020"TRAFODION"."LOB130"
' , 'tlob130_anoush3.jpg',create,truncate);
Success. Targetfile :tlob130_anoush3.jpg Length : 230150
--- SQL operation complete.
@@ -1068,12 +1068,12 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT2
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030414947_0001
+ LOB Data File: LOBP_05991628248910199914_0001
LOB EOD : 0
LOB Used Len : 0
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030414947_0002
+ LOB Data File: LOBP_05991628248910199914_0002
LOB EOD : 0
LOB Used Len : 0
ColumnName : C4
@@ -1088,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_06841677839030414947_0001 0 0
-TRAFODION LOB130 TLOB130GT2 C3
/user/trafodion/lobs LOBP_06841677839030414947_0002 0 0
+TRAFODION LOB130 TLOB130GT2 C2
/user/trafodion/lobs LOBP_05991628248910199914_0001 0 0
+TRAFODION LOB130 TLOB130GT2 C3
/user/trafodion/lobs LOBP_05991628248910199914_0002 0 0
TRAFODION LOB130 TLOB130GT2 C4
External HDFS Location External HDFS File 0 0
--- 3 row(s) selected.
@@ -1110,17 +1110,17 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030411144_0001
+ LOB Data File: LOBP_05991628248910195746_0001
LOB EOD : 15
LOB Used Len : 15
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030411144_0002
+ LOB Data File: LOBP_05991628248910195746_0002
LOB EOD : 15
LOB Used Len : 15
ColumnName : C4
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030411144_0003
+ LOB Data File: LOBP_05991628248910195746_0003
LOB EOD : 45
LOB Used Len : 45
@@ -1130,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_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
+TRAFODION LOB130 TLOB130GT C2
/user/trafodion/lobs LOBP_05991628248910195746_0001 15 15
+TRAFODION LOB130 TLOB130GT C3
/user/trafodion/lobs LOBP_05991628248910195746_0002 15 15
+TRAFODION LOB130 TLOB130GT C4
/user/trafodion/lobs LOBP_05991628248910195746_0003 45 45
--- 3 row(s) selected.
>>delete from tlob130gt where c1=2;
@@ -1149,17 +1149,17 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030411144_0001
+ LOB Data File: LOBP_05991628248910195746_0001
LOB EOD : 30
LOB Used Len : 25
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030411144_0002
+ LOB Data File: LOBP_05991628248910195746_0002
LOB EOD : 31
LOB Used Len : 26
ColumnName : C4
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030411144_0003
+ LOB Data File: LOBP_05991628248910195746_0003
LOB EOD : 71
LOB Used Len : 56
@@ -1169,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_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
+TRAFODION LOB130 TLOB130GT C2
/user/trafodion/lobs LOBP_05991628248910195746_0001 30 25
+TRAFODION LOB130 TLOB130GT C3
/user/trafodion/lobs LOBP_05991628248910195746_0002 31 26
+TRAFODION LOB130 TLOB130GT C4
/user/trafodion/lobs LOBP_05991628248910195746_0003 71 56
--- 3 row(s) selected.
>>
@@ -1197,6 +1197,26 @@ TRAFODION
--- 1 row(s) inserted.
>>
+>>
+>>log;
+>>sh rm t130_extract_command;
+>>sh grep "^LOBH" TMP130 | sed "s/^/extract filename(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
+>>obey t130_extract_command;
+>>extract filename(LOB 'LOBH0000000200020599162824891021556919599162825127466931518212384029450160806020"TRAFODION"."LOB130"
');
+ LOB filename : /user/trafodion/lobs/LOBP_05991628248910215569_0002
+
+--- SQL operation complete.
+>>sh rm t130_extract_command;
+>>sh grep "^LOBH" TMP130 | sed "s/^/extract offset(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
+>>obey t130_extract_command;
+>>extract offset(LOB 'LOBH0000000200020599162824891021556919599162825127466931518212384029450160806020"TRAFODION"."LOB130"
');
+ LOB Offset : 43
+
+--- SQL operation complete.
+>>
+>>
+>>
+>>
>>--negative cases
>>insert into tlob130ext values(2, externaltolob('first lob'), filetolob('hdfs:///user/trafodion/lobs/lob_input_a1.txt'),externaltolob('hdfs:///user/trafodion/lobs/lob_input_a1.txt'));
@@ -1342,12 +1362,12 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130EXT
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030429611_0001
+ LOB Data File: LOBP_05991628248910215569_0001
LOB EOD : 70
LOB Used Len : 42
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_06841677839030429611_0002
+ LOB Data File: LOBP_05991628248910215569_0002
LOB EOD : 125
LOB Used Len : 68
ColumnName : C4
@@ -1362,8 +1382,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_06841677839030429611_0001 70 42
-TRAFODION LOB130 TLOB130EXT C3
/user/trafodion/lobs LOBP_06841677839030429611_0002 125 68
+TRAFODION LOB130 TLOB130EXT C2
/user/trafodion/lobs LOBP_05991628248910215569_0001 70 42
+TRAFODION LOB130 TLOB130EXT C3
/user/trafodion/lobs LOBP_05991628248910215569_0002 125 68
TRAFODION LOB130 TLOB130EXT C4
External HDFS Location External HDFS File 0 0
--- 3 row(s) selected.
@@ -1380,7 +1400,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: LOBH0000000800030684167783903042961119684167784136680234118212379189876220716020"TRAFODION"."LOB130"
+LOB handle for c4: LOBH0000000800030599162824891021556919599162825132831553518212384029503873802020"TRAFODION"."LOB130"
Extracting LOB data length for the above handle...
LOB data length :19
Extracting lob data into file in chunks ...
@@ -1446,7 +1466,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: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
>>select lobtostring(c2,20) from t130lob5;
(EXPR)
@@ -1463,7 +1483,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: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
>>select lobtostring(c2,40) from t130lob5;
(EXPR)
@@ -1480,7 +1500,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: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
>>select lobtostring(c2,20) from t130lob5;
(EXPR)
@@ -1497,7 +1517,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: LOBH0000000200010684167783903048606519684167784176681773818212379190276169590020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
>>select lobtostring(c2,40) from t130lob5;
(EXPR)
@@ -1524,7 +1544,7 @@ zzzzzzzzzzzzzzzzzzzz
C2
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------
-LOBH0000000200010684167783903042961119684167784191698308218212379190426424539020"TRAFODION"."LOB130"
+LOBH0000000200010599162824891021556919599162825191632813218212384030091687654020"TRAFODION"."LOB130"
--- 1 row(s) selected.
>>-- following should return error since only external lobs will be allowed
@@ -1567,9 +1587,9 @@ LOBH0000000200010684167783903042961119684167784191698308218212379190426424539020
Tables in Schema TRAFODION.LOBSCH
=================================
-LOBDescChunks__06841677839030508209_0001
-LOBDescHandle__06841677839030508209_0001
-LOBMD__06841677839030508209
+LOBDescChunks__05991628248910301630_0001
+LOBDescHandle__05991628248910301630_0001
+LOBMD__05991628248910301630
SB_HISTOGRAMS
SB_HISTOGRAM_INTERVALS
SB_PERSISTENT_SAMPLES
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/regress/executor/TEST130
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/TEST130 b/core/sql/regress/executor/TEST130
index 38214c6..05e235f 100755
--- a/core/sql/regress/executor/TEST130
+++ b/core/sql/regress/executor/TEST130
@@ -559,6 +559,23 @@ insert into tlob130ext values(1, stringtolob('first lob'), filetolob('hdfs:///us
insert into tlob130ext values(2, stringtolob('second lob'), filetolob('hdfs:///user/trafodion/lobs/lob_input_b1.txt'),externaltolob('hdfs:///user/trafodion/lobs/lob_input_b1.txt'));
insert into tlob130ext values(3, stringtolob('third lob'), filetolob('hdfs:///user/trafodion/lobs/lob_input_c1.txt'),externaltolob('hdfs:///user/trafodion/lobs/lob_input_c1.txt'));
+
+log;
+log TMP130 clear;
+select c3 from tlob130ext where c1=3;
+log;
+
+log LOG130;
+sh rm t130_extract_command;
+sh grep "^LOBH" TMP130 | sed "s/^/extract filename(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
+obey t130_extract_command;
+sh rm t130_extract_command;
+sh grep "^LOBH" TMP130 | sed "s/^/extract offset(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
+obey t130_extract_command;
+
+
+
+
--negative cases
insert into tlob130ext values(2, externaltolob('first lob'), filetolob('hdfs:///user/trafodion/lobs/lob_input_a1.txt'),externaltolob('hdfs:///user/trafodion/lobs/lob_input_a1.txt'));
insert into tlob130ext values(3, stringtolob('first lob'), filetolob('hdfs:///user/trafodion/lobs/lob_input_a1.txt'),filetolob('hdfs:///user/trafodion/lobs/lob_input_a1.txt'));
[5/5] trafodion git commit: Merge remote branch 'origin/pr/1428/head'
into merge_1428
Posted by sa...@apache.org.
Merge remote branch 'origin/pr/1428/head' into merge_1428
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/bd886c12
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/bd886c12
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/bd886c12
Branch: refs/heads/master
Commit: bd886c121f809821517b8b4cb824ed0c4c92e5be
Parents: fb3a5e4 efaebe1
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Thu Feb 8 19:29:04 2018 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Thu Feb 8 19:29:04 2018 +0000
----------------------------------------------------------------------
core/sql/cli/Cli.cpp | 47 ++++++++++--
core/sql/comexe/ComTdbExeUtil.h | 15 +++-
core/sql/executor/ExExeUtil.h | 2 +
core/sql/executor/ExExeUtilLoad.cpp | 85 +++++++++++++++++++--
core/sql/exp/ExpLOBaccess.cpp | 70 ++++++++++++++++++
core/sql/exp/ExpLOBaccess.h | 2 +
core/sql/exp/ExpLOBenums.h | 4 +-
core/sql/exp/ExpLOBexternal.h | 5 +-
core/sql/exp/ExpLOBinterface.cpp | 115 +++++++++++++++++++++++++++++
core/sql/exp/ExpLOBinterface.h | 21 ++++++
core/sql/generator/GenRelExeUtil.cpp | 12 ++-
core/sql/optimizer/RelExeUtil.h | 3 +-
core/sql/parser/sqlparser.y | 53 +++++++++++++
core/sql/regress/executor/EXPECTED130 | 96 ++++++++++++++----------
core/sql/regress/executor/TEST130 | 17 +++++
15 files changed, 491 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/bd886c12/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
[3/5] trafodion git commit: Remove use of new parser token
TOK_FILENAME and reuse existing token for TOK_NAME.
../../../sql/optimizer/bre
Posted by sa...@apache.org.
Remove use of new parser token TOK_FILENAME and reuse existing token for TOK_NAME.
../../../sql/optimizer/bre
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/5ff11692
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/5ff11692
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/5ff11692
Branch: refs/heads/master
Commit: 5ff116921d449d7b48a6326cf3abadb4be980870
Parents: a96968e
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Thu Feb 1 22:44:01 2018 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Thu Feb 1 22:44:01 2018 +0000
----------------------------------------------------------------------
core/sql/parser/ParKeyWords.cpp | 1 -
core/sql/parser/sqlparser.y | 5 +-
core/sql/regress/executor/EXPECTED130 | 84 +++++++++++++++---------------
core/sql/regress/executor/TEST130 | 2 +-
4 files changed, 45 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/5ff11692/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ParKeyWords.cpp b/core/sql/parser/ParKeyWords.cpp
index 9b07316..f604c23 100644
--- a/core/sql/parser/ParKeyWords.cpp
+++ b/core/sql/parser/ParKeyWords.cpp
@@ -428,7 +428,6 @@ ParKeyWord ParKeyWords::keyWords_[] = {
ParKeyWord("FEATURE_VERSION_INFO",TOK_FEATURE_VERSION_INFO, NONRESTOKEN_),
ParKeyWord("FETCH", TOK_FETCH, ANS_|RESWORD_|MPWORD_),
ParKeyWord("FILE", TOK_FILE, NONRESTOKEN_),
- ParKeyWord("FILENAME", TOK_FILENAME, NONRESTOKEN_),
ParKeyWord("FILETOLOB", TOK_FILETOLOB, NONRESTOKEN_),
ParKeyWord("FILETOEXTERNAL", TOK_FILETOEXTERNAL, NONRESTOKEN_),
ParKeyWord("FINAL", TOK_FINAL, NONRESTOKEN_),
http://git-wip-us.apache.org/repos/asf/trafodion/blob/5ff11692/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 0c3cddf..f4f6da6 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -750,7 +750,6 @@ static void enableMakeQuotedStringISO88591Mechanism()
%token <tokval> TOK_EXTERNALTOSTRING
%token <tokval> TOK_EMPTY_BLOB
%token <tokval> TOK_EMPTY_CLOB
-%token <tokval> TOK_FILENAME
%token <tokval> TOK_INSERT
%token <tokval> TOK_INSERT_ONLY
%token <tokval> TOK_INS
@@ -15932,7 +15931,7 @@ exe_util_lob_extract : TOK_EXTRACT TOK_LOBLENGTH '(' TOK_LOB QUOTED_STRING ')'
$$ = lle;
}
/* type relx */
-exe_util_lob_extract : TOK_EXTRACT TOK_FILENAME'(' TOK_LOB QUOTED_STRING ')' TOK_LOCATION NUMERIC_LITERAL_EXACT_NO_SCALE
+exe_util_lob_extract : TOK_EXTRACT TOK_NAME '(' TOK_LOB QUOTED_STRING ')' TOK_LOCATION NUMERIC_LITERAL_EXACT_NO_SCALE
{
ConstValue * handle = new(PARSERHEAP()) ConstValue(*$5);
Int64 returnFilenameAddr = atoInt64($8->data());
@@ -15945,7 +15944,7 @@ exe_util_lob_extract : TOK_EXTRACT TOK_FILENAME'(' TOK_LOB QUOTED_STRING ')' TO
$$ = lle;
}
/* type relx */
-exe_util_lob_extract : TOK_EXTRACT TOK_FILENAME '(' TOK_LOB QUOTED_STRING ')'
+exe_util_lob_extract : TOK_EXTRACT TOK_NAME '(' TOK_LOB QUOTED_STRING ')'
{
ConstValue * handle = new(PARSERHEAP()) ConstValue(*$5);
http://git-wip-us.apache.org/repos/asf/trafodion/blob/5ff11692/core/sql/regress/executor/EXPECTED130
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/EXPECTED130 b/core/sql/regress/executor/EXPECTED130
index 5d274b6..fa69e88 100644
--- a/core/sql/regress/executor/EXPECTED130
+++ b/core/sql/regress/executor/EXPECTED130
@@ -63,9 +63,9 @@ C1
C1 C2
----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------
- 1 LOBH0000000200010599162824891000214319599162824908088805718212384027254904057020"TRAFODION"."LOB130"
- 2 LOBH0000000200010599162824891000214319599162824908906372018212384027264411730020"TRAFODION"."LOB130"
- 3 LOBH0000000200010599162824891000214319599162824909696994518212384027272355484020"TRAFODION"."LOB130"
+ 1 LOBH0000000200010492540128525785049519492540128543818753118212384275392041945020"TRAFODION"."LOB130"
+ 2 LOBH0000000200010492540128525785049519492540128544675708418212384275402066673020"TRAFODION"."LOB130"
+ 3 LOBH0000000200010492540128525785049519492540128545449436418212384275409949492020"TRAFODION"."LOB130"
--- 3 row(s) selected.
>>
@@ -668,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 'LOBH0000000200010599162824891010592019599162825008788792718212384028263167191020"TRAFODION"."LOB130"
' , 'tlob130_txt1.txt');
+>>extract lobtofile(LOB 'LOBH0000000200010492540128525796887519492540128660413814518212384276559256768020"TRAFODION"."LOB130"
' , 'tlob130_txt1.txt');
Success. Targetfile :tlob130_txt1.txt Length : 19
--- SQL operation complete.
@@ -684,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 'LOBH0000000200010599162824891010783319599162825017613184818212384028351739389020"TRAFODION"."LOB130"
' , 'tlob130_deep.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010492540128525797109219492540128672143163118212384276675380782020"TRAFODION"."LOB130"
' , 'tlob130_deep.jpg');
Success. Targetfile :tlob130_deep.jpg Length : 159018
--- SQL operation complete.
@@ -700,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 'LOBH0000000200010599162824891010783319599162825017613184818212384028351739389020"TRAFODION"."LOB130"
' , 'tlob130_anoush.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200010492540128525797109219492540128672143163118212384276675380782020"TRAFODION"."LOB130"
' , 'tlob130_anoush.jpg');
Success. Targetfile :tlob130_anoush.jpg Length : 230150
--- SQL operation complete.
@@ -861,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: LOBH0000000200010599162824891010783319599162825017613184818212384028351739389020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010492540128525797109219492540128672143163118212384276675380782020"TRAFODION"."LOB130"
Extracting LOB data length for the above handle...
LOB data length :230150
Extracting lob data into file in chunks ...
@@ -935,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 'LOBH0000000200020599162824891015449419599162825052851369318212384028704041429020"TRAFODION"."LOB130"
' , 'tlob130_deep2.jpg');
+>>extract lobtofile(LOB 'LOBH0000000200020492540128525802271019492540128707944124018212384277034197183020"TRAFODION"."LOB130"
' , 'tlob130_deep2.jpg');
Success. Targetfile :tlob130_deep2.jpg Length : 159018
--- SQL operation complete.
@@ -967,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 'LOBH0000000200030599162824891016047719599162825059292319718212384028768498788020"TRAFODION"."LOB130"
' , 'tlob130_anoush3.jpg',create,truncate);
+>>extract lobtofile(LOB 'LOBH0000000200030492540128525802824819492540128714305550118212384277098509118020"TRAFODION"."LOB130"
' , 'tlob130_anoush3.jpg',create,truncate);
Success. Targetfile :tlob130_anoush3.jpg Length : 230150
--- SQL operation complete.
@@ -1068,12 +1068,12 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT2
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910199914_0001
+ LOB Data File: LOBP_04925401285258067632_0001
LOB EOD : 0
LOB Used Len : 0
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910199914_0002
+ LOB Data File: LOBP_04925401285258067632_0002
LOB EOD : 0
LOB Used Len : 0
ColumnName : C4
@@ -1088,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_05991628248910199914_0001 0 0
-TRAFODION LOB130 TLOB130GT2 C3
/user/trafodion/lobs LOBP_05991628248910199914_0002 0 0
+TRAFODION LOB130 TLOB130GT2 C2
/user/trafodion/lobs LOBP_04925401285258067632_0001 0 0
+TRAFODION LOB130 TLOB130GT2 C3
/user/trafodion/lobs LOBP_04925401285258067632_0002 0 0
TRAFODION LOB130 TLOB130GT2 C4
External HDFS Location External HDFS File 0 0
--- 3 row(s) selected.
@@ -1110,17 +1110,17 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910195746_0001
+ LOB Data File: LOBP_04925401285258063762_0001
LOB EOD : 15
LOB Used Len : 15
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910195746_0002
+ LOB Data File: LOBP_04925401285258063762_0002
LOB EOD : 15
LOB Used Len : 15
ColumnName : C4
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910195746_0003
+ LOB Data File: LOBP_04925401285258063762_0003
LOB EOD : 45
LOB Used Len : 45
@@ -1130,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_05991628248910195746_0001 15 15
-TRAFODION LOB130 TLOB130GT C3
/user/trafodion/lobs LOBP_05991628248910195746_0002 15 15
-TRAFODION LOB130 TLOB130GT C4
/user/trafodion/lobs LOBP_05991628248910195746_0003 45 45
+TRAFODION LOB130 TLOB130GT C2
/user/trafodion/lobs LOBP_04925401285258063762_0001 15 15
+TRAFODION LOB130 TLOB130GT C3
/user/trafodion/lobs LOBP_04925401285258063762_0002 15 15
+TRAFODION LOB130 TLOB130GT C4
/user/trafodion/lobs LOBP_04925401285258063762_0003 45 45
--- 3 row(s) selected.
>>delete from tlob130gt where c1=2;
@@ -1149,17 +1149,17 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130GT
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910195746_0001
+ LOB Data File: LOBP_04925401285258063762_0001
LOB EOD : 30
LOB Used Len : 25
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910195746_0002
+ LOB Data File: LOBP_04925401285258063762_0002
LOB EOD : 31
LOB Used Len : 26
ColumnName : C4
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910195746_0003
+ LOB Data File: LOBP_04925401285258063762_0003
LOB EOD : 71
LOB Used Len : 56
@@ -1169,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_05991628248910195746_0001 30 25
-TRAFODION LOB130 TLOB130GT C3
/user/trafodion/lobs LOBP_05991628248910195746_0002 31 26
-TRAFODION LOB130 TLOB130GT C4
/user/trafodion/lobs LOBP_05991628248910195746_0003 71 56
+TRAFODION LOB130 TLOB130GT C2
/user/trafodion/lobs LOBP_04925401285258063762_0001 30 25
+TRAFODION LOB130 TLOB130GT C3
/user/trafodion/lobs LOBP_04925401285258063762_0002 31 26
+TRAFODION LOB130 TLOB130GT C4
/user/trafodion/lobs LOBP_04925401285258063762_0003 71 56
--- 3 row(s) selected.
>>
@@ -1200,16 +1200,16 @@ TRAFODION
>>
>>log;
>>sh rm t130_extract_command;
->>sh grep "^LOBH" TMP130 | sed "s/^/extract filename(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
+>>sh grep "^LOBH" TMP130 | sed "s/^/extract name(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
>>obey t130_extract_command;
->>extract filename(LOB 'LOBH0000000200020599162824891021556919599162825127466931518212384029450160806020"TRAFODION"."LOB130"
');
- LOB filename : /user/trafodion/lobs/LOBP_05991628248910215569_0002
+>>extract name(LOB 'LOBH0000000200020492540128525808308619492540128781847368018212384277774048076020"TRAFODION"."LOB130"
');
+ LOB filename : /user/trafodion/lobs/LOBP_04925401285258083086_0002
--- SQL operation complete.
>>sh rm t130_extract_command;
>>sh grep "^LOBH" TMP130 | sed "s/^/extract offset(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
>>obey t130_extract_command;
->>extract offset(LOB 'LOBH0000000200020599162824891021556919599162825127466931518212384029450160806020"TRAFODION"."LOB130"
');
+>>extract offset(LOB 'LOBH0000000200020492540128525808308619492540128781847368018212384277774048076020"TRAFODION"."LOB130"
');
LOB Offset : 43
--- SQL operation complete.
@@ -1362,12 +1362,12 @@ Lob Information for table: "TRAFODION".LOB130.TLOB130EXT
ColumnName : C2
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910215569_0001
+ LOB Data File: LOBP_04925401285258083086_0001
LOB EOD : 70
LOB Used Len : 42
ColumnName : C3
Lob Location : /user/trafodion/lobs
- LOB Data File: LOBP_05991628248910215569_0002
+ LOB Data File: LOBP_04925401285258083086_0002
LOB EOD : 125
LOB Used Len : 68
ColumnName : C4
@@ -1382,8 +1382,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_05991628248910215569_0001 70 42
-TRAFODION LOB130 TLOB130EXT C3
/user/trafodion/lobs LOBP_05991628248910215569_0002 125 68
+TRAFODION LOB130 TLOB130EXT C2
/user/trafodion/lobs LOBP_04925401285258083086_0001 70 42
+TRAFODION LOB130 TLOB130EXT C3
/user/trafodion/lobs LOBP_04925401285258083086_0002 125 68
TRAFODION LOB130 TLOB130EXT C4
External HDFS Location External HDFS File 0 0
--- 3 row(s) selected.
@@ -1400,7 +1400,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: LOBH0000000800030599162824891021556919599162825132831553518212384029503873802020"TRAFODION"."LOB130"
+LOB handle for c4: LOBH0000000800030492540128525808308619492540128786993345718212384277825571287020"TRAFODION"."LOB130"
Extracting LOB data length for the above handle...
LOB data length :19
Extracting lob data into file in chunks ...
@@ -1466,7 +1466,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: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010492540128525814570219492540128830098955718212384278256374414020"TRAFODION"."LOB130"
>>select lobtostring(c2,20) from t130lob5;
(EXPR)
@@ -1483,7 +1483,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: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010492540128525814570219492540128830098955718212384278256374414020"TRAFODION"."LOB130"
>>select lobtostring(c2,40) from t130lob5;
(EXPR)
@@ -1500,7 +1500,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: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010492540128525814570219492540128830098955718212384278256374414020"TRAFODION"."LOB130"
>>select lobtostring(c2,20) from t130lob5;
(EXPR)
@@ -1517,7 +1517,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: LOBH0000000200010599162824891027798519599162825175307181118212384029928539205020"TRAFODION"."LOB130"
+LOB handle for c2: LOBH0000000200010492540128525814570219492540128830098955718212384278256374414020"TRAFODION"."LOB130"
>>select lobtostring(c2,40) from t130lob5;
(EXPR)
@@ -1544,7 +1544,7 @@ zzzzzzzzzzzzzzzzzzzz
C2
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------
-LOBH0000000200010599162824891021556919599162825191632813218212384030091687654020"TRAFODION"."LOB130"
+LOBH0000000200010492540128525808308619492540128846057880518212384278416137106020"TRAFODION"."LOB130"
--- 1 row(s) selected.
>>-- following should return error since only external lobs will be allowed
@@ -1587,9 +1587,9 @@ LOBH0000000200010599162824891021556919599162825191632813218212384030091687654020
Tables in Schema TRAFODION.LOBSCH
=================================
-LOBDescChunks__05991628248910301630_0001
-LOBDescHandle__05991628248910301630_0001
-LOBMD__05991628248910301630
+LOBDescChunks__04925401285258169438_0001
+LOBDescHandle__04925401285258169438_0001
+LOBMD__04925401285258169438
SB_HISTOGRAMS
SB_HISTOGRAM_INTERVALS
SB_PERSISTENT_SAMPLES
http://git-wip-us.apache.org/repos/asf/trafodion/blob/5ff11692/core/sql/regress/executor/TEST130
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/TEST130 b/core/sql/regress/executor/TEST130
index 05e235f..72fea33 100755
--- a/core/sql/regress/executor/TEST130
+++ b/core/sql/regress/executor/TEST130
@@ -567,7 +567,7 @@ log;
log LOG130;
sh rm t130_extract_command;
-sh grep "^LOBH" TMP130 | sed "s/^/extract filename(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
+sh grep "^LOBH" TMP130 | sed "s/^/extract name(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
obey t130_extract_command;
sh rm t130_extract_command;
sh grep "^LOBH" TMP130 | sed "s/^/extract offset(LOB '/g" | sed "s/$/');/g" >> t130_extract_command;
[2/5] trafodion git commit: New syntax to retrieve the LOB HDFS
filename for both external and internal LOBs . Also added syntax to return
starting offset of a particular LOB handle in the LOB Hdfs data file.
Posted by sa...@apache.org.
New syntax to retrieve the LOB HDFS filename for both external and internal LOBs . Also added syntax to return starting offset of a particular LOB handle in the LOB Hdfs data file.
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/a96968e4
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/a96968e4
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/a96968e4
Branch: refs/heads/master
Commit: a96968e401666a99f36b1729597dab23dd87b74b
Parents: 4904711
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Wed Jan 31 18:35:48 2018 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Wed Jan 31 18:35:48 2018 +0000
----------------------------------------------------------------------
core/sql/cli/Cli.cpp | 45 +++++++++--
core/sql/comexe/ComTdbExeUtil.h | 15 +++-
core/sql/executor/ExExeUtil.h | 2 +
core/sql/executor/ExExeUtilLoad.cpp | 85 +++++++++++++++++++--
core/sql/exp/ExpLOBaccess.cpp | 71 ++++++++++++++++++
core/sql/exp/ExpLOBaccess.h | 2 +
core/sql/exp/ExpLOBenums.h | 4 +-
core/sql/exp/ExpLOBexternal.h | 5 +-
core/sql/exp/ExpLOBinterface.cpp | 115 +++++++++++++++++++++++++++++
core/sql/exp/ExpLOBinterface.h | 21 ++++++
core/sql/generator/GenRelExeUtil.cpp | 12 ++-
core/sql/optimizer/RelExeUtil.h | 3 +-
core/sql/parser/ParKeyWords.cpp | 1 +
core/sql/parser/sqlparser.y | 54 ++++++++++++++
core/sql/regress/executor/EXPECTED130 | 96 ++++++++++++++----------
core/sql/regress/executor/TEST130 | 17 +++++
16 files changed, 492 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/cli/Cli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Cli.cpp b/core/sql/cli/Cli.cpp
index a3ba081..d3892c6 100644
--- a/core/sql/cli/Cli.cpp
+++ b/core/sql/cli/Cli.cpp
@@ -9160,11 +9160,45 @@ Lng32 SQLCLI_LOBcliInterface
Int64 outlen = 0;Lng32 len = 0;
cliRC = cliInterface->executeImmediate(query,(char *)dataLen, &len, FALSE);
- if (inoutDescPartnKey)
- *inoutDescPartnKey = descPartnKey;
+ if (inoutDescPartnKey)
+ *inoutDescPartnKey = descPartnKey;
- if (inoutDescSyskey)
- *inoutDescSyskey = inDescSyskey;
+ if (inoutDescSyskey)
+ *inoutDescSyskey = inDescSyskey;
+
+ Lng32 saveCliErr = cliRC;
+
+
+ if (cliRC < 0)
+ {
+ cliInterface->retrieveSQLDiagnostics(myDiags);
+
+ goto error_return;
+ }
+
+ cliRC = saveCliErr;
+ }
+ break;
+ case LOB_CLI_SELECT_LOBOFFSET:
+ {
+
+ //Retrive offset of the first chunk
+ str_sprintf(query, "select c.dataOffset from table(ghost table %s) h, table(ghost table %s) c where h.descPartnKey = c.descPartnKey and h.syskey = c.descSyskey and h.descPartnKey = %ld and h.syskey = %ld and c.chunkNum = 1 for read committed access",
+ lobDescHandleName, lobDescChunksName,
+ descPartnKey, inDescSyskey);
+
+ lobDebugInfo(query,0,__LINE__,lobTrace);
+ // set parserflags to allow ghost table
+ currContext.setSqlParserFlags(0x1);
+
+
+ Lng32 len = 0;
+ cliRC = cliInterface->executeImmediate(query,(char *)dataOffset, &len, FALSE);
+ if (inoutDescPartnKey)
+ *inoutDescPartnKey = descPartnKey;
+
+ if (inoutDescSyskey)
+ *inoutDescSyskey = inDescSyskey;
@@ -9180,8 +9214,7 @@ Lng32 SQLCLI_LOBcliInterface
cliRC = saveCliErr;
}
- break;
-
+ break;
} // switch
// normal return. Fall down to deallocate of structures.
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/comexe/ComTdbExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbExeUtil.h b/core/sql/comexe/ComTdbExeUtil.h
index fd62fa5..fba4d7b 100644
--- a/core/sql/comexe/ComTdbExeUtil.h
+++ b/core/sql/comexe/ComTdbExeUtil.h
@@ -2798,7 +2798,8 @@ public:
enum ExtractToType
{
TO_FILE_, TO_STRING_, TO_BUFFER_, TO_EXTERNAL_FROM_STRING_,
- TO_EXTERNAL_FROM_FILE_, RETRIEVE_LENGTH_,NOOP_
+ TO_EXTERNAL_FROM_FILE_, RETRIEVE_LENGTH_, RETRIEVE_HDFSFILENAME_,
+ RETRIEVE_OFFSET_,NOOP_
};
@@ -2879,7 +2880,13 @@ public:
void setRetrieveLength(NABoolean v)
{(v ? flags_ |= RETRIEVE_LENGTH : flags_ &= ~RETRIEVE_LENGTH); };
NABoolean retrieveLength() { return (flags_ & RETRIEVE_LENGTH) != 0; };
-
+
+ void setRetrieveHdfsFileName(NABoolean v)
+ {(v ? flags_ |= RETRIEVE_HDFSFILENAME : flags_ &= ~RETRIEVE_HDFSFILENAME); };
+ NABoolean retrieveHdfsFileName() { return (flags_ & RETRIEVE_HDFSFILENAME) != 0; };
+ void setRetrieveOffset(NABoolean v)
+ {(v ? flags_ |= RETRIEVE_OFFSET : flags_ &= ~RETRIEVE_OFFSET); };
+ NABoolean retrieveOffset() { return (flags_ & RETRIEVE_OFFSET) != 0; };
void setErrorIfNotExists(NABoolean v)
{(v ? flags_ |= ERROR_IF_NOT_EXISTS : flags_ &= ~ERROR_IF_NOT_EXISTS); };
NABoolean errorIfNotExists() { return (flags_ & ERROR_IF_NOT_EXISTS) != 0; };
@@ -2913,7 +2920,9 @@ private:
ERROR_IF_NOT_EXISTS =0x0010,
ERROR_IF_EXISTS =0x0020,
TRUNCATE_EXISTING = 0x0040,
- APPEND_OR_CREATE = 0x0080
+ APPEND_OR_CREATE = 0x0080,
+ RETRIEVE_HDFSFILENAME= 0x0100,
+ RETRIEVE_OFFSET=0x0200
};
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/executor/ExExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtil.h b/core/sql/executor/ExExeUtil.h
index d26f660..403f2f8 100644
--- a/core/sql/executor/ExExeUtil.h
+++ b/core/sql/executor/ExExeUtil.h
@@ -2943,6 +2943,8 @@ public:
GET_NO_CHILD_HANDLE_,
GET_LOB_HANDLE_,
RETRIEVE_LOB_LENGTH_,
+ EXTRACT_HDFSFILENAME_,
+ RETRIEVE_OFFSET_,
EXTRACT_LOB_DATA_,
RETURN_STATUS_,
SEND_REQ_TO_CHILD_,
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/executor/ExExeUtilLoad.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilLoad.cpp b/core/sql/executor/ExExeUtilLoad.cpp
index 5d253cd..f311c64 100644
--- a/core/sql/executor/ExExeUtilLoad.cpp
+++ b/core/sql/executor/ExExeUtilLoad.cpp
@@ -3081,10 +3081,13 @@ short ExExeUtilLobExtractTcb::work()
NADELETEBASIC(lobColNameList[0],getHeap());
NADELETEBASIC(lobNumList,getHeap());
NADELETEBASIC(lobTypList,getHeap());
- if (lobTdb().getToType() == ComTdbExeUtilLobExtract::TO_BUFFER_)
+ if (lobTdb().getToType() == ComTdbExeUtilLobExtract::RETRIEVE_HDFSFILENAME_)
+ step_ = EXTRACT_HDFSFILENAME_;
+ else if (lobTdb().getToType() == ComTdbExeUtilLobExtract::RETRIEVE_OFFSET_)
+ step_ = RETRIEVE_OFFSET_;
+ else if (lobTdb().getToType() == ComTdbExeUtilLobExtract::TO_BUFFER_)
step_ = EXTRACT_LOB_DATA_;
- else
- if ((lobTdb().getToType() == ComTdbExeUtilLobExtract::RETRIEVE_LENGTH_) || (lobTdb().getToType() == ComTdbExeUtilLobExtract::TO_FILE_))
+ else if ((lobTdb().getToType() == ComTdbExeUtilLobExtract::RETRIEVE_LENGTH_) || (lobTdb().getToType() == ComTdbExeUtilLobExtract::TO_FILE_))
step_ = RETRIEVE_LOB_LENGTH_;
else
{
@@ -3101,6 +3104,42 @@ short ExExeUtilLobExtractTcb::work()
}
break;
}
+ case EXTRACT_HDFSFILENAME_:
+ {
+ Int16 flags;
+ Lng32 lobNum;
+ Int64 uid, inDescSyskey, descPartnKey;
+ short schNameLen;
+ char schName[1024]={'\0'};
+ char hdfsFileName[MAX_LOB_FILE_NAME_LEN]={'\0'};
+
+ Int32 fileNameLen = 0;
+ ExpLOBoper::extractFromLOBhandle(&flags, &lobType_, &lobNum, &uid,
+ &inDescSyskey, &descPartnKey,
+ &schNameLen, (char *)schName,
+ (char *)lobHandle_, (Lng32)lobHandleLen_);
+
+
+ lobName_ = ExpLOBoper::ExpGetLOBname(uid, lobNum, lobNameBuf_, 1000);
+ //Retrieve the filename of this lob using the handle info and return to the caller
+ retcode = ExpLOBInterfaceGetFileName( lobGlobs,
+ lobName_,
+ lobLoc_,
+ lobType_,
+ lobTdb().getLobHdfsServer(),
+ lobTdb().getLobHdfsPort(),
+ lobHandleLen_, lobHandle_,
+ hdfsFileName,
+ fileNameLen);
+
+ if ((lobTdb().getBufAddr() != -1) && (lobTdb().getBufAddr() != 0))
+ str_cpy_all((char *)lobTdb().getBufAddr(), (char *)&lobDataLen_,sizeof(Int64));
+ str_sprintf(statusString_," LOB filename : %s", hdfsFileName);
+ step_ = RETURN_STATUS_;
+ break;
+
+ }
+ break;
case RETRIEVE_LOB_LENGTH_ :
{
Int16 flags;
@@ -3108,6 +3147,7 @@ short ExExeUtilLobExtractTcb::work()
Int64 uid, inDescSyskey, descPartnKey;
short schNameLen;
char schName[1024];
+
ExpLOBoper::extractFromLOBhandle(&flags, &lobType_, &lobNum, &uid,
&inDescSyskey, &descPartnKey,
&schNameLen, (char *)schName,
@@ -3140,6 +3180,43 @@ short ExExeUtilLobExtractTcb::work()
break;
}
+ case RETRIEVE_OFFSET_ :
+ {
+ Int16 flags;
+ Lng32 lobNum;
+ Int64 uid, inDescSyskey, descPartnKey;
+ short schNameLen;
+ char schName[1024];
+ Int64 lobOffset = 0;
+
+ ExpLOBoper::extractFromLOBhandle(&flags, &lobType_, &lobNum, &uid,
+ &inDescSyskey, &descPartnKey,
+ &schNameLen, (char *)schName,
+ (char *)lobHandle_, (Lng32)lobHandleLen_);
+
+
+ lobName_ = ExpLOBoper::ExpGetLOBname(uid, lobNum, lobNameBuf_, 1000);
+
+ //Retrieve the total length of this lob using the handle info and return to the caller
+
+ retcode = ExpLOBInterfaceGetOffset( lobGlobs,
+ lobName_,
+ lobLoc_,
+ lobType_,
+ lobTdb().getLobHdfsServer(),
+ lobTdb().getLobHdfsPort(),
+ lobHandleLen_, lobHandle_,
+ lobOffset);
+
+
+ if ((lobTdb().getBufAddr() != -1) && (lobTdb().getBufAddr() != 0))
+ str_cpy_all((char *)lobTdb().getBufAddr(), (char *)&lobOffset,sizeof(Int64));
+ str_sprintf(statusString_," LOB Offset : %ld", lobOffset);
+ step_ = RETURN_STATUS_;
+ break;
+
+
+ }
case EXTRACT_LOB_DATA_ :
{
Int16 flags;
@@ -3223,8 +3300,6 @@ short ExExeUtilLobExtractTcb::work()
}
break;
-
-
case OPEN_CURSOR_:
{
retcode = ExpLOBInterfaceSelectCursor
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/exp/ExpLOBaccess.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBaccess.cpp b/core/sql/exp/ExpLOBaccess.cpp
index 6b13f86..df6b4ea 100644
--- a/core/sql/exp/ExpLOBaccess.cpp
+++ b/core/sql/exp/ExpLOBaccess.cpp
@@ -870,6 +870,67 @@ Ex_Lob_Error ExLob::getLength(char *handleIn, Int32 handleInLen,Int64 &outLobLen
}
return err;
}
+Ex_Lob_Error ExLob::getOffset(char *handleIn, Int32 handleInLen,Int64 &outLobOffset,LobsSubOper so, Int64 transId)
+{
+ char logBuf[4096];
+ Int32 cliErr = 0;
+ Ex_Lob_Error err=LOB_OPER_OK;
+ char *blackBox = new(getLobGlobalHeap()) char[MAX_LOB_FILE_NAME_LEN+6];
+ Int32 blackBoxLen = 0;
+ Int64 dummy = 0;
+ Int32 dummy2 = 0;
+ if (so != Lob_External_File)
+ {
+
+ cliErr = SQL_EXEC_LOBcliInterface(handleIn, handleInLen,NULL,NULL,NULL,NULL,LOB_CLI_SELECT_LOBOFFSET,LOB_CLI_ExecImmed,&outLobOffset,0, 0, 0,0,transId,lobTrace_);
+
+ if (cliErr < 0 ) {
+ str_sprintf(logBuf,"CLI SELECT_LOBOFFSET returned error %d",cliErr);
+ lobDebugInfo(logBuf, 0,__LINE__,lobTrace_);
+
+ return LOB_DESC_READ_ERROR;
+ }
+ }
+
+ return err;
+}
+
+Ex_Lob_Error ExLob::getFileName(char *handleIn, Int32 handleInLen, char *outFileName, Int32 &outFileLen , LobsSubOper so, Int64 transId)
+{
+ char logBuf[4096];
+ Int32 cliErr = 0;
+ Ex_Lob_Error err=LOB_OPER_OK;
+ Int64 dummy = 0;
+ Int32 dummy2 = 0;
+ if (so != Lob_External_File)
+ {
+ //Derive the filename from the LOB handle and return
+ str_cpy_all(outFileName, (char *)lobDataFile_.data(),lobDataFile_.length());
+ }
+ else
+ {
+ //Get the lob external filename from the descriptor file
+ cliErr = SQL_EXEC_LOBcliInterface(handleIn,
+ handleInLen,
+ (char *)outFileName, &outFileLen,
+ NULL, 0,
+ LOB_CLI_SELECT_UNIQUE, LOB_CLI_ExecImmed,
+ &dummy, &dummy,
+ &dummy, &dummy,
+ 0,
+ transId,lobTrace_);
+ if (cliErr < 0 ) {
+ str_sprintf(logBuf,"CLI SELECT_FILENAME returned error %d",cliErr);
+ lobDebugInfo(logBuf, 0,__LINE__,lobTrace_);
+
+ return LOB_DESC_READ_ERROR;
+ }
+
+ }
+ return err;
+}
+
+
Ex_Lob_Error ExLob::writeDesc(Int64 &sourceLen, char *source, LobsSubOper subOper, Int64 &descNumOut, Int64 &operLen, Int64 lobMaxSize,Int64 lobMaxChunkMemSize,Int64 lobGCLimit, char * handleIn, Int32 handleInLen, char *blackBox, Int32 *blackBoxLen, char *handleOut, Int32 &handleOutLen, Int64 xnId, void *lobGlobals)
{
Ex_Lob_Error err=LOB_OPER_OK;
@@ -2744,6 +2805,16 @@ Ex_Lob_Error ExLobsOper (
err = lobPtr->getLength(handleIn, handleInLen,retOperLen,subOperation,transId);
}
break;
+ case Lob_GetOffset:
+ {
+ err = lobPtr->getOffset(handleIn, handleInLen,retOperLen,subOperation,transId);
+ }
+ break;
+ case Lob_GetFileName:
+ {
+ err = lobPtr->getFileName(handleIn, handleInLen, (char *)blackBox, blackBoxLen, subOperation, transId);
+ }
+ break;
case Lob_ReadDesc: // read desc only. Needed for pass thru.
err = lobPtr->getDesc(desc,handleIn,handleInLen,(char *)blackBox, &blackBoxLen,handleOut,handleOutLen,transId);
retOperLen = 0;
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/exp/ExpLOBaccess.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBaccess.h b/core/sql/exp/ExpLOBaccess.h
index 9604aab..47f06df 100644
--- a/core/sql/exp/ExpLOBaccess.h
+++ b/core/sql/exp/ExpLOBaccess.h
@@ -497,6 +497,8 @@ class ExLob : public NABasicObject
ExLobStats *getStats() { return &stats_; }
NAHeap *getLobGlobalHeap() { return lobGlobalHeap_;}
Ex_Lob_Error getLength(char *handleIn, Int32 handleInLen,Int64 &outLobLen,LobsSubOper so, Int64 transId);
+ Ex_Lob_Error getOffset(char *handleIn, Int32 handleInLen,Int64 &outOffset,LobsSubOper so, Int64 transId);
+ Ex_Lob_Error getFileName(char *handleIn, Int32 handleInLen, char *outFileName, Int32 &outFileLen, LobsSubOper so, Int64 transId);
// ExLobRequest *getRequest() { return &request_; }
//The next 2 functions are not active at this point. They serve as an example
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/exp/ExpLOBenums.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBenums.h b/core/sql/exp/ExpLOBenums.h
index d04b080..9c14daf 100644
--- a/core/sql/exp/ExpLOBenums.h
+++ b/core/sql/exp/ExpLOBenums.h
@@ -260,7 +260,9 @@ typedef enum {
Lob_PerformGC,
Lob_RestoreLobDataFile,
Lob_PurgeBackupLobDataFile,
- Lob_GetLength
+ Lob_GetLength,
+ Lob_GetFileName,
+ Lob_GetOffset
} LobsOper;
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/exp/ExpLOBexternal.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBexternal.h b/core/sql/exp/ExpLOBexternal.h
index 1bfd33e..657ef12 100644
--- a/core/sql/exp/ExpLOBexternal.h
+++ b/core/sql/exp/ExpLOBexternal.h
@@ -96,7 +96,10 @@ enum LOBcliQueryType
LOB_CLI_SELECT_LOBLENGTH,
// performs GC of lob file
- LOB_CLI_PERFORM_LOB_GC
+ LOB_CLI_PERFORM_LOB_GC,
+
+ //returns beginning offset of a lob
+ LOB_CLI_SELECT_LOBOFFSET
};
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/exp/ExpLOBinterface.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBinterface.cpp b/core/sql/exp/ExpLOBinterface.cpp
index 718538e..8e73864 100644
--- a/core/sql/exp/ExpLOBinterface.cpp
+++ b/core/sql/exp/ExpLOBinterface.cpp
@@ -1050,6 +1050,121 @@ Lng32 ExpLOBInterfaceGetLobLength(ExLobGlobals * exLobGlob,
return LOB_ACCESS_SUCCESS;
}
+
+Lng32 ExpLOBInterfaceGetOffset(ExLobGlobals * exLobGlob,
+ char * lobName,
+ char * lobLoc,
+ Lng32 lobType,
+ char * lobHdfsServer,
+ Lng32 lobHdfsPort,
+ Int32 handleLen,
+ char * lobHandle,
+ Int64 &outLobOffset
+
+ )
+{
+ Ex_Lob_Error err;
+
+ Int64 dummyParam = 0;
+ Int32 dummyParam2 = 0;
+ Ex_Lob_Error status;
+ Int64 cliError=0;
+
+ LobsOper lo;
+ LobsSubOper so;
+ LobsStorage ls = (LobsStorage)lobType;
+ if (ls == Lob_External_HDFS_File)
+ {
+ so = Lob_External_File;
+ outLobOffset = 0;
+ return LOB_ACCESS_SUCCESS;
+ }
+ else
+ so = Lob_Buffer;
+ err = ExLobsOper(lobName,
+ lobHandle, handleLen,
+ lobHdfsServer, lobHdfsPort,
+ NULL, dummyParam2,
+ dummyParam, dummyParam,
+ outLobOffset,
+ dummyParam, dummyParam,
+ status, cliError,
+ lobLoc, ls, //Lob_HDFS_File,
+ NULL, 0,
+ dummyParam,NULL,
+ Lob_GetOffset,
+ so,
+ TRUE,
+ exLobGlob,
+ 0,
+ 0, 0,0,0,0,0,0,0,
+ 0
+ );
+
+ if (err != LOB_OPER_OK)
+ {
+ return -err;
+ }
+
+ return LOB_ACCESS_SUCCESS;
+}
+
+Lng32 ExpLOBInterfaceGetFileName(ExLobGlobals * exLobGlob,
+ char * lobName,
+ char * lobLoc,
+ Lng32 lobType,
+ char * lobHdfsServer,
+ Lng32 lobHdfsPort,
+ Int32 handleLen,
+ char * lobHandle,
+ char * fileName,
+ Int32 &outFileLen
+
+ )
+{
+ Ex_Lob_Error err;
+
+ Int64 dummyParam = 0;
+ Int32 dummyParam2 = 0;
+ Ex_Lob_Error status;
+ Int64 cliError=0;
+ Int64 hdfsFileLen = 0;
+ LobsOper lo;
+ LobsSubOper so;
+ LobsStorage ls = (LobsStorage)lobType;
+ if (ls == Lob_External_HDFS_File)
+ so = Lob_External_File;
+ else
+ so = Lob_Buffer;
+ err = ExLobsOper(lobName,
+ lobHandle, handleLen,
+ lobHdfsServer, lobHdfsPort,
+ NULL, dummyParam2,
+ dummyParam, dummyParam,
+ dummyParam,
+ dummyParam, dummyParam,
+ status, cliError,
+ lobLoc, ls, //Lob_HDFS_File,
+ NULL, 0,
+ dummyParam,NULL,
+ Lob_GetFileName,
+ so,
+ TRUE,
+ exLobGlob,
+ 0,
+ fileName, outFileLen,
+ 0,0,0,0,0,0,
+ 0
+ );
+
+ if (err != LOB_OPER_OK)
+ {
+ return -err;
+ }
+
+
+ return LOB_ACCESS_SUCCESS;
+}
Lng32 ExpLOBinterfaceStats(
ExLobGlobals * exLobGlob,
ExLobStats * lobStats,
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/exp/ExpLOBinterface.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBinterface.h b/core/sql/exp/ExpLOBinterface.h
index fa4694d..c8a8591 100644
--- a/core/sql/exp/ExpLOBinterface.h
+++ b/core/sql/exp/ExpLOBinterface.h
@@ -342,7 +342,28 @@ Lng32 ExpLOBInterfaceGetLobLength(ExLobGlobals * exLobGlob,
Int64 &outLobLen
);
+Lng32 ExpLOBInterfaceGetFileName(ExLobGlobals * exLobGlob,
+ char * lobName,
+ char * lobLoc,
+ Lng32 lobType,
+ char * lobHdfsServer,
+ Lng32 lobHdfsPort,
+ Int32 handleLen,
+ char * lobHandle,
+ char * outFileName,
+ Int32 &outFileLen);
+Lng32 ExpLOBInterfaceGetOffset(ExLobGlobals * exLobGlob,
+ char * lobName,
+ char * lobLoc,
+ Lng32 lobType,
+ char * lobHdfsServer,
+ Lng32 lobHdfsPort,
+ Int32 handleLen,
+ char * lobHandle,
+ Int64 &outLobOffset
+
+ );
/*
class HdfsFileInfo
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/generator/GenRelExeUtil.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelExeUtil.cpp b/core/sql/generator/GenRelExeUtil.cpp
index 21275d1..c667f99 100644
--- a/core/sql/generator/GenRelExeUtil.cpp
+++ b/core/sql/generator/GenRelExeUtil.cpp
@@ -4165,11 +4165,13 @@ short ExeUtilLobExtract::codeGen(Generator * generator)
handleLen,
(toType_ == TO_BUFFER_ ? ComTdbExeUtilLobExtract::TO_BUFFER_ :
(toType_ == RETRIEVE_LENGTH_ ? ComTdbExeUtilLobExtract::RETRIEVE_LENGTH_ :
+ (toType_ == RETRIEVE_HDFSFILENAME_ ? ComTdbExeUtilLobExtract::RETRIEVE_HDFSFILENAME_ :
+ (toType_ == RETRIEVE_OFFSET_ ? ComTdbExeUtilLobExtract::RETRIEVE_OFFSET_ :
(toType_ == TO_STRING_ ? ComTdbExeUtilLobExtract::TO_STRING_ :
(toType_ == TO_FILE_ ? ComTdbExeUtilLobExtract::TO_FILE_ :
(toType_ == TO_EXTERNAL_FROM_STRING_ ? ComTdbExeUtilLobExtract::TO_EXTERNAL_FROM_STRING_ :
(toType_ == TO_EXTERNAL_FROM_FILE_ ? ComTdbExeUtilLobExtract::TO_EXTERNAL_FROM_FILE_ :
- ComTdbExeUtilLobExtract::NOOP_)))))),
+ ComTdbExeUtilLobExtract::NOOP_)))))))),
bufAddr_,
extractSizeAddr_,
intParam_,
@@ -4226,6 +4228,14 @@ if (handleInStringFormat_)
{
exe_util_tdb->setRetrieveLength(TRUE);
}
+ if (toType_ == RETRIEVE_HDFSFILENAME_)
+ {
+ exe_util_tdb->setRetrieveHdfsFileName(TRUE);
+ }
+ if (toType_ == RETRIEVE_OFFSET_)
+ {
+ exe_util_tdb->setRetrieveOffset(TRUE);
+ }
exe_util_tdb->setTotalBufSize(CmpCommon::getDefaultNumeric(LOB_MAX_CHUNK_MEM_SIZE)*1024*1024);
generator->setCriDesc(givenDesc, Generator::DOWN);
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/optimizer/RelExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExeUtil.h b/core/sql/optimizer/RelExeUtil.h
index db5855a..73d6ed7 100644
--- a/core/sql/optimizer/RelExeUtil.h
+++ b/core/sql/optimizer/RelExeUtil.h
@@ -2089,7 +2089,8 @@ public:
enum ExtractToType
{
TO_FILE_, TO_STRING_, TO_BUFFER_, TO_EXTERNAL_FROM_STRING_,
- TO_EXTERNAL_FROM_FILE_, RETRIEVE_LENGTH_, NOOP_
+ TO_EXTERNAL_FROM_FILE_, RETRIEVE_LENGTH_, RETRIEVE_HDFSFILENAME_,
+ RETRIEVE_OFFSET_,NOOP_
};
enum ExtractFileActionType
{
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ParKeyWords.cpp b/core/sql/parser/ParKeyWords.cpp
index f604c23..9b07316 100644
--- a/core/sql/parser/ParKeyWords.cpp
+++ b/core/sql/parser/ParKeyWords.cpp
@@ -428,6 +428,7 @@ ParKeyWord ParKeyWords::keyWords_[] = {
ParKeyWord("FEATURE_VERSION_INFO",TOK_FEATURE_VERSION_INFO, NONRESTOKEN_),
ParKeyWord("FETCH", TOK_FETCH, ANS_|RESWORD_|MPWORD_),
ParKeyWord("FILE", TOK_FILE, NONRESTOKEN_),
+ ParKeyWord("FILENAME", TOK_FILENAME, NONRESTOKEN_),
ParKeyWord("FILETOLOB", TOK_FILETOLOB, NONRESTOKEN_),
ParKeyWord("FILETOEXTERNAL", TOK_FILETOEXTERNAL, NONRESTOKEN_),
ParKeyWord("FINAL", TOK_FINAL, NONRESTOKEN_),
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a96968e4/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 2c805da..0c3cddf 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -750,6 +750,7 @@ static void enableMakeQuotedStringISO88591Mechanism()
%token <tokval> TOK_EXTERNALTOSTRING
%token <tokval> TOK_EMPTY_BLOB
%token <tokval> TOK_EMPTY_CLOB
+%token <tokval> TOK_FILENAME
%token <tokval> TOK_INSERT
%token <tokval> TOK_INSERT_ONLY
%token <tokval> TOK_INS
@@ -15930,6 +15931,59 @@ exe_util_lob_extract : TOK_EXTRACT TOK_LOBLENGTH '(' TOK_LOB QUOTED_STRING ')'
$$ = lle;
}
+/* type relx */
+exe_util_lob_extract : TOK_EXTRACT TOK_FILENAME'(' TOK_LOB QUOTED_STRING ')' TOK_LOCATION NUMERIC_LITERAL_EXACT_NO_SCALE
+ {
+ ConstValue * handle = new(PARSERHEAP()) ConstValue(*$5);
+ Int64 returnFilenameAddr = atoInt64($8->data());
+ ExeUtilLobExtract * lle =
+ new (PARSERHEAP ()) ExeUtilLobExtract
+ (handle,
+ ExeUtilLobExtract::RETRIEVE_HDFSFILENAME_,
+ returnFilenameAddr, 0, 0, 0);
+
+ $$ = lle;
+ }
+/* type relx */
+exe_util_lob_extract : TOK_EXTRACT TOK_FILENAME '(' TOK_LOB QUOTED_STRING ')'
+ {
+ ConstValue * handle = new(PARSERHEAP()) ConstValue(*$5);
+
+ ExeUtilLobExtract * lle =
+ new (PARSERHEAP ()) ExeUtilLobExtract
+ (handle,
+ ExeUtilLobExtract::RETRIEVE_HDFSFILENAME_,
+ -1, 0, 0, 0);
+
+ $$ = lle;
+ }
+/* type relx */
+exe_util_lob_extract : TOK_EXTRACT TOK_OFFSET'(' TOK_LOB QUOTED_STRING ')' TOK_LOCATION NUMERIC_LITERAL_EXACT_NO_SCALE
+ {
+ ConstValue * handle = new(PARSERHEAP()) ConstValue(*$5);
+ Int64 returnOffsetAddr = atoInt64($8->data());
+ ExeUtilLobExtract * lle =
+ new (PARSERHEAP ()) ExeUtilLobExtract
+ (handle,
+ ExeUtilLobExtract::RETRIEVE_OFFSET_,
+ returnOffsetAddr, 0, 0, 0);
+
+ $$ = lle;
+ }
+/* type relx */
+exe_util_lob_extract : TOK_EXTRACT TOK_OFFSET '(' TOK_LOB QUOTED_STRING ')'
+ {
+ ConstValue * handle = new(PARSERHEAP()) ConstValue(*$5);
+
+ ExeUtilLobExtract * lle =
+ new (PARSERHEAP ()) ExeUtilLobExtract
+ (handle,
+ ExeUtilLobExtract::RETRIEVE_OFFSET_,
+ -1, 0, 0, 0);
+
+ $$ = lle;
+ }
+
| TOK_EXTRACT TOK_LOBTOSTRING '(' TOK_LOB QUOTED_STRING ',' TOK_SIZE NUMERIC_LITERAL_EXACT_NO_SCALE ')'
{
[4/5] trafodion git commit: Review fixes
Posted by sa...@apache.org.
Review fixes
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/efaebe17
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/efaebe17
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/efaebe17
Branch: refs/heads/master
Commit: efaebe17c964c8c4674ea1d1fa1110ac0daac344
Parents: 5ff1169
Author: Sandhya Sundaresan <sa...@apache.org>
Authored: Wed Feb 7 22:08:58 2018 +0000
Committer: Sandhya Sundaresan <sa...@apache.org>
Committed: Wed Feb 7 22:08:58 2018 +0000
----------------------------------------------------------------------
core/sql/cli/Cli.cpp | 2 ++
core/sql/exp/ExpLOBaccess.cpp | 3 +--
2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/efaebe17/core/sql/cli/Cli.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Cli.cpp b/core/sql/cli/Cli.cpp
index d3892c6..41e9bf7 100644
--- a/core/sql/cli/Cli.cpp
+++ b/core/sql/cli/Cli.cpp
@@ -9160,6 +9160,7 @@ Lng32 SQLCLI_LOBcliInterface
Int64 outlen = 0;Lng32 len = 0;
cliRC = cliInterface->executeImmediate(query,(char *)dataLen, &len, FALSE);
+ currContext.resetSqlParserFlags(0x1);
if (inoutDescPartnKey)
*inoutDescPartnKey = descPartnKey;
@@ -9194,6 +9195,7 @@ Lng32 SQLCLI_LOBcliInterface
Lng32 len = 0;
cliRC = cliInterface->executeImmediate(query,(char *)dataOffset, &len, FALSE);
+ currContext.resetSqlParserFlags(0x1);
if (inoutDescPartnKey)
*inoutDescPartnKey = descPartnKey;
http://git-wip-us.apache.org/repos/asf/trafodion/blob/efaebe17/core/sql/exp/ExpLOBaccess.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpLOBaccess.cpp b/core/sql/exp/ExpLOBaccess.cpp
index df6b4ea..b5a427b 100644
--- a/core/sql/exp/ExpLOBaccess.cpp
+++ b/core/sql/exp/ExpLOBaccess.cpp
@@ -875,8 +875,7 @@ Ex_Lob_Error ExLob::getOffset(char *handleIn, Int32 handleInLen,Int64 &outLobOff
char logBuf[4096];
Int32 cliErr = 0;
Ex_Lob_Error err=LOB_OPER_OK;
- char *blackBox = new(getLobGlobalHeap()) char[MAX_LOB_FILE_NAME_LEN+6];
- Int32 blackBoxLen = 0;
+
Int64 dummy = 0;
Int32 dummy2 = 0;
if (so != Lob_External_File)