@Override public String apply(@Nullable Type type) { return TypeStringEncoder.encode(type); } }));
@Override public Type apply(@Nullable String s) { return decode(s); } }),
@Override public Field apply(@Nullable String s) { return parseField(s); } }));
return createType(signature, ImmutableList.<Type>of(), ImmutableList.<Integer>of(), return createType(baseType, parseList(signature.substring(paramStartIdx, i), new Function<String, Type>() { @Override public Type apply(@Nullable String s) { return createType(baseType, ImmutableList.<Type>of(), ImmutableList.<Integer>of(), parseList(signature.substring(paramStartIdx, i), new Function<String, Field>() { @Override public Field apply(@Nullable String s) { return createType(baseType, ImmutableList.<Type>of(), parseList(signature.substring(paramStartIdx, i), new Function<String, Integer>() { @Override public Integer apply(@Nullable String s) {
@Override public String apply(@Nullable Field field) { return serializeField(field); } }));
@Override public Integer apply(@Nullable String s) { return parseValue(s); } }),
@Override public JsonElement serialize(org.apache.tajo.type.Type src, Type typeOfSrc, JsonSerializationContext context) { JsonObject json = new JsonObject(); json.addProperty("type", TypeStringEncoder.encode(src)); return json; } }
@Override public org.apache.tajo.type.Type deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject obj = (JsonObject) json; return TypeStringEncoder.decode(CommonGsonHelper.getOrDie(obj, "type").getAsString()); }
public static String getHiveFieldType(Type type) throws LMDNoMatchedDatatypeException { Preconditions.checkNotNull(type); switch (type.kind()) { case CHAR: return serdeConstants.CHAR_TYPE_NAME; case BOOLEAN: return serdeConstants.BOOLEAN_TYPE_NAME; case INT1: return serdeConstants.TINYINT_TYPE_NAME; case INT2: return serdeConstants.SMALLINT_TYPE_NAME; case INT4: return serdeConstants.INT_TYPE_NAME; case INT8: return serdeConstants.BIGINT_TYPE_NAME; case FLOAT4: return serdeConstants.FLOAT_TYPE_NAME; case FLOAT8: return serdeConstants.DOUBLE_TYPE_NAME; case TEXT: return serdeConstants.STRING_TYPE_NAME; case VARCHAR: return serdeConstants.VARCHAR_TYPE_NAME; case NCHAR: return serdeConstants.VARCHAR_TYPE_NAME; case NVARCHAR: return serdeConstants.VARCHAR_TYPE_NAME; case BINARY: return serdeConstants.BINARY_TYPE_NAME; case VARBINARY: return serdeConstants.BINARY_TYPE_NAME; case BLOB: return serdeConstants.BINARY_TYPE_NAME; case DATE: return serdeConstants.DATE_TYPE_NAME; case TIMESTAMP: return serdeConstants.TIMESTAMP_TYPE_NAME; default: throw new LMDNoMatchedDatatypeException(TypeStringEncoder.encode(type)); } }
private ColumnProto resultToColumnProto(final ResultSet res) throws SQLException { ColumnProto.Builder builder = ColumnProto.newBuilder(); builder.setName(res.getString("column_name").trim()); org.apache.tajo.type.Type type = TypeStringEncoder.decode(res.getString("data_type").trim()); builder.setType(type.getProto()); return builder.build(); }
pstmt.setString(2, extractSimpleName(columnProto.getName())); pstmt.setInt(3, position + 1); pstmt.setString(4, TypeStringEncoder.encode(type)); pstmt.executeUpdate();
IdentifierUtil.makeIdentifier(str.substring(paramStartIdx, i), DefaultPolicy()); String typePart = str.substring(i + 1, str.length()); return new Field(identifier, decode(typePart));
/** * Make a string from a field * @param field A field * @return String representation for a field */ static String serializeField(Field field) { return field.name().raw(DefaultPolicy()) + " " + encode(field.type()); }
private void resultToIndexDescProtoBuilder(final String qualifier, final IndexDescProto.Builder builder, final ResultSet res) throws SQLException { builder.setIndexName(res.getString("index_name")); builder.setIndexMethod(getIndexMethod(res.getString("index_type").trim())); builder.setIndexPath(res.getString("path")); String[] columnNames, dataTypes, orders, nullOrders; columnNames = res.getString("column_names").trim().split(","); dataTypes = res.getString("data_types").trim().split("\\|"); orders = res.getString("orders").trim().split(","); nullOrders = res.getString("null_orders").trim().split(","); int columnNum = columnNames.length; for (int i = 0; i < columnNum; i++) { SortSpecProto.Builder colSpecBuilder = SortSpecProto.newBuilder(); colSpecBuilder.setColumn(ColumnProto.newBuilder().setName(IdentifierUtil.buildFQName(qualifier, columnNames[i])) .setType(TypeStringEncoder.decode(dataTypes[i]).getProto()).build()); colSpecBuilder.setAscending(orders[i].equals("true")); colSpecBuilder.setNullFirst(nullOrders[i].equals("true")); builder.addKeySortSpecs(colSpecBuilder.build()); } builder.setIsUnique(res.getBoolean("is_unique")); builder.setIsClustered(res.getBoolean("is_clustered")); }
@Override public JsonElement serialize(Datum src, Type typeOfSrc, JsonSerializationContext context) { JsonObject jsonObj = new JsonObject(); jsonObj.addProperty("type", TypeStringEncoder.encode(src.type())); switch (src.kind()) { case DATE: jsonObj.addProperty("value", src.asInt4()); break; case TIME: jsonObj.addProperty("value", src.asInt8()); break; case TIMESTAMP: jsonObj.addProperty("value", src.asInt8()); break; case INTERVAL: IntervalDatum interval = (IntervalDatum)src; jsonObj.addProperty("value", interval.getMonths() + "," + interval.getMilliSeconds()); break; case ANY: jsonObj.add("actual", serialize(((AnyDatum) src).getActual(), typeOfSrc, context)); break; default: jsonObj.add("body", context.serialize(src)); } return jsonObj; } }
builder.setTid(tid); builder.setName(IdentifierUtil.buildFQName(databaseName, tableName, resultSet.getString("COLUMN_NAME"))); org.apache.tajo.type.Type type = TypeStringEncoder.decode(resultSet.getString("DATA_TYPE").trim()); builder.setType(type.getProto()); columns.add(builder.build());
typeStr = TypeStringEncoder.encode(TypeProtobufEncoder.decode(columnProto.getType())); } else { throw new UndefinedColumnException(alterColumnProto.getOldColumnName());
@Override public Datum deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); String typeStr = CommonGsonHelper.getOrDie(jsonObject, "type").getAsString(); org.apache.tajo.type.Type type = TypeStringEncoder.decode(typeStr); switch (type.kind()) { case DATE: return new DateDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsInt()); case TIME: return new TimeDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsLong()); case TIMESTAMP: return new TimestampDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsLong()); case INTERVAL: String[] values = CommonGsonHelper.getOrDie(jsonObject, "value").getAsString().split(","); return new IntervalDatum(Integer.parseInt(values[0]), Long.parseLong(values[1])); case ANY: return new AnyDatum(deserialize(CommonGsonHelper.getOrDie(jsonObject, "actual"), typeOfT, context)); default: return context.deserialize(CommonGsonHelper.getOrDie(jsonObject, "body"), DatumFactory.getDatumClass(TajoDataTypes.Type.valueOf(type.kind().name()))); } }
pstmt.setString(2, extractSimpleName(col.getName())); pstmt.setInt(3, i); pstmt.setString(4, TypeStringEncoder.encode(type)); pstmt.addBatch(); pstmt.clearParameters();
public static Writable convertDatum2Writable(Datum value) { switch(value.kind()) { case INT1: return new ByteWritable(value.asByte()); case INT2: return new ShortWritable(value.asInt2()); case INT4: return new IntWritable(value.asInt4()); case INT8: return new LongWritable(value.asInt8()); case FLOAT4: return new FloatWritable(value.asFloat4()); case FLOAT8: return new DoubleWritable(value.asFloat8()); // NOTE: value should be DateDatum case DATE: return new DateWritable(value.asInt4() - DateTimeConstants.UNIX_EPOCH_JDATE); // NOTE: value should be TimestampDatum case TIMESTAMP: TimestampWritable result = new TimestampWritable(); result.setTime(DateTimeUtil.julianTimeToJavaTime(value.asInt8())); return result; case CHAR: { String str = value.asChars(); return new HiveCharWritable(new HiveChar(str, str.length())); } case TEXT: return new Text(value.asChars()); case VARBINARY: return new BytesWritable(value.asByteArray()); case NULL_TYPE: return null; } throw new TajoRuntimeException(new NotImplementedException(TypeStringEncoder.encode(value.type()))); }