You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2013/11/20 06:40:48 UTC

svn commit: r1543711 [4/4] - in /hive/trunk: common/src/test/org/apache/hadoop/hive/common/type/ ql/src/java/org/apache/hadoop/hive/ql/exec/ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/ ql/src/java/org/apache/hadoop/hive/ql/parse/ ql/src/j...

Modified: hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/vectorized_math_funcs.q.out Wed Nov 20 05:40:46 2013
@@ -175,7 +175,7 @@ STAGE PLANS:
                       type: double
                       expr: abs(ctinyint)
                       type: int
-                      expr: pmod(cint, 3)
+                      expr: (cint pmod 3)
                       type: int
                       expr: sin(cdouble)
                       type: double

Modified: hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out Wed Nov 20 05:40:46 2013
@@ -168,106 +168,106 @@ POSTHOOK: query: select s, si, f, si - l
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over10k
 #### A masked pattern was here ####
-alice allen	400	76.31	337.23
-alice davidson	384	71.97	357.79
-alice king	455	2.48	395.93
-alice king	458	62.77	384.16998
-alice xylophone	485	26.21	464.05
-bob falkner	260	59.07	242.4
-bob ichabod	454	73.83	381.7
-bob polk	264	20.95	257.17
-bob underhill	454	17.6	424.94
-bob underhill	465	72.3	453.17
-bob van buren	433	6.83	398.4
-calvin ichabod	431	29.06	334.22
-david garcia	485	11.83	421.51
-ethan steinbeck	298	34.6	288.14
-fred ellison	376	96.78	330.76
-holly steinbeck	384	63.49	293.7
-holly underhill	318	9.86	269.91
-irene ellison	458	45.24	365.29
-irene underhill	307	90.3	244.19
-jessica johnson	494	48.09	490.18
-jessica king	459	92.71	452.2
-jessica white	284	62.81	209.08
-luke garcia	311	3.82	267.27
+alice allen	400	76.31	337.2299995422363
+alice davidson	384	71.97	357.79000091552734
+alice king	455	2.48	395.9300003051758
+alice king	458	62.77	384.1699981689453
+alice xylophone	485	26.21	464.04999923706055
+bob falkner	260	59.07	242.39999961853027
+bob ichabod	454	73.83	381.6999969482422
+bob polk	264	20.95	257.17000007629395
+bob underhill	454	17.6	424.9400005340576
+bob underhill	465	72.3	453.17000007629395
+bob van buren	433	6.83	398.4000015258789
+calvin ichabod	431	29.06	334.2200012207031
+david garcia	485	11.83	421.5099983215332
+ethan steinbeck	298	34.6	288.14000034332275
+fred ellison	376	96.78	330.7599983215332
+holly steinbeck	384	63.49	293.6999969482422
+holly underhill	318	9.86	269.9099998474121
+irene ellison	458	45.24	365.29000091552734
+irene underhill	307	90.3	244.18999862670898
+jessica johnson	494	48.09	490.1800000667572
+jessica king	459	92.71	452.19999980926514
+jessica white	284	62.81	209.0800018310547
+luke garcia	311	3.82	267.2700004577637
 luke young	451	6.8	429.0
-mike king	275	74.92	211.81
-oscar garcia	362	43.73	340.66
-priscilla laertes	316	22.0	296.06
-priscilla quirinius	423	63.19	362.72
-priscilla zipper	485	21.34	400.61
-quinn ellison	266	19.94	209.95
-quinn polk	507	60.28	447.66
-sarah robinson	320	84.39	309.74
-tom polk	346	56.05	320.33
-ulysses ellison	381	59.34	358.66
-ulysses quirinius	303	10.26	259.6
-ulysses robinson	313	25.67	269.31
-ulysses steinbeck	333	22.34	270.61
+mike king	275	74.92	211.81000137329102
+oscar garcia	362	43.73	340.6599998474121
+priscilla laertes	316	22.0	296.0599994659424
+priscilla quirinius	423	63.19	362.7200012207031
+priscilla zipper	485	21.34	400.61000061035156
+quinn ellison	266	19.94	209.95000076293945
+quinn polk	507	60.28	447.6599998474121
+sarah robinson	320	84.39	309.73999977111816
+tom polk	346	56.05	320.32999992370605
+ulysses ellison	381	59.34	358.6599998474121
+ulysses quirinius	303	10.26	259.5999984741211
+ulysses robinson	313	25.67	269.310001373291
+ulysses steinbeck	333	22.34	270.61000061035156
 victor allen	337	43.4	311.5
