Changelog for opaleye-0.7.3.0
0.7.3.0
- Added DefaultFromField SqlJson(b) instances for Strict/Lazy Text/ByteString. Thanks to Nathan Jaremko.
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