private ColumnDesc[] extractColumnFromMeta(HiveTableMeta hiveTableMeta) { int columnNumber = hiveTableMeta.allColumns.size(); List<ColumnDesc> columns = new ArrayList<ColumnDesc>(columnNumber); for (int i = 0; i < columnNumber; i++) { HiveTableMeta.HiveTableColumnMeta field = hiveTableMeta.allColumns.get(i); // skip unsupported fields, e.g. map<string, int> if (DataType.isKylinSupported(field.dataType)) { ColumnDesc cdesc = new ColumnDesc(); cdesc.setName(field.name.toUpperCase(Locale.ROOT)); // use "double" in kylin for "float" if ("float".equalsIgnoreCase(field.dataType)) { cdesc.setDatatype("double"); } else { cdesc.setDatatype(field.dataType); } cdesc.setId(String.valueOf(i + 1)); cdesc.setComment(field.comment); columns.add(cdesc); } else { logger.warn("Unsupported data type {}, excluding the field '{}'.", field.dataType, field.name); } } return columns.toArray(new ColumnDesc[0]); } }
private ColumnDesc[] extractColumnFromMeta(ResultSet meta) throws SQLException { List<ColumnDesc> columns = new ArrayList<>(); while (meta.next()) { String cname = meta.getString("COLUMN_NAME"); int type = meta.getInt("DATA_TYPE"); int csize = meta.getInt("COLUMN_SIZE"); int digits = meta.getInt("DECIMAL_DIGITS"); int pos = meta.getInt("ORDINAL_POSITION"); String remarks = meta.getString("REMARKS"); ColumnDesc cdesc = new ColumnDesc(); cdesc.setName(cname.toUpperCase(Locale.ROOT)); String kylinType = SqlUtil.jdbcTypeToKylinDataType(type); int precision = (SqlUtil.isPrecisionApplicable(kylinType) && csize > 0) ? csize : -1; int scale = (SqlUtil.isScaleApplicable(kylinType) && digits > 0) ? digits : -1; cdesc.setDatatype(new DataType(kylinType, precision, scale).toString()); cdesc.setId(String.valueOf(pos)); cdesc.setComment(remarks); columns.add(cdesc); } return columns.toArray(new ColumnDesc[columns.size()]); } }
public static TblColRef mockup(TableDesc table, int oneBasedColumnIndex, String name, String datatype, String comment) { ColumnDesc desc = new ColumnDesc(); String id = "" + oneBasedColumnIndex; desc.setId(id); desc.setName(name); desc.setDatatype(datatype); desc.init(table); desc.setComment(comment); return new TblColRef(desc); }
cdesc.setComment(remarks); columnDescs.add(cdesc);
private ColumnDesc[] extractColumnFromMeta(HiveTableMeta hiveTableMeta) { int columnNumber = hiveTableMeta.allColumns.size(); List<ColumnDesc> columns = new ArrayList<ColumnDesc>(columnNumber); for (int i = 0; i < columnNumber; i++) { HiveTableMeta.HiveTableColumnMeta field = hiveTableMeta.allColumns.get(i); // skip unsupported fields, e.g. map<string, int> if (DataType.isKylinSupported(field.dataType)) { ColumnDesc cdesc = new ColumnDesc(); cdesc.setName(field.name.toUpperCase(Locale.ROOT)); // use "double" in kylin for "float" if ("float".equalsIgnoreCase(field.dataType)) { cdesc.setDatatype("double"); } else { cdesc.setDatatype(field.dataType); } cdesc.setId(String.valueOf(i + 1)); cdesc.setComment(field.comment); columns.add(cdesc); } else { logger.warn("Unsupported data type {}, excluding the field '{}'.", field.dataType, field.name); } } return columns.toArray(new ColumnDesc[0]); } }
public static TblColRef mockup(TableDesc table, int oneBasedColumnIndex, String name, String datatype, String comment) { ColumnDesc desc = new ColumnDesc(); String id = "" + oneBasedColumnIndex; desc.setId(id); desc.setName(name); desc.setDatatype(datatype); desc.init(table); desc.setComment(comment); return new TblColRef(desc); }