Package org.apache.tajo.catalog

Examples of org.apache.tajo.catalog.Column


      this.setSchema(new Schema(proto.getSchema()));
    }
    if (proto.getShuffleKeysCount() > 0) {
      shuffleKeys = new Column[proto.getShuffleKeysCount()];
      for (int i = 0; i < proto.getShuffleKeysCount(); i++) {
        shuffleKeys[i] = new Column(proto.getShuffleKeys(i));
      }
    } else {
      shuffleKeys = new Column[] {};
    }
    if (proto.hasNumOutputs()) {
View Full Code Here


    return queryBlockGraph;
  }

  public String getNormalizedColumnName(QueryBlock block, ColumnReferenceExpr columnRef)
      throws PlanningException {
    Column found = resolveColumn(block, columnRef);
    if (found == null) {
      throw new NoSuchColumnException(columnRef.getCanonicalName());
    }
    return found.getQualifiedName();
  }
View Full Code Here

          CatalogUtil.extractSimpleName(canonicalName));
      canonicalName = changedName;
    }

    Schema schema = relationOp.getTableSchema();
    Column column = schema.getColumn(canonicalName);
    if (column == null) {
      throw new NoSuchColumnException(canonicalName);
    }

    // If code reach here, a column is found.
    // But, it may be aliased from bottom logical node.
    // If the column is aliased, the found name may not be used in upper node.

    // Here, we try to check if column reference is already aliased.
    // If so, it replaces the name with aliased name.
    LogicalNode currentNode = block.getCurrentNode();

    // The condition (currentNode.getInSchema().contains(column)) means
    // the column can be used at the current node. So, we don't need to find aliase name.
    Schema currentNodeSchema = null;
    if (currentNode != null) {
      if (currentNode instanceof RelationNode) {
        currentNodeSchema = ((RelationNode) currentNode).getTableSchema();
      } else {
        currentNodeSchema = currentNode.getInSchema();
      }
    }

    if (currentNode != null && !currentNodeSchema.contains(column)
        && currentNode.getType() != NodeType.TABLE_SUBQUERY) {
      List<Column> candidates = TUtil.newList();
      if (block.namedExprsMgr.isAliased(qualifiedName)) {
        String alias = block.namedExprsMgr.getAlias(canonicalName);
        Column found = resolveColumn(block, new ColumnReferenceExpr(alias));
        if (found != null) {
          candidates.add(found);
        }
      }
      if (!candidates.isEmpty()) {
View Full Code Here

  private Column resolveColumnWithoutQualifier(QueryBlock block,
                                               ColumnReferenceExpr columnRef)throws PlanningException {
    // Trying to find the column within the current block
    if (block.currentNode != null && block.currentNode.getInSchema() != null) {
      Column found = block.currentNode.getInSchema().getColumn(columnRef.getCanonicalName());
      if (found != null) {
        return found;
      }
    }

    if (block.getLatestNode() != null) {
      Column found = block.getLatestNode().getOutSchema().getColumn(columnRef.getName());
      if (found != null) {
        return found;
      }
    }

    List<Column> candidates = TUtil.newList();
    // Trying to find columns from aliased references.
    if (block.namedExprsMgr.isAliased(columnRef.getCanonicalName())) {
      String originalName = block.namedExprsMgr.getAlias(columnRef.getCanonicalName());
      Column found = resolveColumn(block, new ColumnReferenceExpr(originalName));
      if (found != null) {
        candidates.add(found);
      }
    }
    if (!candidates.isEmpty()) {
      return ensureUniqueColumn(candidates);
    }

    // Trying to find columns from other relations in the current block
    for (RelationNode rel : block.getRelations()) {
      Column found = rel.getTableSchema().getColumn(columnRef.getName());
      if (found != null) {
        candidates.add(found);
      }
    }

    if (!candidates.isEmpty()) {
      return ensureUniqueColumn(candidates);
    }

    // Trying to find columns from other relations in other blocks
    for (QueryBlock eachBlock : queryBlocks.values()) {
      for (RelationNode rel : eachBlock.getRelations()) {
        Column found = rel.getTableSchema().getColumn(columnRef.getName());
        if (found != null) {
          candidates.add(found);
        }
      }
    }

    if (!candidates.isEmpty()) {
      return ensureUniqueColumn(candidates);
    }

    // Trying to find columns from schema in current block.
    if (block.getSchema() != null) {
      Column found = block.getSchema().getColumn(columnRef.getName());
      if (found != null) {
        candidates.add(found);
      }
    }
View Full Code Here

public class LTrim extends GeneralFunction {
  @Expose private boolean hasTrimCharacters;

  public LTrim() {
    super(new Column[] {
        new Column("string", TajoDataTypes.Type.TEXT),
        new Column("characters", TajoDataTypes.Type.TEXT),
    });
  }
View Full Code Here

  paramTypes = {@ParamTypes(paramTypes = {Type.INT8})}
)
public class MaxLong extends AggFunction<Int8Datum> {
  public MaxLong() {
    super(new Column[] {
        new Column("expr", Type.INT8)
    });
  }
View Full Code Here

          @ParamTypes(paramTypes = {TajoDataTypes.Type.FLOAT8})}
)
public class Acos extends GeneralFunction {
  public Acos() {
    super(new Column[] {
        new Column("x", TajoDataTypes.Type.FLOAT8)
    });
  }
View Full Code Here

    private DateTimePartExtractorFromUnixTime extractor = null;
    private WeekPartExtractorFromUnixTime weekExtractor = null;

    public DateTimePartFromUnixTimeStamp() {
        super(new Column[]{
                new Column("target", TEXT),
                new Column("source", INT8),
                new Column("dayOfWeek", INT4),

        });
    }
View Full Code Here

  paramTypes = {@ParamTypes(paramTypes = {TajoDataTypes.Type.TEXT, TajoDataTypes.Type.TEXT})}
)
public class Encode extends GeneralFunction {
  public Encode() {
    super(new Column[] {
        new Column("string", TajoDataTypes.Type.TEXT),
        new Column("format", TajoDataTypes.Type.TEXT)
    });
  }
View Full Code Here

      @ParamTypes(paramTypes = {TajoDataTypes.Type.FLOAT8})}
)
public class Cbrt extends GeneralFunction {
  public Cbrt() {
    super(new Column[] {
      new Column("x", TajoDataTypes.Type.FLOAT8)
    });
  }
View Full Code Here

TOP

Related Classes of org.apache.tajo.catalog.Column

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.