@Override public DataType visitColumnReference(LogicalPlanner.PlanContext ctx, Stack<Expr> stack, ColumnReferenceExpr expr) throws TajoException { stack.push(expr); Column column = NameResolver.resolve(ctx.plan, ctx.queryBlock, expr, NameResolvingMode.LEGACY, true); stack.pop(); return column.getDataType(); }
@Override public DataType visitColumnReference(LogicalPlanner.PlanContext ctx, Stack<Expr> stack, ColumnReferenceExpr expr) throws TajoException { stack.push(expr); Column column = NameResolver.resolve(ctx.plan, ctx.queryBlock, expr, NameResolvingMode.LEGACY, true); stack.pop(); return column.getDataType(); }
public static String columnToDDLString(Column column) { StringBuilder sb = new StringBuilder(denormalizeIdentifier(column.getSimpleName())); sb.append(" ").append(column.getDataType().getType()); if (column.getDataType().hasLength()) { sb.append(" (").append(column.getDataType().getLength()).append(")"); } return sb.toString(); }
@Override public String getColumnTypeName(int column) throws SQLException { DataType type = schema.getColumn(column - 1).getDataType(); return ResultSetUtil.toSqlType(type); }
@Override public String getColumnTypeName(int column) throws SQLException { DataType type = schema.getColumn(column - 1).getDataType(); return ResultSetUtil.toSqlType(type); }
@Override public int getColumnType(int column) throws SQLException { DataType type = schema.getColumn(column - 1).getDataType(); return ResultSetUtil.tajoTypeToSqlType(type); }
@Override public boolean isSigned(int column) throws SQLException { DataType type = schema.getColumn(column - 1).getDataType(); return TajoTypeUtil.isSigned(type.getType()); }
public static DataType [] toDataTypes(Schema schema) { DataType[] types = new DataType[schema.size()]; for (int i = 0; i < schema.size(); i++) { types[i] = schema.getColumn(i).getDataType(); } return types; }
private static TupleType[] tupleTypes(Schema schema, int[] keyIndex) { TupleType[] types = new TupleType[keyIndex.length]; for (int i = 0; i < keyIndex.length; i++) { types[i] = tupleType(schema.getColumn(keyIndex[i]).getDataType().getType()); } return types; }
private static TupleType[] tupleTypes(Schema schema, int[] keyIndex) { TupleType[] types = new TupleType[keyIndex.length]; for (int i = 0; i < keyIndex.length; i++) { types[i] = tupleType(schema.getColumn(keyIndex[i]).getDataType().getType()); } return types; }
public static DataType [] toDataTypes(Schema schema) { DataType[] types = new DataType[schema.size()]; for (int i = 0; i < schema.size(); i++) { types[i] = schema.getColumn(i).getDataType(); } return types; }
@Override public boolean isSigned(int column) throws SQLException { DataType type = schema.getColumn(column - 1).getDataType(); return TajoTypeUtil.isSigned(type.getType()); }
public static DataTypeMismatchException makeDataTypeMisMatch(Column src, Column target) { return new DataTypeMismatchException( src.getSimpleName(), src.getDataType().getType().name(), target.getSimpleName(), target.getDataType().getType().name()); }
public static DataTypeMismatchException makeDataTypeMisMatch(Column src, Column target) { return new DataTypeMismatchException( src.getSimpleName(), src.getDataType().getType().name(), target.getSimpleName(), target.getDataType().getType().name()); }
public static Type [] toTypes(Schema schema) { Type [] types = new Type[schema.size()]; for (int i = 0; i < schema.size(); i++) { types[i] = schema.getColumn(i).getDataType().getType(); } return types; }
public ComparableVector(int length, SortSpec[] sortKeys, int[] keyIndex) { tuples = new Tuple[length]; vectors = new TupleVector[sortKeys.length]; for (int i = 0; i < vectors.length; i++) { TajoDataTypes.Type type = sortKeys[i].getSortKey().getDataType().getType(); vectors[i] = new TupleVector(vectorType(type), tuples.length, sortKeys[i].isNullsFirst(), sortKeys[i].isAscending()); } this.keyIndex = keyIndex; }
public ComparableVector(int length, SortSpec[] sortKeys, int[] keyIndex) { tuples = new Tuple[length]; vectors = new TupleVector[sortKeys.length]; for (int i = 0; i < vectors.length; i++) { TajoDataTypes.Type type = sortKeys[i].getSortKey().getDataType().getType(); vectors[i] = new TupleVector(vectorType(type), tuples.length, sortKeys[i].isNullsFirst(), sortKeys[i].isAscending()); } this.keyIndex = keyIndex; }
public static void assertSchema(Schema expected, Schema schema) { Column expectedColumn; Column column; for (int i = 0; i < expected.size(); i++) { expectedColumn = expected.getColumn(i); column = schema.getColumn(expectedColumn.getSimpleName()); assertEquals(expectedColumn.getSimpleName(), column.getSimpleName()); assertEquals(expectedColumn.getDataType(), column.getDataType()); } }
public TableStatistics(Schema schema, boolean[] columnStatsEnabled) { this.schema = schema; minValues = new VTuple(schema.size()); maxValues = new VTuple(schema.size()); numNulls = new long[schema.size()]; this.columnStatsEnabled = columnStatsEnabled; for (int i = 0; i < schema.size(); i++) { if (schema.getColumn(i).getDataType().getType().equals(Type.PROTOBUF)) { columnStatsEnabled[i] = false; } } }
/** * Get common columns to be used as join keys of natural joins. */ public static Schema getNaturalJoinColumns(Schema left, Schema right) { Schema common = new Schema(); for (Column outer : left.getRootColumns()) { if (!common.containsByName(outer.getSimpleName()) && right.containsByName(outer.getSimpleName())) { common.addColumn(new Column(outer.getSimpleName(), outer.getDataType())); } } return common; }