-victor hernandez	447	43.69	375.22
-victor xylophone	438	62.39	424.33
+victor hernandez	447	43.69	375.2200012207031
+victor xylophone	438	62.39	424.32999992370605
 wendy quirinius	279	25.5	250.25
-wendy robinson	275	71.78	262.88
-wendy xylophone	314	13.67	295.73
-xavier garcia	493	28.75	474.56
-zach thompson	386	12.12	377.63
-zach young	286	18.27	263.65
-alice falkner	280	18.44	227.7
-bob ellison	339	8.37	300.95
-bob johnson	374	22.35	326.49
-calvin white	280	52.3	198.32
-david carson	270	38.05	255.77
-david falkner	469	47.51	388.35
-david hernandez	408	81.68	339.27
-ethan underhill	339	14.23	256.26
+wendy robinson	275	71.78	262.8800001144409
+wendy xylophone	314	13.67	295.7299995422363
+xavier garcia	493	28.75	474.5599994659424
+zach thompson	386	12.12	377.6300001144409
+zach young	286	18.27	263.6499996185303
+alice falkner	280	18.44	227.70000076293945
+bob ellison	339	8.37	300.95000076293945
+bob johnson	374	22.35	326.4900016784668
+calvin white	280	52.3	198.31999969482422
+david carson	270	38.05	255.77000045776367
+david falkner	469	47.51	388.3499984741211
+david hernandez	408	81.68	339.2699966430664
+ethan underhill	339	14.23	256.26000213623047
 gabriella brown	498	80.65	413.25
-holly nixon	505	68.73	440.71
-holly polk	268	82.74	182.04001
-holly thompson	387	84.75	298.22
-irene young	458	64.29	401.8
-jessica miller	299	85.96	243.41
-katie ichabod	469	88.78	385.61
-luke ichabod	289	56.2	286.74
-luke king	337	55.59	274.88
-mike allen	465	83.39	383.03
-mike polk	500	2.26	427.74
-mike white	454	62.12	430.78
-mike xylophone	448	81.97	447.17
-nick nixon	335	72.26	240.78
-nick robinson	350	23.22	294.59
-oscar davidson	432	0.83	420.93
-oscar johnson	315	94.22	233.05
-oscar johnson	469	55.41	468.44
-oscar miller	324	11.07	265.19
-rachel davidson	507	81.95	468.78
-rachel thompson	344	0.56	246.12
-sarah miller	386	58.81	304.36
-sarah xylophone	275	38.22	177.48999
-sarah zipper	376	97.88	294.61
-tom hernandez	467	81.64	459.9
-tom hernandez	477	97.51	415.19
-tom steinbeck	414	81.39	361.87
-ulysses carson	343	7.1	314.22
+holly nixon	505	68.73	440.70999908447266
+holly polk	268	82.74	182.04000091552734
+holly thompson	387	84.75	298.2200012207031
+irene young	458	64.29	401.79999923706055
+jessica miller	299	85.96	243.4099998474121
+katie ichabod	469	88.78	385.61000061035156
+luke ichabod	289	56.2	286.74000000953674
+luke king	337	55.59	274.88000106811523
+mike allen	465	83.39	383.0299987792969
+mike polk	500	2.26	427.73999786376953
+mike white	454	62.12	430.7800006866455
+mike xylophone	448	81.97	447.1700000166893
+nick nixon	335	72.26	240.77999877929688
+nick robinson	350	23.22	294.5900001525879
+oscar davidson	432	0.83	420.9300003051758
+oscar johnson	315	94.22	233.0500030517578
+oscar johnson	469	55.41	468.4399999976158
+oscar miller	324	11.07	265.189998626709
+rachel davidson	507	81.95	468.7799987792969
+rachel thompson	344	0.56	246.12000274658203
+sarah miller	386	58.81	304.36000061035156
+sarah xylophone	275	38.22	177.48999786376953
+sarah zipper	376	97.88	294.61000061035156
+tom hernandez	467	81.64	459.90000009536743
+tom hernandez	477	97.51	415.189998626709
+tom steinbeck	414	81.39	361.86999893188477
+ulysses carson	343	7.1	314.2199993133545
 victor robinson	415	61.81	349.5
 victor thompson	344	52.13	NULL
 xavier ovid	280	28.78	NULL
 yuri xylophone	430	65.5	NULL
