Package org.apache.hadoop.hive.serde2.io

Examples of org.apache.hadoop.hive.serde2.io.HiveDecimalWritable


    HiveDecimal dec = value == null ? null :
      value.getHiveDecimal(decTypeInfo.precision(), decTypeInfo.scale());
    if (dec == null) {
      return null;
    }
    return new HiveDecimalWritable(dec);
  }
View Full Code Here


    return enforcePrecisionScale(((HiveDecimalWritable)o).getHiveDecimal());
  }

  @Override
  public Object copyObject(Object o) {
    return o == null ? null : new HiveDecimalWritable((HiveDecimalWritable) o);
  }
View Full Code Here

    return o == null ? null : new HiveDecimalWritable((HiveDecimalWritable) o);
  }

  @Override
  public Object set(Object o, byte[] bytes, int scale) {
    HiveDecimalWritable writable = (HiveDecimalWritable)create(bytes, scale);
    if (writable != null) {
      ((HiveDecimalWritable)o).set(writable);
      return o;
    } else {
      return null;
View Full Code Here

    }
  }

  @Override
  public Object set(Object o, HiveDecimalWritable t) {
    HiveDecimalWritable writable = enforcePrecisionScale(t);
    if (writable == null) {
      return null;
    }

    ((HiveDecimalWritable) o).set(writable);
View Full Code Here

    return o;
  }

  @Override
  public Object create(byte[] bytes, int scale) {
    return new HiveDecimalWritable(bytes, scale);
  }
View Full Code Here

        return;
      }

      case DECIMAL: {
        HiveDecimalObjectInspector bdoi = (HiveDecimalObjectInspector) poi;
        HiveDecimalWritable t = bdoi.getPrimitiveWritableObject(obj);
        if (t == null) {
          return;
        }
        t.writeToByteStream(byteStream);
        return;
      }

      default: {
        throw new RuntimeException("Unrecognized type: "
View Full Code Here

    return new HiveDecimalWritable(bytes, scale);
  }

  @Override
  public Object create(HiveDecimal t) {
    return t == null ? null : new HiveDecimalWritable(t);
  }
View Full Code Here

      throw new RuntimeException("Decimal type used without type params");
    }

    precision = typeInfo.precision();
    scale = typeInfo.scale();
    data = new HiveDecimalWritable();
  }
View Full Code Here

  public LazyHiveDecimal(LazyHiveDecimal copy) {
    super(copy);
    precision = copy.precision;
    scale = copy.scale;
    data = new HiveDecimalWritable(copy.data);
  }
View Full Code Here

        return t;

      case DECIMAL: {
        // See serialization of decimal for explanation (below)

        HiveDecimalWritable bdw = (reuse == null ? new HiveDecimalWritable() :
          (HiveDecimalWritable) reuse);

        int b = buffer.read(invert) - 1;
        assert (b == 1 || b == -1 || b == 0);
        boolean positive = b != -1;

        int factor = buffer.read(invert) ^ 0x80;
        for (int i = 0; i < 3; i++) {
          factor = (factor << 8) + (buffer.read(invert) & 0xff);
        }

        if (!positive) {
          factor = -factor;
        }

        int start = buffer.tell();
        int length = 0;

        do {
          b = buffer.read(positive ? invert : !invert);
          assert(b != 1);

          if (b == 0) {
            // end of digits
            break;
          }

          length++;
        } while (true);

        if(decimalBuffer == null || decimalBuffer.length < length) {
          decimalBuffer = new byte[length];
        }

        buffer.seek(start);
        for (int i = 0; i < length; ++i) {
          decimalBuffer[i] = buffer.read(positive ? invert : !invert);
        }

        // read the null byte again
        buffer.read(positive ? invert : !invert);

        String digits = new String(decimalBuffer, 0, length, decimalCharSet);
        BigInteger bi = new BigInteger(digits);
        HiveDecimal bd = HiveDecimal.create(bi).scaleByPowerOfTen(factor-length);

        if (!positive) {
          bd = bd.negate();
        }

        bdw.set(bd);
        return bdw;
      }

      default: {
        throw new RuntimeException("Unrecognized type: "
View Full Code Here

TOP

Related Classes of org.apache.hadoop.hive.serde2.io.HiveDecimalWritable

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.