Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.facebook.presto.sql.planner.plan;
 
 
 
 import java.util.List;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class TableScanNode
         extends PlanNode
 {
     private final TableHandle table;
     private final Optional<TableLayoutHandletableLayout;
     private final List<SymboloutputSymbols;
     private final Map<SymbolColumnHandleassignments// symbol -> column
 
     // Used during predicate refinement over multiple passes of predicate pushdown
     // TODO: think about how to get rid of this in new planner
     private final TupleDomain<ColumnHandlecurrentConstraint;
 
     // HACK!
     //
     // This field exists for the sole purpose of being able to print the original predicates (from the query) in
     // a human readable way. Predicates that get converted to and from TupleDomains might get more bulky and thus
     // more difficult to read when printed.
     // For example:
     // (ds > '2013-01-01') in the original query could easily become (ds IN ('2013-01-02', '2013-01-03', ...)) after the partitions are generated.
     // To make this work, the originalConstraint should be set exactly once after the first predicate push down and never adjusted after that.
     // In this way, we are always guaranteed to have a readable predicate that provides some kind of upper bound on the constraints.
     private final Expression originalConstraint;
 
     @JsonCreator
     public TableScanNode(
             @JsonProperty("id"PlanNodeId id,
             @JsonProperty("table"TableHandle table,
             @JsonProperty("outputSymbols"List<Symboloutputs,
             @JsonProperty("assignments"Map<SymbolColumnHandleassignments,
             @JsonProperty("layout"Optional<TableLayoutHandletableLayout,
             @JsonProperty("currentConstraint"TupleDomain<ColumnHandlecurrentConstraint,
             @JsonProperty("originalConstraint") @Nullable Expression originalConstraint)
     {
         super(id);
         checkNotNull(table"table is null");
         checkNotNull(outputs"outputs is null");
         checkNotNull(assignments"assignments is null");
         checkArgument(assignments.keySet().containsAll(outputs), "assignments does not cover all of outputs");
         checkNotNull(tableLayout"tableLayout is null");
         checkNotNull(currentConstraint"currentConstraint is null");
 
         this. = table;
         this. = ImmutableList.copyOf(outputs);
         this. = ImmutableMap.copyOf(assignments);
         this. = originalConstraint;
         this. = tableLayout;
         this. = currentConstraint;
     }
 
     @JsonProperty("table")
     public TableHandle getTable()
     {
         return ;
     }
 
     @JsonProperty
     public Optional<TableLayoutHandlegetLayout()
     {
         return ;
     }
 
    @Override
    @JsonProperty("outputSymbols")
    public List<SymbolgetOutputSymbols()
    {
        return ;
    }
    @JsonProperty("assignments")
    {
        return ;
    }
    @Nullable
    @JsonProperty("originalConstraint")
    {
        return ;
    }
    @JsonProperty("currentConstraint")
    {
        return ;
    }
    @Override
    public List<PlanNodegetSources()
    {
        return ImmutableList.of();
    }
    @Override
    public <C, R> R accept(PlanVisitor<C, R> visitor, C context)
    {
        return visitor.visitTableScan(thiscontext);
    }
    @Override
    public String toString()
    {
        return MoreObjects.toStringHelper(this)
                .add("table")
                .add("tableLayout")
                .add("outputSymbols")
                .add("assignments")
                .add("currentConstraint")
                .add("originalConstraint")
                .toString();
    }
New to GrepCode? Check out our FAQ X