-alice underhill	389	26.68	368.06
-alice underhill	446	6.49	444.21
-bob ovid	331	67.12	236.43
-bob van buren	406	20.94	383.32
-david falkner	406	1.79	374.34
-david miller	450	94.57	380.13
-ethan allen	380	22.68	375.6
-ethan king	395	31.66	361.51
-ethan nixon	475	69.87	431.39
-ethan polk	283	4.4	243.82
-fred allen	331	33.49	281.68
-fred king	511	43.61	457.22
-fred polk	261	39.18	248.73
-fred young	303	49.32	221.51001
+alice underhill	389	26.68	368.0599994659424
+alice underhill	446	6.49	444.210000038147
+bob ovid	331	67.12	236.43000030517578
+bob van buren	406	20.94	383.3199996948242
+david falkner	406	1.79	374.3400001525879
+david miller	450	94.57	380.12999725341797
+ethan allen	380	22.68	375.59999990463257
+ethan king	395	31.66	361.5099983215332
+ethan nixon	475	69.87	431.38999938964844
+ethan polk	283	4.4	243.81999969482422
+fred allen	331	33.49	281.6800003051758
+fred king	511	43.61	457.2200012207031
+fred polk	261	39.18	248.72999954223633
+fred young	303	49.32	221.51000213623047
 PREHOOK: query: select s, i, i - lead(i, 3, 0) over (partition by si order by i,s) from over10k limit 100
 PREHOOK: type: QUERY
 PREHOOK: Input: default@over10k

Modified: hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml Wed Nov 20 05:40:46 2013
@@ -498,17 +498,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>+</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo0"/> 
@@ -543,17 +533,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>+</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 
@@ -588,17 +568,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>+</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 
@@ -633,17 +603,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>+</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 
@@ -678,17 +638,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>+</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo0"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/input20.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/input20.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/input20.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/input20.q.xml Wed Nov 20 05:40:46 2013
@@ -587,17 +587,7 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>%</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                 </void> 
                 <void property="typeInfo"> 
                  <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
@@ -639,17 +629,7 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>%</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                 </void> 
                 <void property="typeInfo"> 
                  <object idref="PrimitiveTypeInfo2"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/input8.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/input8.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/input8.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/input8.q.xml Wed Nov 20 05:40:46 2013
@@ -202,7 +202,7 @@
                       </void> 
                       <void method="put"> 
                        <string>columns.types</string> 
-                       <string>int:double:tinyint</string> 
+                       <string>double:double:double</string> 
                       </void> 
                       <void method="put"> 
                        <string>escape.delim</string> 
@@ -258,12 +258,12 @@
                       <void property="type"> 
                        <object id="PrimitiveTypeInfo0" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
                         <void property="typeName"> 
-                         <string>int</string> 
+                         <string>double</string> 
                         </void> 
                        </object> 
                       </void> 
                       <void property="typeName"> 
-                       <string>int</string> 
+                       <string>double</string> 
                       </void> 
                      </object> 
                     </void> 
@@ -276,11 +276,7 @@
                        <string></string> 
                       </void> 
                       <void property="type"> 
-                       <object id="PrimitiveTypeInfo1" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
-                        <void property="typeName"> 
-                         <string>double</string> 
-                        </void> 
-                       </object> 
+                       <object idref="PrimitiveTypeInfo0"/> 
                       </void> 
                       <void property="typeName"> 
                        <string>double</string> 
@@ -296,14 +292,10 @@
                        <string></string> 
                       </void> 
                       <void property="type"> 
-                       <object id="PrimitiveTypeInfo2" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
-                        <void property="typeName"> 
-                         <string>tinyint</string> 
-                        </void> 
-                       </object> 
+                       <object idref="PrimitiveTypeInfo0"/> 
                       </void> 
                       <void property="typeName"> 
-                       <string>tinyint</string> 
+                       <string>double</string> 
                       </void> 
                      </object> 
                     </void> 
@@ -331,20 +323,10 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>+</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                 </void> 
                 <void property="typeInfo"> 
