Object

com.actian.spark_vector.vector

PredicatePushdown

Related Doc: package vector

Permalink

object PredicatePushdown extends Logging

Object that brings together a set of functions that are used for implementing "Predicate Pushdown": A Vector query such as "SELECT * from external_table where col = 10" should not result in the provider sending the whole table to Vector, but only those tuples that pass the "col = 10" predicate.

Linear Supertypes
Logging, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PredicatePushdown
  2. Logging
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type ValueRange = Seq[String]

    Permalink

    Textual representation of single value ranges for a particular column, consisting of a list of Strings.

    Textual representation of single value ranges for a particular column, consisting of a list of Strings.

    First element denotes the type of range, which can currently be of two types:

    • Bounded ranges: intervals with inclusive/exclusive lower and upper bounds (e.g. "()", "(]", "[)", "[]")
      • For this type of intervals, the second and third strings in the list represent the lower and upper bounds.
    • Unbounded ranges: intervals for which either the lower or the upper bound is (-)infinity (e.g. ">", ">=", "<=", "<")
      • For this types of intervals, the list is of size two and the second string represents the only bound
      • Note: We also include here ("==", x) as a shorter notation for ("[]", x, x)
  2. type ValueRanges = Seq[ValueRange]

    Permalink

    A ValueRanges object is a sequence of ValueRange elements and it is associated with a certain column.

    A ValueRanges object is a sequence of ValueRange elements and it is associated with a certain column. As such, all string bounds of all the ValueRanges are expected to be literals of that column's VectorDataType.

    The interpretation is that the individual ranges are union-ed (or-ed) together.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def applyFilters(df: DataFrame, columns: Seq[ColumnMetadata], sparkContext: SparkContext): DataFrame

    Permalink

    Filters the given df according to any ValueRanges that its columns might have.

  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def filterForColumn(columnMetadata: ColumnMetadata, sparkContext: SparkContext): Option[Column]

    Permalink

    Creates Some(Column) that represents the condition ("predicate"), in Spark's terms, corresponding to the given columnMetadata, if the latter has some ValueRanges specified and is of a type for which Predicate Pushdown is safe.

    Creates Some(Column) that represents the condition ("predicate"), in Spark's terms, corresponding to the given columnMetadata, if the latter has some ValueRanges specified and is of a type for which Predicate Pushdown is safe. Otherwise returns None.

    See also

    typeIsSafeForPredPD

  10. def filterForColumn(column: Column, litToConstCol: (String) ⇒ Column, range: ValueRange): Column

    Permalink

    Creates a Column that represents the condition ("predicate"), in Spark's terms, that is expressed by the given range

  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. def initializeLogIfNecessary(isInterpreter: Boolean): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. def isTraceEnabled(): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  17. def log: Logger

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  18. def logDebug(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  19. def logDebug(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  20. def logError(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  21. def logError(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  22. def logInfo(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  23. def logInfo(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  24. def logName: String

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  25. def logTrace(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  26. def logTrace(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  27. def logWarning(msg: ⇒ String, throwable: Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  28. def logWarning(msg: ⇒ String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  29. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  30. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  31. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  32. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  33. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  34. def typeIsSafeForPredPD(vectorTypeName: String): Boolean

    Permalink

    Says whether or not Predicate Pushdown is supported on columns of the given vectorTypeName.

  35. def typeIsSafeForPredPD(vectorDataType: VectorTypeEnum): Boolean

    Permalink

    Says whether or not Predicate Pushdown is supported on columns of the given vectorDataType.

  36. def vectorLiteralToSparkLiteral(vectorLiteral: String, vectorDataType: VectorTypeEnum, sparkContext: SparkContext): String

    Permalink

    Converts the given vectorLiteral to the corresponding Spark literal, according to the specified VectorDataType.

  37. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped