Changelog for opaleye-0.7.2.0
0.7.2.0
-
Added
jsonAgg
,jsonBuildObject
andjsonBuildObjectField
. Thanks to Nathan Jaremko. -
Added
now
function. Thanks to Nathan Jaremko. -
Added
Opaleye.Exists.exists
. Thanks to @duairc. -
Added
Opaleye.Experimental.Enum
-
Added
Opaleye.Operators.array_position
andOpaleye.Operators.sqlElem
. Thanks to Ashesh Ambasta.
0.7.1.0
-
Added
Opaleye.Experimental.Enum
for an easy way to deal with PostgresENUM
types. -
Added
Opaleye.Manipulation.rReturningI
which has better type inference. -
Added
Opaleye.Operators.where_
for easier restriction in monadic style. -
Added
Opaleye.Operators.sqlLength
andOpaleye.Operators.dateOfTimestamp
.
0.7.0.0
-
Many renamings have taken place to help make Opaleye easier to understand. The old versions have been deprecated.
-
All previously deprecated functions have been removed.
Old | New |
---|---|
Query | Select |
QueryArr | SelectArr |
PGType | SqlType |
PGClass | SqlClass |
Constant | ToFields |
QueryRunner | FromFields |
QueryRunnerColumn | FromField |
QueryRunnerColumnDefault | DefaultFromField |
TableProperties | TableFields |
optional | optionalTableField |
required | requiredTableField |
readOnly | readOnlyTableField |
0.6.7006.0
-
Added
Opaleye.RunSelect.runSelectI
andOpaleye.ToFields.toFieldsI
which have better inferability. -
Preliminary
FOR UPDATE
support inOpaleye.Internal.Locking
. -
Added
fromFieldArray
for makingFromField
s for arrays.
0.6.7005.0
-
Thanks to Shane (@duairc) and Ollie Charles (@ocharles) for writing most of the
lateral
- andMaybeFields
-related code in this release. -
Add a
Monad
instance forSelect
(andSelectArr i
). -
Add
Opaleye.Lateral
, to support LATERAL subqueries. -
Add
Opaleye.Join.optionalRestrict
andOpaleye.Join.optional
, as more convenient and composable ways of doing left/right joins. -
Add
Opaleye.MaybeFields
-
Add
optionalTableField
,readOnlyTableField
,requiredTableField
, to replaceoptional
,readOnly
andrequired
in a later version. -
Add
valuesSafe
, a version ofvalues
.values
of an empty list generates incorrect queries when mixed with @OUTER@/@LEFT@/@RIGHT JOIN@s.valuesSafe
will replace it in version 0.7 -
Add
Opaleye.Adaptors
as the forward-compatible place to importUnpackspec
andunpackspecField
from, as well as other adaptors. -
Unicode characters are escaped properly in
sqlString
/toFields
-
Add
inSelect
, to replaceinQuery
in a future version. -
Add
unsafeCoerceField
, to replaceunsafeCoerceColumn
in a future version. -
Generalise label to type
label :: String -> S.SelectArr a b -> S.SelectArr a b
-
Fix invalid queries bug in
union
,unionAll
,except
andexceptAll
where one side was empty.
0.6.7004.2
- No user-visible changes
0.6.7004.1
-
Fixed exponential slowdown in
removeEmpty
. -
Fixed
read
compatibility with time-1.9 in test suite.
0.6.7004.0
-
Many changes to the documentation that use the new names. See entry for version 0.6.7000.0.
-
Added
fromPGSFromField
to replacefieldQueryRunnerColumn
. -
Added
fromPGSFieldParser
to replacefieldParserQueryRunnerColumn
. -
Added
defaultFromField
to replacequeryRunnerColumnDefault
. -
Added
tableField
to replacetableColumn
. -
Added
unsafeFromField
to replacequeryRunnerColumn
. -
Added
toFieldsExplicit
to replaceconstantExplicit
. -
Added
TableRecordField
to replaceTableField
inOpaleye.TypeFamilies
. The latter may be used to replaceTableColumn
in the future. -
Added array functions
arrayAppend
,arrayRemove
,arrayRemoveNulls
.
0.6.7003.1
- Bumped some depedencies so there is an install plan on GHC 8.6
0.6.7003.0
-
Add
tableField
as a future replacement fortableColumn
-
Export
Opaleye.Field
andOpaleye.RunSelect
fromOpaleye
-
Use new nomenclature in tutorials
0.6.7002.0
This is a breaking release that doesn't follow the PVP but because it's essentially a pre-release for version 0.7 I'm just going to blacklist the broken versions on Hackage and forget about it.
- Swapped
N
andNN
because they were the wrong way round.
0.6.7001.0
-
Fix bug with infinity in range bounds
-
Fix incompatibility with GHC 8.4
-
Add range accessors,
upperBound
andlowerBound
-
Add
distinctOn
anddistinctOnBy
0.6.7000.0
This is a pre-release of version 0.7.0.0. GHC >= 8.0 is required. It contains the following new important features
-
A new API for manipulation, including
ON CONFLICT DO NOTHING
support forUPDATE
-
Initial support for product types written in "Higher kinded data" style (but deriving of related functionality using TH or Generics is not yet provided).
-
Type inference for outer joins
-
Many renamings. In particular,
Column
will becomeField
in 0.7.0.0. You should be able to almost completely port your code to the 0.7.0.0 names whilst remaining compatible with 0.6.7000.0.
Details
-
Added
Opaleye.RunSelect
-
Added
Opaleye.Field
-
queryTable
is renamedselectTable
-
Query
/QueryArr
are renamedSelect
/SelectArr
-
QueryRunner
is renamedFromFields
-
QueryRunnerColumn
is renamedFromField
-
Constant
is renamedToFields
-
constant
is renamedtoFields
-
Added
Opaleye.SqlTypes
andsql
/Sql...
names instead ofpg
/PG...
names -
Added
runInsert_
,runUpdate_
,runDelete_
and supporting functionality -
Add
PGNumeric
type -
Added
leftJoinA
-
Added
liesWithin
0.6.1.0
-
Added
ZonedTime
toPGTimestamptz
mappings -
ArrowChoice
instance forQueryArr
0.6.0.0
-
Added
runUpdateEasy
-
Deprecated
Show
instance ofColumn a
Manipulation.arrange...
showPGType
literalColumn
unsafePgFormatTime
prepareQuery
formatAndShowSQL
-
Removed
unsafeCoerce
-
Added
TableColumn
andtableColumn
which selectsoptional
orrequired
based on write type. -
Added
TableColumns
as synonym forTableProperties
.TableProperties
will be deprecated in version 0.7. -
Added
table
as synonym forTable
.Table
will be deprecated in version 0.7. -
Added
tableWithSchema
as synonym forTableWithSchema
.Table
will be deprecated in version 0.7. -
Replaced
ColumnMaker
withUnpackspec
, which is identical to it. -
Added
Profunctor
instance forTable
-
Added
restrictExists
andrestrictNotExists
as synonyms forexists
andnotExists
. The latter will be deprecated in version 0.7.
0.5.4.0
- Added cursor interface (
Cursor
and friends)
0.5.3.1
distinctAggregator
,joinNullable
,exists
,notExists
,index
,timestamptzAtTimeZone
0.5.3.0
- Added support for range types
0.5.2.2
- Corrected fixity for .&&
0.5.2.1
- Improved documentation
0.5.2.0
- Added
Opaleye.FunctionalJoin
- Fixed handling of
BinExpr OpIn _ (ListExpr _)
indefaultSqlExpr
. in_
now actually uses the SQLIN
operator.- Added support for
ILIKE
0.5.1.0
- Added
- support for JSON operators
- Many improvements to the Haddocks
- RIGHT and FULL OUTER joins
0.5.0.0
- Added
(.===)
,aggregateOrdered
,countStar
,countRows
,quot_
,rem_
, 'charLength`- intersection and except query binary operators
Constant
instances forMaybe
and listsrunInsertManyReturning
runQueryFold
0.4.2.0
- Added
.===
and./==
for comparison of product types - Added
keepWhen
as an alternative torestrict
- Added
constant
conversion to and from Aeson - Added
pgValueJSON
andpgValueJSONB
0.4.1.0
- Added
Opaleye.Constant
for lifting constant values - Support microseconds in
pgLocalTime
,pgTimeOfDay
andpgUTCTime
- Added
unsafeCompositeField
to help with defining composite types Order
is an instance ofSemigroup
Thanks to Adam Bergmark and Matt Wraith for helping with these changes.
0.4.0.0
- Added
runUpdateReturning
- Ordering operators and
max
andmin
aggregators are now restricted to a typeclass - Added
stringAgg
andarrayAgg
aggregations. - Added
PGOrd
typeclass for typesafe ordering operations. - Support sorting NULLs first or last with
ascNullsFirst
anddescNullsFirst
- Added JSON types
- Added
runInsertMany
Thanks to Travis Staton, Jakub Ryška and Christopher Lewis for helping with these changes.
0.3.1.2
- Use time >= 1.4 and time-locale-compat
0.3.1.1
- Bump time to >= 1.5
0.3.1
- SQL code generator escapes column names, so table column names can be the same as SQL keywords.
- Add
like
operator - Add the types
PGCitext
,PGArray
,PGBytea
0.3
- Replace
Default QueryRunner
with a new classDefaultQueryRunnerColumn
, migrate withs/Default QueryRunner/DefaultQueryRunnerColumn
ands/def/queryRunnerColumnDefault/
- Remove
ShowConstant
, use the monomorphic functions defined in the new moduleOpaleye.PGTypes
instead. You will need to replaceColumn Bool
withColumn PGBool
etc. in query signatures - Re-export more modules from
Opaleye
- Add
boolAnd
,boolOr,
max
, andmin
aggregators - Add
lower
andupper
- Add operator fixities
- Add
maybeToNullable
- Add column instances for
Bool
,UUID
,Text
, andUTCTime
- Expose fieldQueryRunnerColumn from Opaleye.RunQuery
- Add
unsafeCast
- Re-export
Unpackspec
fromOpaleye.Manipulation