-                 <object idref="PrimitiveTypeInfo2"/> 
+                 <object idref="PrimitiveTypeInfo0"/> 
                 </void> 
                </object> 
               </void> 
@@ -362,7 +344,7 @@
                      <string>src1</string> 
                     </void> 
                     <void property="typeInfo"> 
-                     <object id="PrimitiveTypeInfo3" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                     <object id="PrimitiveTypeInfo1" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
                       <void property="typeName"> 
                        <string>string</string> 
                       </void> 
@@ -376,20 +358,10 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPMinus</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>-</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMinus"/> 
                 </void> 
                 <void property="typeInfo"> 
-                 <object idref="PrimitiveTypeInfo1"/> 
+                 <object idref="PrimitiveTypeInfo0"/> 
                 </void> 
                </object> 
               </void> 
@@ -401,7 +373,11 @@
                   <void method="add"> 
                    <object class="org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc"> 
                     <void property="typeInfo"> 
-                     <object idref="PrimitiveTypeInfo0"/> 
+                     <object class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 
+                      <void property="typeName"> 
+                       <string>int</string> 
+                      </void> 
+                     </object> 
                     </void> 
                     <void property="value"> 
                      <int>4</int> 
@@ -414,17 +390,7 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>+</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                 </void> 
                 <void property="typeInfo"> 
                  <object idref="PrimitiveTypeInfo0"/> 
@@ -505,7 +471,7 @@
                    <object idref="PrimitiveTypeInfo0"/> 
                   </void> 
                   <void property="typeName"> 
-                   <string>int</string> 
+                   <string>double</string> 
                   </void> 
                  </object> 
                 </void> 
@@ -518,7 +484,7 @@
                    <string>_col1</string> 
                   </void> 
                   <void property="type"> 
-                   <object idref="PrimitiveTypeInfo1"/> 
+                   <object idref="PrimitiveTypeInfo0"/> 
                   </void> 
                   <void property="typeName"> 
                    <string>double</string> 
@@ -534,10 +500,10 @@
                    <string>_col2</string> 
                   </void> 
                   <void property="type"> 
-                   <object idref="PrimitiveTypeInfo2"/> 
+                   <object idref="PrimitiveTypeInfo0"/> 
                   </void> 
                   <void property="typeName"> 
-                   <string>tinyint</string> 
+                   <string>double</string> 
                   </void> 
                  </object> 
                 </void> 
@@ -605,7 +571,7 @@
                <string>src1</string> 
               </void> 
               <void property="type"> 
-               <object idref="PrimitiveTypeInfo3"/> 
+               <object idref="PrimitiveTypeInfo1"/> 
               </void> 
               <void property="typeName"> 
                <string>string</string> 
@@ -621,7 +587,7 @@
                <string>src1</string> 
               </void> 
               <void property="type"> 
-               <object idref="PrimitiveTypeInfo3"/> 
+               <object idref="PrimitiveTypeInfo1"/> 
               </void> 
               <void property="typeName"> 
                <string>string</string> 
@@ -663,7 +629,7 @@
                <string>src1</string> 
               </void> 
               <void property="type"> 
-               <object idref="PrimitiveTypeInfo3"/> 
+               <object idref="PrimitiveTypeInfo1"/> 
               </void> 
               <void property="typeName"> 
                <string>string</string> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/join2.q.xml Wed Nov 20 05:40:46 2013
@@ -379,17 +379,7 @@
                        </object> 
                       </void> 
                       <void property="genericUDF"> 
-                       <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                        <void property="operator"> 
-                         <boolean>true</boolean> 
-                        </void> 
-                        <void property="udfClassName"> 
-                         <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                        </void> 
-                        <void property="udfName"> 
-                         <string>+</string> 
-                        </void> 
-                       </object> 
+                       <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                       </void> 
                       <void property="typeInfo"> 
                        <object id="PrimitiveTypeInfo1" class="org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo"> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample1.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample1.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample1.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample1.q.xml Wed Nov 20 05:40:46 2013
