@@ -69,6 +69,7 @@ module Squeal.PostgreSQL.Expression
6969 , ceiling_
7070 , greatest
7171 , least
72+ , litChar
7273 -- ** Conditions
7374 , true
7475 , false
@@ -168,6 +169,13 @@ module Squeal.PostgreSQL.Expression
168169 , queryTree
169170 , toTSquery
170171 , toTSvector
172+ , setWeight
173+ , strip
174+ , jsonToTSvector
175+ , jsonbToTSvector
176+ , tsDelete
177+ , tsFilter
178+ , tsHeadline
171179 -- ** Aggregation
172180 , Aggregate (..)
173181 , Distinction (..)
@@ -1494,30 +1502,57 @@ tsvectorLength = unsafeFunction "length"
14941502numnode :: null 'PGtsquery :--> null 'PGint4
14951503numnode = unsafeFunction "numnode"
14961504
1497−plainToTSquery
1498− :: FunctionHet '[null 'PGtext, null 'PGtext] (null 'PGtsquery)
1499−plainToTSquery = unsafeFunctionHet "plainto_tsquery"
1505+plainToTSquery :: null 'PGtext :--> null 'PGtsquery
1506+plainToTSquery = unsafeFunction "plainto_tsquery"
15001507
1501−phraseToTSquery
1502− :: FunctionHet '[null 'PGtext, null 'PGtext] (null 'PGtsquery)
1503−phraseToTSquery = unsafeFunctionHet "phraseto_tsquery"
1508+phraseToTSquery :: null 'PGtext :--> null 'PGtsquery
1509+phraseToTSquery = unsafeFunction "phraseto_tsquery"
15041510
1505−websearchToTSquery
1506− :: FunctionHet '[null 'PGtext, null 'PGtext] (null 'PGtsquery)
1507−websearchToTSquery = unsafeFunctionHet "websearch_to_tsquery"
1511+websearchToTSquery :: null 'PGtext :--> null 'PGtsquery
1512+websearchToTSquery = unsafeFunction "websearch_to_tsquery"
15081513
15091514queryTree :: null 'PGtsquery :--> null 'PGtext
15101515queryTree = unsafeFunction "query_tree"
15111516
1512−toTSquery
1513− :: FunctionHet '[null 'PGtext, null 'PGtext] (null 'PGtsquery)
1514−toTSquery = unsafeFunctionHet "to_tsquery"
1517+toTSquery :: null 'PGtext :--> null 'PGtsquery
1518+toTSquery = unsafeFunction "to_tsquery"
15151519
15161520toTSvector
15171521 :: ty `In` '[ 'PGtext, 'PGjson, 'PGjsonb]
1518− => FunctionHet '[null 'PGtext, null ty] (null 'PGtsquery)
1519−toTSvector = unsafeFunctionHet "to_tsvector"
1522+ => null ty :--> null 'PGtsquery
1523+toTSvector = unsafeFunction "to_tsvector"
15201524
1525+setWeight
1526+ :: FunctionHet '[null 'PGtsvector, null ('PGchar 1)] (null 'PGtsvector)
1527+setWeight = unsafeFunctionHet "set_weight"
1528+
1529+litChar :: Char -> Expr (null ('PGchar 1))
1530+litChar chr = UnsafeExpression $
1531+ "E\'" <> fromString (escape =<< [chr]) <> "\'"
1532+
1533+strip :: null 'PGtsvector :--> null 'PGtsvector
1534+strip = unsafeFunction "strip"
1535+
1536+jsonToTSvector :: FunctionHet '[null 'PGjson, null 'PGjson] (null 'PGtsvector)
1537+jsonToTSvector = unsafeFunctionHet "json_to_tsvector"
1538+
1539+jsonbToTSvector :: FunctionHet '[null 'PGjsonb, null 'PGjsonb] (null 'PGtsvector)
1540+jsonbToTSvector = unsafeFunctionHet "jsonb_to_tsvector"
1541+
1542+tsDelete :: FunctionHet
1543+ '[null 'PGtsvector, null ('PGvararray ('NotNull 'PGtext))]
1544+ (null 'PGtsvector)
1545+tsDelete = unsafeFunctionHet "ts_delete"
1546+
1547+tsFilter :: FunctionHet
1548+ '[null 'PGtsvector, null ('PGvararray ('NotNull ('PGchar 1)))]
1549+ (null 'PGtsvector)
1550+tsFilter = unsafeFunctionHet "ts_filter"
1551+
1552+tsHeadline
1553+ :: document `In` '[ 'PGtext, 'PGjson, 'PGjsonb]
1554+ => FunctionHet '[null document, null 'PGtsquery] (null 'PGtext)
1555+tsHeadline = unsafeFunctionHet "ts_headline"
15211556{-----------------------------------------
15221557aggregation
15231558-----------------------------------------}