Java Code Examples for org.apache.flink.table.utils.TypeStringUtils

The following examples show how to use org.apache.flink.table.utils.TypeStringUtils. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: Flink-CEPplus   Source File: DescriptorProperties.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Adds a table schema under the given key.
 */
public void putTableSchema(String key, TableSchema schema) {
	checkNotNull(key);
	checkNotNull(schema);

	final String[] fieldNames = schema.getFieldNames();
	final TypeInformation<?>[] fieldTypes = schema.getFieldTypes();

	final List<List<String>> values = new ArrayList<>();
	for (int i = 0; i < schema.getFieldCount(); i++) {
		values.add(Arrays.asList(fieldNames[i], TypeStringUtils.writeTypeInfo(fieldTypes[i])));
	}

	putIndexedFixedProperties(
		key,
		Arrays.asList(TABLE_SCHEMA_NAME, TABLE_SCHEMA_TYPE),
		values);
}
 
Example 2
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Adds a table schema under the given key.
 */
public void putTableSchema(String key, TableSchema schema) {
	checkNotNull(key);
	checkNotNull(schema);

	final String[] fieldNames = schema.getFieldNames();
	final TypeInformation<?>[] fieldTypes = schema.getFieldTypes();

	final List<List<String>> values = new ArrayList<>();
	for (int i = 0; i < schema.getFieldCount(); i++) {
		values.add(Arrays.asList(fieldNames[i], TypeStringUtils.writeTypeInfo(fieldTypes[i])));
	}

	putIndexedFixedProperties(
		key,
		Arrays.asList(TABLE_SCHEMA_NAME, TABLE_SCHEMA_TYPE),
		values);
}
 
Example 3
Source Project: flink   Source File: LogicalTypeParser.java    License: Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
private LogicalType parseLegacyType() {
	nextToken(TokenType.BEGIN_PARAMETER);
	nextToken(TokenType.LITERAL_STRING);
	final String rootString = tokenAsString();

	nextToken(TokenType.LIST_SEPARATOR);
	nextToken(TokenType.LITERAL_STRING);
	final String typeInfoString = tokenAsString();
	nextToken(TokenType.END_PARAMETER);

	try {
		final LogicalTypeRoot root = LogicalTypeRoot.valueOf(rootString);
		final TypeInformation typeInfo = TypeStringUtils.readTypeInfo(typeInfoString);
		return new LegacyTypeInformationType<>(root, typeInfo);
	} catch (Throwable t) {
		throw parsingError(
				"Unable to restore the Legacy type of '" + typeInfoString + "' with " +
						"type root '" + rootString + "'.", t);
	}
}
 
Example 4
Source Project: Flink-CEPplus   Source File: DescriptorProperties.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Returns a table schema under the given key if it exists.
 */
public Optional<TableSchema> getOptionalTableSchema(String key) {
	// filter for number of fields
	final int fieldCount = properties.keySet().stream()
		.filter((k) -> k.startsWith(key) && k.endsWith('.' + TABLE_SCHEMA_NAME))
		.mapToInt((k) -> 1)
		.sum();

	if (fieldCount == 0) {
		return Optional.empty();
	}

	// validate fields and build schema
	final TableSchema.Builder schemaBuilder = TableSchema.builder();
	for (int i = 0; i < fieldCount; i++) {
		final String nameKey = key + '.' + i + '.' + TABLE_SCHEMA_NAME;
		final String typeKey = key + '.' + i + '.' + TABLE_SCHEMA_TYPE;

		final String name = optionalGet(nameKey).orElseThrow(exceptionSupplier(nameKey));

		final TypeInformation<?> type = optionalGet(typeKey)
			.map(TypeStringUtils::readTypeInfo)
			.orElseThrow(exceptionSupplier(typeKey));

		schemaBuilder.field(name, type);
	}
	return Optional.of(schemaBuilder.build());
}
 
Example 5
Source Project: Flink-CEPplus   Source File: DescriptorProperties.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Validates a type property.
 */
public void validateType(String key, boolean isOptional, boolean requireRow) {
	validateOptional(
		key,
		isOptional,
		(value) -> {
			// we don't validate the string but let the parser do the work for us
			// it throws a validation exception
			final TypeInformation<?> typeInfo = TypeStringUtils.readTypeInfo(value);
			if (requireRow && !(typeInfo instanceof RowTypeInfo)) {
				throw new ValidationException(
					"Row type information expected for key '" + key + "' but was: " + value);
			}
		});
}
 