@@ -669,17 +669,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>%</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample2.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample2.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample2.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample2.q.xml Wed Nov 20 05:40:46 2013
@@ -988,17 +988,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>%</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample3.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample3.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample3.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample3.q.xml Wed Nov 20 05:40:46 2013
@@ -1001,17 +1001,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>%</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample4.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample4.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample4.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample4.q.xml Wed Nov 20 05:40:46 2013
@@ -988,17 +988,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>%</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample5.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample5.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample5.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample5.q.xml Wed Nov 20 05:40:46 2013
@@ -988,17 +988,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>%</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample6.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample6.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample6.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample6.q.xml Wed Nov 20 05:40:46 2013
@@ -988,17 +988,7 @@
                      </object> 
                     </void> 
                     <void property="genericUDF"> 
-                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                      <void property="operator"> 
-                       <boolean>true</boolean> 
-                      </void> 
-                      <void property="udfClassName"> 
-                       <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                      </void> 
-                      <void property="udfName"> 
-                       <string>%</string> 
-                      </void> 
-                     </object> 
+                     <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                     </void> 
                     <void property="typeInfo"> 
                      <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/sample7.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/sample7.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/sample7.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/sample7.q.xml Wed Nov 20 05:40:46 2013
@@ -989,17 +989,7 @@
                          </object> 
                         </void> 
                         <void property="genericUDF"> 
-                         <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                          <void property="operator"> 
-                           <boolean>true</boolean> 
-                          </void> 
-                          <void property="udfClassName"> 
-                           <string>org.apache.hadoop.hive.ql.udf.UDFOPMod</string> 
-                          </void> 
-                          <void property="udfName"> 
-                           <string>%</string> 
-                          </void> 
-                         </object> 
+                         <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPMod"/> 
                         </void> 
                         <void property="typeInfo"> 
                          <object idref="PrimitiveTypeInfo1"/> 

Modified: hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml (original)
+++ hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml Wed Nov 20 05:40:46 2013
@@ -1103,17 +1103,7 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>+</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                 </void> 
                 <void property="typeInfo"> 
                  <object idref="PrimitiveTypeInfo2"/> 
@@ -1148,17 +1138,7 @@
                  </object> 
                 </void> 
                 <void property="genericUDF"> 
-                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge"> 
-                  <void property="operator"> 
-                   <boolean>true</boolean> 
-                  </void> 
-                  <void property="udfClassName"> 
-                   <string>org.apache.hadoop.hive.ql.udf.UDFOPPlus</string> 
-                  </void> 
-                  <void property="udfName"> 
-                   <string>+</string> 
-                  </void> 
-                 </object> 
+                 <object class="org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPPlus"/> 
                 </void> 
                 <void property="typeInfo"> 
                  <object idref="PrimitiveTypeInfo2"/> 

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -80,4 +80,14 @@ public interface PrimitiveObjectInspecto
    */
   boolean preferWritable();
 
+  /**
+   * The precision of the underlying data.
+   */
+  int precision();
+
+  /**
+   * The scale of the underlying data.
+   */
+  int scale();
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.HiveDecimalUtils;
 import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
 
 /**
@@ -86,4 +87,20 @@ public abstract class AbstractPrimitiveO
     return this.typeInfo;
   }
 
+  /**
+   * Default implementation.  Maybe overridden by exact types.
+   */
+  @Override
+  public int precision() {
+    return HiveDecimalUtils.getPrecisionForType(typeInfo);
+  }
+
+  /**
+   * Default implementation.  Maybe overridden by exact types.
+   */
+  @Override
+  public int scale() {
+    return HiveDecimalUtils.getScaleForType(typeInfo);
+  }
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -17,9 +17,10 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
+import java.math.BigDecimal;
 
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
 
 /**
  * A WritableConstantByteObjectInspector is a WritableByteObjectInspector
@@ -34,6 +35,7 @@ public class WritableConstantByteObjectI
   protected WritableConstantByteObjectInspector() {
     super();
   }
+
   WritableConstantByteObjectInspector(ByteWritable value) {
     super();
     this.value = value;
@@ -43,4 +45,10 @@ public class WritableConstantByteObjectI
   public ByteWritable getWritableConstantValue() {
     return value;
   }
+
+  @Override
+  public int precision() {
+    return BigDecimal.valueOf(value.get()).precision();
+  }
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -56,4 +56,14 @@ implements ConstantObjectInspector {
     return new HiveDecimalWritable(dec);
   }
 
+  @Override
+  public int precision() {
+    return value.getHiveDecimal().precision();
+  }
+
+  @Override
+  public int scale() {
+    return value.getHiveDecimal().scale();
+  }
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -17,8 +17,9 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
+import java.math.BigDecimal;
 
+import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
 import org.apache.hadoop.io.IntWritable;
 
 /**
@@ -34,6 +35,7 @@ public class WritableConstantIntObjectIn
   protected WritableConstantIntObjectInspector() {
     super();
   }
+
   WritableConstantIntObjectInspector(IntWritable value) {
     super();
     this.value = value;
@@ -43,4 +45,10 @@ public class WritableConstantIntObjectIn
   public IntWritable getWritableConstantValue() {
     return value;
   }
+
+  @Override
+  public int precision() {
+    return BigDecimal.valueOf(value.get()).precision();
+  }
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -17,8 +17,9 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
+import java.math.BigDecimal;
 
+import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
 import org.apache.hadoop.io.LongWritable;
 
 /**
@@ -34,6 +35,7 @@ public class WritableConstantLongObjectI
   protected WritableConstantLongObjectInspector() {
     super();
   }
+
   WritableConstantLongObjectInspector(LongWritable value) {
     super();
     this.value = value;
@@ -43,4 +45,10 @@ public class WritableConstantLongObjectI
   public LongWritable getWritableConstantValue() {
     return value;
   }
+
+  @Override
+  public int precision() {
+    return BigDecimal.valueOf(value.get()).precision();
+  }
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java Wed Nov 20 05:40:46 2013
@@ -17,9 +17,10 @@
  */
 package org.apache.hadoop.hive.serde2.objectinspector.primitive;
 
