This is an automated email from the ASF dual-hosted git repository.
zabetak 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 a79922e57d5 HIVE-28598: NPE in vectorized murmur_hash function on
columns with repeating values (Seonggon Namgung reviewed by Stamatis
Zampetakis, PLASH SPEED, Denys Kuzmenko)
a79922e57d5 is described below
commit a79922e57d5f561c2402e8c185f22580434c5450
Author: seonggon <[email protected]>
AuthorDate: Fri Nov 15 16:11:11 2024 +0900
HIVE-28598: NPE in vectorized murmur_hash function on columns with
repeating values (Seonggon Namgung reviewed by Stamatis Zampetakis, PLASH
SPEED, Denys Kuzmenko)
Close apache/hive#5543
---
data/files/2048.csv | 2048 ++++++++++++++++++++
.../vector/expressions/MurmurHashIntColIntCol.java | 11 +-
.../expressions/MurmurHashStringColIntCol.java | 11 +-
.../expressions/MurmurHashStringColStringCol.java | 11 +-
.../expressions/TestMurmurHashExpression.java | 122 ++
.../vectorized_murmurhash_repeating.q | 28 +
.../llap/vectorized_murmurhash_repeating.q.out | 578 ++++++
7 files changed, 2797 insertions(+), 12 deletions(-)
diff --git a/data/files/2048.csv b/data/files/2048.csv
new file mode 100644
index 00000000000..f9024b756f9
--- /dev/null
+++ b/data/files/2048.csv
@@ -0,0 +1,2048 @@
+100000185011,100754541028
+100000185011,100750393756
+100000185011,100754543249
+100000185011,100750394337
+100000185011,100754543525
+100000185011,100750396081
+100000185011,100754545228
+100000185011,100750396307
+100000185011,100754546010
+100000185011,100750396439
+100000185011,100754546446
+100000185011,100750398296
+100000185011,100754547359
+100000185011,100750398378
+100000185011,100754547363
+100000185011,100750399737
+100000185011,100754547459
+100000185011,100750400439
+100000185011,100754548436
+100000185011,100750401072
+100000185011,100754548769
+100000185011,100750401753
+100000185011,100754548934
+100000185011,100750401793
+100000185011,100754549233
+100000185011,100750401903
+100000185011,100754549755
+100000185011,100750402219
+100000185011,100754549962
+100000185011,100750402383
+100000185011,100754550120
+100000185011,100750403016
+100000185011,100754550451
+100000185011,100750403204
+100000185011,100754551088
+100000185011,100750403609
+100000185011,100754551727
+100000185011,100750404147
+100000185011,100754552192
+100000185011,100750405417
+100000185011,100754552943
+100000185011,100750405466
+100000185011,100754553436
+100000185011,100750405744
+100000185011,100754555156
+100000185011,100750406769
+100000185011,100754555563
+100000185011,100750407258
+100000185011,100754557399
+100000185011,100750407957
+100000185011,100754558069
+100000185011,100750408147
+100000185011,100754558126
+100000185011,100750408441
+100000185011,100754558526
+100000185011,100750409053
+100000185011,100754559701
+100000185011,100750409263
+100000185011,100754559740
+100000185011,100750409566
+100000185011,100754560040
+100000185011,100750410105
+100000185011,100754560890
+100000185011,100750410517
+100000185011,100754560942
+100000185011,100750410522
+100000185011,100754561825
+100000185011,100750410709
+100000185011,100754562297
+100000185011,100750410968
+100000185011,100754563686
+100000185011,100750411176
+100000185011,100754564683
+100000185011,100750411757
+100000185011,100754564840
+100000185011,100750411967
+100000185011,100754565054
+100000185011,100750412059
+100000185011,100754566580
+100000185011,100750413497
+100000185011,100754566978
+100000185011,100750413853
+100000185011,100754568082
+100000185011,100750415119
+100000185011,100754568536
+100000185011,100750415206
+100000185011,100754569905
+100000185011,100750415509
+100000185011,100754573174
+100000185011,100750417646
+100000185011,100754573639
+100000185011,100750418252
+100000185011,100754575417
+100000185011,100750419689
+100000185011,100754576643
+100000185011,100750421118
+100000185011,100754577635
+100000185011,100750422075
+100000185011,100754578243
+100000185011,100750422921
+100000185011,100754580093
+100000185011,100750423623
+100000185011,100754580250
+100000185011,100750424045
+100000185011,100754580341
+100000185011,100750424301
+100000185011,100754583722
+100000185011,100750426302
+100000185011,100754583824
+100000185011,100750426371
+100000185011,100754584106
+100000185011,100750427744
+100000185011,100754584220
+100000185011,100750429335
+100000185011,100754584778
+100000185011,100750429776
+100000185011,100754584959
+100000185011,100750429834
+100000185011,100754585788
+100000185011,100750430933
+100000185011,100754587151
+100000185011,100750431685
+100000185011,100754587242
+100000185011,100750431805
+100000185011,100754589052
+100000185011,100750431930
+100000185011,100754589718
+100000185011,100750431970
+100000185011,100754590888
+100000185011,100750432245
+100000185011,100754591102
+100000185011,100750433023
+100000185011,100754593260
+100000185011,100750433365
+100000185011,100754593586
+100000185011,100750433395
+100000185011,100754593918
+100000185011,100750433603
+100000185011,100754594984
+100000185011,100750433945
+100000185011,100754595018
+100000185011,100750434316
+100000185011,100754595136
+100000185011,100750434354
+100000185011,100754595169
+100000185011,100750434614
+100000185011,100754596681
+100000185011,100750435935
+100000185011,100754598247
+100000185011,100750436552
+100000185011,100754599341
+100000185011,100750436602
+100000185011,100754600127
+100000185011,100750436715
+100000185011,100754600612
+100000185011,100750437355
+100000185011,100754602181
+100000185011,100750437527
+100000185011,100754602362
+100000185011,100750438447
+100000185011,100754603795
+100000185011,100750440854
+100000185011,100754603874
+100000185011,100750441033
+100000185011,100754605221
+100000185011,100750441344
+100000185011,100754606549
+100000185011,100750441471
+100000185011,100754606934
+100000185011,100750442501
+100000185011,100754610582
+100000185011,100750442758
+100000185011,100754610876
+100000185011,100750443198
+100000185011,100754612301
+100000185011,100750443330
+100000185011,100754612625
+100000185011,100750443755
+100000185011,100754613142
+100000185011,100750444372
+100000185011,100754613316
+100000185011,100750444613
+100000185011,100754613331
+100000185011,100750445280
+100000185011,100754613627
+100000185011,100750445445
+100000185011,100754613704
+100000185011,100750445899
+100000185011,100754614313
+100000185011,100750446212
+100000185011,100754614697
+100000185011,100750446779
+100000185011,100754614819
+100000185011,100750446828
+100000185011,100754615294
+100000185011,100750447003
+100000185011,100754615550
+100000185011,100750447448
+100000185011,100754615580
+100000185011,100750447748
+100000185011,100754617197
+100000185011,100750448002
+100000185011,100754617599
+100000185011,100750448270
+100000185011,100754619011
+100000185011,100750449221
+100000185011,100754619448
+100000185011,100750449685
+100000185011,100754621918
+100000185011,100750450026
+100000185011,100754623130
+100000185011,100750450221
+100000185011,100754624053
+100000185011,100750450246
+100000185011,100754625335
+100000185011,100750450788
+100000185011,100754626675
+100000185011,100750451444
+100000185011,100754627370
+100000185011,100750452067
+100000185011,100754627908
+100000185011,100750452195
+100000185011,100754629154
+100000185011,100750452839
+100000185011,100754630674
+100000185011,100750453390
+100000185011,100754631353
+100000185011,100750453600
+100000185011,100754634217
+100000185011,100750453774
+100000185011,100754637234
+100000185011,100750453829
+100000185011,100754638058
+100000185011,100750454916
+100000185011,100754638913
+100000185011,100750455855
+100000185011,100754640278
+100000185011,100750457651
+100000185011,100754640406
+100000185011,100750458497
+100000185011,100754640918
+100000185011,100750458982
+100000185011,100754641820
+100000185011,100750461167
+100000185011,100754642392
+100000185011,100750461283
+100000185011,100754643218
+100000185011,100750461390
+100000185011,100754643559
+100000185011,100750461469
+100000185011,100754644451
+100000185011,100750462512
+100000185011,100754646665
+100000185011,100750462986
+100000185011,100754647798
+100000185011,100750462997
+100000185011,100754649591
+100000185011,100750463148
+100000185011,100754650815
+100000185011,100750463288
+100000185011,100754651627
+100000185011,100750464488
+100000185011,100754652039
+100000185011,100750465294
+100000185011,100754652485
+100000185011,100750466071
+100000185011,100754653476
+100000185011,100750466347
+100000185011,100754653662
+100000185011,100750467032
+100000185011,100754655213
+100000185011,100750467096
+100000185011,100754655542
+100000185011,100750468072
+100000185011,100754655772
+100000185011,100750468091
+100000185011,100754657095
+100000185011,100750468180
+100000185011,100754657607
+100000185011,100750468488
+100000185011,100754661030
+100000185011,100750469794
+100000185011,100754661494
+100000185011,100750470071
+100000185011,100754662386
+100000185011,100750471243
+100000185011,100754666752
+100000185011,100750471848
+100000185011,100754671518
+100000187004,100958579988
+100000185011,100754671548
+100000187004,100958990636
+100000185011,100754674052
+100000187004,100959078341
+100000185011,100754675291
+100000187004,100959082158
+100000185011,100754675376
+100000187004,100959398255
+100000185011,100754676348
+100000187004,100960502900
+100000185011,100754677633
+100000187004,100962297485
+100000185011,100754679085
+100000187004,100963538093
+100000185011,100754679693
+100000187004,100965166025
+100000185011,100754680552
+100000187004,100966587753
+100000185011,100754680560
+100000187004,100966965612
+100000185011,100754682143
+100000187004,100967074879
+100000185011,100754682270
+100000187004,100967291811
+100000185011,100754684036
+100000187004,100967720436
+100000185011,100754685799
+100000187004,100967758543
+100000185011,100754689487
+100000187004,100967762898
+100000185011,100754690969
+100000187004,100967800700
+100000185011,100754692728
+100000187004,100967847662
+100000185011,100754693011
+100000187004,100967901079
+100000185011,100754695250
+100000187004,100968550863
+100000185011,100754697071
+100000187004,100968560434
+100000185011,100754697841
+100000187004,100968688572
+100000185011,100754702224
+100000187004,100968862659
+100000185011,100754703525
+100000187004,100968913955
+100000185011,100754703802
+100000187004,100968915224
+100000185011,100754704172
+100000187004,100969107702
+100000185011,100754704740
+100000187004,100969278490
+100000185011,100754705107
+100000187004,100969483860
+100000185011,100754707371
+100000187004,100969546740
+100000185011,100754708161
+100000187004,100969786815
+100000185011,100754710312
+100000187004,100969965341
+100000185011,100754710921
+100000187004,100969993661
+100000185011,100754711594
+100000187004,100970328828
+100000185011,100754712367
+100000187004,100970384782
+100000185011,100754714737
+100000187004,100970471971
+100000185011,100754714802
+100000187004,100970473863
+100000185011,100754716835
+100000187004,100970510217
+100000185011,100754717568
+100000187004,100970514179
+100000185011,100754718003
+100000187004,100970525488
+100000185011,100754719566
+100000187004,100970600327
+100000185011,100754719810
+100000187004,100970651168
+100000185011,100754720000
+100000187004,100970677539
+100000185011,100754720635
+100000187004,100970677913
+100000185011,100754724162
+100000187004,100970681290
+100000185011,100754726333
+100000187004,100970707888
+100000185011,100754728792
+100000187004,100970709971
+100000185011,100754728811
+100000187004,100970785265
+100000185011,100754729449
+100000187004,100970814743
+100000185011,100754733018
+100000187004,100970819414
+100000185011,100754734028
+100000187004,100970825182
+100000185011,100754734241
+100000187004,100971062902
+100000185011,100754734700
+100000187004,100971114225
+100000185011,100754735476
+100000187004,100971190360
+100000185011,100754737407
+100000187004,100971209756
+100000185011,100754738246
+100000187004,100971346067
+100000185011,100754739134
+100000187004,100971405145
+100000185011,100754739856
+100000187004,100971497751
+100000185011,100754740303
+100000187004,100971612200
+100000185011,100754740429
+100000187004,100971843454
+100000185011,100754742904
+100000187004,100972075601
+100000185011,100754743462
+100000187004,100972108837
+100000185011,100754746214
+100000187004,100972125484
+100000185011,100754749515
+100000187004,100972221093
+100000185011,100754750890
+100000187004,100972341137
+100000185011,100754751668
+100000187004,100972805412
+100000185011,100754753200
+100000187004,100973055712
+100000185011,100754753821
+100000187004,100973060425
+100000185011,100754754069
+100000187004,100973064826
+100000185011,100754754161
+100000187004,100973151531
+100000185011,100754754273
+100000187004,100973187887
+100000185011,100754754855
+100000187004,100973214139
+100000185011,100754755379
+100000187004,100973268693
+100000185011,100754756138
+100000187004,100973341380
+100000185011,100754756396
+100000187004,100973342705
+100000185011,100754758064
+100000187004,100973403621
+100000185011,100754759292
+100000187004,100973449949
+100000185011,100754761501
+100000187004,100973523793
+100000185011,100754762037
+100000187004,100973631812
+100000185011,100754762529
+100000187004,100973700256
+100000185011,100754763387
+100000187004,100973929874
+100000185011,100754763600
+100000187004,100973930698
+100000185011,100754764896
+100000187004,100974015455
+100000185011,100754765025
+100000187004,100974040408
+100000185011,100754765343
+100000187004,100974187801
+100000185011,100754766573
+100000187004,100974386199
+100000185011,100754767618
+100000187004,100974905191
+100000185011,100754768371
+100000187004,100975611863
+100000185011,100754770657
+100000187004,100975811373
+100000185011,100754770995
+100000187004,100975916323
+100000185011,100754772570
+100000187004,100976318748
+100000185011,100754773843
+100000187004,100976718592
+100000185011,100754775144
+100000187004,100977979825
+100000185011,100754778067
+100000187004,100978076937
+100000185011,100754778178
+100000187004,100978375651
+100000185011,100754778279
+100000187004,100978439435
+100000185011,100754779137
+100000187004,100978594532
+100000185011,100754779574
+100000187004,100979174974
+100000185011,100754781881
+100000187004,100979344362
+100000185011,100754783467
+100000187004,100979522986
+100000185011,100754783621
+100000187004,100979590502
+100000185011,100754785115
+100000187004,100979919563
+100000185011,100754785303
+100000187004,100980054593
+100000185011,100754786022
+100000187004,100980054837
+100000185011,100754787048
+100000187004,100980356793
+100000185011,100754787467
+100000187004,100980358627
+100000185011,100754787880
+100000187004,100980371772
+100000185011,100754788296
+100000187004,100980878452
+100000185011,100754788514
+100000187004,100980928222
+100000185011,100754788844
+100000187004,100981714937
+100000185011,100754788920
+100000187004,100981906372
+100000185011,100754789190
+100000187004,100981936384
+100000185011,100754790148
+100000187004,100981956676
+100000185011,100754793263
+100000187004,100982151103
+100000185011,100754793450
+100000187004,100982952788
+100000185011,100754794745
+100000187004,100984623947
+100000185011,100754795601
+100000187004,100984690876
+100000185011,100754796233
+100000187004,100985156730
+100000185011,100754796555
+100000187004,100985291424
+100000185011,100754796662
+100000187004,100985307930
+100000185011,100754798644
+100000187004,100985325883
+100000185011,100754798993
+100000187004,100985364434
+100000185011,100754801033
+100000187004,100985737244
+100000185011,100754805127
+100000187004,100986039266
+100000185011,100754806143
+100000187004,100987682938
+100000185011,100754806708
+100000187004,100988716843
+100000185011,100754808959
+100000187004,100989553013
+100000185011,100754810614
+100000187004,100989688743
+100000185011,100754813033
+100000187004,100989779767
+100000185011,100754813729
+100000187004,100990785955
+100000185011,100754817073
+100000187004,100990994399
+100000185011,100754818540
+100000187004,100991581852
+100000185011,100754819329
+100000187004,100991609196
+100000185011,100754820264
+100000187004,100991832625
+100000185011,100754822167
+100000187004,100992235472
+100000185011,100754823963
+100000187004,100992392009
+100000185011,100754824510
+100000187004,100992393651
+100000185011,100754824701
+100000187004,100993023363
+100000185011,100754828984
+100000187017,100847423026
+100000185011,100754833111
+100000187017,100850523521
+100000185011,100754833148
+100000187017,100851186700
+100000185011,100754839135
+100000187017,100851416373
+100000185011,100754839260
+100000187017,100858547056
+100000185011,100754840225
+100000187017,100860042831
+100000185011,100754842124
+100000187017,100867147244
+100000185011,100754843044
+100000187017,100899011955
+100000185011,100754845339
+100000187017,100918525458
+100000185011,100754846192
+100000187017,100922887209
+100000185011,100754846355
+100000187017,100932804747
+100000185011,100754847363
+100000187017,100944160916
+100000185011,100754848476
+100000187017,100975820877
+100000185011,100754849336
+100000187017,100992430785
+100000185011,100754850260
+100000187017,100992442507
+100000185011,100754851199
+100000187029,100866412789
+100000185011,100754852018
+100000187029,100866527202
+100000185011,100754853068
+100000187029,100866607374
+100000185011,100754853853
+100000187029,100866798636
+100000185011,100754854862
+100000187029,100866805820
+100000185011,100754855913
+100000187029,100866806735
+100000185011,100754856565
+100000187029,100866809209
+100000185011,100754856675
+100000187029,100866810780
+100000185011,100754860763
+100000187029,100866812967
+100000185011,100754861699
+100000187029,100866813845
+100000185011,100754861988
+100000187029,100866815410
+100000185011,100754862074
+100000187029,100866816186
+100000185011,100754863541
+100000187029,100866817948
+100000185011,100754866775
+100000187029,100866818067
+100000185011,100754868827
+100000187029,100866818558
+100000185011,100754868963
+100000187029,100866818970
+100000185011,100754869652
+100000185011,100750471949
+100000185011,100754870687
+100000185011,100750472729
+100000185011,100754871910
+100000185011,100750472882
+100000185011,100754872332
+100000185011,100750473730
+100000185011,100754873631
+100000185011,100750473900
+100000185011,100754874424
+100000185011,100750474375
+100000185011,100754874465
+100000185011,100750474745
+100000185011,100754874668
+100000185011,100750475120
+100000185011,100754876980
+100000185011,100750475165
+100000185011,100754878082
+100000185011,100750477213
+100000185011,100754878292
+100000185011,100750478930
+100000185011,100754878872
+100000185011,100750479146
+100000185011,100754878957
+100000185011,100750479357
+100000185011,100754879500
+100000185011,100750481214
+100000185011,100754879728
+100000185011,100750481779
+100000185011,100754879774
+100000185011,100750481853
+100000185011,100754882461
+100000185011,100750481943
+100000185011,100754884497
+100000185011,100750482250
+100000185011,100754885198
+100000185011,100750482499
+100000185011,100754885836
+100000185011,100750482756
+100000185011,100754886595
+100000185011,100750482757
+100000185011,100754887322
+100000185011,100750483631
+100000185011,100754887550
+100000185011,100750484130
+100000185011,100754887708
+100000185011,100750488318
+100000185011,100754888203
+100000185011,100750488596
+100000185011,100754888801
+100000185011,100750488648
+100000185011,100754889010
+100000185011,100750489286
+100000185011,100754890474
+100000185011,100750489802
+100000185011,100754890559
+100000185011,100750490550
+100000185011,100754891319
+100000185011,100750490913
+100000185011,100754895442
+100000185011,100750491376
+100000185011,100754897945
+100000185011,100750495213
+100000185011,100754898339
+100000185011,100750495752
+100000185011,100754899208
+100000185011,100750496049
+100000185011,100754899258
+100000185011,100750496329
+100000185011,100754900320
+100000185011,100750496580
+100000185011,100754900444
+100000185011,100750505206
+100000185011,100754900507
+100000185011,100750505532
+100000185011,100754902911
+100000185011,100752177954
+100000185011,100754903315
+100000185011,100752315874
+100000185011,100754905542
+100000185011,100753463995
+100000185011,100754907688
+100000185011,100753465944
+100000185011,100754908701
+100000185011,100753465957
+100000185011,100754908830
+100000185011,100753465961
+100000185011,100754908879
+100000185011,100753467523
+100000185011,100754910374
+100000185011,100753468611
+100000185011,100754910405
+100000185011,100753469133
+100000185011,100754910538
+100000185011,100753469377
+100000185011,100754912148
+100000185011,100753469731
+100000185011,100754915878
+100000185011,100753470647
+100000185011,100754920003
+100000185011,100753470873
+100000185011,100754921049
+100000185011,100753471200
+100000185011,100754923780
+100000185011,100753471651
+100000185011,100754924855
+100000185011,100753472996
+100000185011,100754925837
+100000185011,100753473062
+100000185011,100754926169
+100000185011,100753473177
+100000185011,100754928349
+100000185011,100753473628
+100000185011,100754929768
+100000185011,100753474412
+100000185011,100754931060
+100000185011,100753474676
+100000185011,100754932207
+100000185011,100753475088
+100000185011,100754932919
+100000185011,100753475438
+100000185011,100754933761
+100000185011,100753476289
+100000185011,100754935070
+100000185011,100753476505
+100000185011,100754935245
+100000185011,100753476507
+100000185011,100754935253
+100000185011,100753476857
+100000185011,100754935492
+100000185011,100753477067
+100000185011,100754935907
+100000185011,100753477296
+100000185011,100754939004
+100000185011,100753478766
+100000185011,100754939639
+100000185011,100753479521
+100000185011,100754942365
+100000185011,100753479601
+100000185011,100754943654
+100000185011,100753480240
+100000185011,100754948332
+100000185011,100753480571
+100000185011,100754951173
+100000185011,100753481237
+100000185011,100754951426
+100000185011,100753482120
+100000185011,100754951444
+100000185011,100753482260
+100000185011,100754951678
+100000185011,100753483174
+100000185011,100754954216
+100000185011,100753483289
+100000185011,100754954659
+100000185011,100753483321
+100000185011,100754955196
+100000185011,100753483563
+100000185011,100754957273
+100000185011,100753483635
+100000185011,100754958352
+100000185011,100753483898
+100000185011,100754959751
+100000185011,100753484741
+100000185011,100754960141
+100000185011,100753485169
+100000185011,100754962106
+100000185011,100753485786
+100000185011,100754962421
+100000185011,100753486636
+100000185011,100754964412
+100000185011,100753487555
+100000185011,100754965321
+100000185011,100753488669
+100000185011,100754966348
+100000185011,100753488876
+100000185011,100754967459
+100000185011,100753488920
+100000185011,100754971680
+100000185011,100753489035
+100000185011,100754972380
+100000185011,100753490236
+100000185011,100754973306
+100000185011,100753491568
+100000185011,100754973911
+100000185011,100753491583
+100000185011,100754974587
+100000185011,100753491675
+100000185011,100754976061
+100000185011,100753491926
+100000185011,100754978126
+100000185011,100753492197
+100000185011,100754979845
+100000185011,100753492549
+100000185011,100754980031
+100000185011,100753492564
+100000185011,100754981102
+100000185011,100753492641
+100000185011,100754981529
+100000185011,100753493999
+100000185011,100754981934
+100000185011,100753494232
+100000185011,100754984509
+100000185011,100753494617
+100000185011,100754986264
+100000185011,100753494660
+100000185011,100754987218
+100000185011,100753494853
+100000185011,100754987768
+100000185011,100753495019
+100000185011,100754988559
+100000185011,100753495242
+100000185011,100754990355
+100000185011,100753495488
+100000185011,100754990475
+100000185011,100753495874
+100000185011,100754990495
+100000185011,100753496052
+100000185011,100754990729
+100000185011,100753497231
+100000185011,100754991859
+100000185011,100753497545
+100000185011,100754991928
+100000185011,100753497555
+100000185011,100754993803
+100000185011,100753497732
+100000185011,100754994078
+100000185011,100753497867
+100000185011,100754995984
+100000185011,100753497958
+100000185011,100754997415
+100000185011,100753498180
+100000185011,100754998332
+100000185011,100753498201
+100000185011,100754998410
+100000185011,100753498832
+100000185011,100754998875
+100000185011,100753499373
+100000185011,100754999175
+100000185011,100753499496
+100000185011,100754999769
+100000185011,100753499548
+100000185011,100755000349
+100000185011,100753499824
+100000185011,100755000541
+100000185011,100753499939
+100000185011,100755003180
+100000185011,100753500041
+100000185011,100755004404
+100000185011,100753500107
+100000185011,100755004694
+100000185011,100753500269
+100000185011,100755005417
+100000185011,100753500439
+100000185011,100755007686
+100000185011,100753500891
+100000185011,100755007715
+100000185011,100753501031
+100000185011,100755008228
+100000185011,100753501371
+100000185011,100755009953
+100000185011,100753501605
+100000185011,100755011636
+100000185011,100753501796
+100000185011,100755012942
+100000185011,100753502160
+100000185011,100755012947
+100000185011,100753502608
+100000185011,100755015449
+100000185011,100753503162
+100000185011,100755017922
+100000185011,100753503665
+100000185011,100755018650
+100000185011,100753504328
+100000185011,100755019452
+100000185011,100753504343
+100000185011,100755020425
+100000185011,100753504926
+100000185011,100755021865
+100000185011,100753505171
+100000185011,100755024573
+100000185011,100753505734
+100000185011,100755029088
+100000185011,100753505751
+100000185011,100755030531
+100000185011,100753505903
+100000185011,100755031809
+100000185011,100753506093
+100000185011,100755032529
+100000185011,100753506494
+100000185011,100755033483
+100000185011,100753506963
+100000185011,100755035926
+100000185011,100753508082
+100000185011,100755036710
+100000185011,100753508685
+100000185011,100755037338
+100000185011,100753508759
+100000185011,100755043059
+100000185011,100753508908
+100000185011,100755043471
+100000185011,100753508960
+100000185011,100755043956
+100000185011,100753509878
+100000185011,100755044778
+100000185011,100753511403
+100000185011,100755047574
+100000185011,100753512033
+100000185011,100755047672
+100000185011,100753513379
+100000185011,100755051393
+100000185011,100753513664
+100000185011,100755053227
+100000185011,100753513915
+100000185011,100755054136
+100000185011,100753514230
+100000185011,100755054482
+100000185011,100753515200
+100000185011,100755055064
+100000185011,100753517162
+100000185011,100755055789
+100000185011,100753517617
+100000185011,100755056219
+100000185011,100753517774
+100000185011,100755056867
+100000185011,100753519758
+100000185011,100755060072
+100000185011,100753519968
+100000185011,100755063522
+100000185011,100753520066
+100000185011,100755065439
+100000185011,100753520531
+100000185011,100755066413
+100000185011,100753520581
+100000185011,100755068218
+100000185011,100753520662
+100000185011,100755077655
+100000185011,100753520986
+100000185011,100755078180
+100000185011,100753521981
+100000185011,100755078334
+100000185011,100753521988
+100000185011,100755080403
+100000185011,100753522883
+100000185011,100755081016
+100000185011,100753522934
+100000185011,100755083873
+100000185011,100753523024
+100000185011,100755084217
+100000185011,100753523129
+100000185011,100755085203
+100000185011,100753523967
+100000185011,100755085849
+100000185011,100753524786
+100000185011,100755086443
+100000185011,100753524825
+100000185011,100755086545
+100000185011,100753524828
+100000185011,100755089878
+100000185011,100753524933
+100000185011,100755090220
+100000185011,100753525270
+100000185011,100755091785
+100000185011,100753525381
+100000185011,100755092826
+100000185011,100753525740
+100000185011,100755094463
+100000185011,100753526004
+100000185011,100755096042
+100000185011,100753526024
+100000185011,100755096298
+100000185011,100753526422
+100000185011,100755097546
+100000185011,100753526731
+100000185011,100755100275
+100000185011,100753526742
+100000185011,100755100485
+100000185011,100753526924
+100000185011,100755101666
+100000185011,100753527351
+100000185011,100755102623
+100000185011,100753527422
+100000185011,100755102969
+100000185011,100753528149
+100000185011,100755105157
+100000185011,100753528156
+100000185011,100755106274
+100000185011,100753528453
+100000185011,100755106803
+100000185011,100753529097
+100000185011,100755106969
+100000185011,100753529246
+100000185011,100755109036
+100000185011,100753529698
+100000185011,100755109537
+100000185011,100753529874
+100000185011,100755112638
+100000185011,100753530544
+100000185011,100755112799
+100000185011,100753530702
+100000185011,100755115097
+100000185011,100753530902
+100000185011,100755116365
+100000185011,100753531475
+100000185011,100755116547
+100000185011,100753531667
+100000185011,100755118031
+100000185011,100753532448
+100000185011,100755119048
+100000185011,100753533096
+100000185011,100755119340
+100000185011,100753533171
+100000185011,100755120178
+100000185011,100753533588
+100000185011,100755956563
+100000185011,100753535479
+100000185011,100755958281
+100000185011,100753536197
+100000185011,100755960192
+100000185011,100753536246
+100000185011,100755960733
+100000185011,100753536488
+100000185011,100755961197
+100000185011,100753536717
+100000185011,100755961228
+100000185011,100753537819
+100000185011,100755961901
+100000185011,100753538253
+100000185011,100755962172
+100000185011,100753538831
+100000185011,100755963702
+100000185011,100753540500
+100000185011,100755964412
+100000185011,100753540686
+100000185011,100755965388
+100000185011,100753540834
+100000185011,100755965919
+100000185011,100753540996
+100000185011,100755966862
+100000185011,100753541582
+100000185011,100755967709
+100000185011,100753541999
+100000185011,100755968692
+100000185011,100753542199
+100000185011,100755969241
+100000185011,100753542532
+100000185011,100755971719
+100000185011,100753543258
+100000185011,100755972340
+100000185011,100753544405
+100000185011,100755972848
+100000185011,100753544441
+100000185011,100755973034
+100000185011,100753545085
+100000185011,100755974609
+100000185011,100753545120
+100000185011,100755974982
+100000185011,100753545287
+100000185011,100755975004
+100000185011,100753545509
+100000185011,100755975751
+100000185011,100753545934
+100000185011,100755978361
+100000185011,100753546093
+100000185011,100755979148
+100000185011,100753548033
+100000185011,100755979310
+100000185011,100753548318
+100000185011,100755979391
+100000185011,100753548361
+100000185011,100755980632
+100000185011,100753548800
+100000185011,100755980794
+100000185011,100753549763
+100000185011,100755980825
+100000185011,100753549899
+100000185011,100755981472
+100000185011,100753550240
+100000185011,100755981725
+100000185011,100753550708
+100000185011,100755981930
+100000185011,100753550799
+100000185011,100755982024
+100000185011,100753551371
+100000185011,100755982300
+100000185011,100753552031
+100000185011,100755984440
+100000185011,100753552057
+100000185011,100755985192
+100000185011,100753552341
+100000185011,100755985216
+100000185011,100753552705
+100000185011,100755985653
+100000185011,100753554278
+100000185011,100755985729
+100000185011,100753554421
+100000185011,100755987473
+100000185011,100753554583
+100000185011,100755987551
+100000185011,100753556443
+100000185011,100755987691
+100000185011,100753556556
+100000185011,100755988187
+100000185011,100753556613
+100000185011,100755988394
+100000185011,100753556700
+100000185011,100755988544
+100000185011,100754179947
+100000185011,100755989011
+100000185011,100754323630
+100000185011,100755989199
+100000185011,100754324480
+100000185011,100755989753
+100000185011,100754324962
+100000185011,100755991383
+100000185011,100754326147
+100000185011,100755992093
+100000185011,100754326726
+100000185011,100755992529
+100000185011,100754327057
+100000185011,100755992798
+100000185011,100754327068
+100000185011,100755993341
+100000185011,100754327088
+100000185011,100755993953
+100000185011,100754327669
+100000185011,100755994607
+100000185011,100754329507
+100000185011,100755995071
+100000185011,100754330934
+100000185011,100755995561
+100000185011,100754332476
+100000185011,100755995697
+100000185011,100754332605
+100000185011,100755996317
+100000185011,100754332663
+100000185011,100755996591
+100000185011,100754332724
+100000185011,100755997288
+100000185011,100754333189
+100000185011,100755997929
+100000185011,100754333474
+100000185011,100755998158
+100000185011,100754333890
+100000185011,100755999496
+100000185011,100754334792
+100000185011,100756000234
+100000185011,100754335106
+100000185011,100756001171
+100000185011,100754335394
+100000185011,100756002015
+100000185011,100754337026
+100000185011,100756002075
+100000185011,100754337422
+100000185011,100756003246
+100000185011,100754337772
+100000185011,100756003278
+100000185011,100754338738
+100000185011,100756004234
+100000185011,100754339198
+100000185011,100756004716
+100000185011,100754341848
+100000185011,100756005335
+100000185011,100754342482
+100000185011,100756005370
+100000185011,100754343094
+100000185011,100756005414
+100000185011,100754343194
+100000185011,100756005984
+100000185011,100754343410
+100000185011,100756006124
+100000185011,100754343444
+100000185011,100756006410
+100000185011,100754345038
+100000185011,100756006428
+100000185011,100754345078
+100000185011,100756006527
+100000185011,100754347071
+100000185011,100756007075
+100000185011,100754347194
+100000185011,100756007133
+100000185011,100754347972
+100000185011,100756007553
+100000185011,100754348507
+100000185011,100756008027
+100000185011,100754349797
+100000185011,100756008728
+100000185011,100754350323
+100000185011,100756008778
+100000185011,100754353860
+100000185011,100756009459
+100000185011,100754355206
+100000185011,100756009747
+100000185011,100754355805
+100000185011,100756009919
+100000185011,100754358947
+100000185011,100756014252
+100000185011,100754359726
+100000185011,100756014854
+100000185011,100754359992
+100000185011,100756015042
+100000185011,100754361814
+100000185011,100756019354
+100000185011,100754361997
+100000185011,100756019487
+100000185011,100754362010
+100000185011,100756020164
+100000185011,100754362256
+100000185011,100756020468
+100000185011,100754362970
+100000185011,100756020526
+100000185011,100754364221
+100000185011,100756021214
+100000185011,100754365712
+100000185011,100756021277
+100000185011,100754369611
+100000185011,100756022136
+100000185011,100754370133
+100000185011,100756023312
+100000185011,100754370200
+100000185011,100756024158
+100000185011,100754370922
+100000185011,100756024564
+100000185011,100754371225
+100000185011,100756025136
+100000185011,100754372368
+100000185011,100756026021
+100000185011,100754376083
+100000185011,100756027071
+100000185011,100754376090
+100000185011,100756027352
+100000185011,100754376615
+100000185011,100756030059
+100000185011,100754377554
+100000185011,100756030927
+100000185011,100754377989
+100000185011,100756032303
+100000185011,100754378384
+100000185011,100756033057
+100000185011,100754379921
+100000185011,100756033249
+100000185011,100754380012
+100000185011,100756033754
+100000185011,100754384648
+100000185011,100756033786
+100000185011,100754385277
+100000185011,100756034555
+100000185011,100754385712
+100000185011,100756034690
+100000185011,100754386033
+100000185011,100756034748
+100000185011,100754388595
+100000185011,100756038613
+100000185011,100754389745
+100000185011,100756039166
+100000185011,100754390886
+100000185011,100756039354
+100000185011,100754390909
+100000185011,100756040182
+100000185011,100754392074
+100000185011,100756041695
+100000185011,100754392307
+100000185011,100756042173
+100000185011,100754396316
+100000185011,100756043492
+100000185011,100754397140
+100000185011,100756043606
+100000185011,100754401567
+100000185011,100756043830
+100000185011,100754405794
+100000185011,100756044809
+100000185011,100754406444
+100000185011,100756045105
+100000185011,100754407181
+100000185011,100756046354
+100000185011,100754408407
+100000185011,100756046938
+100000185011,100754410293
+100000185011,100756047631
+100000185011,100754410384
+100000185011,100756047773
+100000185011,100754411501
+100000185011,100756049031
+100000185011,100754412028
+100000185011,100756049386
+100000185011,100754415857
+100000185011,100756050491
+100000185011,100754415965
+100000185011,100756051754
+100000185011,100754417720
+100000185011,100756052341
+100000185011,100754418898
+100000185011,100756052620
+100000185011,100754419335
+100000185011,100756052863
+100000185011,100754421307
+100000185011,100756052919
+100000185011,100754421446
+100000185011,100756053405
+100000185011,100754422682
+100000185011,100756053409
+100000185011,100754423264
+100000185011,100756053861
+100000185011,100754423465
+100000185011,100756054520
+100000185011,100754424983
+100000185011,100756054908
+100000185011,100754425690
+100000185011,100756055830
+100000185011,100754426562
+100000185011,100756056324
+100000185011,100754426748
+100000185011,100756057474
+100000185011,100754427189
+100000185011,100756057741
+100000185011,100754427425
+100000185011,100756058660
+100000185011,100754428947
+100000185011,100756059652
+100000185011,100754429243
+100000185011,100756061130
+100000185011,100754431720
+100000185011,100756061262
+100000185011,100754433916
+100000185011,100756062397
+100000185011,100754435587
+100000185011,100756062696
+100000185011,100754438986
+100000185011,100756062746
+100000185011,100754439052
+100000185011,100756063414
+100000185011,100754439550
+100000185011,100756063734
+100000185011,100754440472
+100000185011,100756063910
+100000185011,100754440789
+100000185011,100756064733
+100000185011,100754442022
+100000185011,100756065979
+100000185011,100754443045
+100000185011,100756066091
+100000185011,100754443253
+100000185011,100756066168
+100000185011,100754445341
+100000185011,100756067307
+100000185011,100754445439
+100000185011,100756067469
+100000185011,100754445785
+100000185011,100756068262
+100000185011,100754445789
+100000185011,100756069180
+100000185011,100754447463
+100000185011,100756070306
+100000185011,100754447524
+100000185011,100756070333
+100000185011,100754447964
+100000185011,100756075075
+100000185011,100754448422
+100000185011,100756075223
+100000185011,100754450352
+100000185011,100756075411
+100000185011,100754453589
+100000185011,100756075854
+100000185011,100754454172
+100000185011,100756076373
+100000185011,100754454530
+100000185011,100756076535
+100000185011,100754455431
+100000185011,100756076699
+100000185011,100754456001
+100000185011,100756076919
+100000185011,100754456582
+100000185011,100756077259
+100000185011,100754457297
+100000185011,100756078483
+100000185011,100754458662
+100000185011,100756079389
+100000185011,100754460643
+100000185011,100756079707
+100000185011,100754460934
+100000185011,100756082095
+100000185011,100754462454
+100000185011,100756082468
+100000185011,100754464029
+100000185011,100756082670
+100000185011,100754464160
+100000185011,100756083339
+100000185011,100754466790
+100000185011,100756083874
+100000185011,100754468346
+100000185011,100756083881
+100000185011,100754468825
+100000185011,100756083904
+100000185011,100754469253
+100000185011,100756084930
+100000185011,100754469903
+100000185011,100756086338
+100000185011,100754469908
+100000185011,100756086472
+100000185011,100754472052
+100000185011,100756086501
+100000185011,100754473189
+100000185011,100756086672
+100000185011,100754474503
+100000185011,100756086809
+100000185011,100754474883
+100000185011,100756086881
+100000185011,100754475664
+100000185011,100756087324
+100000185011,100754475972
+100000185011,100756088195
+100000185011,100754476077
+100000185011,100756089082
+100000185011,100754480370
+100000185011,100756091233
+100000185011,100754480526
+100000185011,100756092614
+100000185011,100754480537
+100000185011,100756093091
+100000185011,100754482651
+100000185011,100756093713
+100000185011,100754483967
+100000185011,100756094758
+100000185011,100754484179
+100000185011,100756096911
+100000185011,100754485290
+100000185011,100756097571
+100000185011,100754485558
+100000185011,100756097615
+100000185011,100754486684
+100000185011,100756098815
+100000185011,100754487759
+100000185011,100756099875
+100000185011,100754488679
+100000185011,100756100784
+100000185011,100754491404
+100000185011,100756102710
+100000185011,100754491510
+100000185011,100756103513
+100000185011,100754493814
+100000185011,100756104037
+100000185011,100754494306
+100000185011,100756104056
+100000185011,100754495024
+100000185011,100756106483
+100000185011,100754495128
+100000185011,100756107800
+100000185011,100754495219
+100000185011,100756108123
+100000185011,100754495343
+100000185011,100756108210
+100000185011,100754495738
+100000185011,100756108213
+100000185011,100754496361
+100000185011,100756113767
+100000185011,100754496526
+100000185011,100756113906
+100000185011,100754496601
+100000185011,100756115919
+100000185011,100754500563
+100000185011,100756116081
+100000185011,100754500856
+100000185011,100756116530
+100000185011,100754501943
+100000185011,100756116872
+100000185011,100754502067
+100000185011,100756118097
+100000185011,100754505458
+100000185011,100756118582
+100000185011,100754506010
+100000185011,100756118632
+100000185011,100754507498
+100000185011,100756118765
+100000185011,100754507944
+100000185011,100756118941
+100000185011,100754508082
+100000185011,100756120085
+100000185011,100754508774
+100000185011,100756124357
+100000185011,100754509988
+100000185011,100756124835
+100000185011,100754510097
+100000185011,100756125070
+100000185011,100754510146
+100000185011,100756126157
+100000185011,100754510635
+100000185011,100756130614
+100000185011,100754510766
+100000185011,100756130767
+100000185011,100754512119
+100000185011,100756134550
+100000185011,100754512160
+100000185011,100756135436
+100000185011,100754513536
+100000185011,100756136535
+100000185011,100754513608
+100000185011,100756137326
+100000185011,100754513798
+100000185011,100756137808
+100000185011,100754513923
+100000185011,100756138909
+100000185011,100754516767
+100000185011,100756141652
+100000185011,100754517221
+100000185011,100756141999
+100000185011,100754517563
+100000185011,100756145900
+100000185011,100754518509
+100000185011,100756154612
+100000185011,100754519155
+100000185011,100756155289
+100000185011,100754520275
+100000185011,100756155844
+100000185011,100754520741
+100000185011,100756158610
+100000185011,100754520868
+100000185011,100756161428
+100000185011,100754522015
+100000185011,100756164180
+100000185011,100754522459
+100000185011,100756164506
+100000185011,100754523451
+100000185011,100756166370
+100000185011,100754523810
+100000185011,100756170554
+100000185011,100754525200
+100000185011,100756171839
+100000185011,100754532506
+100000185011,100756174046
+100000185011,100754533037
+100000185011,100756174322
+100000185011,100754533046
+100000185011,100756176452
+100000185011,100754533799
+100000185011,100756177878
+100000185011,100754534840
+100000185011,100756178529
+100000185011,100754534920
+100000185011,100756182103
+100000185011,100754535408
+100000185011,100756186146
+100000185011,100754536081
+100000185011,100756187150
+100000185011,100754536252
+100000185011,100756193800
+100000185011,100754536572
+100000185011,100756193920
+100000185011,100754537349
+100000185011,100756194400
+100000185011,100754538518
+100000185011,100756197150
+100000185011,100754540170
+100000185011,100756197302
+100000185011,100754540260
+100000185011,100756197367
+100000185011,100754540683
+100000185011,100756198262
+100000185011,100754541056
+100000185011,100756199558
+100000185011,100754541100
+100000185011,100756201148
+100000185011,100754543150
+100000185011,100756201402
+100000185011,100754543329
+100000185011,100756203448
+100000185011,100754543405
+100000185011,100756204294
+100000185011,100754543542
+100000185011,100756206438
+100000185011,100754543974
+100000185011,100756208148
+100000185011,100754544715
+100000185011,100756210786
+100000185011,100754546072
+100000185011,100756211031
+100000185011,100754546958
+100000185011,100756212070
+100000185011,100754547113
+100000185011,100756215004
+100000185011,100754549742
+100000185011,100756216132
+100000185011,100754550456
+100000185011,100756217083
+100000185011,100754552091
+100000185011,100756218506
+100000185011,100754553444
+100000185011,100756219252
+100000185011,100754554714
+100000185011,100756221493
+100000185011,100754558542
+100000185011,100756222333
+100000185011,100754559633
+100000185011,100756223031
+100000185011,100754560492
+100000185011,100756223150
+100000185011,100754561231
+100000185011,100756223582
+100000185011,100754562942
+100000185011,100756224285
+100000185011,100754563004
+100000185011,100756224718
+100000185011,100754563743
+100000185011,100756225442
+100000185011,100754564562
+100000185011,100756226407
+100000185011,100754566444
+100000185011,100756229932
+100000185011,100754566720
+100000185011,100756231671
+100000185011,100754567164
+100000185011,100756232951
+100000185011,100754567571
+100000185011,100756234303
+100000185011,100754569065
+100000185011,100756234675
+100000185011,100754572152
+100000185011,100756237829
+100000185011,100754573060
+100000185011,100756240726
+100000185011,100754573804
+100000185011,100756240869
+100000185011,100754574471
+100000185011,100756241714
+100000185011,100754575478
+100000185011,100756241886
+100000185011,100754576207
+100000185011,100756245169
+100000185011,100754576734
+100000185011,100756245781
+100000185011,100754579147
+100000185011,100756247964
+100000185011,100754580939
+100000185011,100756249255
+100000185011,100754583459
+100000185011,100756249981
+100000185011,100754585704
+100000185011,100756250162
+100000185011,100754585729
+100000185011,100756254438
+100000185011,100754585868
+100000185011,100756254461
+100000185011,100754586346
+100000185011,100756256352
+100000185011,100754590517
+100000185011,100756256587
+100000185011,100754591062
+100000185011,100756257392
+100000185011,100754591233
+100000185011,100756260184
+100000185011,100754591329
+100000185011,100756260621
+100000185011,100754591471
+100000185011,100756261120
+100000185011,100754592501
+100000185011,100756262122
+100000185011,100754592799
+100000185011,100756264721
+100000185011,100754593712
+100000185011,100756264987
+100000185011,100754594650
+100000185011,100756268892
+100000185011,100754594706
+100000185011,100756269185
+100000185011,100754595241
+100000185011,100756269940
+100000185011,100754596329
+100000185011,100756270992
+100000185011,100754597036
+100000185011,100756271967
+100000185011,100754598172
+100000185011,100756278552
+100000185011,100754604324
+100000185011,100756278985
+100000185011,100754604954
+100000185011,100756281567
+100000185011,100754606416
+100000185011,100756282688
+100000185011,100754606951
+100000185011,100756283032
+100000185011,100754607238
+100000185011,100756287835
+100000185011,100754607522
+100000185011,100756288826
+100000185011,100754609583
+100000185011,100756289116
+100000185011,100754610264
+100000185011,100756291140
+100000185011,100754611856
+100000185011,100756291579
+100000185011,100754613127
+100000185011,100756294787
+100000185011,100754615146
+100000185011,100756296557
+100000185011,100754616113
+100000185011,100756297892
+100000185011,100754616809
+100000185011,100756299661
+100000185011,100754617806
+100000185011,100756300182
+100000185011,100754617959
+100000185011,100756300380
+100000185011,100754618971
+100000185011,100756300640
+100000185011,100754620897
+100000185011,100756301943
+100000185011,100754621218
+100000185011,100756302080
+100000185011,100754621508
+100000185011,100756302428
+100000185011,100754622260
+100000185011,100756302543
+100000185011,100754622296
+100000185011,100756303696
+100000185011,100754622318
+100000185011,100756304373
+100000185011,100754622963
+100000185011,100756304620
+100000185011,100754623466
+100000185011,100756304948
+100000185011,100754625271
+100000185011,100756304958
+100000185011,100754625294
+100000185011,100756305772
+100000185011,100754626099
+100000185011,100756306063
+100000185011,100754626641
+100000185011,100756306419
+100000185011,100754626708
+100000185011,100756307103
+100000185011,100754627000
+100000185011,100756308274
+100000185011,100754631513
+100000185011,100756308613
+100000185011,100754632108
+100000185011,100756308620
+100000185011,100754632624
+100000185011,100756309889
+100000185011,100754632866
+100000185011,100756310028
+100000185011,100754635229
+100000185011,100756311030
+100000185011,100754636781
+100000185011,100756311099
+100000185011,100754638649
+100000185011,100756311327
+100000185011,100754639143
+100000185011,100756313009
+100000185011,100754642459
+100000185011,100756313380
+100000185011,100754644073
+100000185011,100756314018
+100000185011,100754645498
+100000185011,100756315730
+100000185011,100754646030
+100000185011,100756315967
+100000185011,100754647455
+100000185011,100756316923
+100000185011,100754648487
+100000185011,100756318140
+100000185011,100754650359
+100000185011,100756318411
+100000185011,100754652498
+100000185011,100756318631
+100000185011,100754652699
+100000185011,100756319756
+100000185011,100754654926
+100000185011,100756320400
+100000185011,100754656091
+100000185011,100756321889
+100000185011,100754656393
+100000185011,100756322251
+100000185011,100754656659
+100000185011,100756322457
+100000185011,100754656871
+100000185011,100756322580
+100000185011,100754657791
+100000185011,100756322948
+100000185011,100754659145
+100000185011,100756323271
+100000185011,100754659862
+100000185011,100756323846
+100000185011,100754659964
+100000185011,100756323946
+100000185011,100754660973
+100000185011,100756325103
+100000185011,100754662992
+100000185011,100756325361
+100000185011,100754664915
+100000185011,100756326066
+100000185011,100754665426
+100000185011,100756327739
+100000185011,100754666358
+100000185011,100756329033
+100000185011,100754666415
+100000185011,100756329058
+100000185011,100754666643
+100000185011,100756329207
+100000185011,100754667407
+100000185011,100756329466
+100000185011,100754669998
+100000185011,100756329643
+100000185011,100754670501
+100000185011,100756329697
+100000185011,100754672343
+100000185011,100756330185
+100000185011,100754672716
+100000185011,100756331810
+100000185011,100754672864
+100000185011,100756332123
+100000185011,100754673440
+100000185011,100756332764
+100000185011,100754674003
+100000185011,100756333161
+100000185011,100754675861
+100000185011,100756336239
+100000185011,100754676379
+100000185011,100756336723
+100000185011,100754677237
+100000185011,100756337647
+100000185011,100754678614
+100000185011,100756337780
+100000185011,100754679550
+100000185011,100756338004
+100000185011,100754680324
+100000185011,100756338280
+100000185011,100754681203
+100000185011,100756338897
+100000185011,100754681875
+100000185011,100756339258
+100000185011,100754681902
+100000185011,100756339639
+100000185011,100754683859
+100000185011,100756340464
+100000185011,100754684495
+100000185011,100756341196
+100000185011,100754684682
+100000185011,100756342491
+100000185011,100754685944
+100000185011,100756342813
+100000185011,100754686448
+100000185011,100756343751
+100000185011,100754686590
+100000185011,100756343966
+100000185011,100754687633
+100000185011,100756344143
+100000185011,100754688239
+100000185011,100756344334
+100000185011,100754690928
+100000185011,100756344690
+100000185011,100754691393
+100000185011,100756345043
+100000185011,100754691755
+100000185011,100756345237
+100000185011,100754693146
+100000185011,100756345806
+100000185011,100754693683
+100000185011,100756345967
+100000185011,100754694705
+100000185011,100756347200
+100000185011,100754695042
+100000185011,100756347310
+100000185011,100754696072
+100000185011,100756348922
+100000185011,100754696385
+100000185011,100756348933
+100000185011,100754697859
+100000185011,100756350499
+100000185011,100754699641
+100000185011,100756351696
+100000185011,100754701457
+100000185011,100756352078
+100000185011,100754701825
+100000185011,100756352241
+100000185011,100754701852
+100000185011,100756353978
+100000185011,100754702225
+100000185011,100756355161
+100000185011,100754703332
+100000185011,100756355229
+100000185011,100754704098
+100000185011,100756355940
+100000185011,100754705245
+100000185011,100756357665
+100000185011,100754706878
+100000185011,100756358361
+100000185011,100754708595
+100000185011,100756358817
+100000185011,100754710280
+100000185011,100756358895
+100000185011,100754710812
+100000185011,100756359513
+100000185011,100754712989
+100000185011,100756360112
+100000185011,100754715301
+100000185011,100756360394
+100000185011,100754716721
+100000185011,100756361350
+100000185011,100754717479
+100000185011,100756361644
+100000185011,100754718158
+100000185011,100756362269
+100000185011,100754718235
+100000185011,100756365169
+100000185011,100754718940
+100000185011,100756365923
+100000185011,100754719636
+100000185011,100756366250
+100000185011,100754722293
+100000185011,100756366469
+100000185011,100754722334
+100000185011,100756366689
+100000185011,100754723196
+100000185011,100756369168
+100000185011,100754724562
+100000185011,100756369445
+100000185011,100754724842
+100000185011,100756369736
+100000185011,100754728609
+100000185011,100756370200
+100000185011,100754729439
+100000185011,100756370301
+100000185011,100754729689
+100000185011,100756372071
+100000185011,100754732864
+100000185011,100756372522
+100000185011,100754732914
+100000185011,100756373073
+100000185011,100754734004
+100000185011,100756373486
+100000185011,100754734404
+100000185011,100756374564
+100000185011,100754734536
+100000185011,100756374646
+100000185011,100754735018
+100000185011,100756374680
+100000185011,100754735159
+100000185011,100756375953
+100000185011,100754735543
+100000185011,100756376058
+100000185011,100754736088
+100000185011,100756377148
+100000185011,100754737483
+100000185011,100756377225
+100000185011,100754739542
+100000185011,100756379885
+100000185011,100754739583
+100000185011,100756380245
+100000185011,100754740042
+100000185011,100756381922
+100000185011,100754740431
+100000185011,100756382637
+100000185011,100754742350
+100000185011,100756382670
+100000185011,100754743647
+100000185011,100756382911
+100000185011,100754746415
+100000185011,100756382950
+100000185011,100754747238
+100000185011,100756383581
+100000185011,100754747700
+100000185011,100756383854
+100000185011,100754748659
+100000185011,100756384095
+100000185011,100754748725
+100000185011,100756384875
+100000185011,100754748936
+100000185011,100756385218
+100000185011,100754749185
+100000185011,100756385795
+100000185011,100754749260
+100000185011,100756386591
+100000185011,100754749593
+100000185011,100756389357
+100000185011,100754749870
+100000185011,100756389534
+100000185011,100754751689
+100000185011,100756389592
+100000185011,100754752578
+100000185011,100756390403
+100000185011,100754752747
+100000185011,100756391300
+100000185011,100754753957
+100000185011,100756391381
+100000185011,100754754926
+100000185011,100756392172
+100000185011,100754758576
+100000185011,100756392289
+100000185011,100754759961
+100000185011,100756393666
+100000185011,100754767674
+100000185011,100756395582
+100000185011,100754771163
+100000185011,100756395851
+100000185011,100754771888
+100000185011,100756395992
+100000185011,100754771893
+100000185011,100756396376
+100000185011,100754772176
+100000185011,100756397369
+100000185011,100754772686
+100000185011,100756398452
+100000185011,100754773418
+100000185011,100756399413
+100000185011,100754775895
+100000185011,100756400683
+100000185011,100754776027
+100000185011,100756400929
+100000185011,100754777072
+100000185011,100756402659
+100000185011,100754777360
+100000185011,100756402793
+100000185011,100754784542
+100000185011,100756404135
+100000185011,100754785612
+100000185011,100756404797
+100000185011,100754785669
+100000185011,100756405079
+100000185011,100754786624
+100000185011,100756406433
+100000185011,100754787244
+100000185011,100756406440
+100000185011,100754788208
+100000185011,100756406939
+100000185011,100754794821
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashIntColIntCol.java
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashIntColIntCol.java
index c4e9e410ba9..80189acf107 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashIntColIntCol.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashIntColIntCol.java
@@ -46,19 +46,22 @@ public class MurmurHashIntColIntCol extends
MurmurHashExpression {
LongColumnVector inV1 = (LongColumnVector) inputColVector1;
LongColumnVector inV2 = (LongColumnVector) inputColVector2;
+ int idx1 = inputColVector1.isRepeating ? 0 : i;
+ int idx2 = inputColVector2.isRepeating ? 0 : i;
+
// hash of value from 1. column
int hash = 0;
- if (!inV1.isNull[i]) {
+ if (!inV1.isNull[idx1]) {
byteBuffer.clear();
- byteBuffer.putLong(inV1.vector[i]);
+ byteBuffer.putLong(inV1.vector[idx1]);
hash = Murmur3.hash32(byteBuffer.array(), 8);
}
int hash2 = 0;
// hash of value from 2. column
- if (!inV2.isNull[i]) {
+ if (!inV2.isNull[idx2]) {
byteBuffer.clear();
- byteBuffer.putLong(inV2.vector[i]);
+ byteBuffer.putLong(inV2.vector[idx2]);
hash2 = Murmur3.hash32(byteBuffer.array(), 8);
}
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColIntCol.java
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColIntCol.java
index ef4447acdcf..a224a3bba80 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColIntCol.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColIntCol.java
@@ -47,15 +47,18 @@ public class MurmurHashStringColIntCol extends
MurmurHashExpression {
BytesColumnVector inV1 = (BytesColumnVector) inputColVector1;
LongColumnVector inV2 = (LongColumnVector) inputColVector2;
+ int idx1 = inputColVector1.isRepeating ? 0 : i;
+ int idx2 = inputColVector2.isRepeating ? 0 : i;
+
// hash of value from 1. column
- int hash = inV1.isNull[i] ? 0
- : Murmur3.hash32(inV1.vector[i], inV1.start[i], inV1.length[i],
Murmur3.DEFAULT_SEED);
+ int hash = inV1.isNull[idx1] ? 0
+ : Murmur3.hash32(inV1.vector[idx1], inV1.start[idx1], inV1.length[idx1],
Murmur3.DEFAULT_SEED);
// hash of value from 2. column
int hash2 = 0;
- if (!inV2.isNull[i]) {
+ if (!inV2.isNull[idx2]) {
byteBuffer.clear();
- byteBuffer.putLong(inV2.vector[i]);
+ byteBuffer.putLong(inV2.vector[idx2]);
hash2 = Murmur3.hash32(byteBuffer.array(), 8);
}
diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColStringCol.java
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColStringCol.java
index c5df2ed3bb6..ac2e5eab0f0 100644
---
a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColStringCol.java
+++
b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MurmurHashStringColStringCol.java
@@ -47,12 +47,15 @@ public class MurmurHashStringColStringCol extends
MurmurHashExpression {
BytesColumnVector inV1 = (BytesColumnVector) inputColVector1;
BytesColumnVector inV2 = (BytesColumnVector) inputColVector2;
+ int idx1 = inputColVector1.isRepeating ? 0 : i;
+ int idx2 = inputColVector2.isRepeating ? 0 : i;
+
// hash of value from 1. column
- int hash = inV1.isNull[i] ? 0
- : Murmur3.hash32(inV1.vector[i], inV1.start[i], inV1.length[i],
Murmur3.DEFAULT_SEED);
+ int hash = inV1.isNull[idx1] ? 0
+ : Murmur3.hash32(inV1.vector[idx1], inV1.start[idx1], inV1.length[idx1],
Murmur3.DEFAULT_SEED);
// hash of value from 2. column
- int hash2 = inV2.isNull[i] ? 0
- : Murmur3.hash32(inV2.vector[i], inV2.start[i], inV2.length[i],
Murmur3.DEFAULT_SEED);
+ int hash2 = inV2.isNull[idx2] ? 0
+ : Murmur3.hash32(inV2.vector[idx2], inV2.start[idx2], inV2.length[idx2],
Murmur3.DEFAULT_SEED);
outputColVector.vector[i] = 31 * hash + hash2;
}
diff --git
a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestMurmurHashExpression.java
b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestMurmurHashExpression.java
index 5c6cf1109b3..c777f9f9399 100644
---
a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestMurmurHashExpression.java
+++
b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestMurmurHashExpression.java
@@ -241,4 +241,126 @@ public class TestMurmurHashExpression {
((LongColumnVector) vrb.cols[2]).vector[i]);
}
}
+
+
+ private BytesColumnVector createBytesColumnVector(Text value, boolean
isRepeating) {
+ BytesColumnVector bcv = new BytesColumnVector(SIZE);
+ bcv.initBuffer(value.getLength());
+ bcv.noNulls = true;
+ bcv.isRepeating = isRepeating;
+
+ byte[] bytes = value.copyBytes();
+ if (isRepeating) {
+ bcv.setRef(0, bytes, 0, value.getLength());
+ for (int i = 1; i < SIZE; i++) {
+ // modify length[i] to mimic ColumnVector reusing.
+ bcv.length[i] = 10;
+ }
+ } else {
+ for (int i = 0; i < SIZE; i++) {
+ bcv.setRef(i, bytes, 0, value.getLength());
+ }
+ }
+
+ return bcv;
+ }
+
+ private LongColumnVector createLongColumnVector(long value, boolean
isRepeating) {
+ LongColumnVector lcv = new LongColumnVector(SIZE);
+ lcv.noNulls = true;
+ lcv.isRepeating = isRepeating;
+ if (isRepeating) {
+ lcv.vector[0] = value;
+ } else {
+ for (int i = 0; i < SIZE; i++) {
+ lcv.vector[i] = value;
+ }
+ }
+
+ return lcv;
+ }
+
+ @Test
+ public void testMurmurHashStringColStringColSingleRepeating() throws
HiveException {
+ Text text = new Text("Value");
+ BytesColumnVector cvString1 = createBytesColumnVector(text, false);
+ BytesColumnVector cvString2 = createBytesColumnVector(text, true);
+
+ VectorizedRowBatch vrb = new VectorizedRowBatch(3, SIZE);
+ vrb.cols[0] = cvString1;
+ vrb.cols[1] = cvString2;
+ vrb.cols[2] = new LongColumnVector(SIZE);
+
+ new MurmurHashStringColStringCol(0, 1, 2).evaluate(vrb);
+
+ Assert.assertFalse(vrb.cols[2].isRepeating);
+
+ for (int i = 0; i < SIZE; i++) {
+ Assert.assertEquals(-452676736, ((LongColumnVector)
vrb.cols[2]).vector[i]);
+ }
+ }
+
+ @Test
+ public void testMurmurHashIntColIntColSingleRepeating() throws HiveException
{
+ long num = 7640254796529531955L;
+ LongColumnVector cvLong1 = createLongColumnVector(num, false);
+ LongColumnVector cvLong2 = createLongColumnVector(num, true);
+
+ VectorizedRowBatch vrb = new VectorizedRowBatch(3, SIZE);
+ vrb.cols[0] = cvLong1;
+ vrb.cols[1] = cvLong2;
+ vrb.cols[2] = new LongColumnVector(SIZE);
+
+ new MurmurHashIntColIntCol(0, 1, 2).evaluate(vrb);
+
+ Assert.assertFalse(vrb.cols[2].isRepeating);
+
+ for (int i = 0; i < SIZE; i++) {
+ Assert.assertEquals(1533409056, ((LongColumnVector)
vrb.cols[2]).vector[i]);
+ }
+ }
+
+ @Test
+ public void testMurmurHashNonRepeatingStringColRepeatingIntCol() throws
HiveException {
+ Text text = new Text("Value");
+ long num = 7640254796529531955L;
+
+ BytesColumnVector cvString = createBytesColumnVector(text, false);
+ LongColumnVector cvLong = createLongColumnVector(num, true);
+
+ VectorizedRowBatch vrb = new VectorizedRowBatch(3, SIZE);
+ vrb.cols[0] = cvString;
+ vrb.cols[1] = cvLong;
+ vrb.cols[2] = new LongColumnVector(SIZE);
+
+ new MurmurHashStringColIntCol(0, 1, 2).evaluate(vrb);
+
+ Assert.assertFalse(vrb.cols[2].isRepeating);
+
+ for (int i = 0; i < SIZE; i++) {
+ Assert.assertEquals(1622654365, ((LongColumnVector)
vrb.cols[2]).vector[i]);
+ }
+ }
+
+ @Test
+ public void testMurmurHashRepeatingStringColNonRepeatingIntCol() throws
HiveException {
+ Text text = new Text("Value");
+ long num = 7640254796529531955L;
+
+ BytesColumnVector cvString = createBytesColumnVector(text, true);
+ LongColumnVector cvLong = createLongColumnVector(num, false);
+
+ VectorizedRowBatch vrb = new VectorizedRowBatch(3, SIZE);
+ vrb.cols[0] = cvString;
+ vrb.cols[1] = cvLong;
+ vrb.cols[2] = new LongColumnVector(SIZE);
+
+ new MurmurHashStringColIntCol(0, 1, 2).evaluate(vrb);
+
+ Assert.assertFalse(vrb.cols[2].isRepeating);
+
+ for (int i = 0; i < SIZE; i++) {
+ Assert.assertEquals(1622654365, ((LongColumnVector)
vrb.cols[2]).vector[i]);
+ }
+ }
}
diff --git
a/ql/src/test/queries/clientpositive/vectorized_murmurhash_repeating.q
b/ql/src/test/queries/clientpositive/vectorized_murmurhash_repeating.q
new file mode 100644
index 00000000000..c2bd548c0e4
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/vectorized_murmurhash_repeating.q
@@ -0,0 +1,28 @@
+set hive.llap.io.enabled=false;
+set hive.vectorized.execution.enabled=true;
+
+create table csv_table(id string, id2 string) row format delimited fields
terminated by ',' stored as textfile;
+LOAD DATA LOCAL INPATH '../../data/files/2048.csv' OVERWRITE INTO TABLE
csv_table;
+
+CREATE TABLE source(id string, id2 string) stored as orc;
+insert overwrite table source select id, id2 from csv_table;
+
+-- Test MurmurHashStringColStringCol
+explain vectorization detail
+select sum(murmur_hash(id, id2)) from source;
+select sum(murmur_hash(id, id2)) from source;
+
+-- Test MurmurHashIntColIntCol
+explain vectorization detail
+select sum(murmur_hash(cast(id as BIGINT), cast(id2 as BIGINT))) from source;
+select sum(murmur_hash(cast(id as BIGINT), cast(id2 as BIGINT))) from source;
+
+-- Test MurmurHashStringColIntCol: string is repeating
+explain vectorization detail
+select sum(murmur_hash(id, cast(id2 as BIGINT))) from source;
+select sum(murmur_hash(id, cast(id2 as BIGINT))) from source;
+
+-- Test MurmurHashStringColIntCol: long is repeating
+explain vectorization detail
+select sum(murmur_hash(id2, cast(id as BIGINT))) from source;
+select sum(murmur_hash(id2, cast(id as BIGINT))) from source;
diff --git
a/ql/src/test/results/clientpositive/llap/vectorized_murmurhash_repeating.q.out
b/ql/src/test/results/clientpositive/llap/vectorized_murmurhash_repeating.q.out
new file mode 100644
index 00000000000..1229ee87bb8
--- /dev/null
+++
b/ql/src/test/results/clientpositive/llap/vectorized_murmurhash_repeating.q.out
@@ -0,0 +1,578 @@
+PREHOOK: query: create table csv_table(id string, id2 string) row format
delimited fields terminated by ',' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@csv_table
+POSTHOOK: query: create table csv_table(id string, id2 string) row format
delimited fields terminated by ',' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@csv_table
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/2048.csv' OVERWRITE
INTO TABLE csv_table
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@csv_table
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/2048.csv' OVERWRITE
INTO TABLE csv_table
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@csv_table
+PREHOOK: query: CREATE TABLE source(id string, id2 string) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@source
+POSTHOOK: query: CREATE TABLE source(id string, id2 string) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@source
+PREHOOK: query: insert overwrite table source select id, id2 from csv_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@csv_table
+PREHOOK: Output: default@source
+POSTHOOK: query: insert overwrite table source select id, id2 from csv_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@csv_table
+POSTHOOK: Output: default@source
+POSTHOOK: Lineage: source.id SIMPLE [(csv_table)csv_table.FieldSchema(name:id,
type:string, comment:null), ]
+POSTHOOK: Lineage: source.id2 SIMPLE
[(csv_table)csv_table.FieldSchema(name:id2, type:string, comment:null), ]
+PREHOOK: query: explain vectorization detail
+select sum(murmur_hash(id, id2)) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: explain vectorization detail
+select sum(murmur_hash(id, id2)) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+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:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: source
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:id:string, 1:id2:string,
2:ROW__ID:struct<writeid:bigint,bucketid:int,rowid:bigint>,
3:ROW__IS__DELETED:boolean]
+ Select Operator
+ expressions: hash(id,id2) (type: int)
+ outputColumnNames: _col0
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [4]
+ selectExpressions: MurmurHashStringColStringCol(col
0:string, col 1:string) -> 4:int
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 4:int) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0]
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ null sort order:
+ sort order:
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkEmptyKeyOperator
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
tez IN [tez] IS true, No PTF TopN IS true, No DISTINCT columns IS true,
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumns: 0:bigint
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: vectorized, llap
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet:
hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats:
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 2
+ includeColumns: [0, 1]
+ dataColumns: id:string, id2:string
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [bigint]
+ Reducer 2
+ Execution mode: vectorized, llap
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine tez IN [tez] IS true
+ reduceColumnNullOrder:
+ reduceColumnSortOrder:
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 1
+ dataColumns: VALUE._col0:bigint
+ partitionColumnCount: 0
+ scratchColumnTypeNames: []
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 0:bigint) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: MERGEPARTIAL
+ native: false
+ vectorProcessingMode: GLOBAL
+ projectedOutputColumnNums: [0]
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE
Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 1 Data size: 8 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select sum(murmur_hash(id, id2)) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(murmur_hash(id, id2)) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+59067566789
+PREHOOK: query: explain vectorization detail
+select sum(murmur_hash(cast(id as BIGINT), cast(id2 as BIGINT))) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: explain vectorization detail
+select sum(murmur_hash(cast(id as BIGINT), cast(id2 as BIGINT))) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+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:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: source
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:id:string, 1:id2:string,
2:ROW__ID:struct<writeid:bigint,bucketid:int,rowid:bigint>,
3:ROW__IS__DELETED:boolean]
+ Select Operator
+ expressions: hash(UDFToLong(id),UDFToLong(id2)) (type: int)
+ outputColumnNames: _col0
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [6]
+ selectExpressions: MurmurHashIntColIntCol(col
4:bigint, col 5:bigint)(children: CastStringToLong(col 0:string) -> 4:bigint,
CastStringToLong(col 1:string) -> 5:bigint) -> 6:int
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 6:int) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0]
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ null sort order:
+ sort order:
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkEmptyKeyOperator
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
tez IN [tez] IS true, No PTF TopN IS true, No DISTINCT columns IS true,
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumns: 0:bigint
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: vectorized, llap
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet:
hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats:
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 2
+ includeColumns: [0, 1]
+ dataColumns: id:string, id2:string
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [bigint, bigint, bigint]
+ Reducer 2
+ Execution mode: vectorized, llap
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine tez IN [tez] IS true
+ reduceColumnNullOrder:
+ reduceColumnSortOrder:
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 1
+ dataColumns: VALUE._col0:bigint
+ partitionColumnCount: 0
+ scratchColumnTypeNames: []
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 0:bigint) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: MERGEPARTIAL
+ native: false
+ vectorProcessingMode: GLOBAL
+ projectedOutputColumnNums: [0]
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE
Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 1 Data size: 8 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select sum(murmur_hash(cast(id as BIGINT), cast(id2 as
BIGINT))) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(murmur_hash(cast(id as BIGINT), cast(id2 as
BIGINT))) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+-14637515591
+PREHOOK: query: explain vectorization detail
+select sum(murmur_hash(id, cast(id2 as BIGINT))) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: explain vectorization detail
+select sum(murmur_hash(id, cast(id2 as BIGINT))) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+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:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: source
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:id:string, 1:id2:string,
2:ROW__ID:struct<writeid:bigint,bucketid:int,rowid:bigint>,
3:ROW__IS__DELETED:boolean]
+ Select Operator
+ expressions: hash(id,UDFToLong(id2)) (type: int)
+ outputColumnNames: _col0
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [5]
+ selectExpressions: MurmurHashStringColIntCol(col
0:string, col 4:bigint)(children: CastStringToLong(col 1:string) -> 4:bigint)
-> 5:int
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 5:int) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0]
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ null sort order:
+ sort order:
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkEmptyKeyOperator
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
tez IN [tez] IS true, No PTF TopN IS true, No DISTINCT columns IS true,
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumns: 0:bigint
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: vectorized, llap
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet:
hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats:
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 2
+ includeColumns: [0, 1]
+ dataColumns: id:string, id2:string
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [bigint, bigint]
+ Reducer 2
+ Execution mode: vectorized, llap
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine tez IN [tez] IS true
+ reduceColumnNullOrder:
+ reduceColumnSortOrder:
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 1
+ dataColumns: VALUE._col0:bigint
+ partitionColumnCount: 0
+ scratchColumnTypeNames: []
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 0:bigint) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: MERGEPARTIAL
+ native: false
+ vectorProcessingMode: GLOBAL
+ projectedOutputColumnNums: [0]
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE
Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 1 Data size: 8 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select sum(murmur_hash(id, cast(id2 as BIGINT))) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(murmur_hash(id, cast(id2 as BIGINT))) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+63601589819
+PREHOOK: query: explain vectorization detail
+select sum(murmur_hash(id2, cast(id as BIGINT))) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: explain vectorization detail
+select sum(murmur_hash(id2, cast(id as BIGINT))) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+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:
+ Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: source
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:id:string, 1:id2:string,
2:ROW__ID:struct<writeid:bigint,bucketid:int,rowid:bigint>,
3:ROW__IS__DELETED:boolean]
+ Select Operator
+ expressions: hash(id2,UDFToLong(id)) (type: int)
+ outputColumnNames: _col0
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [5]
+ selectExpressions: MurmurHashStringColIntCol(col
1:string, col 4:bigint)(children: CastStringToLong(col 0:string) -> 4:bigint)
-> 5:int
+ Statistics: Num rows: 2048 Data size: 393216 Basic stats:
COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: sum(_col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 5:int) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: HASH
+ native: false
+ vectorProcessingMode: HASH
+ projectedOutputColumnNums: [0]
+ minReductionHashAggr: 0.99
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ null sort order:
+ sort order:
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkEmptyKeyOperator
+ native: true
+ nativeConditionsMet:
hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine
tez IN [tez] IS true, No PTF TopN IS true, No DISTINCT columns IS true,
BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumns: 0:bigint
+ Statistics: Num rows: 1 Data size: 8 Basic stats:
COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Execution mode: vectorized, llap
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet:
hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats:
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 2
+ includeColumns: [0, 1]
+ dataColumns: id:string, id2:string
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [bigint, bigint]
+ Reducer 2
+ Execution mode: vectorized, llap
+ Reduce Vectorization:
+ enabled: true
+ enableConditionsMet: hive.vectorized.execution.reduce.enabled
IS true, hive.execution.engine tez IN [tez] IS true
+ reduceColumnNullOrder:
+ reduceColumnSortOrder:
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 1
+ dataColumns: VALUE._col0:bigint
+ partitionColumnCount: 0
+ scratchColumnTypeNames: []
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: sum(VALUE._col0)
+ Group By Vectorization:
+ aggregators: VectorUDAFSumLong(col 0:bigint) -> bigint
+ className: VectorGroupByOperator
+ groupByMode: MERGEPARTIAL
+ native: false
+ vectorProcessingMode: GLOBAL
+ projectedOutputColumnNums: [0]
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE
Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 1 Data size: 8 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select sum(murmur_hash(id2, cast(id as BIGINT))) from source
+PREHOOK: type: QUERY
+PREHOOK: Input: default@source
+#### A masked pattern was here ####
+POSTHOOK: query: select sum(murmur_hash(id2, cast(id as BIGINT))) from source
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@source
+#### A masked pattern was here ####
+-18550462563