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 any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
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
+(other: String): String
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins to any2stringadd[ResolveZipJoins] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (ResolveZipJoins, B)
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins to ArrowAssoc[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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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 to Ensuring[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 to Ensuring[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 to Ensuring[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 to Ensuring[ResolveZipJoins] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins to StringFormat[ResolveZipJoins] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
lazy val
logger: SlickLogger
- Attributes
- protected[this]
- Definition Classes
- Logging
-
val
name: String
- Definition Classes
- ResolveZipJoins → Phase
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
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(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
→[B](y: B): (ResolveZipJoins, B)
- Implicit
- This member is added by an implicit conversion from ResolveZipJoins to ArrowAssoc[ResolveZipJoins] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
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...