-import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
+import java.math.BigDecimal;
 
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
 
 /**
  * A WritableConstantShortObjectInspector is a WritableShortObjectInspector
@@ -34,6 +35,7 @@ public class WritableConstantShortObject
   protected WritableConstantShortObjectInspector() {
     super();
   }
+
   WritableConstantShortObjectInspector(ShortWritable value) {
     super();
     this.value = value;
@@ -43,4 +45,10 @@ public class WritableConstantShortObject
   public ShortWritable getWritableConstantValue() {
     return value;
   }
+
+  @Override
+  public int precision() {
+    return BigDecimal.valueOf(value.get()).precision();
+  }
+
 }

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java?rev=1543711&r1=1543710&r2=1543711&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java Wed Nov 20 05:40:46 2013
@@ -67,10 +67,7 @@ public class HiveDecimalUtils {
   }
 
   /**
-   * Get the precision of double type can be tricky. While a double may have more digits than
-   * a HiveDecimal can hold, in reality those numbers are of no practical use. Thus, we assume
-   * that a double can have at most HiveDecimal.MAX_PRECISION, which is generous enough. This
-   * implies that casting a double to a decimal type is always valid.
+   * Need to keep consistent with JdbcColumn.columnPrecision
    *
    */
   public static int getPrecisionForType(PrimitiveTypeInfo typeInfo) {
@@ -78,7 +75,9 @@ public class HiveDecimalUtils {
     case DECIMAL:
       return ((DecimalTypeInfo)typeInfo).precision();
     case FLOAT:
-      return 23;
+      return 7;
+    case DOUBLE:
+      return 15;
     case BYTE:
       return 3;
     case SHORT:
@@ -87,16 +86,15 @@ public class HiveDecimalUtils {
       return 10;
     case LONG:
       return 19;
+    case VOID:
+      return 1;
     default:
       return HiveDecimal.MAX_PRECISION;
     }
   }
 
   /**
-   * Get the scale of double type can be tricky. While a double may have more decimal digits than
-   * HiveDecimal, in reality those numbers are of no practical use. Thus, we assume that a double
-   * can have at most HiveDecimal.MAX_SCALE, which is generous enough. This implies implies that
-   * casting a double to a decimal type is always valid.
+   * Need to keep consistent with JdbcColumn.columnScale()
    *
    */
   public static int getScaleForType(PrimitiveTypeInfo typeInfo) {
@@ -105,13 +103,13 @@ public class HiveDecimalUtils {
       return ((DecimalTypeInfo)typeInfo).scale();
     case FLOAT:
       return 7;
+    case DOUBLE:
+      return 15;
     case BYTE:
-      return 0;
     case SHORT:
-      return 0;
     case INT:
-      return 0;
     case LONG:
+    case VOID:
       return 0;
     default:
       return HiveDecimal.MAX_SCALE;