Example 6
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Returns a table schema under the given key if it exists.
 */
public Optional<TableSchema> getOptionalTableSchema(String key) {
	// filter for number of fields
	final int fieldCount = properties.keySet().stream()
		.filter((k) -> k.startsWith(key) && k.endsWith('.' + TABLE_SCHEMA_NAME))
		.mapToInt((k) -> 1)
		.sum();

	if (fieldCount == 0) {
		return Optional.empty();
	}

	// validate fields and build schema
	final TableSchema.Builder schemaBuilder = TableSchema.builder();
	for (int i = 0; i < fieldCount; i++) {
		final String nameKey = key + '.' + i + '.' + TABLE_SCHEMA_NAME;
		final String typeKey = key + '.' + i + '.' + TABLE_SCHEMA_TYPE;

		final String name = optionalGet(nameKey).orElseThrow(exceptionSupplier(nameKey));

		final TypeInformation<?> type = optionalGet(typeKey)
			.map(TypeStringUtils::readTypeInfo)
			.orElseThrow(exceptionSupplier(typeKey));

		schemaBuilder.field(name, type);
	}
	return Optional.of(schemaBuilder.build());
}
 
Example 7
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Validates a type property.
 */
public void validateType(String key, boolean isOptional, boolean requireRow) {
	validateOptional(
		key,
		isOptional,
		(value) -> {
			// we don't validate the string but let the parser do the work for us
			// it throws a validation exception
			final TypeInformation<?> typeInfo = TypeStringUtils.readTypeInfo(value);
			if (requireRow && !(typeInfo instanceof RowTypeInfo)) {
				throw new ValidationException(
					"Row type information expected for key '" + key + "' but was: " + value);
			}
		});
}
 
Example 8
Source Project: Alink   Source File: FeatureBorder.java    License: Apache License 2.0 5 votes vote down vote up
public static String getTypeString(TypeInformation<?> type) {
    String typeStr = TypeStringUtils.writeTypeInfo(type);
    if ("VARCHAR".equals(typeStr)) {
        typeStr = "STRING";
    }
    return typeStr;
}
 
Example 9
Source Project: Alink   Source File: FlinkTypeConverter.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Convert TypeInformation array to string format array.
 *
 * @param types TypeInformation array
 * @return string representation of the types.
 */
public static String[] getTypeString(TypeInformation<?>[] types) {
    String[] sqlTypes = new String[types.length];
    for (int i = 0; i < types.length; i++) {
        sqlTypes[i] = TypeStringUtils.writeTypeInfo(types[i]);
    }
    return sqlTypes;
}
 
Example 10
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Validates a type property.
 */
public void validateType(String key, boolean isOptional, boolean requireRow) {
	validateOptional(
		key,
		isOptional,
		(value) -> {
			// we don't validate the string but let the parser do the work for us
			// it throws a validation exception
			final TypeInformation<?> typeInfo = TypeStringUtils.readTypeInfo(value);
			if (requireRow && !(typeInfo instanceof RowTypeInfo)) {
				throw new ValidationException(
					"Row type information expected for key '" + key + "' but was: " + value);
			}
		});
}
 
Example 11
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Validates a data type property.
 */
public void validateDataType(String key, String fallbackKey, boolean isOptional) {
	if (properties.containsKey(key)) {
		validateOptional(
			key,
			isOptional,
			// we don't validate the string but let the parser do the work for us
			// it throws a validation exception
			v -> {
				LogicalType t = LogicalTypeParser.parse(v);
				if (t.getTypeRoot() == LogicalTypeRoot.UNRESOLVED) {
					throw new ValidationException("Could not parse type string '" + v + "'.");
				}
			});
	} else if (fallbackKey != null && properties.containsKey(fallbackKey)) {
		validateOptional(
			fallbackKey,
			isOptional,
			// we don't validate the string but let the parser do the work for us
			// it throws a validation exception
			TypeStringUtils::readTypeInfo);
	} else {
		if (!isOptional) {
			throw new ValidationException("Could not find required property '" + key + "'.");
		}
	}
}
 
Example 12
Source Project: flink   Source File: LegacyTypeInformationType.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public String asSerializableString() {
	return withNullability(
		FORMAT,
		getTypeRoot(),
		EncodingUtils.escapeSingleQuotes(TypeStringUtils.writeTypeInfo(typeInfo)));
}
 
