You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2019/08/19 19:48:05 UTC
[hive] branch master updated: HIVE-22120: Fix wrong
results/ArrayOutOfBound exception in left outer map joins on specific
boundary conditions (Ramesh Kumar Thangarajan, reviewed by Jason Dere)
This is an automated email from the ASF dual-hosted git repository.
jdere pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 99de134 HIVE-22120: Fix wrong results/ArrayOutOfBound exception in left outer map joins on specific boundary conditions (Ramesh Kumar Thangarajan, reviewed by Jason Dere)
99de134 is described below
commit 99de134191e3e6f0fa68de8501b312163dee35b7
Author: Jason Dere <jd...@cloudera.com>
AuthorDate: Mon Aug 19 12:46:28 2019 -0700
HIVE-22120: Fix wrong results/ArrayOutOfBound exception in left outer map joins on specific boundary conditions (Ramesh Kumar Thangarajan, reviewed by Jason Dere)
---
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 | 1337 ++++++++++++++++++++
7 files changed, 2421 insertions(+), 1 deletion(-)
diff --git a/data/files/tjoin3.txt b/data/files/tjoin3.txt
new file mode 100644
index 0000000..e11df39
--- /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 0000000..88f9100
--- /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 b8e97bd..98280c5 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -838,6 +838,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 7edb059..918a69a 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 32f77b1..13de3da 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
@@ -714,6 +714,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 0000000..cbb3d7d
--- /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 0000000..5bf3b18
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/vector_left_outer_join3.q.out
@@ -0,0 +1,1337 @@
+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 = 'N') (type: boolean)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1050 Data size: 105000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Left Outer Join 0 to 1
+ filter predicates:
+ 0 {_col2}
+ 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
+ filterExpr: code_name is not null (type: boolean)
+ Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: code_name is not null (type: boolean)
+ 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 = 'N') (type: boolean)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1050 Data size: 105000 Basic stats: COMPLETE Column stats: COMPLETE
+ Map Join Operator
+ condition map:
+ Left Outer Join 0 to 1
+ filter predicates:
+ 0 {_col2}
+ 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
+ filterExpr: code_name is not null (type: boolean)
+ Statistics: Num rows: 4 Data size: 372 Basic stats: COMPLETE Column stats: COMPLETE
+ Filter Operator
+ predicate: code_name is not null (type: boolean)
+ 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