This is an automated email from the ASF dual-hosted git repository.

volodymyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git

commit 1c34b3923399f8f56b662dd4702041b7026e0b11
Author: Volodymyr Vysotskyi <[email protected]>
AuthorDate: Fri Jul 5 13:17:52 2019 +0300

    DRILL-7315: Revise precision and scale order in the method arguments
---
 .../java/org/apache/drill/common/types/Types.java  |  4 +--
 .../store/hive/writers/HiveValueWriterFactory.java |  4 +--
 .../apache/drill/exec/expr/EvaluationVisitor.java  |  4 +--
 .../expr/fn/interpreter/InterpreterEvaluator.java  |  4 +--
 .../drill/exec/planner/logical/DrillOptiq.java     |  7 ++--
 .../drill/exec/planner/sql/SqlConverter.java       |  2 +-
 .../drill/exec/store/avro/AvroRecordReader.java    |  6 ++--
 .../exec/store/parquet/ParquetReaderUtility.java   |  4 +--
 .../store/parquet/ParquetTableMetadataUtils.java   |  2 +-
 .../store/parquet2/DrillParquetGroupConverter.java | 10 +++---
 .../drill/exec/vector/complex/MapUtility.java      | 10 +++---
 .../java/org/apache/drill/TestFrameworkTest.java   |  2 +-
 .../drill/exec/fn/impl/TestAggregateFunctions.java | 16 ++++-----
 .../drill/exec/fn/impl/TestCastFunctions.java      | 10 +++---
 .../src/main/codegen/data/ValueVectorTypes.tdd     | 25 +++++++++-----
 .../codegen/templates/AbstractFieldReader.java     |  2 +-
 .../codegen/templates/AbstractFieldWriter.java     |  4 +--
 .../templates/AbstractPromotableFieldWriter.java   |  8 ++---
 .../src/main/codegen/templates/BaseWriter.java     |  6 ++--
 .../src/main/codegen/templates/ComplexCopier.java  |  4 +--
 .../src/main/codegen/templates/ComplexReaders.java | 38 +++++++++-------------
 .../src/main/codegen/templates/ListWriters.java    |  4 +--
 .../src/main/codegen/templates/MapWriters.java     |  4 +--
 .../src/main/codegen/templates/NullReader.java     |  2 +-
 .../codegen/templates/RepeatedValueVectors.java    |  5 +--
 .../main/codegen/templates/UnionListWriter.java    |  4 +--
 .../src/main/codegen/templates/UnionWriter.java    |  8 ++---
 .../drill/exec/vector/ValueHolderHelper.java       |  4 +--
 .../vector/complex/impl/MapOrListWriterImpl.java   |  4 +--
 29 files changed, 105 insertions(+), 102 deletions(-)

diff --git a/common/src/main/java/org/apache/drill/common/types/Types.java 
b/common/src/main/java/org/apache/drill/common/types/Types.java
index f5567e5..7a31c7a 100644
--- a/common/src/main/java/org/apache/drill/common/types/Types.java
+++ b/common/src/main/java/org/apache/drill/common/types/Types.java
@@ -549,7 +549,7 @@ public class Types {
     return 
MajorType.newBuilder().setMinorType(type).setMode(mode).setPrecision(precision).build();
   }
 
-  public static MajorType withScaleAndPrecision(final MinorType type, final 
DataMode mode, final int scale, final int precision) {
+  public static MajorType withPrecisionAndScale(MinorType type, DataMode mode, 
int precision, int scale) {
     return 
MajorType.newBuilder().setMinorType(type).setMode(mode).setScale(scale).setPrecision(precision).build();
   }
 
@@ -566,7 +566,7 @@ public class Types {
   }
 
   public static MajorType overrideMode(final MajorType originalMajorType, 
final DataMode overrideMode) {
-    return withScaleAndPrecision(originalMajorType.getMinorType(), 
overrideMode, originalMajorType.getScale(), originalMajorType.getPrecision());
+    return withPrecisionAndScale(originalMajorType.getMinorType(), 
overrideMode, originalMajorType.getPrecision(), originalMajorType.getScale());
   }
 
   public static MajorType getMajorTypeFromName(final String typeName) {
diff --git 
a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/writers/HiveValueWriterFactory.java
 
b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/writers/HiveValueWriterFactory.java
index c724a7a..0b2fd9d 100644
--- 
a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/writers/HiveValueWriterFactory.java
+++ 
b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/writers/HiveValueWriterFactory.java
@@ -198,8 +198,8 @@ public final class HiveValueWriterFactory {
         int scale = decimalType.getScale();
         int precision = decimalType.getPrecision();
         VarDecimalWriter writer = extractWriter(name, parentWriter,
-            (mapWriter, key) -> mapWriter.varDecimal(key, scale, precision),
-            listWriter -> listWriter.varDecimal(scale, precision));
+            (mapWriter, key) -> mapWriter.varDecimal(key, precision, scale),
+            listWriter -> listWriter.varDecimal(precision, scale));
         return new HiveDecimalWriter((HiveDecimalObjectInspector) inspector, 
writer, scale);
       }
       default:
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java
index 4d85c6a..54644bf 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java
@@ -651,7 +651,7 @@ public class EvaluationVisitor {
       return getHoldingContainer(
         generator,
         e.getMajorType(),
-        buffer -> ValueHolderHelper.getDecimal9Holder(e.getIntFromDecimal(), 
e.getScale(), e.getPrecision()));
+        buffer -> ValueHolderHelper.getDecimal9Holder(e.getIntFromDecimal(), 
e.getPrecision(), e.getScale()));
     }
 
     @Override