Example 13
Source Project: Flink-CEPplus   Source File: DescriptorProperties.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Returns the type information under the given key if it exists.
 */
public Optional<TypeInformation<?>> getOptionalType(String key) {
	return optionalGet(key).map(TypeStringUtils::readTypeInfo);
}
 
Example 14
Source Project: Flink-CEPplus   Source File: Csv.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Sets the format schema with field names and the types. Required if schema is not derived.
 *
 * @param schemaType type information that describes the schema
 */
public Csv schema(TypeInformation<Row> schemaType) {
	Preconditions.checkNotNull(schemaType);
	internalProperties.putString(FORMAT_SCHEMA, TypeStringUtils.writeTypeInfo(schemaType));
	return this;
}
 
Example 15
Source Project: flink   Source File: LiteralValue.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Type information of the literal value. E.g. Types.BOOLEAN.
 *
 * @param typeInfo type information describing the value
 */
public LiteralValue of(TypeInformation<?> typeInfo) {
	Preconditions.checkNotNull(typeInfo, "Type information must not be null.");
	this.typeInfo = TypeStringUtils.writeTypeInfo(typeInfo);
	return this;
}
 
Example 16
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Returns the type information under the given key if it exists.
 */
public Optional<TypeInformation<?>> getOptionalType(String key) {
	return optionalGet(key).map(TypeStringUtils::readTypeInfo);
}
 
Example 17
Source Project: flink   Source File: Csv.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Sets the format schema with field names and the types. Required if schema is not derived.
 *
 * @param schemaType type information that describes the schema
 */
public Csv schema(TypeInformation<Row> schemaType) {
	Preconditions.checkNotNull(schemaType);
	internalProperties.putString(FORMAT_SCHEMA, TypeStringUtils.writeTypeInfo(schemaType));
	return this;
}
 
Example 18
Source Project: Alink   Source File: FeatureBorder.java    License: Apache License 2.0 4 votes vote down vote up
public static TypeInformation<?> getFlinkType(String typeStr) {
    if ("STRING".equals(typeStr)) {
        typeStr = "VARCHAR";
    }
    return TypeStringUtils.readTypeInfo(typeStr);
}
 
Example 19
Source Project: flink   Source File: LiteralValue.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Type information of the literal value. E.g. Types.BOOLEAN.
 *
 * @param typeInfo type information describing the value
 */
public LiteralValue of(TypeInformation<?> typeInfo) {
	Preconditions.checkNotNull(typeInfo, "Type information must not be null.");
	this.typeInfo = TypeStringUtils.writeTypeInfo(typeInfo);
	return this;
}
 
Example 20
Source Project: flink   Source File: DescriptorProperties.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Returns the type information under the given key if it exists.
 */
public Optional<TypeInformation<?>> getOptionalType(String key) {
	return optionalGet(key).map(TypeStringUtils::readTypeInfo);
}
 
Example 21
Source Project: Flink-CEPplus   Source File: Json.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * Sets the schema using type information.
 *
 * <p>JSON objects are represented as ROW types.
 *
 * <p>The schema might be nested.
 *
 * @param schemaType type information that describes the schema
 */
public Json schema(TypeInformation<Row> schemaType) {
	Preconditions.checkNotNull(schemaType);
	this.schema = TypeStringUtils.writeTypeInfo(schemaType);
	this.jsonSchema = null;
	this.deriveSchema = null;
	return this;
}
 
Example 22
Source Project: flink   Source File: Json.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * Sets the schema using type information.
 *
 * <p>JSON objects are represented as ROW types.
 *
 * <p>The schema might be nested.
 *
 * @param schemaType type information that describes the schema
 */
public Json schema(TypeInformation<Row> schemaType) {
	Preconditions.checkNotNull(schemaType);
	this.schema = TypeStringUtils.writeTypeInfo(schemaType);
	this.jsonSchema = null;
	this.deriveSchema = null;
	return this;
}
 
Example 23
Source Project: flink   Source File: Schema.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * Adds a field with the field name and the type string. Required.
 * This method can be called multiple times. The call order of this method defines
 * also the order of the fields in a row.
 *
 * <p>NOTE: the fieldType string should follow the type string defined in {@link LogicalTypeParser}.
 * This method also keeps compatible with old type string defined in {@link TypeStringUtils}
 * but will be dropped in future versions as it uses the old type system.
 *
 * @param fieldName the field name
 * @param fieldType the type string of the field
 */
