class ResolveZipJoins extends Phase
Rewrite zip joins into a form suitable for SQL using inner joins and RowNumber columns.
We rely on having a Bind around every Join and both of its generators, which should have been
generated by Phase.forceOuterBinds. The inner Binds need to select Pure(StructNode(...))
which should be the outcome of Phase.flattenProjections.
- Source
- ResolveZipJoins.scala
- Alphabetic
- By Inheritance
- ResolveZipJoins
- Phase
- Logging
- Function1
- AnyRef
- Any
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ResolveZipJoins(rownumStyle: Boolean = false)
- rownumStyle
Whether to use
Subquery
boundaries suitable for Oracle-style ROWNUM semantics instead of standard ROW_NUMBER().
Type Members
- type State = Boolean
The immutable state of the phase that can also be accessed by other phases.
The immutable state of the phase that can also be accessed by other phases.
- Definition Classes
- ResolveZipJoins → Phase
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def ->[B](y: B): (ResolveZipJoins, B)
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toArrowAssoc[ResolveZipJoins] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def andThen[A](g: (CompilerState) => A): (CompilerState) => A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def apply(state: CompilerState): CompilerState
Run the phase
Run the phase
- Definition Classes
- ResolveZipJoins → Phase → Function1
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def compose[A](g: (A) => CompilerState): (A) => CompilerState
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- val condAbove: Condition
- val condBelow: Condition
- def ensuring(cond: (ResolveZipJoins) => Boolean, msg: => Any): ResolveZipJoins
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toEnsuring[ResolveZipJoins] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (ResolveZipJoins) => Boolean): ResolveZipJoins
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toEnsuring[ResolveZipJoins] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): ResolveZipJoins
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toEnsuring[ResolveZipJoins] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): ResolveZipJoins
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toEnsuring[ResolveZipJoins] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- lazy val logger: SlickLogger
- Attributes
- protected[this]
- Definition Classes
- Logging
- val name: String
The unique name of the phase
The unique name of the phase
- Definition Classes
- ResolveZipJoins → Phase
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- Function1 → AnyRef → Any
- def transformZip(s1: TermSymbol, jlsym: TermSymbol, jrsym: TermSymbol, l: Bind, ldefs: ConstArray[(TermSymbol, Node)], r: Bind, rdefs: ConstArray[(TermSymbol, Node)], sel: Node): Node
Transform a
zip
operation of the formBind(s1, Join(jlsym, jrsym, l @ Bind(_, _, Pure(StructNode(ldefs), _)), r @ Bind(_, _, Pure(StructNode(rdefs), _)), JoinType.Zip, LiteralNode(true)), sel)
into an equivalent mapping operation usingRowNum
by first transforming both sides of the join intozipWithIndex
and then usingtransformZipWithIndex
on those. - def transformZipWithIndex(s1: TermSymbol, ls: TermSymbol, from: Node, defs: ConstArray[(TermSymbol, Node)], offset: Long, p: Node): Node
Transform a
zipWithIndex
operation of the formBind(s1, Join(_, _, Bind(ls, from, Pure(StructNode(defs), _)), RangeFrom(offset), JoinType.Zip, LiteralNode(true)), p)
into an equivalent mapping operation usingRowNum
.Transform a
zipWithIndex
operation of the formBind(s1, Join(_, _, Bind(ls, from, Pure(StructNode(defs), _)), RangeFrom(offset), JoinType.Zip, LiteralNode(true)), p)
into an equivalent mapping operation usingRowNum
. This method can be overridden in subclasses to implement non-standard translations. - final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toStringFormat[ResolveZipJoins] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (ResolveZipJoins, B)
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins toArrowAssoc[ResolveZipJoins] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
edit this text on github
Scala Language-Integrated Connection Kit
This is the API documentation for the Slick database library. It should be used as an additional resource to the user manual.
Further documentation for Slick can be found on the documentation pages.
To the slick package list...