- Drop support for changing the type of cluster keys as it is no longer support by Cassandra.
- Drop support for non-option based index specification in table schema DSL. For example,
column :author_name, :text, true
must be rewritten ascolumn :author_name, :text, index: true
. - Fix Relic instrumentation for batch statements PR 361
- Don't set table name when it is already present PR 364
- Add ActiveRecord::Enum like support
column :status, :enum, values: { open: 1, closed: 2 }
(PR 354) - Fix bug CQL statement execution error handling (PR 357
- Documentation fixes (PR 355)
- Add support for
ALLOW FILTERING
queries (PR 353) - Add support for
IF EXISTS
to schema modifications (PR 349) - Make
test
the default rake tast (PR 348)
- Add synchronization around use of @cluster and other variables Fix (PR 333)
- expose if the dataset is on the last page (PR 335)
- Delegate error handling to a policy object, allow for arbitrary options to be passed to cassandra driver gem (PR 336)
- Fixes README.md (PR 340)
- skip synchronizing materialized view (PR 346)
- Fixed link to cassandra documentation (PR 347)
- Fix intermittent failures around preparing statements (PR 330)
- Fix new relic instrumentation (PR 331)
- Remove requirment on activemodel-serializers-xml (PR 329)
- add support for Cassandra 3.x (PR 324)
- upgrade cassandra driver to 3.x (PR 323)
- add support for storing blobs (via parameterized CQL statements) (PR 320)
- add support for Rails 5 (PR 310)
- drop support for JRuby (PR 310)
- handle missing indexes gracefully (PR 317)
- Dropped support for count, length, and size as it results in unbounded run times and memory usage (PR 313)
:foreign_key
option for belongs_to associations (PR 287):client_compression
option in cequel.yaml (PR 304)
- fix dirty checking for timestamps more precise than Cassandra can store
- fix bug with new relic instrumentation
- NewRelic instrumentation
- fix querying tables whose first partition key is a timestamp
- remove false claims of Rubinius support from readme (we would gratefully accept a PR to fix compatibility)
- add dirty tracking on unsaved records
- fix key column order bug on tables with more than 2 key columns
- trim very large field values to a reasonable size in log messages
- native CQL paging support
- Support Cassandra up to 2.2
- Support JRuby 9
- Drop support for Rails 3, Ruby 1.9
- Update to
cassandra-driver
2.0 - Support SSL configuration
- Add
RecordSet#first_or_initialize
andRecordSet#first!
- Rake task to reset keyspace
- Ruby 1.9 no longer supported (EOL)
- Fix exception class changed in Rails 4.2
- Fix integration with ActiveModel::Serialization
- Replace cql-rb with cassandra-driver
- Don't overwrite ActiveSupport's
Module#forwardable
(fixes Rails 4.2 incompatibility) - Don't interact with updater/deleter if new record
- Drop support for Rails 3.1
- Support ActiveSupport instrumentation of Record create, update, destroy
- Allow config/cequel.yml to specify
:replication
and:durable_writes
settings Key#to_s
correctly returns String, not Symbol- Don't assume all constants are classes in migrations
- Explicitly require yaml and erb in Railtie
- NewRelic integration can be explicitly disabled
- Demodulize model class name before transforming it to table name
- Fix recovery from connection error
- Round time to nearest millisecond when serializing for CQL
- Make Rake tasks work without Rails
RecordSet#reverse
andfind_in_batches
respect clustering order defined in schema
- Allow setting a key attribute to what it already is
- Don't reset model updater/deleter if save results in an error
- Read
:default_consistency
from cequel.yml :max_retries
configuration parameter for customization of maximum retries that will be made to reconnect to cassandra
- Cequel::Record::descendants doesn't return weakrefs
- Support TTL and timestamp options to record persistence methods
- Convenience methods for test preparation
- Cast values passed to primary key filters in record sets
- Allow querying by both primary key and secondary index in
RecordSet
- Expand cql-rb dependency to allow 2.0
- Add timestamps functionality (
created_at
andupdated_at
) - More robust error handling when loading models for migrations
- Expose
#column_names
on Record and Schema
- Fixes for Type::quote
- Fix
puts
behavior when passed a Record instance - Fix batch loading of record sets with bounds on first of multiple clustering columns
- Fix load order of namespaced models for migrations
- Apply empty attribute values when hydrating records
- Fix intermittent load failures of activesupport 4.0.x
- Support
:default
option for key columns - Explicitly require
active_support
(Rails 4.1 compatibility) - Detect namespaced models in subdirectories when running migrations
- Handle unset collection columns hydrated from database
- Remove
app_generators.orm
setting
where
can now be used to scope primary keys- Magic finders for primary keys
- Pessimistic versioning for all dependencies
- Simplify logging implementation
- Support Cassandra authentication
- Specify NewRelicInstrumentation with full namespace
- Update config generator template for native protocol
- Switch to
cql-rb
(CQL native protocol) fromcassandra-cql
(Thrift protocol) - Support for consistency tuning
- Add
partition: true
option tobelongs_to
- Fix
#invalid?
- Put missing .yml template file in gem – fix
cequel:configuration
generator - Explicitly require I18n's hash extensions – fix config loading bug in Rails 3
- Add magic encoding comments for Ruby 1.9
- Fix for identifying varint columns when introspecting schema
- Add testing on Rubinius 2.2 and JRuby 1.7
- Don't set the same column multiple times in an UPDATE
- Allow clustering order in record key declarations
- Add
[]
and[]=
method for property access - Add Rails generator for records
- Fallback to filename when inferring model class for migrations
- Add Cequel::Record::ClassMethods
- Better interface for
::find
- Better interface for
HasManyAssociation
- Support
ActiveModel::Conversion
- Add RecordSet#values_at method for IN queries
- Add
:partition
option to Record::Schema#key - Fix regression in
List#<<
- Raise RecordNotFound if multi-record load doesn't find all records
- Compatibility with Cassandra 2.0 and recent Cassandra 1.2 patchlevels
- Fail when a schema migration would change the clustering order
- Fail fast when attempting to change a column's type in an incompatible way
- YARD documentation for all public interfaces
- Rails integration: Add rake tasks for creating keyspace, migrations; generator for configuration file
- Implement update_all, delete_all, destroy_all
- Option for unlogged batches
- Allow record sets to be scoped by multiple primary keys
- If a batch is a single statement, just send it as a statement
- Don't start a new batch if you're already in a batch
- Wrap record callbacks in logged batch
- Update
connection_pool
dependency
- Support time range queries over
timeuuid
columns - Typecast arguments to scoping functions of
RecordSet
- Typecast values in collection columns
- Use correct ordering column for deeply nested keys
- Don't allow updating keys on persisted models
- Fail fast attempting to save a model that doesn't have all keys defined
- Fixes for legacy schema support
- Full support for legacy CQL2 tables
dependent
option forhas_many
associations
- BIG BREAKING CHANGE: Instead of inheriting from
Cequel::Model::Base
, includeCequel::Record
. - RecordSet can chain class methods defined in the model class
- New records are initialized using the key attributes from the current scope
- Auto-generated UUIDs
- Implement RecordSet#== and #inspect
- RecordSet#last takes optional count argument
- Dynamic column defaults
- Fix insertion of default values in new records
- Secondary index support
- Dirty attribute tracking
- == implementation for model
- Add missing attributes argument to #create!
- Load cequel/model by default
- Essentially a ground-up rewrite to support CQL3
- Ability to change default consistency within a block
- Calling ::load on a loaded Dictionary is a no-op
- Clear out Dictionary @row on save unless loaded
- Add homepage link so rubygems users can easily get to github
- Add link to cequel-migrations-rails to README
- Use parameters for pooling
- Persist Dictionary changes in batches
- Allow overriding of default column family name for model
- Implement
Dictionary#first
andDictionary#last
- Use default column limit when loading multiple wide rows
- Cequel::Model::Counter model class
- Counter column support for data sets
- Connection pool
- Load multiple dictionary rows in one query
- Allow erb yml files
- Default thrift options to empty hash if not provided
- Implement Dictionary#key?
Dictionary#each_slice
- Release to Rubygems.org
- Inspect UUIDs nicer
- Allow
Cequel::Model
classes to implement#generate_key
- Implement
Cequel::Model::Dictionary
- Fix Enumerator for
#find_each_row
#find_in_batches
accounts for duplicate last row/first row
- Sanitize column names
- Chain select options
- Support for column ranges and column limits
- Implement
#find_in_batches
,#find_each
- Don't pre-sanitize CQL statements before sending to cassandra-cql
- Don't set
updated_at
if no dirty attributes
- Add NewRelic instrumentation
- Lazily create CassandraCql connection
- Include limit in
COUNT
query if specified - Default scope
- Memoize column family name
- Fix subclass
#reflect_on_associations
- Add
index_preference
for query plan hinting
- Don't call constructor when hydrating models
- Add support for dynamic attributes
- Tweaks to logging
- Add a slowlog
- Update based on attributes, not value of getters
- Strip nil values out of rows in Cequel::Model
- Add thrift client options when setting up connection
- Defer setting logger on keyspace until keyspace needs to be loaded
- Set logger correctly in railtie
- Initial library release