-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Provides a quasi-quoter for raw SQL for persistent -- -- Please see README and API docs at -- http://www.stackage.org/package/persistent. @package persistent-qq @version 2.9.1 -- | Module: module Database.Persist.Sql.Raw.QQ Description: QuasiQuoters -- for performing raw sql queries -- -- This module exports convenient QuasiQuoters to perform raw SQL -- queries. All QuasiQuoters follow the same pattern and are analogous to -- the similar named functions exported from Raw. Neither the -- quoted function's behaviour, nor it's return value is altered during -- the translation and all documentation provided with it holds. -- -- The QuasiQuoters in this module perform a simple substitution on the -- query text, that allows value substitutions, table name substitutions -- as well as column name substitutions. module Database.Persist.Sql.Raw.QQ -- | Analoguous to rawQuery queryQQ :: QuasiQuoter -- | Analoguous to rawQueryRes queryResQQ :: QuasiQuoter -- | QuasiQuoter for performing raw sql queries, analoguous to -- rawSql -- -- This and the following are convenient QuasiQuoters to perform raw SQL -- queries. They each follow the same pattern and are analogous to the -- similarly named raw functions. Neither the quoted function's -- behaviour, nor it's return value is altered during the translation and -- all documentation provided with it holds. -- -- These QuasiQuoters perform a simple substitution on the query text, -- that allows value substitutions, table name substitutions as well as -- column name substitutions. -- -- Here is a small example: -- -- Given the following simple model: -- --
--   Category
--     rgt Int
--     lft Int
--     nam Text
--   
-- -- We can now execute this raw query: -- --
--   let lft = 10 :: Int
--       rgt = 20 :: Int
--       width = rgt - lft
--       nams = "first" :| ["second", "third"]
--    in [sqlQQ|
--         DELETE FROM ^{Category} WHERE {CategoryLft} BETWEEN {rgt};
--         UPDATE category SET {CategoryRgt} = {CategoryRgt} - #{width} WHERE {CategoryRgt} > #{rgt};
--         UPDATE category SET {CategoryLft} = {CategoryLft} - {rgt};
--         SELECT ?? FROM ^{Category} WHERE ^{Category}.@{CategoryNam} IN %{nams};
--       |]
--   
-- -- ^{TableName} looks up the table's name and escapes it, -- @{ColumnName} looks up the column's name and properly escapes -- it, #{value} inserts the value via the usual parameter -- substitution mechanism and %{values} inserts comma separated -- values (of a NonEmpty list). -- -- %{values} was added with 2.9.1 sqlQQ :: QuasiQuoter -- | Analoguous to rawExecute executeQQ :: QuasiQuoter -- | Analoguous to rawExecuteCount executeCountQQ :: QuasiQuoter instance GHC.Show.Show Database.Persist.Sql.Raw.QQ.Token