- Migrate from lager to OTP logger.
- Add support for
cloud_secure_connection_bundle
- Update cpp-driver to 2.16.2
- Add support to avoid creating tombstones while inserting data using prepared statements (https://github.com/silviucpp/erlcass/wiki/Null-bindings-on-prepared-statements-and-undesired-tombstone-creation).
- Fix compilation on architectures where char is unsigned by default silviucpp#53
- Improve build scripts
- Fix compilation error under elixir 1.13
- Speed up builds, use shallow clone for
cpp-driver
- Upgrade cpp-driver to v2.16.1
- Use openssl@1.1 in MacOS.
- Fix for OTP 24 build
- Add support for Paged queries (thanks to Jesper Lundgren - https://github.com/cleaton)
- Fix segmentation fault into tuple decoding.
- Update cpp-driver to 2.15.3
- Use libuv 1.x for Ubuntu 14.04 (thanks to Dominic Letz - https://github.com/dominicletz)
- Fix build with GCC 9
- Fix building on OTP 23 or newer.
- Fix build on OSX Catalina
Note: This is a major update due to upgrade of the cpp-driver to a major version which use a different internal architecture.
-
Update cpp-driver to 2.13.0
-
Add support for speculative execution (see
speculative_execution_policy
) -
Removed deprecated cluster configs:
queue_size_event
max_connections_host
reconnect_wait_time
max_concurrent_creation
max_requests_threshold
requests_per_flush
Add support for new cluster configs (for more details see wiki):constant_reconnect
exponential_reconnect
coalesce_delay
request_ratio
max_schema_wait_time
token_aware_routing_shuffle_replicas
use_hostname_resolution
speculative_execution_policy
max_reusable_write_objects
-
Removed deprecated retry policy:
downgrading_consistency
- Fix hex.pm package
- Cleaned the code using cppcheck and cpplint
- Use epoch day offset when returning date types
- Fix gcc 8 build
- Fix crash in UDT types (silviucpp#42)
- Fix a critical memory issue discovered by running the VM in debug mode.
- Update lager
- Add Trevis CI (Thanks to Gonçalo Tomás)
- Add the proper fix for libuv-dev on Ubuntu > 14.04
- Update lager
- Fix the way libuv-dev is installed on Ubuntu > 14.04 (Thanks to Gonçalo Tomás)
- Fix for hex package
- Prepare for submitting to hex.pm (Thanks to Gonçalo Tomás)
- Fix log pid bug (Thanks to Cibin George)
- Update cpp-driver to 2.9.0
- Update cpp-driver to 2.8.1
write_bytes_high_watermark
andwrite_bytes_low_watermark
options were removedpending_requests_high_watermark
andpending_requests_low_watermark
options were removed- the following stats are removed:
available_connections
,exceeded_pending_requests_water_mark
,exceeded_write_bytes_water_mark
- Update cpp-driver to 2.7.1
- Add support for Schema metadata api
- Return column names and types along with results (breaks compatibility with previous versions)
- Add support for retry policy settings
Compatibility changes: This versions breaks the API. All query results will return in case of success:
ok
instead{ok, []}
for all DDL and DML queries (because they never returns any column or row){ok, Columns, Rows}
instead{ok, Rows}
, where also each row is encoded as a list not as a tuple as was before.
- Updated cpp-driver to 2.7.0
- Updated lager to 3.4.2
- Fix for segmentation fault when we try to bind more arguments than we specified (#14).
- API breaking changes:
- non prepared statements are executed now using
query/1
,query_async/1
andquery_new_statement/1
(used when should run inside a batch) - the following methods are removed:
async_execute_statement/1
,async_execute_statement/3
,execute_statement/1
- removed support for binding non prepared statements.
- non prepared statements are executed now using
- Add support for user-defined type (UDT): decode as proplist.
- Major code refactoring in the way the nif terms are bind in native cass statements
- Updated cpp-driver to 2.5.0
- Updated lager to 3.2.4
- Fix several bugs in compiling scripts
- Don't throw exception in case of bad arguments. Return {error, badarg} instead
- Add more descriptive errors in case of bad options
- Add versions for
async_execute
where caller can specify the process that's going to receive the response and the tag used to match the request with the response. - Add support for fire and forget async requests (response is never sent back, it's only logged in case fails). Use
ReceiverPid
= null inasync_execute/5
orasync_execute_statement/3
.
- Integrated
lager
as dependency - Improved logging system. In case the logging process it's crashing it's restarted
- Removed support for the following methods:
set_cluster_options/1
,create_session/1,
andset_log_function/1
- Proper restarting
erlcass
process in case dies and also reprepare all statements again
- Improved performances for
gen_time/0
,gen_random/0
andgen_from_ts/1
fromerlcass_uuid
- Small internal refactoring for constants
- Updated cpp-driver to 2.4.3 (require c++ 11)
- Compatible with both
rebar
andrebar3
- Updated cpp-driver to 2.4.2
- Improved the native code build speed
- Add support for setting serial consistency level
- Removed the necessity of
gen_server
calls for prepared statements. Observed this as being a bottleneck under heavy load. - Removed from erlcass module all methods starting with
uuid_*
anddate_from_epoch/1
,time_from_epoch/1
,date_time_to_epoch/2
. Instead this functions you can use the one fromerlcass_uuid
anderlcass_time
modules. - Updated cpp-driver to 2.3.0
- Internal code refactoring
- Changed the default consistency from
CASS_CONSISTENCY_ONE
toCASS_CONSISTENCY_LOCAL_QUORUM
- Updated the cpp-driver to 2.2.0
- Add support for Cassandra 2.2 data types
tinyint
andsmallint
- Add support for the Cassandra 2.2
date
andtime
data types - Add support for functions to convert from Unix Epoch time (in seconds) to and from the Cassandra
date
andtime
types - Small improvements
- Refactoring the build dependencies script
- Added support for logs from native driver
- Added support for tuples
- Added support for nested collections
- Based on cpp-driver 2.2.0-beta1
- Interfaces changes:
bind_prepared_params
replaced bybind_prepared_params_by_name
andbind_prepared_params_by_index
- Add support for
async_execute/1
andexecute/1
(should be used when no binding params available) - Add support for
async_execute/3
andexecute/3
(second parameter should be used to specify the binding type - by name or index) - By default
async_execute/2
andexecute/2
are binding the params by index
- Initial implementation supporting most of the features available in Datastax cpp-driver 1.0.3