@@ -660,7 +660,7 @@ public class EvaluationVisitor {
       return getHoldingContainer(
         generator,
         e.getMajorType(),
-        buffer -> ValueHolderHelper.getDecimal18Holder(e.getLongFromDecimal(), 
e.getScale(), e.getPrecision()));
+        buffer -> ValueHolderHelper.getDecimal18Holder(e.getLongFromDecimal(), 
e.getPrecision(), e.getScale()));
     }
 
     @Override
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterEvaluator.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterEvaluator.java
index 7648ff4..cb0a3b6 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterEvaluator.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterEvaluator.java
@@ -223,12 +223,12 @@ public class InterpreterEvaluator {
 
     @Override
     public ValueHolder 
visitDecimal9Constant(ValueExpressions.Decimal9Expression decExpr,Integer 
value) throws RuntimeException {
-      return ValueHolderHelper.getDecimal9Holder(decExpr.getIntFromDecimal(), 
decExpr.getScale(), decExpr.getPrecision());
+      return ValueHolderHelper.getDecimal9Holder(decExpr.getIntFromDecimal(), 
decExpr.getPrecision(), decExpr.getScale());
     }
 
     @Override
     public ValueHolder 
visitDecimal18Constant(ValueExpressions.Decimal18Expression decExpr,Integer 
value) throws RuntimeException {
-      return 
ValueHolderHelper.getDecimal18Holder(decExpr.getLongFromDecimal(), 
decExpr.getScale(), decExpr.getPrecision());
+      return 
ValueHolderHelper.getDecimal18Holder(decExpr.getLongFromDecimal(), 
decExpr.getPrecision(), decExpr.getScale());
     }
 
     @Override
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
index 63ce90f..aa7e06a 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
@@ -642,11 +642,12 @@ public class DrillOptiq {
             .getBoolean(ENABLE_DECIMAL_DATA_TYPE.getOptionName())) {
           if (isLiteralNull(literal)) {
             return new TypedNullConstant(
-                Types.withScaleAndPrecision(
+                Types.withPrecisionAndScale(
                     MinorType.VARDECIMAL,
                     TypeProtos.DataMode.OPTIONAL,
-                    literal.getType().getScale(),
-                    literal.getType().getPrecision()));
+                    literal.getType().getPrecision(),
+                    literal.getType().getScale()
+                ));
           }
           return ValueExpressions.getVarDecimal((BigDecimal) 
literal.getValue(),
               literal.getType().getPrecision(),
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
index 097c7aa..dbf97a4 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
@@ -633,7 +633,7 @@ public class SqlConverter {
         if (type.getScale() > type.getPrecision()) {
           throw UserException.validationError()
               .message("Expected scale less than or equal to precision, " +
-                  "but was scale %s and precision %s.", type.getScale(), 
type.getPrecision())
+                  "but was precision %s and scale %s.", type.getPrecision(), 
type.getScale())
               .build(logger);
         }
         RexLiteral literal = (RexLiteral) exp;
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
index 07444e9..7b89dae 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
@@ -326,8 +326,8 @@ public class AvroRecordReader extends AbstractRecordReader {
           case "decimal":
             ParquetReaderUtility.checkDecimalTypeEnabled(optionManager);
             LogicalTypes.Decimal decimalType = (LogicalTypes.Decimal) 
logicalType;
-            writer.varDecimal(fieldName, decimalType.getScale(), 
decimalType.getPrecision())
-                .writeVarDecimal(0, length, buffer, decimalType.getScale(), 
decimalType.getPrecision());
+            writer.varDecimal(fieldName, decimalType.getPrecision(), 
decimalType.getScale())
+                .writeVarDecimal(0, length, buffer, 
decimalType.getPrecision(), decimalType.getScale());
             break;
           default:
             writer.binary(fieldName).writeVarBinary(0, length, buffer);
@@ -354,7 +354,7 @@ public class AvroRecordReader extends AbstractRecordReader {
           case "decimal":
             ParquetReaderUtility.checkDecimalTypeEnabled(optionManager);
             LogicalTypes.Decimal decimalType = (LogicalTypes.Decimal) 
logicalType;
-            writer.varDecimal(fieldName, decimalType.getScale(), 
decimalType.getPrecision())
+            writer.varDecimal(fieldName, decimalType.getPrecision(), 
decimalType.getScale())
                 .writeVarDecimal(new BigDecimal(new 
BigInteger(genericFixed.bytes()), decimalType.getScale()));
             break;
           default:
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
index a453fea..709d9d5 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
@@ -593,10 +593,10 @@ public class ParquetReaderUtility {
    * @param precision    type precision (used for DECIMAL type)
    * @return major type
    */
-  public static TypeProtos.MajorType getType(PrimitiveTypeName type, 
OriginalType originalType, int scale, int precision) {
+  public static TypeProtos.MajorType getType(PrimitiveTypeName type, 
OriginalType originalType, int precision, int scale) {
     TypeProtos.MinorType minorType = getMinorType(type, originalType);
     if (originalType == OriginalType.DECIMAL) {
-      return Types.withScaleAndPrecision(minorType, 
TypeProtos.DataMode.OPTIONAL, scale, precision);
+      return Types.withPrecisionAndScale(minorType, 
TypeProtos.DataMode.OPTIONAL, precision, scale);
     }
 
     return Types.optional(minorType);
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
index b4d2bf2..9df3f73 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
@@ -500,7 +500,7 @@ public class ParquetTableMetadataUtils {
         mode = TypeProtos.DataMode.OPTIONAL;
       }
       TypeProtos.MajorType columnType =
-          
TypeProtos.MajorType.newBuilder(ParquetReaderUtility.getType(primitiveType, 
originalType, scale, precision))
+          
TypeProtos.MajorType.newBuilder(ParquetReaderUtility.getType(primitiveType, 
originalType, precision, scale))
               .setMode(mode)
               .build();
 
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetGroupConverter.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetGroupConverter.java
index 898fcf1..924f611 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetGroupConverter.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetGroupConverter.java
@@ -389,12 +389,12 @@ public class DrillParquetGroupConverter extends 
GroupConverter {
   }
 
   private PrimitiveConverter getVarDecimalConverter(String name, PrimitiveType 
type) {
-    int s = type.getDecimalMetadata().getScale();
-    int p = type.getDecimalMetadata().getPrecision();
+    int scale = type.getDecimalMetadata().getScale();
+    int precision = type.getDecimalMetadata().getPrecision();
     VarDecimalWriter writer = type.isRepetition(Repetition.REPEATED)
-        ? getWriter(name, (m, f) -> m.list(f).varDecimal(s, p), l -> 
l.list().varDecimal(s, p))
-        : getWriter(name, (m, f) -> m.varDecimal(f, s, p), l -> 
l.varDecimal(s, p));
-    return new DrillVarDecimalConverter(writer, p, s, 
mutator.getManagedBuffer());
+        ? getWriter(name, (m, f) -> m.list(f).varDecimal(precision, scale), l 
-> l.list().varDecimal(precision, scale))
+        : getWriter(name, (m, f) -> m.varDecimal(f, precision, scale), l -> 
l.varDecimal(precision, scale));
+    return new DrillVarDecimalConverter(writer, precision, scale, 
mutator.getManagedBuffer());
   }
 
   @Override
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapUtility.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapUtility.java
index f4d29e9..f73bcf7 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapUtility.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapUtility.java
@@ -134,10 +134,10 @@ public class MapUtility {
           if (repeated) {
             fieldReader.copyAsValue(
                 mapWriter.list(MappifyUtility.fieldValue)
-                    .varDecimal(valueMajorType.getScale(), 
valueMajorType.getPrecision()));
+                    .varDecimal(valueMajorType.getPrecision(), 
valueMajorType.getScale()));
           } else {
             fieldReader.copyAsValue(
-                mapWriter.varDecimal(MappifyUtility.fieldValue, 
valueMajorType.getScale(), valueMajorType.getPrecision()));
+                mapWriter.varDecimal(MappifyUtility.fieldValue, 
valueMajorType.getPrecision(), valueMajorType.getScale()));
           }
           break;
         case DATE:
@@ -335,9 +335,9 @@ public class MapUtility {
           break;
         case VARDECIMAL:
           if (repeated) {
-            
fieldReader.copyAsValue(mapWriter.list(fieldName).varDecimal(valueMajorType.getScale(),
 valueMajorType.getPrecision()));
+            
fieldReader.copyAsValue(mapWriter.list(fieldName).varDecimal(valueMajorType.getPrecision(),
 valueMajorType.getScale()));
           } else {
-            fieldReader.copyAsValue(mapWriter.varDecimal(fieldName, 
valueMajorType.getScale(), valueMajorType.getPrecision()));
+            fieldReader.copyAsValue(mapWriter.varDecimal(fieldName, 
valueMajorType.getPrecision(), valueMajorType.getScale()));
           }
           break;
         case DATE:
@@ -485,7 +485,7 @@ public class MapUtility {
           fieldReader.copyAsValue(listWriter.decimal38Sparse());
           break;
         case VARDECIMAL:
-          
fieldReader.copyAsValue(listWriter.varDecimal(valueMajorType.getScale(), 
valueMajorType.getPrecision()));
+          
fieldReader.copyAsValue(listWriter.varDecimal(valueMajorType.getPrecision(), 
valueMajorType.getScale()));
           break;
         case DATE:
           fieldReader.copyAsValue(listWriter.date());
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/TestFrameworkTest.java 
b/exec/java-exec/src/test/java/org/apache/drill/TestFrameworkTest.java
index d19e075..d55da30 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestFrameworkTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestFrameworkTest.java
@@ -144,7 +144,7 @@ public class TestFrameworkTest extends BaseTestQuery {
           .sqlQuery("select cast(dec_col as decimal(38,2)) dec_col from 
cp.`testframework/decimal_test.json`")
           .unOrdered()
           .csvBaselineFile("testframework/decimal_test.tsv")
-          
.baselineTypes(Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.REQUIRED, 2, 38))
+          
.baselineTypes(Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.REQUIRED, 38, 2))
           .baselineColumns("dec_col")
           .build().run();
 
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
index 5c3a433..29575e6 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
@@ -391,21 +391,21 @@ public class TestAggregateFunctions extends BaseTestQuery 
{
     final List<Pair<SchemaPath, TypeProtos.MajorType>> expectedSchema =
         ImmutableList.of(
             Pair.of(SchemaPath.getSimplePath("sum_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 3, 38)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 38, 3)),
             Pair.of(SchemaPath.getSimplePath("avg_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 6, 38)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 38, 6)),
             Pair.of(SchemaPath.getSimplePath("stddev_pop_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 6, 38)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 38, 6)),
             Pair.of(SchemaPath.getSimplePath("stddev_samp_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 6, 38)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 38, 6)),
             Pair.of(SchemaPath.getSimplePath("var_pop_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 6, 38)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 38, 6)),
             Pair.of(SchemaPath.getSimplePath("var_samp_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 6, 38)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 38, 6)),
             Pair.of(SchemaPath.getSimplePath("max_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 3, 9)),
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 9, 3)),
             Pair.of(SchemaPath.getSimplePath("min_col"),
-                Types.withScaleAndPrecision(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 3, 9)));
+                Types.withPrecisionAndScale(TypeProtos.MinorType.VARDECIMAL, 
TypeProtos.DataMode.OPTIONAL, 9, 3)));
 
     String query =
         "select\n" +
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
index 6efbb19..73853fe 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
@@ -640,7 +640,7 @@ public class TestCastFunctions extends ClusterTest {
     String query = "select cast('123.0' as decimal(3, 5))";
 
     thrown.expect(UserRemoteException.class);
-    thrown.expectMessage(containsString("VALIDATION ERROR: Expected scale less 
than or equal to precision, but was scale 5 and precision 3"));
+    thrown.expectMessage(containsString("VALIDATION ERROR: Expected scale less 
than or equal to precision, but was precision 3 and scale 5"));
 
     run(query);
   }
@@ -836,10 +836,10 @@ public class TestCastFunctions extends ClusterTest {
     // todo: uncomment after DRILL-6993 is resolved
     // typesMap.put("VARBINARY(31)", Types.withPrecision(VARBINARY, mode, 31));
     typesMap.put("VARCHAR(26)", Types.withPrecision(VARCHAR, mode, 26));
-    typesMap.put("DECIMAL(9, 2)", Types.withScaleAndPrecision(VARDECIMAL, 
mode, 2, 9));
-    typesMap.put("DECIMAL(18, 5)", Types.withScaleAndPrecision(VARDECIMAL, 
mode, 5, 18));
-    typesMap.put("DECIMAL(28, 3)", Types.withScaleAndPrecision(VARDECIMAL, 
mode, 3, 28));
-    typesMap.put("DECIMAL(38, 2)", Types.withScaleAndPrecision(VARDECIMAL, 
mode, 2, 38));
+    typesMap.put("DECIMAL(9, 2)", Types.withPrecisionAndScale(VARDECIMAL, 
mode, 9, 2));
+    typesMap.put("DECIMAL(18, 5)", Types.withPrecisionAndScale(VARDECIMAL, 
mode, 18, 5));
+    typesMap.put("DECIMAL(28, 3)", Types.withPrecisionAndScale(VARDECIMAL, 
mode, 28, 3));
+    typesMap.put("DECIMAL(38, 2)", Types.withPrecisionAndScale(VARDECIMAL, 
mode, 38, 2));
 
     return typesMap;
   }
diff --git a/exec/vector/src/main/codegen/data/ValueVectorTypes.tdd 
b/exec/vector/src/main/codegen/data/ValueVectorTypes.tdd
index d4851ca..64a5710 100644
--- a/exec/vector/src/main/codegen/data/ValueVectorTypes.tdd
+++ b/exec/vector/src/main/codegen/data/ValueVectorTypes.tdd
@@ -71,8 +71,9 @@
         { class: "Time", javaType: "int", friendlyType: "LocalTime", 
accessorType: "int" },
         { class: "IntervalYear", javaType: "int", friendlyType: "Period" }
         { class: "Decimal9", maxPrecisionDigits: 9, friendlyType: "BigDecimal",
-          fields: [{name:"value", type:"int"}, {name: "scale", type: "int", 
include: false},
-                   {name: "precision", type: "int", include: false}] },
+          fields: [{name:"value", type:"int"},
+                   {name: "precision", type: "int", include: false},
+                   {name: "scale", type: "int", include: false}] },
       ]
     },
     {
@@ -88,8 +89,9 @@
         { class: "Date", javaType: "long", friendlyType: "LocalDate", 
accessorType: "long" },
         { class: "TimeStamp", javaType: "long", friendlyType: "LocalDateTime", 
accessorType: "long" }
         { class: "Decimal18", maxPrecisionDigits: 18, friendlyType: 
"BigDecimal",
-          fields: [{name:"value", type:"long"}, {name: "scale", type: "int", 
include: false},
-                   {name: "precision", type: "int", include: false}] },
+          fields: [{name:"value", type:"long"},
+                   {name: "precision", type: "int", include: false},
+                   {name: "scale", type: "int", include: false}] },
         <#--
         { class: "Money", maxPrecisionDigits: 2, scale: 1, },
         -->
@@ -128,7 +130,8 @@
         -->
         { class: "Decimal28Dense", maxPrecisionDigits: 28, nDecimalDigits: 3, 
friendlyType: "BigDecimal",
           fields: [{name: "start", type: "int"}, {name: "buffer", type: 
"DrillBuf"},
-                   {name: "scale", type: "int", include: false}, {name: 
"precision", type: "int", include: false}] }
+                   {name: "precision", type: "int", include: false},
+                   {name: "scale", type: "int", include: false}] }
       ]
     },
     {
@@ -140,7 +143,8 @@
       minor: [
         { class: "Decimal38Dense", maxPrecisionDigits: 38, nDecimalDigits: 
4,friendlyType: "BigDecimal",
           fields: [{name: "start", type: "int"}, {name: "buffer", type: 
"DrillBuf"},
-                   {name: "scale", type: "int", include: false}, {name: 
"precision", type: "int", include: false}] }
+                   {name: "precision", type: "int", include: false},
+                   {name: "scale", type: "int", include: false}] }
       ]
     },
     {
@@ -151,7 +155,8 @@
       minor: [
         { class: "Decimal38Sparse", maxPrecisionDigits: 38, nDecimalDigits: 6, 
friendlyType: "BigDecimal",
           fields: [{name: "start", type: "int"}, {name: "buffer", type: 
"DrillBuf"},
-                   {name: "scale", type: "int", include: false}, {name: 
"precision", type: "int", include: false}] }
+                   {name: "precision", type: "int", include: false},
+                   {name: "scale", type: "int", include: false}] }
       ]
     },
     {
@@ -162,7 +167,8 @@
       minor: [
         { class: "Decimal28Sparse", maxPrecisionDigits: 28, nDecimalDigits: 5, 
friendlyType: "BigDecimal",
           fields: [{name: "start", type: "int"}, {name: "buffer", type: 
"DrillBuf"},
-                   {name: "scale", type: "int", include: false}, {name: 
"precision", type: "int", include: false}] }
+                   {name: "precision", type: "int", include: false},
+                   {name: "scale", type: "int", include: false}] }
       ]
     },
     {
@@ -185,7 +191,8 @@
       minor: [
         { class: "VarDecimal", friendlyType: "BigDecimal", fields: [{name: 
"start", type: "int"},
             {name: "end", type: "int"}, {name: "buffer", type: "DrillBuf"},
-            {name: "scale", type: "int", include: false}, {name: "precision", 
type: "int", include: false}] }
+            {name: "precision", type: "int", include: false},
+            {name: "scale", type: "int", include: false}] }
       ]
     },
     {
diff --git a/exec/vector/src/main/codegen/templates/AbstractFieldReader.java 
b/exec/vector/src/main/codegen/templates/AbstractFieldReader.java
index 7400d39..b5ea6de 100644
--- a/exec/vector/src/main/codegen/templates/AbstractFieldReader.java
+++ b/exec/vector/src/main/codegen/templates/AbstractFieldReader.java
@@ -95,7 +95,7 @@ public abstract class AbstractFieldReader extends 
AbstractBaseReader implements
   }
 
   <#if minor.class == "VarDecimal">
-  public void copyAsField(String name, ${name}Writer writer, int scale, int 
precision) {
+  public void copyAsField(String name, ${name}Writer writer, int precision, 
int scale) {
   <#else>
   public void copyAsField(String name, ${name}Writer writer) {
   </#if>
diff --git a/exec/vector/src/main/codegen/templates/AbstractFieldWriter.java 
b/exec/vector/src/main/codegen/templates/AbstractFieldWriter.java
index dcf99d3..9a5bd67 100644
--- a/exec/vector/src/main/codegen/templates/AbstractFieldWriter.java
+++ b/exec/vector/src/main/codegen/templates/AbstractFieldWriter.java
@@ -119,13 +119,13 @@ abstract class AbstractFieldWriter extends 
AbstractBaseWriter implements FieldWr
   <#assign capName = minor.class?cap_first />
   <#if minor.class?contains("Decimal") >
   @Override
-  public ${capName}Writer ${lowerName}(String name, int scale, int precision) {
+  public ${capName}Writer ${lowerName}(String name, int precision, int scale) {
     fail("${capName}");
     return null;
   }
 
   @Override
-  public ${capName}Writer ${lowerName}(int scale, int precision) {
+  public ${capName}Writer ${lowerName}(int precision, int scale) {
     fail("${capName}");
     return null;
   }
diff --git 
a/exec/vector/src/main/codegen/templates/AbstractPromotableFieldWriter.java 
b/exec/vector/src/main/codegen/templates/AbstractPromotableFieldWriter.java
index 96b45d3..e065057 100644
--- a/exec/vector/src/main/codegen/templates/AbstractPromotableFieldWriter.java
+++ b/exec/vector/src/main/codegen/templates/AbstractPromotableFieldWriter.java
@@ -127,13 +127,13 @@ abstract class AbstractPromotableFieldWriter extends 
AbstractFieldWriter {
   <#if minor.class?contains("Decimal")>
 
   @Override
-  public ${capName}Writer ${lowerName}(String name, int scale, int precision) {
-    return getWriter(MinorType.MAP).${lowerName}(name, scale, precision);
+  public ${capName}Writer ${lowerName}(String name, int precision, int scale) {
+    return getWriter(MinorType.MAP).${lowerName}(name, precision, scale);
   }
 
   @Override
-  public ${capName}Writer ${lowerName}(int scale, int precision) {
-    return getWriter(MinorType.LIST).${lowerName}(scale, precision);
+  public ${capName}Writer ${lowerName}(int precision, int scale) {
+    return getWriter(MinorType.LIST).${lowerName}(precision, scale);
   }
 
   <#else>
diff --git a/exec/vector/src/main/codegen/templates/BaseWriter.java 
b/exec/vector/src/main/codegen/templates/BaseWriter.java
index e650609..5ae2648 100644
--- a/exec/vector/src/main/codegen/templates/BaseWriter.java
+++ b/exec/vector/src/main/codegen/templates/BaseWriter.java
@@ -54,7 +54,7 @@ package org.apache.drill.exec.vector.complex.writer;
     <#assign upperName = minor.class?upper_case />
     <#assign capName = minor.class?cap_first />
     <#if minor.class?contains("Decimal") >
-    ${capName}Writer ${lowerName}(String name, int scale, int precision);
+    ${capName}Writer ${lowerName}(String name, int precision, int scale);
     </#if>
     ${capName}Writer ${lowerName}(String name);
     </#list></#list>
@@ -79,7 +79,7 @@ package org.apache.drill.exec.vector.complex.writer;
     <#assign upperName = minor.class?upper_case />
     <#assign capName = minor.class?cap_first />
     <#if minor.class?contains("Decimal") >
-    ${capName}Writer ${lowerName}(int scale, int precision);
+    ${capName}Writer ${lowerName}(int precision, int scale);
     </#if>
     ${capName}Writer ${lowerName}();
     </#list></#list>
@@ -115,7 +115,7 @@ package org.apache.drill.exec.vector.complex.writer;
     VarCharWriter varChar(String name);
     Var16CharWriter var16Char(String name);
     VarDecimalWriter varDecimal(String name);
-    VarDecimalWriter varDecimal(String name, int scale, int precision);
+    VarDecimalWriter varDecimal(String name, int precision, int scale);
     TinyIntWriter tinyInt(String name);
     SmallIntWriter smallInt(String name);
     IntWriter integer(String name);
diff --git a/exec/vector/src/main/codegen/templates/ComplexCopier.java 
b/exec/vector/src/main/codegen/templates/ComplexCopier.java
index c138ef6..256e79e 100644
--- a/exec/vector/src/main/codegen/templates/ComplexCopier.java
+++ b/exec/vector/src/main/codegen/templates/ComplexCopier.java
@@ -103,7 +103,7 @@ public class ComplexCopier {
       return (FieldWriter) writer.<#if name == 
"Int">integer<#else>${uncappedName}</#if>(name);
     <#elseif minor.class?contains("VarDecimal")>
     case ${name?upper_case}:
-      return (FieldWriter) writer.${uncappedName}(name, type.getScale(), 
type.getPrecision());
+      return (FieldWriter) writer.${uncappedName}(name, type.getPrecision(), 
type.getScale());
     </#if>
     </#list></#list>
     case MAP:
@@ -125,7 +125,7 @@ public class ComplexCopier {
       return (FieldWriter) writer.<#if name == 
"Int">integer<#else>${uncappedName}</#if>();
     <#elseif minor.class?contains("VarDecimal")>
     case ${name?upper_case}:
-      return (FieldWriter) writer.${uncappedName}(reader.getType().getScale(), 
reader.getType().getPrecision());
+      return (FieldWriter) 
writer.${uncappedName}(reader.getType().getPrecision(), 
reader.getType().getScale());
     </#if>
     </#list></#list>
     case MAP:
diff --git a/exec/vector/src/main/codegen/templates/ComplexReaders.java 
b/exec/vector/src/main/codegen/templates/ComplexReaders.java
index d72c7c6..77252ad 100644
--- a/exec/vector/src/main/codegen/templates/ComplexReaders.java
+++ b/exec/vector/src/main/codegen/templates/ComplexReaders.java
@@ -50,9 +50,9 @@ package org.apache.drill.exec.vector.complex.impl;
  */
 @SuppressWarnings("unused")
 public class ${nullMode}${name}ReaderImpl extends AbstractFieldReader {
-  
+
   private final ${nullMode}${name}Vector vector;
-  
+
   public ${nullMode}${name}ReaderImpl(${nullMode}${name}Vector vector) {
     super();
     this.vector = vector;
@@ -65,7 +65,7 @@ public class ${nullMode}${name}ReaderImpl extends 
AbstractFieldReader {
   public MaterializedField getField() {
     return vector.getField();
   }
-  
+
   public boolean isSet() {
     <#if nullMode == "Nullable">
     return !vector.getAccessor().isNull(idx());
@@ -82,16 +82,16 @@ public class ${nullMode}${name}ReaderImpl extends 
AbstractFieldReader {
   }
 
   <#if minor.class == "VarDecimal">
-  public void copyAsField(String name, MapWriter writer, int scale, int 
precision) {
+  public void copyAsField(String name, MapWriter writer, int precision, int 
scale) {
     Repeated${minor.class?cap_first}WriterImpl impl
-        = (Repeated${minor.class?cap_first}WriterImpl) 
writer.list(name).${lowerName}(scale, precision);
+        = (Repeated${minor.class?cap_first}WriterImpl) 
writer.list(name).${lowerName}(precision, scale);
   <#else>
   public void copyAsField(String name, MapWriter writer) {
     Repeated${minor.class?cap_first}WriterImpl impl = 
(Repeated${minor.class?cap_first}WriterImpl) writer.list(name).${lowerName}();
   </#if>
     impl.vector.copyFromSafe(idx(), impl.idx(), vector);
   }
-  
+
   public int size() {
     return vector.getAccessor().getInnerValueCountAt(idx());
   }
@@ -103,27 +103,26 @@ public class ${nullMode}${name}ReaderImpl extends 
AbstractFieldReader {
   public void read(int arrayIndex, Nullable${minor.class?cap_first}Holder h) {
     vector.getAccessor().get(idx(), arrayIndex, h);
   }
-  
+
   public ${friendlyType} read${safeType}(int arrayIndex) {
     return vector.getAccessor().getSingleObject(idx(), arrayIndex);
   }
 
-  
   public List<Object> readObject() {
     return (List<Object>) (Object) vector.getAccessor().getObject(idx());
   }
-  
+
   <#else>
-  
+
   public void copyAsValue(${minor.class?cap_first}Writer writer) {
     ${nullMode}${minor.class?cap_first}WriterImpl impl = 
(${nullMode}${minor.class?cap_first}WriterImpl) writer;
     impl.vector.copyFromSafe(idx(), impl.idx(), vector);
   }
 
   <#if minor.class == "VarDecimal">
-  public void copyAsField(String name, MapWriter writer, int scale, int 
precision) {
+  public void copyAsField(String name, MapWriter writer, int precision, int 
scale) {
     ${nullMode}${minor.class?cap_first}WriterImpl impl
-        = (${nullMode}${minor.class?cap_first}WriterImpl) 
writer.${lowerName}(name, scale, precision);
+        = (${nullMode}${minor.class?cap_first}WriterImpl) 
writer.${lowerName}(name, precision, scale);
 <#else>
   public void copyAsField(String name, MapWriter writer) {
     ${nullMode}${minor.class?cap_first}WriterImpl impl = 
(${nullMode}${minor.class?cap_first}WriterImpl) writer.${lowerName}(name);
@@ -140,15 +139,14 @@ public class ${nullMode}${name}ReaderImpl extends 
AbstractFieldReader {
   public void read(Nullable${minor.class?cap_first}Holder h) {
     vector.getAccessor().get(idx(), h);
   }
-  
+
   public ${friendlyType} read${safeType}() {
     return vector.getAccessor().getObject(idx());
   }
-  
+
   public void copyValue(FieldWriter w) {
-    
   }
-  
+
   public Object readObject() {
     return vector.getAccessor().getObject(idx());
   }
@@ -165,7 +163,7 @@ package org.apache.drill.exec.vector.complex.reader;
 <#include "/@includes/vv_imports.ftl" />
 @SuppressWarnings("unused")
 public interface ${name}Reader extends BaseReader {
-  
+
   <#if mode == "Repeated">
   public int size();
   public void read(int arrayIndex, ${minor.class?cap_first}Holder h);
@@ -181,16 +179,12 @@ public interface ${name}Reader extends BaseReader {
   public boolean isSet();
   public void copyAsValue(${minor.class}Writer writer);
   <#if minor.class == "VarDecimal">
-  public void copyAsField(String name, ${minor.class}Writer writer, int scale, 
int precision);
+  public void copyAsField(String name, ${minor.class}Writer writer, int 
precision, int scale);
   <#else>
   public void copyAsField(String name, ${minor.class}Writer writer);
   </#if>
 }
 
-
-
 </#list>
 </#list>
 </#list>
-
-
diff --git a/exec/vector/src/main/codegen/templates/ListWriters.java 
b/exec/vector/src/main/codegen/templates/ListWriters.java
index 4300857..904c6c5 100644
--- a/exec/vector/src/main/codegen/templates/ListWriters.java
+++ b/exec/vector/src/main/codegen/templates/ListWriters.java
@@ -170,8 +170,8 @@ public class ${mode}ListWriter extends AbstractFieldWriter {
   }
 
   @Override
-  public ${capName}Writer ${lowerName}(int scale, int precision) {
-    final MajorType ${upperName}_TYPE = 
Types.withScaleAndPrecision(MinorType.${upperName}, DataMode.REPEATED, scale, 
precision);
+  public ${capName}Writer ${lowerName}(int precision, int scale) {
+    final MajorType ${upperName}_TYPE = 
Types.withPrecisionAndScale(MinorType.${upperName}, DataMode.REPEATED, 
precision, scale);
   <#else>
   private static final MajorType ${upperName}_TYPE = 
Types.repeated(MinorType.${upperName});
 
diff --git a/exec/vector/src/main/codegen/templates/MapWriters.java 
b/exec/vector/src/main/codegen/templates/MapWriters.java
index 8f215a3..f6fda90 100644
--- a/exec/vector/src/main/codegen/templates/MapWriters.java
+++ b/exec/vector/src/main/codegen/templates/MapWriters.java
@@ -207,8 +207,8 @@ public class ${mode}MapWriter extends AbstractFieldWriter {
   }
 
   @Override
-  public ${minor.class}Writer ${lowerName}(String name, int scale, int 
precision) {
-    final MajorType ${upperName}_TYPE = 
Types.withScaleAndPrecision(MinorType.${upperName}, DataMode.OPTIONAL, scale, 
precision);
+  public ${minor.class}Writer ${lowerName}(String name, int precision, int 
scale) {
+    final MajorType ${upperName}_TYPE = 
Types.withPrecisionAndScale(MinorType.${upperName}, DataMode.OPTIONAL, 
precision, scale);
   <#else>
   private static final MajorType ${upperName}_TYPE = 
Types.optional(MinorType.${upperName});
   @Override
diff --git a/exec/vector/src/main/codegen/templates/NullReader.java 
b/exec/vector/src/main/codegen/templates/NullReader.java
index 28d48b7..f67ff22 100644
--- a/exec/vector/src/main/codegen/templates/NullReader.java
+++ b/exec/vector/src/main/codegen/templates/NullReader.java
@@ -72,7 +72,7 @@ public class NullReader extends AbstractBaseReader implements 
FieldReader {
   
   public void copyAsValue(${minor.class}Writer writer) {}
   <#if minor.class == "VarDecimal">
-  public void copyAsField(String name, ${minor.class}Writer writer, int scale, 
int precision) {}
+  public void copyAsField(String name, ${minor.class}Writer writer, int 
precision, int scale) {}
   <#else>
   public void copyAsField(String name, ${minor.class}Writer writer) {}
   </#if>
diff --git a/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java 
b/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java
index 037332f..186c9f8 100644
--- a/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java
+++ b/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java
@@ -58,9 +58,10 @@ public final class Repeated${minor.class}Vector extends 
BaseRepeatedValueVector
   public Repeated${minor.class}Vector(MaterializedField field, BufferAllocator 
allocator) {
     super(field, allocator);
     MajorType majorType = field.getType();
-    addOrGetVector(VectorDescriptor.create(Types.withScaleAndPrecision(
+    addOrGetVector(VectorDescriptor.create(Types.withPrecisionAndScale(
         majorType.getMinorType(), DataMode.REQUIRED,
-        majorType.getScale(), majorType.getPrecision())));
+        majorType.getPrecision(),
+        majorType.getScale())));
   }
 
   @Override
diff --git a/exec/vector/src/main/codegen/templates/UnionListWriter.java 
b/exec/vector/src/main/codegen/templates/UnionListWriter.java
index 4ea907d..a9ff5e7 100644
--- a/exec/vector/src/main/codegen/templates/UnionListWriter.java
+++ b/exec/vector/src/main/codegen/templates/UnionListWriter.java
@@ -83,12 +83,12 @@ public class UnionListWriter extends AbstractFieldWriter {
 
   <#if minor.class == "VarDecimal">
   @Override
-  public ${name}Writer <#if uncappedName == 
"int">integer<#else>${uncappedName}</#if>(String name, int scale, int 
precision) {
+  public ${name}Writer <#if uncappedName == 
"int">integer<#else>${uncappedName}</#if>(String name, int precision, int 
scale) {
     assert inMap;
     final int nextOffset = offsets.getAccessor().get(idx() + 1);
     vector.getMutator().setNotNull(idx());
     writer.setPosition(nextOffset);
-    ${name}Writer ${uncappedName}Writer = writer.${uncappedName}(name, scale, 
precision);
+    ${name}Writer ${uncappedName}Writer = writer.${uncappedName}(name, 
precision, scale);
     return ${uncappedName}Writer;
   }
   <#else>
diff --git a/exec/vector/src/main/codegen/templates/UnionWriter.java 
b/exec/vector/src/main/codegen/templates/UnionWriter.java
index 13c093a..3e62415 100644
--- a/exec/vector/src/main/codegen/templates/UnionWriter.java
+++ b/exec/vector/src/main/codegen/templates/UnionWriter.java
@@ -183,17 +183,17 @@ public class UnionWriter extends AbstractFieldWriter 
implements FieldWriter {
   <#assign capName = minor.class?cap_first />
   <#if minor.class == "VarDecimal">
   @Override
-  public ${capName}Writer ${lowerName}(String name, int scale, int precision) {
+  public ${capName}Writer ${lowerName}(String name, int precision, int scale) {
     data.getMutator().setType(idx(), MinorType.MAP);
     getMapWriter().setPosition(idx());
-    return getMapWriter().${lowerName}(name, scale, precision);
+    return getMapWriter().${lowerName}(name, precision, scale);
   }
 
   @Override
-  public ${capName}Writer ${lowerName}(int scale, int precision) {
+  public ${capName}Writer ${lowerName}(int precision, int scale) {
     data.getMutator().setType(idx(), MinorType.LIST);
     getListWriter().setPosition(idx());
-    return getListWriter().${lowerName}(scale, precision);
+    return getListWriter().${lowerName}(precision, scale);
   }
   <#else>
   @Override
diff --git 
a/exec/vector/src/main/java/org/apache/drill/exec/vector/ValueHolderHelper.java 
b/exec/vector/src/main/java/org/apache/drill/exec/vector/ValueHolderHelper.java
index 15a2a2d..1f5abd5 100644
--- 
a/exec/vector/src/main/java/org/apache/drill/exec/vector/ValueHolderHelper.java
+++ 
b/exec/vector/src/main/java/org/apache/drill/exec/vector/ValueHolderHelper.java
@@ -150,7 +150,7 @@ public class ValueHolderHelper {
       return dch;
   }
 
-  public static Decimal9Holder getDecimal9Holder(int decimal, int scale, int 
precision) {
+  public static Decimal9Holder getDecimal9Holder(int decimal, int precision, 
int scale) {
     Decimal9Holder dch = new Decimal9Holder();
 
     dch.scale = scale;
@@ -160,7 +160,7 @@ public class ValueHolderHelper {
     return dch;
   }
 
-  public static Decimal18Holder getDecimal18Holder(long decimal, int scale, 
int precision) {
+  public static Decimal18Holder getDecimal18Holder(long decimal, int 
precision, int scale) {
     Decimal18Holder dch = new Decimal18Holder();
 
     dch.scale = scale;
diff --git 
a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/impl/MapOrListWriterImpl.java
 
b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/impl/MapOrListWriterImpl.java
index 937df86..2cdaead 100644
--- 
a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/impl/MapOrListWriterImpl.java
+++ 
b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/impl/MapOrListWriterImpl.java
@@ -229,8 +229,8 @@ public class MapOrListWriterImpl implements MapOrListWriter 
{
   }
 
   @Override
-  public VarDecimalWriter varDecimal(String name, int scale, int precision) {
-    return (map != null) ? map.varDecimal(name, scale, precision) : 
list.varDecimal(scale, precision);
+  public VarDecimalWriter varDecimal(String name, int precision, int scale) {
+    return (map != null) ? map.varDecimal(name, precision, scale) : 
list.varDecimal(precision, scale);
   }
 
   @Override

Reply via email to