This is an automated email from the ASF dual-hosted git repository. sankarh pushed a commit to branch branch-3 in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/branch-3 by this push: new 55f59d29303 HIVE-27544: Backport of HIVE-22120: Fix wrong results/ArrayOutOfBound exception in left outer map joins on specific boundary conditions 55f59d29303 is described below commit 55f59d293035b032df440c2031b23b9de32e0181 Author: Aman Raj <104416558+amanraj2...@users.noreply.github.com> AuthorDate: Fri Aug 18 19:50:42 2023 +0530 HIVE-27544: Backport of HIVE-22120: Fix wrong results/ArrayOutOfBound exception in left outer map joins on specific boundary conditions Signed-off-by: Sankar Hariappan <sank...@apache.org> Closes (#4527) --- data/files/tjoin3.txt | 1050 ++++++++++++++++ data/files/tjoin4.txt | 4 + .../test/resources/testconfiguration.properties | 1 + .../hive/ql/exec/vector/VectorLimitOperator.java | 1 - .../VectorMapJoinOuterGenerateResultOperator.java | 1 + .../clientpositive/vector_left_outer_join3.q | 28 + .../llap/vector_left_outer_join3.q.out | 1329 ++++++++++++++++++++ 7 files changed, 2413 insertions(+), 1 deletion(-) diff --git a/data/files/tjoin3.txt b/data/files/tjoin3.txt new file mode 100644 index 00000000000..e11df39cf35 --- /dev/null +++ b/data/files/tjoin3.txt @@ -0,0 +1,1050 @@ +testname|1|N +testname|2|N +testname|3|Y +testname|4|N +testname|5|Y +testname|6|Y +testname|7|Y +testname|8|Y +testname|9|N +testname|10|N +testname|11|N +testname|12|N +testname|13|Y +testname|14|N +testname|15|Y +testname|16|Y +testname|17|Y +testname|18|Y +testname|19|N +testname|20|N +testname|21|N +testname|22|N +testname|23|Y +testname|24|N +testname|25|Y +testname|26|Y +testname|27|Y +testname|28|Y +testname|29|N +testname|30|N +testname|31|N +testname|32|N +testname|33|Y +testname|34|N +testname|35|Y +testname|36|Y +testname|37|Y +testname|38|Y +testname|39|N +testname|40|N +testname|41|N +testname|42|N +testname|43|Y +testname|44|N +testname|45|Y +testname|46|Y +testname|47|Y +testname|48|Y +testname|49|N +testname|50|N +testname|51|N +testname|52|N +testname|53|Y +testname|54|N +testname|55|Y +testname|56|Y +testname|57|Y +testname|58|Y +testname|59|N +testname|60|N +testname|61|N +testname|62|N +testname|63|Y +testname|64|N +testname|65|Y +testname|66|Y +testname|67|Y +testname|68|Y +testname|69|N +testname|70|N +testname|71|N +testname|72|N +testname|73|Y +testname|74|N +testname|75|Y +testname|76|Y +testname|77|Y +testname|78|Y +testname|79|N +testname|80|N +testname|81|N +testname|82|N +testname|83|Y +testname|84|N +testname|85|Y +testname|86|Y +testname|87|Y +testname|88|Y +testname|89|N +testname|90|N +testname|91|N +testname|92|N +testname|93|Y +testname|94|N +testname|95|Y +testname|96|Y +testname|97|Y +testname|98|Y +testname|99|N +testname|100|N +testname|101|N +testname|102|N +testname|103|Y +testname|104|N +testname|105|Y +testname|106|Y +testname|107|Y +testname|108|Y +testname|109|N +testname|110|N +testname|111|N +testname|112|N +testname|113|Y +testname|114|N +testname|115|Y +testname|116|Y +testname|117|Y +testname|118|Y +testname|119|N +testname|120|N +testname|121|N +testname|122|N +testname|123|Y +testname|124|N +testname|125|Y +testname|126|Y +testname|127|Y +testname|128|Y +testname|129|N +testname|130|N +testname|131|N +testname|132|N +testname|133|Y +testname|134|N +testname|135|Y +testname|136|Y +testname|137|Y +testname|138|Y +testname|139|N +testname|140|N +testname|141|N +testname|142|N +testname|143|Y +testname|144|N +testname|145|Y +testname|146|Y +testname|147|Y +testname|148|Y +testname|149|N +testname|150|N +testname|151|N +testname|152|N +testname|153|Y +testname|154|N +testname|155|Y +testname|156|Y +testname|157|Y +testname|158|Y +testname|159|N +testname|160|N +testname|161|N +testname|162|N +testname|163|Y +testname|164|N +testname|165|Y +testname|166|Y +testname|167|Y +testname|168|Y +testname|169|N +testname|170|N +testname|171|N +testname|172|N +testname|173|Y +testname|174|N +testname|175|Y +testname|176|Y +testname|177|Y +testname|178|Y +testname|179|N +testname|180|N +testname|181|N +testname|182|N +testname|183|Y +testname|184|N +testname|185|Y +testname|186|Y +testname|187|Y +testname|188|Y +testname|189|N +testname|190|N +testname|191|N +testname|192|N +testname|193|Y +testname|194|N +testname|195|Y +testname|196|Y +testname|197|Y +testname|198|Y +testname|199|N +testname|200|N +testname|201|N +testname|202|N +testname|203|Y +testname|204|N +testname|205|Y +testname|206|Y +testname|207|Y +testname|208|Y +testname|209|N +testname|210|N +testname|211|N +testname|212|N +testname|213|Y +testname|214|N +testname|215|Y +testname|216|Y +testname|217|Y +testname|218|Y +testname|219|N +testname|220|N +testname|221|N +testname|222|N +testname|223|Y +testname|224|N +testname|225|Y +testname|226|Y +testname|227|Y +testname|228|Y +testname|229|N +testname|230|N +testname|231|N +testname|232|N +testname|233|Y +testname|234|N +testname|235|Y +testname|236|Y +testname|237|Y +testname|238|Y +testname|239|N +testname|240|N +testname|241|N +testname|242|N +testname|243|Y +testname|244|N +testname|245|Y +testname|246|Y +testname|247|Y +testname|248|Y +testname|249|N +testname|250|N +testname|251|N +testname|252|N +testname|253|Y +testname|254|N +testname|255|Y +testname|256|Y +testname|257|Y +testname|258|Y +testname|259|N +testname|260|N +testname|261|N +testname|262|N +testname|263|Y +testname|264|N +testname|265|Y +testname|266|Y +testname|267|Y +testname|268|Y +testname|269|N +testname|270|N +testname|271|N +testname|272|N +testname|273|Y +testname|274|N +testname|275|Y +testname|276|Y +testname|277|Y +testname|278|Y +testname|279|N +testname|280|N +testname|281|N +testname|282|N +testname|283|Y +testname|284|N +testname|285|Y +testname|286|Y +testname|287|Y +testname|288|Y +testname|289|N +testname|290|N +testname|291|N +testname|292|N +testname|293|Y +testname|294|N +testname|295|Y +testname|296|Y +testname|297|Y +testname|298|Y +testname|299|N +testname|300|N +testname|301|N +testname|302|N +testname|303|Y +testname|304|N +testname|305|Y +testname|306|Y +testname|307|Y +testname|308|Y +testname|309|N +testname|310|N +testname|311|N +testname|312|N +testname|313|Y +testname|314|N +testname|315|Y +testname|316|Y +testname|317|Y +testname|318|Y +testname|319|N +testname|320|N +testname|321|N +testname|322|N +testname|323|Y +testname|324|N +testname|325|Y +testname|326|Y +testname|327|Y +testname|328|Y +testname|329|N +testname|330|N +testname|331|N +testname|332|N +testname|333|Y +testname|334|N +testname|335|Y +testname|336|Y +testname|337|Y +testname|338|Y +testname|339|N +testname|340|N +testname|341|N +testname|342|N +testname|343|Y +testname|344|N +testname|345|Y +testname|346|Y +testname|347|Y +testname|348|Y +testname|349|N +testname|350|N +testname|351|N +testname|352|N +testname|353|Y +testname|354|N +testname|355|Y +testname|356|Y +testname|357|Y +testname|358|Y +testname|359|N +testname|360|N +testname|361|N +testname|362|N +testname|363|Y +testname|364|N +testname|365|Y +testname|366|Y +testname|367|Y +testname|368|Y +testname|369|N +testname|370|N +testname|371|N +testname|372|N +testname|373|Y +testname|374|N +testname|375|Y +testname|376|Y +testname|377|Y +testname|378|Y +testname|379|N +testname|380|N +testname|381|N +testname|382|N +testname|383|Y +testname|384|N +testname|385|Y +testname|386|Y +testname|387|Y +testname|388|Y +testname|389|N +testname|390|N +testname|391|N +testname|392|N +testname|393|Y +testname|394|N +testname|395|Y +testname|396|Y +testname|397|Y +testname|398|Y +testname|399|N +testname|400|N +testname|401|N +testname|402|N +testname|403|Y +testname|404|N +testname|405|Y +testname|406|Y +testname|407|Y +testname|408|Y +testname|409|N +testname|410|N +testname|411|N +testname|412|N +testname|413|Y +testname|414|N +testname|415|Y +testname|416|Y +testname|417|Y +testname|418|Y +testname|419|N +testname|420|N +testname|421|N +testname|422|N +testname|423|Y +testname|424|N +testname|425|Y +testname|426|Y +testname|427|Y +testname|428|Y +testname|429|N +testname|430|N +testname|431|N +testname|432|N +testname|433|Y +testname|434|N +testname|435|Y +testname|436|Y +testname|437|Y +testname|438|Y +testname|439|N +testname|440|N +testname|441|N +testname|442|N +testname|443|Y +testname|444|N +testname|445|Y +testname|446|Y +testname|447|Y +testname|448|Y +testname|449|N +testname|450|N +testname|451|N +testname|452|N +testname|453|Y +testname|454|N +testname|455|Y +testname|456|Y +testname|457|Y +testname|458|Y +testname|459|N +testname|460|N +testname|461|N +testname|462|N +testname|463|Y +testname|464|N +testname|465|Y +testname|466|Y +testname|467|Y +testname|468|Y +testname|469|N +testname|470|N +testname|471|N +testname|472|N +testname|473|Y +testname|474|N +testname|475|Y +testname|476|Y +testname|477|Y +testname|478|Y +testname|479|N +testname|480|N +testname|481|N +testname|482|N +testname|483|Y +testname|484|N +testname|485|Y +testname|486|Y +testname|487|Y +testname|488|Y +testname|489|N +testname|490|N +testname|491|N +testname|492|N +testname|493|Y +testname|494|N +testname|495|Y +testname|496|Y +testname|497|Y +testname|498|Y +testname|499|N +testname|500|N +testname|501|N +testname|502|N +testname|503|Y +testname|504|N +testname|505|Y +testname|506|Y +testname|507|Y +testname|508|Y +testname|509|N +testname|510|N +testname|511|N +testname|512|N +testname|513|Y +testname|514|N +testname|515|Y +testname|516|Y +testname|517|Y +testname|518|Y +testname|519|N +testname|520|N +testname|521|N +testname|522|N +testname|523|Y +testname|524|N +testname|525|Y +testname|526|Y +testname|527|Y +testname|528|Y +testname|529|N +testname|530|N +testname|531|N +testname|532|N +testname|533|Y +testname|534|N +testname|535|Y +testname|536|Y +testname|537|Y +testname|538|Y +testname|539|N +testname|540|N +testname|541|N +testname|542|N +testname|543|Y +testname|544|N +testname|545|Y +testname|546|Y +testname|547|Y +testname|548|Y +testname|549|N +testname|550|N +testname|551|N +testname|552|N +testname|553|Y +testname|554|N +testname|555|Y +testname|556|Y +testname|557|Y +testname|558|Y +testname|559|N +testname|560|N +testname|561|N +testname|562|N +testname|563|Y +testname|564|N +testname|565|Y +testname|566|Y +testname|567|Y +testname|568|Y +testname|569|N +testname|570|N +testname|571|N +testname|572|N +testname|573|Y +testname|574|N +testname|575|Y +testname|576|Y +testname|577|Y +testname|578|Y +testname|579|N +testname|580|N +testname|581|N +testname|582|N +testname|583|Y +testname|584|N +testname|585|Y +testname|586|Y +testname|587|Y +testname|588|Y +testname|589|N +testname|590|N +testname|591|N +testname|592|N +testname|593|Y +testname|594|N +testname|595|Y +testname|596|Y +testname|597|Y +testname|598|Y +testname|599|N +testname|600|N +testname|601|N +testname|602|N +testname|603|Y +testname|604|N +testname|605|Y +testname|606|Y +testname|607|Y +testname|608|Y +testname|609|N +testname|610|N +testname|611|N +testname|612|N +testname|613|Y +testname|614|N +testname|615|Y +testname|616|Y +testname|617|Y +testname|618|Y +testname|619|N +testname|620|N +testname|621|N +testname|622|N +testname|623|Y +testname|624|N +testname|625|Y +testname|626|Y +testname|627|Y +testname|628|Y +testname|629|N +testname|630|N +testname|631|N +testname|632|N +testname|633|Y +testname|634|N +testname|635|Y +testname|636|Y +testname|637|Y +testname|638|Y +testname|639|N +testname|640|N +testname|641|N +testname|642|N +testname|643|Y +testname|644|N +testname|645|Y +testname|646|Y +testname|647|Y +testname|648|Y +testname|649|N +testname|650|N +testname|651|N +testname|652|N +testname|653|Y +testname|654|N +testname|655|Y +testname|656|Y +testname|657|Y +testname|658|Y +testname|659|N +testname|660|N +testname|661|N +testname|662|N +testname|663|Y +testname|664|N +testname|665|Y +testname|666|Y +testname|667|Y +testname|668|Y +testname|669|N +testname|670|N +testname|671|N +testname|672|N +testname|673|Y +testname|674|N +testname|675|Y +testname|676|Y +testname|677|Y +testname|678|Y +testname|679|N +testname|680|N +testname|681|N +testname|682|N +testname|683|Y +testname|684|N +testname|685|Y +testname|686|Y +testname|687|Y +testname|688|Y +testname|689|N +testname|690|N +testname|691|N +testname|692|N +testname|693|Y +testname|694|N +testname|695|Y +testname|696|Y +testname|697|Y +testname|698|Y +testname|699|N +testname|700|N +testname|701|N +testname|702|N +testname|703|Y +testname|704|N +testname|705|Y +testname|706|Y +testname|707|Y +testname|708|Y +testname|709|N +testname|710|N +testname|711|N +testname|712|N +testname|713|Y +testname|714|N +testname|715|Y +testname|716|Y +testname|717|Y +testname|718|Y +testname|719|N +testname|720|N +testname|721|N +testname|722|N +testname|723|Y +testname|724|N +testname|725|Y +testname|726|Y +testname|727|Y +testname|728|Y +testname|729|N +testname|730|N +testname|731|N +testname|732|N +testname|733|Y +testname|734|N +testname|735|Y +testname|736|Y +testname|737|Y +testname|738|Y +testname|739|N +testname|740|N +testname|741|N +testname|742|N +testname|743|Y +testname|744|N +testname|745|Y +testname|746|Y +testname|747|Y +testname|748|Y +testname|749|N +testname|750|N +testname|751|N +testname|752|N +testname|753|Y +testname|754|N +testname|755|Y +testname|756|Y +testname|757|Y +testname|758|Y +testname|759|N +testname|760|N +testname|761|N +testname|762|N +testname|763|Y +testname|764|N +testname|765|Y +testname|766|Y +testname|767|Y +testname|768|Y +testname|769|N +testname|770|N +testname|771|N +testname|772|N +testname|773|Y +testname|774|N +testname|775|Y +testname|776|Y +testname|777|Y +testname|778|Y +testname|779|N +testname|780|N +testname|781|N +testname|782|N +testname|783|Y +testname|784|N +testname|785|Y +testname|786|Y +testname|787|Y +testname|788|Y +testname|789|N +testname|790|N +testname|791|N +testname|792|N +testname|793|Y +testname|794|N +testname|795|Y +testname|796|Y +testname|797|Y +testname|798|Y +testname|799|N +testname|800|N +testname|801|N +testname|802|N +testname|803|Y +testname|804|N +testname|805|Y +testname|806|Y +testname|807|Y +testname|808|Y +testname|809|N +testname|810|N +testname|811|N +testname|812|N +testname|813|Y +testname|814|N +testname|815|Y +testname|816|Y +testname|817|Y +testname|818|Y +testname|819|N +testname|820|N +testname|821|N +testname|822|N +testname|823|Y +testname|824|N +testname|825|Y +testname|826|Y +testname|827|Y +testname|828|Y +testname|829|N +testname|830|N +testname|831|N +testname|832|N +testname|833|Y +testname|834|N +testname|835|Y +testname|836|Y +testname|837|Y +testname|838|Y +testname|839|N +testname|840|N +testname|841|N +testname|842|N +testname|843|Y +testname|844|N +testname|845|Y +testname|846|Y +testname|847|Y +testname|848|Y +testname|849|N +testname|850|N +testname|851|N +testname|852|N +testname|853|Y +testname|854|N +testname|855|Y +testname|856|Y +testname|857|Y +testname|858|Y +testname|859|N +testname|860|N +testname|861|N +testname|862|N +testname|863|Y +testname|864|N +testname|865|Y +testname|866|Y +testname|867|Y +testname|868|Y +testname|869|N +testname|870|N +testname|871|N +testname|872|N +testname|873|Y +testname|874|N +testname|875|Y +testname|876|Y +testname|877|Y +testname|878|Y +testname|879|N +testname|880|N +testname|881|N +testname|882|N +testname|883|Y +testname|884|N +testname|885|Y +testname|886|Y +testname|887|Y +testname|888|Y +testname|889|N +testname|890|N +testname|891|N +testname|892|N +testname|893|Y +testname|894|N +testname|895|Y +testname|896|Y +testname|897|Y +testname|898|Y +testname|899|N +testname|900|N +testname|901|N +testname|902|N +testname|903|Y +testname|904|N +testname|905|Y +testname|906|Y +testname|907|Y +testname|908|Y +testname|909|N +testname|910|N +testname|911|N +testname|912|N +testname|913|Y +testname|914|N +testname|915|Y +testname|916|Y +testname|917|Y +testname|918|Y +testname|919|N +testname|920|N +testname|921|N +testname|922|N +testname|923|Y +testname|924|N +testname|925|Y +testname|926|Y +testname|927|Y +testname|928|Y +testname|929|N +testname|930|N +testname|931|N +testname|932|N +testname|933|Y +testname|934|N +testname|935|Y +testname|936|Y +testname|937|Y +testname|938|Y +testname|939|N +testname|940|N +testname|941|N +testname|942|N +testname|943|Y +testname|944|N +testname|945|Y +testname|946|Y +testname|947|Y +testname|948|Y +testname|949|N +testname|950|N +testname|951|N +testname|952|N +testname|953|Y +testname|954|N +testname|955|Y +testname|956|Y +testname|957|Y +testname|958|Y +testname|959|N +testname|960|N +testname|961|N +testname|962|N +testname|963|Y +testname|964|N +testname|965|Y +testname|966|Y +testname|967|Y +testname|968|Y +testname|969|N +testname|970|N +testname|971|N +testname|972|N +testname|973|Y +testname|974|N +testname|975|Y +testname|976|Y +testname|977|Y +testname|978|Y +testname|979|N +testname|980|N +testname|981|N +testname|982|N +testname|983|Y +testname|984|N +testname|985|Y +testname|986|Y +testname|987|Y +testname|988|Y +testname|989|N +testname|990|N +testname|991|N +testname|992|N +testname|993|Y +testname|994|N +testname|995|Y +testname|996|Y +testname|997|Y +testname|998|Y +testname|999|N +testname|1000|N +testname|1001|N +testname|1002|N +testname|1003|Y +testname|1004|N +testname|1005|Y +testname|1006|Y +testname|1007|Y +testname|1008|Y +testname|1009|N +testname|1010|N +testname|1011|N +testname|1012|N +testname|1013|Y +testname|1014|N +testname|1015|Y +testname|1016|Y +testname|1017|Y +testname|1018|Y +testname|1019|N +testname|1020|N +testname|1021|N +testname|1022|N +testname|1023|Y +testname|1024|N +testname|1025|Y +testname|1026|Y +testname|1027|Y +testname|1028|Y +testname|1029|N +testname|1030|N +testname|1031|N +testname|1032|N +testname|1033|Y +testname|1034|N +testname|1035|Y +testname|1036|Y +testname|1037|Y +testname|1038|Y +testname|1039|N +testname|1040|N +testname|1041|N +testname|1042|N +testname|1043|Y +testname|1044|N +testname|1045|Y +testname|1046|Y +testname|1047|Y +testname|1048|Y +testname|1049|N +testname|1050|N diff --git a/data/files/tjoin4.txt b/data/files/tjoin4.txt new file mode 100644 index 00000000000..88f9100e053 --- /dev/null +++ b/data/files/tjoin4.txt @@ -0,0 +1,4 @@ +testname1|1 +testname1|1 +testname1|1 +testname1|1 diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties index aac8218d079..88f74354c9e 100644 --- a/itests/src/test/resources/testconfiguration.properties +++ b/itests/src/test/resources/testconfiguration.properties @@ -798,6 +798,7 @@ minillaplocal.query.files=\ vector_if_expr_2.q,\ vector_join30.q,\ vector_join_filters.q,\ + vector_left_outer_join3.q,\ vector_leftsemi_mapjoin.q,\ vector_like_2.q,\ vector_llap_io_data_conversion.q,\ diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorLimitOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorLimitOperator.java index 051d338c9ab..a8e00ad8d84 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorLimitOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorLimitOperator.java @@ -79,7 +79,6 @@ public class VectorLimitOperator extends LimitOperator implements VectorizationO batch.size = Math.min(batch.size, offset + limit - currCount); if (batch.selectedInUse == false) { batch.selectedInUse = true; - batch.selected = new int[batch.size]; for (int i = 0; i < batch.size - skipSize; i++) { batch.selected[i] = skipSize + i; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterGenerateResultOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterGenerateResultOperator.java index 2e5c5685bf2..2594e7ca14f 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterGenerateResultOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterGenerateResultOperator.java @@ -708,6 +708,7 @@ public abstract class VectorMapJoinOuterGenerateResultOperator if (inputSelectedInUse) { System.arraycopy(inputSelected, 0, batch.selected, 0, inputLogicalSize); } + batch.selectedInUse = inputSelectedInUse; batch.size = inputLogicalSize; } diff --git a/ql/src/test/queries/clientpositive/vector_left_outer_join3.q b/ql/src/test/queries/clientpositive/vector_left_outer_join3.q new file mode 100644 index 00000000000..cbb3d7d3c97 --- /dev/null +++ b/ql/src/test/queries/clientpositive/vector_left_outer_join3.q @@ -0,0 +1,28 @@ +set hive.cli.print.header=true; +set hive.mapred.mode=nonstrict; +set hive.explain.user=false; +set hive.auto.convert.join=true; +set hive.auto.convert.join.noconditionaltask=true; +set hive.auto.convert.join.noconditionaltask.size=10000; + +drop table if exists TJOIN3; +drop table if exists TJOIN4; +create table if not exists TJOIN3 (name string, id int, flag string) STORED AS orc; +create table if not exists TJOIN4 (code_name string, id int) STORED AS orc; +create table if not exists TJOIN3STAGE (name string, id int, flag string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE ; +create table if not exists TJOIN4STAGE (code_name string, id int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE ; +LOAD DATA LOCAL INPATH '../../data/files/tjoin3.txt' OVERWRITE INTO TABLE TJOIN3STAGE; +LOAD DATA LOCAL INPATH '../../data/files/tjoin4.txt' OVERWRITE INTO TABLE TJOIN4STAGE; +INSERT INTO TABLE TJOIN3 SELECT * from TJOIN3STAGE; +INSERT INTO TABLE TJOIN4 SELECT * from TJOIN4STAGE; + +set hive.vectorized.execution.enabled=false; +explain vectorization detail +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N'); + +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N'); + +explain vectorization detail +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') limit 1; + +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') limit 1; diff --git a/ql/src/test/results/clientpositive/llap/vector_left_outer_join3.q.out b/ql/src/test/results/clientpositive/llap/vector_left_outer_join3.q.out new file mode 100644 index 00000000000..e8164148b18 --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/vector_left_outer_join3.q.out @@ -0,0 +1,1329 @@ +PREHOOK: query: drop table if exists TJOIN3 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists TJOIN3 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists TJOIN4 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists TJOIN4 +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table if not exists TJOIN3 (name string, id int, flag string) STORED AS orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@TJOIN3 +POSTHOOK: query: create table if not exists TJOIN3 (name string, id int, flag string) STORED AS orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@TJOIN3 +PREHOOK: query: create table if not exists TJOIN4 (code_name string, id int) STORED AS orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@TJOIN4 +POSTHOOK: query: create table if not exists TJOIN4 (code_name string, id int) STORED AS orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@TJOIN4 +PREHOOK: query: create table if not exists TJOIN3STAGE (name string, id int, flag string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@TJOIN3STAGE +POSTHOOK: query: create table if not exists TJOIN3STAGE (name string, id int, flag string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@TJOIN3STAGE +PREHOOK: query: create table if not exists TJOIN4STAGE (code_name string, id int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@TJOIN4STAGE +POSTHOOK: query: create table if not exists TJOIN4STAGE (code_name string, id int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@TJOIN4STAGE +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/tjoin3.txt' OVERWRITE INTO TABLE TJOIN3STAGE +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@tjoin3stage +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/tjoin3.txt' OVERWRITE INTO TABLE TJOIN3STAGE +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@tjoin3stage +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/tjoin4.txt' OVERWRITE INTO TABLE TJOIN4STAGE +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@tjoin4stage +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/tjoin4.txt' OVERWRITE INTO TABLE TJOIN4STAGE +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@tjoin4stage +PREHOOK: query: INSERT INTO TABLE TJOIN3 SELECT * from TJOIN3STAGE +PREHOOK: type: QUERY +PREHOOK: Input: default@tjoin3stage +PREHOOK: Output: default@tjoin3 +POSTHOOK: query: INSERT INTO TABLE TJOIN3 SELECT * from TJOIN3STAGE +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tjoin3stage +POSTHOOK: Output: default@tjoin3 +POSTHOOK: Lineage: tjoin3.flag SIMPLE [(tjoin3stage)tjoin3stage.FieldSchema(name:flag, type:string, comment:null), ] +POSTHOOK: Lineage: tjoin3.id SIMPLE [(tjoin3stage)tjoin3stage.FieldSchema(name:id, type:int, comment:null), ] +POSTHOOK: Lineage: tjoin3.name SIMPLE [(tjoin3stage)tjoin3stage.FieldSchema(name:name, type:string, comment:null), ] +tjoin3stage.name tjoin3stage.id tjoin3stage.flag +PREHOOK: query: INSERT INTO TABLE TJOIN4 SELECT * from TJOIN4STAGE +PREHOOK: type: QUERY +PREHOOK: Input: default@tjoin4stage +PREHOOK: Output: default@tjoin4 +POSTHOOK: query: INSERT INTO TABLE TJOIN4 SELECT * from TJOIN4STAGE +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tjoin4stage +POSTHOOK: Output: default@tjoin4 +POSTHOOK: Lineage: tjoin4.code_name SIMPLE [(tjoin4stage)tjoin4stage.FieldSchema(name:code_name, type:string, comment:null), ] +POSTHOOK: Lineage: tjoin4.id SIMPLE [(tjoin4stage)tjoin4stage.FieldSchema(name:id, type:int, comment:null), ] +tjoin4stage.code_name tjoin4stage.id +PREHOOK: query: explain vectorization detail +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') +PREHOOK: type: QUERY +PREHOOK: Input: default@tjoin3 +PREHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +POSTHOOK: query: explain vectorization detail +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tjoin3 +POSTHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +Explain +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Map 1 <- Map 2 (BROADCAST_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: tjoin3 + Statistics: Num rows: 1050 Data size: 190050 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: name (type: string), id (type: int), flag (type: string) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1050 Data size: 190050 Basic stats: COMPLETE Column stats: COMPLETE + Map Join Operator + condition map: + Left Outer Join 0 to 1 + filter predicates: + 0 {(_col2 = 'N')} + 1 + keys: + 0 _col0 (type: string) + 1 _col0 (type: string) + outputColumnNames: _col0, _col1 + input vertices: + 1 Map 2 + Statistics: Num rows: 4200 Data size: 403200 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col1 (type: int), _col0 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 4200 Data size: 403200 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 4200 Data size: 403200 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: llap + LLAP IO: all inputs + Map 2 + Map Operator Tree: + TableScan + alias: tjoin4 + Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: code_name (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + LLAP IO: all inputs + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') +PREHOOK: type: QUERY +PREHOOK: Input: default@tjoin3 +PREHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +POSTHOOK: query: select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tjoin3 +POSTHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +tjoin3.id tjoin3.name +1 testname +2 testname +3 testname +4 testname +5 testname +6 testname +7 testname +8 testname +9 testname +10 testname +11 testname +12 testname +13 testname +14 testname +15 testname +16 testname +17 testname +18 testname +19 testname +20 testname +21 testname +22 testname +23 testname +24 testname +25 testname +26 testname +27 testname +28 testname +29 testname +30 testname +31 testname +32 testname +33 testname +34 testname +35 testname +36 testname +37 testname +38 testname +39 testname +40 testname +41 testname +42 testname +43 testname +44 testname +45 testname +46 testname +47 testname +48 testname +49 testname +50 testname +51 testname +52 testname +53 testname +54 testname +55 testname +56 testname +57 testname +58 testname +59 testname +60 testname +61 testname +62 testname +63 testname +64 testname +65 testname +66 testname +67 testname +68 testname +69 testname +70 testname +71 testname +72 testname +73 testname +74 testname +75 testname +76 testname +77 testname +78 testname +79 testname +80 testname +81 testname +82 testname +83 testname +84 testname +85 testname +86 testname +87 testname +88 testname +89 testname +90 testname +91 testname +92 testname +93 testname +94 testname +95 testname +96 testname +97 testname +98 testname +99 testname +100 testname +101 testname +102 testname +103 testname +104 testname +105 testname +106 testname +107 testname +108 testname +109 testname +110 testname +111 testname +112 testname +113 testname +114 testname +115 testname +116 testname +117 testname +118 testname +119 testname +120 testname +121 testname +122 testname +123 testname +124 testname +125 testname +126 testname +127 testname +128 testname +129 testname +130 testname +131 testname +132 testname +133 testname +134 testname +135 testname +136 testname +137 testname +138 testname +139 testname +140 testname +141 testname +142 testname +143 testname +144 testname +145 testname +146 testname +147 testname +148 testname +149 testname +150 testname +151 testname +152 testname +153 testname +154 testname +155 testname +156 testname +157 testname +158 testname +159 testname +160 testname +161 testname +162 testname +163 testname +164 testname +165 testname +166 testname +167 testname +168 testname +169 testname +170 testname +171 testname +172 testname +173 testname +174 testname +175 testname +176 testname +177 testname +178 testname +179 testname +180 testname +181 testname +182 testname +183 testname +184 testname +185 testname +186 testname +187 testname +188 testname +189 testname +190 testname +191 testname +192 testname +193 testname +194 testname +195 testname +196 testname +197 testname +198 testname +199 testname +200 testname +201 testname +202 testname +203 testname +204 testname +205 testname +206 testname +207 testname +208 testname +209 testname +210 testname +211 testname +212 testname +213 testname +214 testname +215 testname +216 testname +217 testname +218 testname +219 testname +220 testname +221 testname +222 testname +223 testname +224 testname +225 testname +226 testname +227 testname +228 testname +229 testname +230 testname +231 testname +232 testname +233 testname +234 testname +235 testname +236 testname +237 testname +238 testname +239 testname +240 testname +241 testname +242 testname +243 testname +244 testname +245 testname +246 testname +247 testname +248 testname +249 testname +250 testname +251 testname +252 testname +253 testname +254 testname +255 testname +256 testname +257 testname +258 testname +259 testname +260 testname +261 testname +262 testname +263 testname +264 testname +265 testname +266 testname +267 testname +268 testname +269 testname +270 testname +271 testname +272 testname +273 testname +274 testname +275 testname +276 testname +277 testname +278 testname +279 testname +280 testname +281 testname +282 testname +283 testname +284 testname +285 testname +286 testname +287 testname +288 testname +289 testname +290 testname +291 testname +292 testname +293 testname +294 testname +295 testname +296 testname +297 testname +298 testname +299 testname +300 testname +301 testname +302 testname +303 testname +304 testname +305 testname +306 testname +307 testname +308 testname +309 testname +310 testname +311 testname +312 testname +313 testname +314 testname +315 testname +316 testname +317 testname +318 testname +319 testname +320 testname +321 testname +322 testname +323 testname +324 testname +325 testname +326 testname +327 testname +328 testname +329 testname +330 testname +331 testname +332 testname +333 testname +334 testname +335 testname +336 testname +337 testname +338 testname +339 testname +340 testname +341 testname +342 testname +343 testname +344 testname +345 testname +346 testname +347 testname +348 testname +349 testname +350 testname +351 testname +352 testname +353 testname +354 testname +355 testname +356 testname +357 testname +358 testname +359 testname +360 testname +361 testname +362 testname +363 testname +364 testname +365 testname +366 testname +367 testname +368 testname +369 testname +370 testname +371 testname +372 testname +373 testname +374 testname +375 testname +376 testname +377 testname +378 testname +379 testname +380 testname +381 testname +382 testname +383 testname +384 testname +385 testname +386 testname +387 testname +388 testname +389 testname +390 testname +391 testname +392 testname +393 testname +394 testname +395 testname +396 testname +397 testname +398 testname +399 testname +400 testname +401 testname +402 testname +403 testname +404 testname +405 testname +406 testname +407 testname +408 testname +409 testname +410 testname +411 testname +412 testname +413 testname +414 testname +415 testname +416 testname +417 testname +418 testname +419 testname +420 testname +421 testname +422 testname +423 testname +424 testname +425 testname +426 testname +427 testname +428 testname +429 testname +430 testname +431 testname +432 testname +433 testname +434 testname +435 testname +436 testname +437 testname +438 testname +439 testname +440 testname +441 testname +442 testname +443 testname +444 testname +445 testname +446 testname +447 testname +448 testname +449 testname +450 testname +451 testname +452 testname +453 testname +454 testname +455 testname +456 testname +457 testname +458 testname +459 testname +460 testname +461 testname +462 testname +463 testname +464 testname +465 testname +466 testname +467 testname +468 testname +469 testname +470 testname +471 testname +472 testname +473 testname +474 testname +475 testname +476 testname +477 testname +478 testname +479 testname +480 testname +481 testname +482 testname +483 testname +484 testname +485 testname +486 testname +487 testname +488 testname +489 testname +490 testname +491 testname +492 testname +493 testname +494 testname +495 testname +496 testname +497 testname +498 testname +499 testname +500 testname +501 testname +502 testname +503 testname +504 testname +505 testname +506 testname +507 testname +508 testname +509 testname +510 testname +511 testname +512 testname +513 testname +514 testname +515 testname +516 testname +517 testname +518 testname +519 testname +520 testname +521 testname +522 testname +523 testname +524 testname +525 testname +526 testname +527 testname +528 testname +529 testname +530 testname +531 testname +532 testname +533 testname +534 testname +535 testname +536 testname +537 testname +538 testname +539 testname +540 testname +541 testname +542 testname +543 testname +544 testname +545 testname +546 testname +547 testname +548 testname +549 testname +550 testname +551 testname +552 testname +553 testname +554 testname +555 testname +556 testname +557 testname +558 testname +559 testname +560 testname +561 testname +562 testname +563 testname +564 testname +565 testname +566 testname +567 testname +568 testname +569 testname +570 testname +571 testname +572 testname +573 testname +574 testname +575 testname +576 testname +577 testname +578 testname +579 testname +580 testname +581 testname +582 testname +583 testname +584 testname +585 testname +586 testname +587 testname +588 testname +589 testname +590 testname +591 testname +592 testname +593 testname +594 testname +595 testname +596 testname +597 testname +598 testname +599 testname +600 testname +601 testname +602 testname +603 testname +604 testname +605 testname +606 testname +607 testname +608 testname +609 testname +610 testname +611 testname +612 testname +613 testname +614 testname +615 testname +616 testname +617 testname +618 testname +619 testname +620 testname +621 testname +622 testname +623 testname +624 testname +625 testname +626 testname +627 testname +628 testname +629 testname +630 testname +631 testname +632 testname +633 testname +634 testname +635 testname +636 testname +637 testname +638 testname +639 testname +640 testname +641 testname +642 testname +643 testname +644 testname +645 testname +646 testname +647 testname +648 testname +649 testname +650 testname +651 testname +652 testname +653 testname +654 testname +655 testname +656 testname +657 testname +658 testname +659 testname +660 testname +661 testname +662 testname +663 testname +664 testname +665 testname +666 testname +667 testname +668 testname +669 testname +670 testname +671 testname +672 testname +673 testname +674 testname +675 testname +676 testname +677 testname +678 testname +679 testname +680 testname +681 testname +682 testname +683 testname +684 testname +685 testname +686 testname +687 testname +688 testname +689 testname +690 testname +691 testname +692 testname +693 testname +694 testname +695 testname +696 testname +697 testname +698 testname +699 testname +700 testname +701 testname +702 testname +703 testname +704 testname +705 testname +706 testname +707 testname +708 testname +709 testname +710 testname +711 testname +712 testname +713 testname +714 testname +715 testname +716 testname +717 testname +718 testname +719 testname +720 testname +721 testname +722 testname +723 testname +724 testname +725 testname +726 testname +727 testname +728 testname +729 testname +730 testname +731 testname +732 testname +733 testname +734 testname +735 testname +736 testname +737 testname +738 testname +739 testname +740 testname +741 testname +742 testname +743 testname +744 testname +745 testname +746 testname +747 testname +748 testname +749 testname +750 testname +751 testname +752 testname +753 testname +754 testname +755 testname +756 testname +757 testname +758 testname +759 testname +760 testname +761 testname +762 testname +763 testname +764 testname +765 testname +766 testname +767 testname +768 testname +769 testname +770 testname +771 testname +772 testname +773 testname +774 testname +775 testname +776 testname +777 testname +778 testname +779 testname +780 testname +781 testname +782 testname +783 testname +784 testname +785 testname +786 testname +787 testname +788 testname +789 testname +790 testname +791 testname +792 testname +793 testname +794 testname +795 testname +796 testname +797 testname +798 testname +799 testname +800 testname +801 testname +802 testname +803 testname +804 testname +805 testname +806 testname +807 testname +808 testname +809 testname +810 testname +811 testname +812 testname +813 testname +814 testname +815 testname +816 testname +817 testname +818 testname +819 testname +820 testname +821 testname +822 testname +823 testname +824 testname +825 testname +826 testname +827 testname +828 testname +829 testname +830 testname +831 testname +832 testname +833 testname +834 testname +835 testname +836 testname +837 testname +838 testname +839 testname +840 testname +841 testname +842 testname +843 testname +844 testname +845 testname +846 testname +847 testname +848 testname +849 testname +850 testname +851 testname +852 testname +853 testname +854 testname +855 testname +856 testname +857 testname +858 testname +859 testname +860 testname +861 testname +862 testname +863 testname +864 testname +865 testname +866 testname +867 testname +868 testname +869 testname +870 testname +871 testname +872 testname +873 testname +874 testname +875 testname +876 testname +877 testname +878 testname +879 testname +880 testname +881 testname +882 testname +883 testname +884 testname +885 testname +886 testname +887 testname +888 testname +889 testname +890 testname +891 testname +892 testname +893 testname +894 testname +895 testname +896 testname +897 testname +898 testname +899 testname +900 testname +901 testname +902 testname +903 testname +904 testname +905 testname +906 testname +907 testname +908 testname +909 testname +910 testname +911 testname +912 testname +913 testname +914 testname +915 testname +916 testname +917 testname +918 testname +919 testname +920 testname +921 testname +922 testname +923 testname +924 testname +925 testname +926 testname +927 testname +928 testname +929 testname +930 testname +931 testname +932 testname +933 testname +934 testname +935 testname +936 testname +937 testname +938 testname +939 testname +940 testname +941 testname +942 testname +943 testname +944 testname +945 testname +946 testname +947 testname +948 testname +949 testname +950 testname +951 testname +952 testname +953 testname +954 testname +955 testname +956 testname +957 testname +958 testname +959 testname +960 testname +961 testname +962 testname +963 testname +964 testname +965 testname +966 testname +967 testname +968 testname +969 testname +970 testname +971 testname +972 testname +973 testname +974 testname +975 testname +976 testname +977 testname +978 testname +979 testname +980 testname +981 testname +982 testname +983 testname +984 testname +985 testname +986 testname +987 testname +988 testname +989 testname +990 testname +991 testname +992 testname +993 testname +994 testname +995 testname +996 testname +997 testname +998 testname +999 testname +1000 testname +1001 testname +1002 testname +1003 testname +1004 testname +1005 testname +1006 testname +1007 testname +1008 testname +1009 testname +1010 testname +1011 testname +1012 testname +1013 testname +1014 testname +1015 testname +1016 testname +1017 testname +1018 testname +1019 testname +1020 testname +1021 testname +1022 testname +1023 testname +1024 testname +1025 testname +1026 testname +1027 testname +1028 testname +1029 testname +1030 testname +1031 testname +1032 testname +1033 testname +1034 testname +1035 testname +1036 testname +1037 testname +1038 testname +1039 testname +1040 testname +1041 testname +1042 testname +1043 testname +1044 testname +1045 testname +1046 testname +1047 testname +1048 testname +1049 testname +1050 testname +PREHOOK: query: explain vectorization detail +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@tjoin3 +PREHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +POSTHOOK: query: explain vectorization detail +select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tjoin3 +POSTHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +Explain +PLAN VECTORIZATION: + enabled: false + enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false] + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez +#### A masked pattern was here #### + Edges: + Map 1 <- Map 2 (BROADCAST_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: tjoin3 + Statistics: Num rows: 1050 Data size: 190050 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: name (type: string), id (type: int), flag (type: string) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1050 Data size: 190050 Basic stats: COMPLETE Column stats: COMPLETE + Map Join Operator + condition map: + Left Outer Join 0 to 1 + filter predicates: + 0 {(_col2 = 'N')} + 1 + keys: + 0 _col0 (type: string) + 1 _col0 (type: string) + outputColumnNames: _col0, _col1 + input vertices: + 1 Map 2 + Statistics: Num rows: 4200 Data size: 403200 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col1 (type: int), _col0 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 4200 Data size: 403200 Basic stats: COMPLETE Column stats: COMPLETE + Limit + Number of rows: 1 + Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: llap + LLAP IO: all inputs + Map 2 + Map Operator Tree: + TableScan + alias: tjoin4 + Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: code_name (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE + Execution mode: llap + LLAP IO: all inputs + + Stage: Stage-0 + Fetch Operator + limit: 1 + Processor Tree: + ListSink + +PREHOOK: query: select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@tjoin3 +PREHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +POSTHOOK: query: select TJOIN3.id,TJOIN3.name from TJOIN3 left outer join ( select code_name, id from TJOIN4) s3 on (TJOIN3.name = s3.code_name and TJOIN3.flag='N') limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tjoin3 +POSTHOOK: Input: default@tjoin4 +#### A masked pattern was here #### +tjoin3.id tjoin3.name +1 testname