Trait

io.getquill.quotation

Parsing

Related Doc: package quotation

Permalink

trait Parsing extends ValueComputation

Self Type
Quotation
Linear Supertypes
ValueComputation, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Parsing
  2. ValueComputation
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait EqualityBehavior extends AnyRef

    Permalink
  2. implicit class InsertReturnCapabilityExtension extends AnyRef

    Permalink
  3. case class Nested(term: Option[scala.reflect.macros.Universe.TermName], tpe: scala.reflect.macros.Universe.Type, params: List[List[Value]], optional: Boolean) extends Value with Product with Serializable

    Permalink
    Definition Classes
    ValueComputation
  4. trait OptionCheckBehavior extends AnyRef

    Permalink
  5. case class Parser[T](p: PartialFunction[scala.reflect.macros.Universe.Tree, T])(implicit ct: ClassTag[T]) extends Product with Serializable

    Permalink
  6. case class Scalar(term: Option[scala.reflect.macros.Universe.TermName], tpe: scala.reflect.macros.Universe.Type, decoder: scala.reflect.macros.Universe.Tree, optional: Boolean) extends Value with Product with Serializable

    Permalink
    Definition Classes
    ValueComputation
  7. sealed trait Value extends AnyRef

    Permalink
    Definition Classes
    ValueComputation

Abstract Value Members

  1. abstract val c: Context

    Permalink
    Definition Classes
    ValueComputation

Concrete 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. object AllowInnerCompare extends Quotation.OptionCheckBehavior with Product with Serializable

    Permalink

    Allow T == Option[T] comparison *

  5. object ClassTypeRefMatch

    Permalink
  6. object Equal extends Quotation.EqualityBehavior with Product with Serializable

    Permalink
  7. object ForbidInnerCompare extends Quotation.OptionCheckBehavior with Product with Serializable

    Permalink

    Forbid T == Option[T] comparison *

  8. object NotEqual extends Quotation.EqualityBehavior with Product with Serializable

    Permalink
  9. val actionParser: Quotation.Parser[Ast]

    Permalink
  10. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  11. val astParser: Quotation.Parser[Ast]

    Permalink
  12. val blockParser: Quotation.Parser[Block]

    Permalink
  13. val booleanOperationParser: Quotation.Parser[Operation]

    Permalink
  14. val boxingParser: Quotation.Parser[Ast]

    Permalink
  15. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  16. def combinedInfixParser(infixIsPure: Boolean): Quotation.Parser[Ast]

    Permalink
  17. val conflictParser: Quotation.Parser[Ast]

    Permalink
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. val equalityOperationParser: Quotation.Parser[Operation]

    Permalink
  20. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  21. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  22. def flatten(base: scala.reflect.macros.Universe.Tree, value: Quotation.Value): List[scala.reflect.macros.Universe.Tree]

    Permalink
    Definition Classes
    ValueComputation
  23. val functionApplyParser: Quotation.Parser[Operation]

    Permalink
  24. val functionParser: Quotation.Parser[Function]

    Permalink
  25. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  27. val identParser: Quotation.Parser[Ident]

    Permalink
  28. val ifParser: Quotation.Parser[If]

    Permalink
  29. val impureInfixParser: Quotation.Parser[Ast]

    Permalink
  30. val infixParser: Quotation.Parser[Ast]

    Permalink
  31. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  32. def isOptionType(tpe: scala.reflect.macros.Universe.Type): Boolean

    Permalink

    Need special handling to check if a type is null since need to check if it's Option, Some or None.

    Need special handling to check if a type is null since need to check if it's Option, Some or None. Don't want to use <:< since that would also match things like Nothing and Null.

  33. val joinCallParser: Quotation.Parser[(JoinType, Ast, Option[Ast])]

    Permalink
  34. val liftParser: Quotation.Parser[Lift]

    Permalink
  35. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  38. val numericOperationParser: Quotation.Parser[Operation]

    Permalink
  39. val operationParser: Quotation.Parser[Operation]

    Permalink
  40. val optionOperationParser: Quotation.Parser[OptionOperation]

    Permalink

    Process scala Option-related DSL into AST constructs.

    Process scala Option-related DSL into AST constructs. In Option[T] if T is a row type (typically a product or instance of Embedded) the it is impossible to physically null check in SQL (e.g. you cannot do select p.* from People p where p is not null). However, when a column (or "leaf-type") is encountered, doing a null check during operations such as map or flatMap is necessary in order for constructs like case statements to work correctly.
    For example, the statement:

    query[Person].map(_.name + " S.r.").getOrElse("unknown")
    
    needs to become:

    select case when p.name is not null then p.name + 'S.r' else 'unknown' end from ...
    
    Otherwise it will not function correctly. This latter kind of operation is involves null checking versus the former (i.e. the table-select example) which cannot, and is therefore called "Unchecked."

    The isOptionRowType method checks if the type-parameter of an option is a Product. The isOptionEmbedded checks if it an embedded object.

    select case when p.name is not null then p.name + 'S.r' else 'unknown' end from ... Otherwise it will not function correctly. This latter kind of operation is involves null checking versus the former (i.e. the table-select example) which cannot, and is therefore called "Unchecked." The `isOptionRowType` method checks if the type-parameter of an option is a Product. The isOptionEmbedded checks if it an embedded object. query[Person].map(_.name + " S.r.").getOrElse("unknown") needs to become:

    select case when p.name is not null then p.name + 'S.r' else 'unknown' end from ...
    
    Otherwise it will not function correctly. This latter kind of operation is involves null checking versus the former (i.e. the table-select example) which cannot, and is therefore called "Unchecked."

    The isOptionRowType method checks if the type-parameter of an option is a Product. The isOptionEmbedded checks if it an embedded object.

    select case when p.name is not null then p.name + 'S.r' else 'unknown' end from ... Otherwise it will not function correctly. This latter kind of operation is involves null checking versus the former (i.e. the table-select example) which cannot, and is therefore called "Unchecked." The `isOptionRowType` method checks if the type-parameter of an option is a Product. The isOptionEmbedded checks if it an embedded object.

  41. implicit val orderingParser: Quotation.Parser[Ordering]

    Permalink
  42. val patMatchParser: Quotation.Parser[Ast]

    Permalink
  43. val patMatchValParser: Quotation.Parser[Val]

    Permalink
  44. implicit val propertyAliasParser: Quotation.Parser[PropertyAlias]

    Permalink
  45. val propertyParser: Quotation.Parser[Property]

    Permalink
  46. val queryParser: Quotation.Parser[Ast]

    Permalink
  47. val quotedAstParser: Quotation.Parser[Ast]

    Permalink
  48. val setOperationParser: Quotation.Parser[Operation]

    Permalink
  49. val stringInterpolationParser: Quotation.Parser[Ast]

    Permalink
  50. val stringOperationParser: Quotation.Parser[Operation]

    Permalink
  51. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  53. val traversableOperationParser: Quotation.Parser[TraversableOperation]

    Permalink
  54. val valParser: Quotation.Parser[Val]

    Permalink
  55. val valueParser: Quotation.Parser[Ast]

    Permalink
  56. final def wait(): Unit

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

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

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

Inherited from ValueComputation

Inherited from AnyRef

Inherited from Any

Ungrouped