public Schema field(String fieldName, String fieldType) {
	if (isLegacyTypeString(fieldType)) {
		// fallback to legacy parser
		TypeInformation<?> typeInfo = TypeStringUtils.readTypeInfo(fieldType);
		return field(fieldName, TypeConversions.fromLegacyInfoToDataType(typeInfo));
	} else {
		return addField(fieldName, fieldType);
	}
}
 
Example 24
Source Project: flink   Source File: OldCsv.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * Adds a format field with the field name and the type string. Required.
 * This method can be called multiple times. The call order of this method defines
 * also the order of the fields in the format.
 *
 * <p>NOTE: the fieldType string should follow the type string defined in {@link LogicalTypeParser}.
 * This method also keeps compatible with old type string defined in {@link TypeStringUtils} but
 * will be dropped in future versions as it uses the old type system.
 *
 * @param fieldName the field name
 * @param fieldType the type string of the field
 * @deprecated {@link OldCsv} supports derive schema from table schema by default,
 *             it is no longer necessary to explicitly declare the format schema.
 *             This method will be removed in the future.
 */
@Deprecated
public OldCsv field(String fieldName, String fieldType) {
	if (isLegacyTypeString(fieldType)) {
		// fallback to legacy parser
		TypeInformation<?> typeInfo = TypeStringUtils.readTypeInfo(fieldType);
		return field(fieldName, TypeConversions.fromLegacyInfoToDataType(typeInfo));
	} else {
		return addField(fieldName, fieldType);
	}
}
 
Example 25
Source Project: flink   Source File: Csv.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * Sets the format schema with field names and the types. Required if schema is not derived.
 *
 * @param schemaType type information that describes the schema
 * @deprecated {@link Csv} supports derive schema from table schema by default,
 *             it is no longer necessary to explicitly declare the format schema.
 *             This method will be removed in the future.
 */
@Deprecated
public Csv schema(TypeInformation<Row> schemaType) {
	Preconditions.checkNotNull(schemaType);
	internalProperties.putString(FORMAT_SCHEMA, TypeStringUtils.writeTypeInfo(schemaType));
	return this;
}
 
Example 26
Source Project: flink   Source File: Json.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * Sets the schema using type information.
 *
 * <p>JSON objects are represented as ROW types.
 *
 * <p>The schema might be nested.
 *
 * @param schemaType type information that describes the schema
 * @deprecated {@link Json} supports derive schema from table schema by default,
 *             it is no longer necessary to explicitly declare the format schema.
 *             This method will be removed in the future.
 */
@Deprecated
public Json schema(TypeInformation<Row> schemaType) {
	Preconditions.checkNotNull(schemaType);
	this.schema = TypeStringUtils.writeTypeInfo(schemaType);
	this.jsonSchema = null;
	this.deriveSchema = null;
	return this;
}
 
Example 27
Source Project: flink   Source File: Schema.java    License: Apache License 2.0 2 votes vote down vote up
/**
 * Adds a field with the field name and the type information. Required.
 * This method can be called multiple times. The call order of this method defines
 * also the order of the fields in a row.
 *
 * @param fieldName the field name
 * @param fieldType the type information of the field
 */
public Schema field(String fieldName, TypeInformation<?> fieldType) {
	field(fieldName, TypeStringUtils.writeTypeInfo(fieldType));
	return this;
}
 
Example 28
Source Project: flink   Source File: OldCsv.java    License: Apache License 2.0 2 votes vote down vote up
/**
 * Adds a format field with the field name and the type information. Required.
 * This method can be called multiple times. The call order of this method defines
 * also the order of the fields in the format.
 *
 * @param fieldName the field name
 * @param fieldType the type information of the field
 */
public OldCsv field(String fieldName, TypeInformation<?> fieldType) {
	field(fieldName, TypeStringUtils.writeTypeInfo(fieldType));
	return this;
}
 
Example 29
Source Project: alchemy   Source File: TypeUtils.java    License: Apache License 2.0 2 votes vote down vote up
public static TypeInformation readTypeInfo(String typeString){

        return TypeStringUtils.readTypeInfo(typeString);
    }
 
Example 30
Source Project: Alink   Source File: FlinkTypeConverter.java    License: Apache License 2.0 2 votes vote down vote up
/**
 * Convert TypeInformation to string representation.
 *
 * @param type TypeInformation
 * @return string representation of the type.
 */
public static String getTypeString(TypeInformation<?> type) {
    return TypeStringUtils.writeTypeInfo(type);
}