relational-query-0.12.1.0: Typeful, Modular, Relational, algebraic query engine

Copyright2017 Kei Hibino
LicenseBSD3
Maintainerex8k.hibino@gmail.com
Stabilityexperimental
Portabilityunknown
Safe HaskellSafe
LanguageHaskell2010

Database.Relational.ProjectableClass

Contents

Description

This module provides interfaces to preserve constraints of direct product projections.

Synopsis

Literal SQL terms

class LiteralSQL a where #

LiteralSQL a is implicit rule to derive function to convert from haskell record type a into SQL literal row-value.

Generic programming (https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#generic-programming) with default signature is available for LiteralSQL class, so you can make instance like below:

  {-# LANGUAGE DeriveGeneric #-}
  import GHC.Generics (Generic)
  --
  data Foo = Foo { ... } deriving Generic
  instance LiteralSQL Foo

Minimal complete definition

Nothing

Methods

showLiteral' :: a -> DList StringSQL #

showLiteral' :: (Generic a, GLiteralSQL (Rep a)) => a -> DList StringSQL #

Instances
LiteralSQL Bool #

Constant SQL terms of Bool.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Char #

Constant SQL terms of Char.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Double #

Constant SQL terms of Double. Caution for floating-point error rate.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Float #

Constant SQL terms of Float. Caution for floating-point error rate.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Int #

Constant SQL terms of Int. Use this carefully, because this is architecture dependent size of integer type.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Int8 #

Constant SQL terms of Int8.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Int16 #

Constant SQL terms of Int16.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Int32 #

Constant SQL terms of Int32.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Int64 #

Constant SQL terms of Int64.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Integer # 
Instance details

Defined in Database.Relational.Pure

LiteralSQL Word #

Constant SQL terms of Word. Use this carefully, because this is architecture dependent size of integer type.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Word8 #

Constant SQL terms of Word8.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Word16 #

Constant SQL terms of Word16.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Word32 #

Constant SQL terms of Word32.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Word64 #

Constant SQL terms of Word64.

Instance details

Defined in Database.Relational.Pure

LiteralSQL () #

Constant SQL terms of '()'.

Instance details

Defined in Database.Relational.Pure

Methods

showLiteral' :: () -> DList StringSQL #

LiteralSQL String #

Constant SQL terms of String.

Instance details

Defined in Database.Relational.Pure

LiteralSQL ByteString #

Constant SQL terms of ByteString.

Instance details

Defined in Database.Relational.Pure

LiteralSQL ByteString #

Constant SQL terms of ByteString.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Text #

Constant SQL terms of Text.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Text #

Constant SQL terms of Text.

Instance details

Defined in Database.Relational.Pure

LiteralSQL ZonedTime #

Constant SQL terms of ZonedTime. This generates ***NOT STANDARD*** SQL of TIMESTAMPTZ literal.

Instance details

Defined in Database.Relational.Pure

LiteralSQL LocalTime #

Constant SQL terms of LocalTime.

Instance details

Defined in Database.Relational.Pure

LiteralSQL TimeOfDay #

Constant SQL terms of TimeOfDay.

Instance details

Defined in Database.Relational.Pure

LiteralSQL UTCTime #

Constant SQL terms of UTCTime. This generates ***NOT STANDARD*** SQL of TIMESTAMPTZ literal with UTC timezone.

Instance details

Defined in Database.Relational.Pure

LiteralSQL Day #

Constant SQL terms of Day.

Instance details

Defined in Database.Relational.Pure

(PersistableWidth a, LiteralSQL a) => LiteralSQL (Maybe a) #

Constant SQL terms of Maybe type. Width inference is required.

Instance details

Defined in Database.Relational.Pure

(LiteralSQL a1, LiteralSQL a2) => LiteralSQL (a1, a2) # 
Instance details

Defined in Database.Relational.TupleInstances

Methods

showLiteral' :: (a1, a2) -> DList StringSQL #

(LiteralSQL a1, LiteralSQL a2, LiteralSQL a3) => LiteralSQL (a1, a2, a3) # 
Instance details

Defined in Database.Relational.TupleInstances

Methods

showLiteral' :: (a1, a2, a3) -> DList StringSQL #

(LiteralSQL a1, LiteralSQL a2, LiteralSQL a3, LiteralSQL a4) => LiteralSQL (a1, a2, a3, a4) # 
Instance details

Defined in Database.Relational.TupleInstances

Methods

showLiteral' :: (a1, a2, a3, a4) -> DList StringSQL #

(LiteralSQL a1, LiteralSQL a2, LiteralSQL a3, LiteralSQL a4, LiteralSQL a5) => LiteralSQL (a1, a2, a3, a4, a5) # 
Instance details

Defined in Database.Relational.TupleInstances

Methods

showLiteral' :: (a1, a2, a3, a4, a5) -> DList StringSQL #

(LiteralSQL a1, LiteralSQL a2, LiteralSQL a3, LiteralSQL a4, LiteralSQL a5, LiteralSQL a6) => LiteralSQL (a1, a2, a3, a4, a5, a6) # 
Instance details

Defined in Database.Relational.TupleInstances

Methods

showLiteral' :: (a1, a2, a3, a4, a5, a6) -> DList StringSQL #

(LiteralSQL a1, LiteralSQL a2, LiteralSQL a3, LiteralSQL a4, LiteralSQL a5, LiteralSQL a6, LiteralSQL a7) => LiteralSQL (a1, a2, a3, a4, a5, a6, a7) # 
Instance details

Defined in Database.Relational.TupleInstances

Methods

showLiteral' :: (a1, a2, a3, a4, a5, a6, a7) -> DList StringSQL #

showLiteral :: LiteralSQL a => a -> [StringSQL] #

Convert from haskell record to SQL literal row-value.

type StringSQL = Keyword #

String wrap type for SQL strings.

Deprecated.

type ShowConstantTermsSQL = LiteralSQL #

Deprecated: Use LiteralSQL instead of this.

Deprecated.

showConstantTermsSQL' :: ShowConstantTermsSQL a => a -> DList StringSQL #

Deprecated: Use showLiteral' instead of this.

showConstantTermsSQL :: ShowConstantTermsSQL a => a -> [StringSQL] #

Deprecated: Use showLiteral instead of this.

Deprecated.