Changelog for opaleye-0.7.2.0
0.7.2.0
- 
Added
jsonAgg,jsonBuildObjectandjsonBuildObjectField. Thanks to Nathan Jaremko. - 
Added
nowfunction. Thanks to Nathan Jaremko. - 
Added
Opaleye.Exists.exists. Thanks to @duairc. - 
Added
Opaleye.Experimental.Enum - 
Added
Opaleye.Operators.array_positionandOpaleye.Operators.sqlElem. Thanks to Ashesh Ambasta. 
0.7.1.0
- 
Added
Opaleye.Experimental.Enumfor an easy way to deal with PostgresENUMtypes. - 
Added
Opaleye.Manipulation.rReturningIwhich has better type inference. - 
Added
Opaleye.Operators.where_for easier restriction in monadic style. - 
Added
Opaleye.Operators.sqlLengthandOpaleye.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.runSelectIandOpaleye.ToFields.toFieldsIwhich have better inferability. - 
Preliminary
FOR UPDATEsupport inOpaleye.Internal.Locking. - 
Added
fromFieldArrayfor makingFromFields 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
Monadinstance forSelect(andSelectArr i). - 
Add
Opaleye.Lateral, to support LATERAL subqueries. - 
Add
Opaleye.Join.optionalRestrictandOpaleye.Join.optional, as more convenient and composable ways of doing left/right joins. - 
Add
Opaleye.MaybeFields - 
Add
optionalTableField,readOnlyTableField,requiredTableField, to replaceoptional,readOnlyandrequiredin a later version. - 
Add
valuesSafe, a version ofvalues.valuesof an empty list generates incorrect queries when mixed with @OUTER@/@LEFT@/@RIGHT JOIN@s.valuesSafewill replace it in version 0.7 - 
Add
Opaleye.Adaptorsas the forward-compatible place to importUnpackspecandunpackspecFieldfrom, as well as other adaptors. - 
Unicode characters are escaped properly in
sqlString/toFields - 
Add
inSelect, to replaceinQueryin a future version. - 
Add
unsafeCoerceField, to replaceunsafeCoerceColumnin a future version. - 
Generalise label to type
label :: String -> S.SelectArr a b -> S.SelectArr a b - 
Fix invalid queries bug in
union,unionAll,exceptandexceptAllwhere one side was empty. 
0.6.7004.2
- No user-visible changes
 
0.6.7004.1
- 
Fixed exponential slowdown in
removeEmpty. - 
Fixed
readcompatibility 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
fromPGSFromFieldto replacefieldQueryRunnerColumn. - 
Added
fromPGSFieldParserto replacefieldParserQueryRunnerColumn. - 
Added
defaultFromFieldto replacequeryRunnerColumnDefault. - 
Added
tableFieldto replacetableColumn. - 
Added
unsafeFromFieldto replacequeryRunnerColumn. - 
Added
toFieldsExplicitto replaceconstantExplicit. - 
Added
TableRecordFieldto replaceTableFieldinOpaleye.TypeFamilies. The latter may be used to replaceTableColumnin 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
tableFieldas a future replacement fortableColumn - 
Export
Opaleye.FieldandOpaleye.RunSelectfromOpaleye - 
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 
NandNNbecause 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,
upperBoundandlowerBound - 
Add
distinctOnanddistinctOnBy 
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 NOTHINGsupport 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,
Columnwill becomeFieldin 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 - 
queryTableis renamedselectTable - 
Query/QueryArrare renamedSelect/SelectArr - 
QueryRunneris renamedFromFields - 
QueryRunnerColumnis renamedFromField - 
Constantis renamedToFields - 
constantis renamedtoFields - 
Added
Opaleye.SqlTypesandsql/Sql...names instead ofpg/PG...names - 
Added
runInsert_,runUpdate_,runDelete_and supporting functionality - 
Add
PGNumerictype - 
Added
leftJoinA - 
Added
liesWithin 
0.6.1.0
- 
Added
ZonedTimetoPGTimestamptzmappings - 
ArrowChoiceinstance forQueryArr 
0.6.0.0
- 
Added
runUpdateEasy - 
Deprecated
Showinstance ofColumn aManipulation.arrange...showPGTypeliteralColumnunsafePgFormatTimeprepareQueryformatAndShowSQL
 - 
Removed
unsafeCoerce
 - 
Added
TableColumnandtableColumnwhich selectsoptionalorrequiredbased on write type. - 
Added
TableColumnsas synonym forTableProperties.TablePropertieswill be deprecated in version 0.7. - 
Added
tableas synonym forTable.Tablewill be deprecated in version 0.7. - 
Added
tableWithSchemaas synonym forTableWithSchema.Tablewill be deprecated in version 0.7. - 
Replaced
ColumnMakerwithUnpackspec, which is identical to it. - 
Added
Profunctorinstance forTable - 
Added
restrictExistsandrestrictNotExistsas synonyms forexistsandnotExists. The latter will be deprecated in version 0.7. 
0.5.4.0
- Added cursor interface (
Cursorand 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 SQLINoperator.- 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
 Constantinstances forMaybeand listsrunInsertManyReturningrunQueryFold
 
0.4.2.0
- Added 
.===and./==for comparison of product types - Added 
keepWhenas an alternative torestrict - Added 
constantconversion to and from Aeson - Added 
pgValueJSONandpgValueJSONB 
0.4.1.0
- Added 
Opaleye.Constantfor lifting constant values - Support microseconds in 
pgLocalTime,pgTimeOfDayandpgUTCTime - Added 
unsafeCompositeFieldto help with defining composite types Orderis an instance ofSemigroup
Thanks to Adam Bergmark and Matt Wraith for helping with these changes.
0.4.0.0
- Added 
runUpdateReturning - Ordering operators and 
maxandminaggregators are now restricted to a typeclass - Added 
stringAggandarrayAggaggregations. - Added 
PGOrdtypeclass for typesafe ordering operations. - Support sorting NULLs first or last with 
ascNullsFirstanddescNullsFirst - 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 
likeoperator - Add the types 
PGCitext,PGArray,PGBytea 
0.3
- Replace 
Default QueryRunnerwith a new classDefaultQueryRunnerColumn, migrate withs/Default QueryRunner/DefaultQueryRunnerColumnands/def/queryRunnerColumnDefault/ - Remove 
ShowConstant, use the monomorphic functions defined in the new moduleOpaleye.PGTypesinstead. You will need to replaceColumn BoolwithColumn PGBooletc. in query signatures - Re-export more modules from 
Opaleye - Add 
boolAnd,boolOr,max, andminaggregators - Add 
lowerandupper - Add operator fixities
 - Add 
maybeToNullable - Add column instances for 
Bool,UUID,Text, andUTCTime - Expose fieldQueryRunnerColumn from Opaleye.RunQuery
 - Add 
unsafeCast - Re-export 
UnpackspecfromOpaleye.Manipulation