Package org.apache.hadoop.hive.common.type

Examples of org.apache.hadoop.hive.common.type.Decimal128


  }

  @Test
  public void testRoundWithDigits() {
    DecimalColumnVector dcv = new DecimalColumnVector(4 ,20, 3);
    Decimal128 d1 = new Decimal128(19.56778, (short) 5);
    Decimal128 expected1 = new Decimal128(19.568, (short)3);
    DecimalUtil.round(0, d1, dcv);
    Assert.assertEquals(0, expected1.compareTo(dcv.vector[0]));

    Decimal128 d2 = new Decimal128(23.567, (short) 5);
    Decimal128 expected2 = new Decimal128(23.567, (short)3);
    DecimalUtil.round(0, d2, dcv);
    Assert.assertEquals(0, expected2.compareTo(dcv.vector[0]));

    Decimal128 d3 = new Decimal128(-25.34567, (short) 5);
    Decimal128 expected3 = new Decimal128(-25.346, (short)3);
    DecimalUtil.round(0, d3, dcv);
    Assert.assertEquals(0, expected3.compareTo(dcv.vector[0]));

    Decimal128 d4 = new Decimal128(-17.234, (short) 5);
    Decimal128 expected4 = new Decimal128(-17.234, (short)3);
    DecimalUtil.round(0, d4, dcv);
    Assert.assertEquals(0, expected4.compareTo(dcv.vector[0]));

    Decimal128 d5 = new Decimal128(19.36748, (short) 5);
    Decimal128 expected5 = new Decimal128(19.367, (short)3);
    DecimalUtil.round(0, d5, dcv);
    Assert.assertEquals(0, expected5.compareTo(dcv.vector[0]));

    Decimal128 d6 = new Decimal128(-25.54537, (short) 5);
    Decimal128 expected6 = new Decimal128(-25.545, (short)3);
    DecimalUtil.round(0, d6, dcv);
    Assert.assertEquals(0, expected6.compareTo(dcv.vector[0]));
  }
View Full Code Here


  }

  @Test
  public void testNegate() {
    DecimalColumnVector dcv = new DecimalColumnVector(4 ,20, 13);
    Decimal128 d1 = new Decimal128(19.56778, (short) 5);
    Decimal128 expected1 = new Decimal128(-19.56778, (short)5);
    DecimalUtil.negate(0, d1, dcv);
    Assert.assertEquals(0, expected1.compareTo(dcv.vector[0]));

    Decimal128 d2 = new Decimal128(-25.34567, (short) 5);
    Decimal128 expected2 = new Decimal128(25.34567, (short)5);
    DecimalUtil.negate(0, d2, dcv);
    Assert.assertEquals(0, expected2.compareTo(dcv.vector[0]));

    Decimal128 d3 = new Decimal128(0, (short) 5);
    Decimal128 expected3 = new Decimal128(0, (short)0);
    DecimalUtil.negate(0, d3, dcv);
    Assert.assertEquals(0, expected3.compareTo(dcv.vector[0]));
  }
View Full Code Here

  }

  @Test
  public void testSign() {
    LongColumnVector lcv = new LongColumnVector(4);
    Decimal128 d1 = new Decimal128(19.56778, (short) 5);
    DecimalUtil.sign(0, d1, lcv);
    Assert.assertEquals(1, lcv.vector[0]);

    Decimal128 d2 = new Decimal128(-25.34567, (short) 5);
    DecimalUtil.sign(0, d2, lcv);
    Assert.assertEquals(-1, lcv.vector[0]);

    Decimal128 d3 = new Decimal128(0, (short) 5);
    DecimalUtil.sign(0, d3, lcv);
    Assert.assertEquals(0, lcv.vector[0]);
  }
View Full Code Here

          int byteValuesCount, int decimalValuesCount) {
    longValues = new long[longValuesCount];
    doubleValues = new double[doubleValuesCount];
    decimalValues = new Decimal128[decimalValuesCount];
    for(int i = 0; i < decimalValuesCount; ++i) {
      decimalValues[i] = new Decimal128();
    }
    byteValues = new byte[byteValuesCount][];
    byteStarts = new int[byteValuesCount];
    byteLengths = new int[byteValuesCount];
    isNull = new boolean[longValuesCount + doubleValuesCount + byteValuesCount + decimalValuesCount];
View Full Code Here

    clone.isNull = isNull.clone();

    // Decimal128 requires deep clone
    clone.decimalValues = new Decimal128[decimalValues.length];
    for(int i = 0; i < decimalValues.length; ++i) {
      clone.decimalValues[i] = new Decimal128().update(decimalValues[i]);
    }

    clone.byteValues = new byte[byteValues.length][];
    clone.byteStarts = new int[byteValues.length];
    clone.byteLengths = byteLengths.clone();
View Full Code Here

            dv.noNulls = false;
            dv.isNull[0] = true;
            dv.isRepeating = true;
          } else {
            HiveDecimal hd = (HiveDecimal)(value);
            dv.vector[0] = new Decimal128(hd.toString(), (short)hd.scale());
            dv.isRepeating = true;
            dv.isNull[0] = false;     
          }
        }
        break;
View Full Code Here

    }
  }

  public static void floor(int i, Decimal128 input, DecimalColumnVector outputColVector) {
    try {
      Decimal128 result = outputColVector.vector[i];
      result.update(input);
      result.zeroFractionPart(scratchUInt128);
      result.changeScaleDestructive(outputColVector.scale);
      if ((result.compareTo(input) != 0) && input.getSignum() < 0) {
        result.subtractDestructive(DECIMAL_ONE, outputColVector.scale);
      }
    } catch (ArithmeticException e) {
      outputColVector.noNulls = false;
      outputColVector.isNull[i] = true;
    }
View Full Code Here

    }
  }

  public static void ceiling(int i, Decimal128 input, DecimalColumnVector outputColVector) {
    try {
      Decimal128 result = outputColVector.vector[i];
      result.update(input);
      result.zeroFractionPart(scratchUInt128);
      result.changeScaleDestructive(outputColVector.scale);
      if ((result.compareTo(input) != 0) && input.getSignum() > 0) {
        result.addDestructive(DECIMAL_ONE, outputColVector.scale);
      }
    } catch (ArithmeticException e) {
      outputColVector.noNulls = false;
      outputColVector.isNull[i] = true;
    }
View Full Code Here

  public static void sign(int i, Decimal128 input, LongColumnVector outputColVector) {
    outputColVector.vector[i] = input.getSignum();
  }

  public static void abs(int i, Decimal128 input, DecimalColumnVector outputColVector) {
    Decimal128 result = outputColVector.vector[i];
    try {
      result.update(input);
      result.absDestructive();
      result.changeScaleDestructive(outputColVector.scale);
    } catch (ArithmeticException e) {
      outputColVector.noNulls = false;
      outputColVector.isNull[i] = true;
    }
  }
View Full Code Here

      outputColVector.isNull[i] = true;
    }
  }

  public static void negate(int i, Decimal128 input, DecimalColumnVector outputColVector) {
    Decimal128 result = outputColVector.vector[i];
    try {
      result.update(input);
      result.negateDestructive();
      result.changeScaleDestructive(outputColVector.scale);
    } catch (ArithmeticException e) {
      outputColVector.noNulls = false;
      outputColVector.isNull[i] = true;
    }
  }
View Full Code Here

TOP

Related Classes of org.apache.hadoop.hive.common.type.Decimal128

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.