Details
-
Work Item
-
Resolution: Fixed
-
Major
-
None
-
All
-
GreenHopper Ranking:0|i2f90j:
-
9223372036854775807
-
Small
Description
Description
On the TCK JDBCcomponent we do not support db column name/length/precision when we use guess schema for all types.
Though we provide pros like this when guess schema:
final String javaType = metaData.getColumnClassName(columnIndex); final int sqlType = metaData.getColumnType(columnIndex); final String columnName = metaData.getColumnLabel(columnIndex);// select field as f1, 1 as f2, here return // f1 and f2 final String dbColumnName = metaData.getColumnName(columnIndex);// select field as f1 from t1, here return // "field"? // TODO use talend db mapping files to do type convert to talend type final String columnTypeName = metaData.getColumnTypeName(columnIndex).toUpperCase(); final int size = metaData.getPrecision(columnIndex); final int scale = metaData.getScale(columnIndex); final boolean ignorePrecision = false; inal boolean ignoreScale = false; final boolean isNullable = metaData.isNullable(columnIndex) != ResultSetMetaData.columnNoNulls; final Schema.Entry.Builder entryBuilder = recordBuilderFactory.newEntryBuilder() .withName(columnName) // .withRawName(columnName)//no need this as withName will do it .withNullable(isNullable) .withProp("talend.studio.key", "false")// as metadata from sql query, not table metadata, so no key // info or no need ; switch (sqlType) { case java.sql.Types.SMALLINT: case java.sql.Types.TINYINT: case java.sql.Types.INTEGER: if (javaType.equals(Integer.class.getName()) || Short.class.getName().equals(javaType)) { entryBuilder.withType(INT).withProp("talend.studio.type", "id_Integer"); withPrecision(entryBuilder, ignorePrecision, size);
But the wrapper don't treat them rightly in TaCoKitGuessSchema.
This is one part of schema support.
Implementation
Proposed PR fix length and precision for all types.
It was only supported for float/double/date/decimal before.
Now, if developers set the length and precision in their schema entry object, studio will show it in Talend schema UI.
Also fix the default length and precision to null, so the setup of it is optional and comportment is the same as before without.
Attachments
Issue Links
- is related to
-
TCOMP-1963 Missing IMetaDataColumn fields in guess schema
- Done