io.getquill.sql.norm

Members list

Type members

Classlikes

In actions inner properties typically result from embedded classes, hide them

In actions inner properties typically result from embedded classes, hide them

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case class InContext(from: List[FromContext])

Simple utility that checks if if an AST entity refers to a entity. It traverses through the context types to find out what kind of context a variable refers to. For example, in a query like:

Simple utility that checks if if an AST entity refers to a entity. It traverses through the context types to find out what kind of context a variable refers to. For example, in a query like:

query[Pair].map(p => Pair(p.a, p.b)).distinct.map(p => (p.b, p.a))

Yielding SQL like this:

SELECT p.b, p.a FROM (SELECT DISTINCT p.a, p.b FROM pair p) AS p

the inner p.a and p.b will have a TableContext while the outer p.b and p.a will have a QueryContext.

Note that there are some cases where the id of a field is not in a FromContext at all. For example, in a query like this:

query[Human].filter(h => query[Robot].filter(r => r.friend == h.id).nonEmpty)

Where the sql produced is something like this:

SELECT h.id FROM human h WHERE EXISTS (SELECT r.* FROM robot r WHERE r.friend = h.id)

the field r.friend`` is selected from a sub-query of an SQL operation (i.e.EXISTS (...)`) so a from-context of it will not exist at all. When deciding which properties to treat as sub-select properties (e.g. if we want to make sure NOT to apply a naming-schema on them) we need to take care to understand that we may not know the FromContext that a property comes from since it may not exist.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object InContext

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
InContext.type

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class ProtractQuat(refersToEntity: Boolean)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
sealed trait QueryLevel

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Inner.type
class Top
object TopUnwrapped.type
object QueryLevel

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
QueryLevel.type
case class References(state: State) extends StatefulTransformer[State]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Remove aliases at the top level of the AST since they are not needed (quill uses select row indexes to figure out what data corresponds to what encodable object) as well as entities whose aliases are the same as their selection e.g. "select x.foo as foo" since this just adds syntactic noise.

Remove aliases at the top level of the AST since they are not needed (quill uses select row indexes to figure out what data corresponds to what encodable object) as well as entities whose aliases are the same as their selection e.g. "select x.foo as foo" since this just adds syntactic noise.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Filter out unused subquery properties. This is safe to do after ExpandNestedQueries now since all properties have been propagated from quats from parent to child SQL select trees.

Filter out unused subquery properties. This is safe to do after ExpandNestedQueries now since all properties have been propagated from quats from parent to child SQL select trees.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class State(ident: Ident, references: List[Property])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type