Packages

object ParameterHandler

Handler for parameter substitution across different Spark SQL contexts.

This object consolidates the common parameter handling logic used by SparkSqlParser, SparkConnectPlanner, and ExecuteImmediate. It provides a single, consistent API for all parameter substitution operations in Spark SQL.

Key features: - Automatic parameter type detection (named vs positional) - Uses CompoundOrSingleStatement parsing for all SQL constructs - Consistent error handling and validation - Support for complex data types (arrays, maps, nested structures) - Thread-safe operations with position-aware error context

The handler integrates with the parser through callback mechanisms stored in CurrentOrigin to ensure error positions are correctly mapped back to the original SQL text.

Example:
  1. Basic usage:

    val context = NamedParameterContext(Map("param1" -> Literal(42)))
    val result = ParameterHandler.substituteParameters("SELECT :param1", context)
    // result: "SELECT 42"
See also

SubstituteParamsParser for the underlying parameter substitution logic

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ParameterHandler
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  14. def substituteNamedParameters(sqlText: String, paramMap: Map[String, Expression]): (String, PositionMapper)

    Substitutes parameters using named parameter map.

    Substitutes parameters using named parameter map. This is a convenience method that wraps the main substituteParameters method.

    sqlText

    The SQL text containing parameter markers

    paramMap

    Map of parameter names to expressions

    returns

    A tuple of (substituted SQL, position mapper)

  15. def substituteParameters(sqlText: String, context: ParameterContext): (String, PositionMapper)

    Substitutes parameters in SQL text based on the parameter context.

    Substitutes parameters in SQL text based on the parameter context. Returns both the substituted SQL and the position mapper for error reporting.

    sqlText

    The SQL text containing parameter markers

    context

    The parameter context (named or positional)

    returns

    A tuple of (substituted SQL, position mapper)

    Exceptions thrown

    IllegalArgumentException if context is null

  16. def substitutePositionalParameters(sqlText: String, paramList: Seq[Expression]): (String, PositionMapper)

    Substitutes parameters using positional parameter list.

    Substitutes parameters using positional parameter list. This is a convenience method that wraps the main substituteParameters method.

    sqlText

    The SQL text containing parameter markers

    paramList

    Sequence of parameter expressions

    returns

    A tuple of (substituted SQL, position mapper)

  17. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped