All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Fix blob types in primary keys not being comparable
## v2.0.1 - 2019-06-28
- Scannable has been expanded to take in a gocql Scannable. This is so the error handling can be greatly improved
- Fixed issue masking all gocql iterator errors as RowNotFound when reading a single row
## v2.0.0 - 2019-06-22
Note: This is a major version change and quite a lot of the internals have changed to make decoding substantially faster. You will need to make some tweaks to your code if you are upgrading from v1. Please see the updated interfaces.go
and the example in gocql_backend.go
for updated usage.
- QueryExecutor now returns statements as a Statement interface object rather than a raw string
- MapStructure has been completely removed as a dependency. Gocassa now does custom reflection coordinated with gocql
- The use of the QueryExecutor has changed completely. See
gocql_backend.go
for an updated example. - Public interfaces now use Statement objects rather than just plain strings and values for queries
- Using the scanner will also encapsulate decoding the objects into your structs (previously this happened after the QueryExeuctor returned on
Query
andQueryWithOptions
function calls)
- Implemented
ORDER BY
for read queries
- Updated mock tables to use new method of decoding, now also supports embedded and non-key map types.
- Fixed incorrect ordering of results in
MockTable
- Fixed issue causing
Set
to fail with "PRIMARY KEY part user found in SET part" if keys are lower-case.
- Allow creating tables with compound keys
- Added the
MultimapMultiKeyTable
recipe which allows for CRUD operations on rows filtered by equality of multiple fields. - Add support for compact storage and compression
- Add
CreateIfNotExistStatement
andCreateIfNotExist
functions toTable
- Improved how gocassa handles encoding+decoding, it no longer uses the
encoding/json
package and now supports embedded types and type aliases. - Added new functions to
QueryExecutor
interface (QueryWithOptions
andExecuteWithOptions
)
- Mock tables are now safe for concurrent use
uint
types are now supported, when generating tables the cassandravarint
type is used.- Fixed gocassa using
json
tags when decoding results into structs