@Override public Object clone() throws CloneNotSupportedException { HashPartition hash = (HashPartition) super.clone(); if (columns != null) { hash.columns = new ColumnReferenceExpr[columns.length]; for (int i = 0; i < columns.length; i++) { hash.columns[i] = (ColumnReferenceExpr) columns[i].clone(); } } hash.quantity = quantity; if (specifiers != null) { hash.specifiers = new ArrayList<>(); for (PartitionSpecifier specifier : specifiers) { hash.specifiers.add(specifier); } } return hash; } }
if (expr.getPartitionMethod().getPartitionType().equals(PartitionType.COLUMN)) { createTableNode.setPartitionMethod(getPartitionMethod(context, expr.getTableName(), expr.getPartitionMethod())); } else { throw ExceptionUtil.makeNotSupported( String.format("PartitonType " + expr.getPartitionMethod().getPartitionType()));
if (expr.getPartitionMethod().getPartitionType().equals(PartitionType.COLUMN)) { createTableNode.setPartitionMethod(getPartitionMethod(context, expr.getTableName(), expr.getPartitionMethod())); } else { throw ExceptionUtil.makeNotSupported( String.format("PartitonType " + expr.getPartitionMethod().getPartitionType()));
@Override public Object clone() throws CloneNotSupportedException { CreateTable createTable = (CreateTable) super.clone(); createTable.external = external; createTable.tableName = tableName; if (tableElements != null) { createTable.tableElements = new ColumnDefinition[tableElements.length]; for (int i = 0; i < tableElements.length; i++) { createTable.tableElements[i] = (ColumnDefinition) tableElements[i].clone(); } } createTable.storageType = storageType; createTable.location = location; createTable.subquery = subquery; if (params != null) { createTable.params = new HashMap<>(params); } if (partition != null) { createTable.partition = (PartitionMethodDescExpr) partition.clone(); } createTable.ifNotExists = ifNotExists; return createTable; }
@Override public Object clone() throws CloneNotSupportedException { CreateTable createTable = (CreateTable) super.clone(); createTable.external = external; createTable.tableName = tableName; if (tableElements != null) { createTable.tableElements = new ColumnDefinition[tableElements.length]; for (int i = 0; i < tableElements.length; i++) { createTable.tableElements[i] = (ColumnDefinition) tableElements[i].clone(); } } createTable.storageType = storageType; createTable.location = location; createTable.subquery = subquery; if (params != null) { createTable.params = new HashMap<>(params); } if (partition != null) { createTable.partition = (PartitionMethodDescExpr) partition.clone(); } createTable.ifNotExists = ifNotExists; return createTable; }
@Override public Object clone() throws CloneNotSupportedException { RangePartition range = (RangePartition) super.clone(); if (columns != null) { range.columns = new ColumnReferenceExpr[columns.length]; for (int i = 0; i < columns.length; i++) { range.columns[i] = (ColumnReferenceExpr) columns[i].clone(); } } if (specifiers != null) { range.specifiers = new ArrayList<>(); for (int i = 0; i < specifiers.size(); i++) { range.specifiers.add(specifiers.get(i)); } } return range; } }
@Override public Object clone() throws CloneNotSupportedException { RangePartition range = (RangePartition) super.clone(); if (columns != null) { range.columns = new ColumnReferenceExpr[columns.length]; for (int i = 0; i < columns.length; i++) { range.columns[i] = (ColumnReferenceExpr) columns[i].clone(); } } if (specifiers != null) { range.specifiers = new ArrayList<>(); for (int i = 0; i < specifiers.size(); i++) { range.specifiers.add(specifiers.get(i)); } } return range; } }
@Override public Object clone() throws CloneNotSupportedException { HashPartition hash = (HashPartition) super.clone(); if (columns != null) { hash.columns = new ColumnReferenceExpr[columns.length]; for (int i = 0; i < columns.length; i++) { hash.columns[i] = (ColumnReferenceExpr) columns[i].clone(); } } hash.quantity = quantity; if (specifiers != null) { hash.specifiers = new ArrayList<>(); for (PartitionSpecifier specifier : specifiers) { hash.specifiers.add(specifier); } } return hash; } }
@Override public Object clone() throws CloneNotSupportedException { ListPartition listPartition = (ListPartition) super.clone(); if (columns != null) { listPartition.columns = new ColumnReferenceExpr[columns.length]; for (int i = 0; i < columns.length; i++) { listPartition.columns[i] = (ColumnReferenceExpr) columns[i].clone(); } } if (specifiers != null) { listPartition.specifiers = new ArrayList<>(); for (ListPartitionSpecifier specifier : specifiers) { listPartition.specifiers.add(specifier); } } return listPartition; } }
@Override public Object clone() throws CloneNotSupportedException { ListPartition listPartition = (ListPartition) super.clone(); if (columns != null) { listPartition.columns = new ColumnReferenceExpr[columns.length]; for (int i = 0; i < columns.length; i++) { listPartition.columns[i] = (ColumnReferenceExpr) columns[i].clone(); } } if (specifiers != null) { listPartition.specifiers = new ArrayList<>(); for (ListPartitionSpecifier specifier : specifiers) { listPartition.specifiers.add(specifier); } } return listPartition; } }
@Override public JsonElement serialize(PartitionMethodDescExpr src, Type typeOfSrc, JsonSerializationContext context) { switch (src.getPartitionType()) { case RANGE: return context.serialize(src, RangePartition.class); case HASH: return context.serialize(src, HashPartition.class); case LIST: return context.serialize(src, ListPartition.class); case COLUMN: return context.serialize(src, ColumnPartition.class); default: return null; } } }
@Override public JsonElement serialize(PartitionMethodDescExpr src, Type typeOfSrc, JsonSerializationContext context) { switch (src.getPartitionType()) { case RANGE: return context.serialize(src, RangePartition.class); case HASH: return context.serialize(src, HashPartition.class); case LIST: return context.serialize(src, ListPartition.class); case COLUMN: return context.serialize(src, ColumnPartition.class); default: return null; } } }
private PartitionMethodDesc getPartitionMethod(PlanContext context, String tableName, CreateTable.PartitionMethodDescExpr expr) throws TajoException { PartitionMethodDesc partitionMethodDesc; if(expr.getPartitionType() == PartitionType.COLUMN) { CreateTable.ColumnPartition partition = (CreateTable.ColumnPartition) expr; String partitionExpression = Joiner.on(',').join(partition.getColumns()); partitionMethodDesc = new PartitionMethodDesc(context.queryContext.get(SessionVars.CURRENT_DATABASE), tableName, CatalogProtos.PartitionType.COLUMN, partitionExpression, convertColumnsToSchema(partition.getColumns())); } else { throw new NotImplementedException("partition type '" + expr.getPartitionType() + "'"); } return partitionMethodDesc; }
private PartitionMethodDesc getPartitionMethod(PlanContext context, String tableName, CreateTable.PartitionMethodDescExpr expr) throws TajoException { PartitionMethodDesc partitionMethodDesc; if(expr.getPartitionType() == PartitionType.COLUMN) { CreateTable.ColumnPartition partition = (CreateTable.ColumnPartition) expr; String partitionExpression = Joiner.on(',').join(partition.getColumns()); partitionMethodDesc = new PartitionMethodDesc(context.queryContext.get(SessionVars.CURRENT_DATABASE), tableName, CatalogProtos.PartitionType.COLUMN, partitionExpression, convertColumnsToSchema(partition.getColumns())); } else { throw new NotImplementedException("partition type '" + expr.getPartitionType() + "'"); } return partitionMethodDesc; }
@Override public Object clone() throws CloneNotSupportedException { ColumnPartition columnPartition = (ColumnPartition) super.clone(); if (columns != null) { columnPartition.columns = new ColumnDefinition[columns.length]; for (int i = 0; i < columns.length; i++) { columnPartition.columns[i] = (ColumnDefinition) columns[i].clone(); } } return columnPartition; } }
@Override public Object clone() throws CloneNotSupportedException { ColumnPartition columnPartition = (ColumnPartition) super.clone(); if (columns != null) { columnPartition.columns = new ColumnDefinition[columns.length]; for (int i = 0; i < columns.length; i++) { columnPartition.columns[i] = (ColumnDefinition) columns[i].clone(); } } return columnPartition; } }