Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 760 lines (567 sloc) 31.574 kB
6ef8710 @thobbs Update changelog, bump version to 1.11.1
thobbs authored
1 Changes in Version 1.11.1
2
3 Features:
4
5 * Add describe_token_map() to SystemManager
6
7 Miscellaneous:
8
9 * Add TimestampType alias for DateType
10 * Match Cassandra's sorting of TimeUUIDs in stubs
11
820bbc2 @thobbs Update changelog, bump version to 1.11.0
thobbs authored
12 Changes in Version 1.11.0
13
14 Features:
15
16 * Upgrade Thrift interface to 19.36.1, which adds support for the
17 LOCAL_ONE consistency level and the populate_io_cache_on_flush
18 column family attribute.
19
20 Bug Fixes
21
22 * Return timestamp from remove() in stub ColumnFamily
23
24 Miscellaneous
25
26 * Upgrade bundled ez_setup.py
27
a80ac67 @thobbs Update changelog, bump version to 1.10.0
thobbs authored
28 Changes in Version 1.10.0
29
30 This release only adds one feature: support for Cassandra 1.2’s atomic
31 batches.
32 Features
33
34 * Add support for Cassandra 1.2+ atomic batches through a new atomic
35 parameter for batch.Mutator, batch.CfMutator, and ColumnFamily.batch().
36
37
30bee0c @thobbs Bump version to 1.9.1, update changelog
thobbs authored
38 Changes in Version 1.9.1
39
40 This release fixes a few edge cases around connection pooling that can affect
41 long-running applications. It also adds token range support to
42 ColumnFamily.get_range(), which can be useful for parallelizing full-ring
43 scans.
44
45 Features
46
47 * Add token range support to ColumnFamily.get_range()
48
49 Bug Fixes
50
51 * Prevent possible double connection disposal when recycling connections
52 * Handle empty strings for IntegerType values
53 * Prevent closed connections from being returned to the pool.
54 * Ensure connection count is decremented when pool is disposed
55
00f111e @thobbs Bump version to 1.9.0, update changelog
thobbs authored
56 Changes in Version 1.9.0
57
58 This release adds a couple of minor new features and improves multithreaded
59 locking behavior in ConnectionPool. There should be no backwards-
60 compatibility concerns.
61
62 Features
63
64 * Full support for column_start, column_finish, column_count, and
65 column_reversed parameters in contrib.stubs
66 * Addition of an include_ttl parameter to ColumnFamily fetching
67 methods which works like the existing include_timestamp parameter.
68
69 Bug Fixes
70
71 * Reduce the locked critical section in ConnectionPool, primarily to
72 make sure lock aquisition time is not ignored outside of the pool’s
73 timeout setting.
74
cb415e5 @hannosch Require at least Python 2.6
hannosch authored
75 Changes in Version 1.8.0
76
0b2ce9b @thobbs Bump version to 1.8.0, update changelog
thobbs authored
77 This release requires either Python 2.6 or 2.7. Python 2.4 and 2.5 are no
78 longer supported. There are no concrete plans for Python 3 compatibility
79 yet.
cb415e5 @hannosch Require at least Python 2.6
hannosch authored
80
0b2ce9b @thobbs Bump version to 1.8.0, update changelog
thobbs authored
81 Features
82
83 * Add configurable socket_factory attribute and constructor parameter to
84 ConnectionPool and SystemManager.
85 * Add SSL support via the new socket_factory attribute.
86 * Add support for DynamicCompositeType
87 * Add mock support through a new pycassa.contrib.stubs module
88
89 Bug Fixes
90
91 * Don’t return closed connections to the pool. This was primarily a
92 problem when operations failed after retrying up to the limit,
93 resulting in a MaximumRetryException or AllServersUnavailable.
94 * Set keyspace for connection after logging in instead of before. This
95 fixes authentication against Cassandra 1.2, which requires logging in
96 prior to setting a keyspace.
97 * Specify correct UUID variant when creating v1 uuid.UUID objects from
98 datetimes or timestamps
99 * Add 900ns to v1 uuid.UUID timestamps when the “max” TimeUUID for a
100 specific datetime or timestamp is requested, such as a column slice end
101 * Also look at attributes of parent classes when creating columns from
102 attributes in ColumnFamilyMap
103
104 Other
105
106 * Upgrade bundled Thrift-generated python to 19.35.0, generated with
107 Thrift 0.9.0.
cb415e5 @hannosch Require at least Python 2.6
hannosch authored
108
faf27ab @thobbs Bump version to 1.7.2, update changelog
thobbs authored
109 Changes in Version 1.7.2
110
111 This release fixes a minor bug and upgrades the bundled Cassandra
112 Thrift client interface to 19.34.0, matching Cassandra 1.2.0-beta1.
113 This doesn't affect any existing Thrift methods, only adds new ones
114 (that aren't yet utilized by pycassa), so there should not be any
115 breakage.
116
117 Bug Fixes
118
119 * Fix single-component composite packing
120 * Avoid cyclic imports during installation in setup.py
121
122 Other
123
124 * Travis CI integration
125
b0f4b37 @thobbs Bump version to 1.7.1, update changelog
thobbs authored
126 Changes in Version 1.7.1
127
128 This release has few changes, and should make for a smooth upgrade
129 from 1.7.0.
130
131 Features
132
133 * Add support for DecimalType
134
135 Bug Fixes
136
137 * Fix bad slice ends when using xget() with composite columns and a
138 column_finish parameter
139 * Fix bad documentation paths in debian packaging scripts
140
141 Other
142
143 * Add __version__ and __version_info__ attributes to the pycassa module
144
145
e74631a @thobbs Bump version to 1.7.0, update changelogs
thobbs authored
146 Changes in Version 1.7.0
147
148 This release has a few relatively large changes in it: a new connection
149 pool stats collector, compatibility with Cassandra 0.7 through 1.1, and a
150 change in timezone behavior for datetimes.
151
152 Before upgrading, take special care to make sure datetimes that you pass to
153 pycassa (for TimeUUIDType or DateType data) are in UTC, and make sure your code
154 expects to get UTC datetimes back in return.
155
156 Likewise, the SystemManager changes should be backwards compatible, but there
157 may be minor differences, mostly in create_column_family() and
158 alter_column_family(). Be sure to test any code that works programmatically
159 with these.
160
161 Features
162
163 * Added StatsLogger for tracking ConnectionPool metrics
164 * Full Cassandra 1.1 compatibility in SystemManager. To support this, all
165 column family or keyspace attributes that have existed since Cassandra 0.7 may
166 be used as keyword arguments for create_column_family() and
167 alter_column_family(). It is up to the user to know which attributes are
168 available and valid for their version of Cassandra. As part of this change, the
169 version-specific thrift-generated cassandra modules (pycassa.cassandra.c07,
170 pycassa.cassandra.c08, and pycassa.cassandra.c10) have been replaced by
171 pycassa.cassandra. A minor related change is that individual connections now
172 now longer ask for the node’s API version, and that information is no longer
173 stored as an attribute of the ConnectionWrapper.
174
175 Bug Fixes
176
177 * Fix xget() paging for non-string comparators
178 * Add batch_insert() to ColumnFamilyMap
179 * Use setattr instead of directly updating the object’s __dict__ in
180 * ColumnFamilyMap to avoid breaking descriptors
181 * Fix single-column counter increments with ColumnFamily.insert()
182 * Include AuthenticationException and AuthorizationException in the pycassa module
183 * Support counters in xget()
184 * Sort column families in pycassaShell for display
185 * Raise TypeError when bad keyword arguments are used when creating a ColumnFamily object
186
187 Other
188
189 All datetime objects create by pycassa now use UTC as their timezone
190 rather than the local timezone. Likewise, naive datetime objects that
191 are passed to pycassa are now assumed to be in UTC time, but tz_info is
192 respected if set.
193
194 Specifically, the types of data that you may need to make adjustments
195 for when upgrading are TimeUUIDType and DateType (including OldPycassaDateType
196 and IntermediateDateType).
197
198
e39acda @thobbs Bump version to 1.6.0, update changelog
thobbs authored
199 Changes in Version 1.6.0
200
201 This release adds a few minor features and several important bug fixes.
202
203 The most important change to take note of if you are using composite
204 comparators is the change to the default inclusive/exclusive behavior for slice
205 ends.
206
207 Other than that, this should be a smooth upgrade from 1.5.x.
208
209 Features
210
211 * New script for easily building RPM packages
212 * Add request and parameter information to PoolListener callback
213 * Add ColumnFamily.xget(), a generator version of get() that automatically
214 pages over columns in reasonably sized chunks
215 * Add support for Int32Type, a 4-byte signed integer format
216 * Add constants for the highest and lowest possible TimeUUID values to
217 pycassa.util
218
219 Bug Fixes
220
221 * Various 2.4 syntax errors
222 * Raise AllServersUnavailable if server_list is empty
223 * Handle custom types inside of composites
224 * Don’t erase comment when updating column families
225 * Match Cassandra’s sorting of TimeUUIDType values when the timestamps
226 tie
227 * This could result in some columns being erroneously left off of the end
228 of column slices when datetime objects or timestamps were used for
229 column_start or column_finish.
230 * Use gevent’s queue in place of the stdlib version when gevent
231 monkeypatching has been applied.
232 * Avoid sub-microsecond loss of precision with TimeUUID timestamps when
233 using pycassa.util.convert_time_to_uuid()
234 * Make default slice ends inclusive when using CompositeType comparator
235 * Previously, the end of the slice was exclusive by default (as was the
236 start of the slice when column_reversed was True)
237
681905c @thobbs Bump version to 1.5.1, changelog updates
thobbs authored
238 Changes in Version 1.5.1
239
240 This release only affects those of you using DateType data, which has been
241 supported since pycassa 1.2.0. If you are using DateType, it is very
242 important that you read this closely.
243
244 DateType data is internally stored as an 8 byte integer timestamp. Since
245 version 1.2.0 of pycassa, the timestamp stored has counted the number of
246 microseconds since the unix epoch. The actual format that Cassandra
247 standardizes on is milliseconds since the epoch.
248
249 If you are only using pycassa, you probably won’t have noticed any problems
250 with this. However, if you try to use cassandra-cli, sstable2json, Hector,
251 or any other client that supports DateType, DateType data written by pycassa
252 will appear to be far in the future. Similarly, DateType data written by
253 other clients will appear to be in the past when loaded by pycassa.
254
255 This release changes the default DateType behavior to comply with the
256 standard, millisecond-based format. If you use DateType, and you upgrade to
257 this release without making any modifications, you will have problems.
258 Unfortunately, this is a bit of a tricky situation to resolve, but the
259 appropriate actions to take are detailed below.
260
261 To temporarily continue using the old behavior, a new class has been
262 created: pycassa.types.OldPycassaDateType. This will read and write DateType
263 data exactly the same as pycassa 1.2.0 to 1.5.0 did.
264
265 If you want to convert your data to the new format, the other new class,
266 pycassa.types.IntermediateDateType, may be useful. It can read either the
267 new or old format correctly (unless you have used dates close to 1970 with
268 the new format) and will write only the new format. The best case for using
269 this is if you have DateType validated columns that don’t have a secondary
270 index on them.
271
272 To tell pycassa to use OldPycassaDateType or IntermediateDateType, use the
273 ColumnFamily attributes that control types: column_name_class,
274 key_validation_class, column_validators, and so on. Here’s an example:
275
276 from pycassa.types import OldPycassaDateType, IntermediateDateType
277 from pycassa.column_family import ColumnFamily
278 from pycassa.pool import ConnectionPool
279
280 pool = ConnectionPool('MyKeyspace', ['192.168.1.1'])
281
282 # Our tweet timeline has a comparator_type of DateType
283 tweet_timeline_cf = ColumnFamily(pool, 'tweets')
284 tweet_timeline_cf.column_name_class = OldPycassaDateType()
285
286 # Our tweet timeline has a comparator_type of DateType
287 users_cf = ColumnFamily(pool, 'users')
288 users_cf.column_validators['join_date'] = IntermediateDateType()
289
290 If you’re using DateType for the key_validation_class, column names, column
291 values with a secondary index on them, or are using the DateType validated
292 column as a non-indexed part of an index clause with get_indexed_slices()
293 (eg. “where state = ‘TX’ and join_date > 2012”), you need to be more careful
294 about the conversion process, and IntermediateDateType probably isn’t a good
295 choice.
296
297 In most of cases, if you want to switch to the new date format, a manual
298 migration script to convert all existing DateType data to the new format
299 will be needed. In particular, if you convert keys, column names, or indexed
300 columns on a live data set, be very careful how you go about it. If you need
301 any assistance or suggestions at all with migrating your data, please feel
302 free to send an email to tyler@datastax.com; I would be glad to help.
303
e7d24f8 @thobbs Bump version to 1.5.0, changelog updates
thobbs authored
304 Changes in Version 1.5.0
305
306 The main change to be aware of for this release is the new no-retry behavior
307 for counter operations. If you have been maintaining a separate connection
308 pool with retries disabled for usage with counters, you may discontinue that
309 practice after upgrading.
310
311 Features
312
313 By default, counter operations will not be retried automatically. This
314 makes it easier to use a single connection pool without worrying about
315 overcounting.
316
317 Bug Fixes
318
319 * Don’t remove entire row when an empty list is supplied for the columns
320 parameter of remove() or the batch remove methods.
321 * Add python-setuptools to debian build dependencies
322 * Batch remove() was not removing subcolumns when the specified supercolumn
323 was 0 or other “falsey” values
324 * Don’t request an extra row when reading fewer than buffer_size rows with
325 get_range() or get_indexed_slices().
326 * Remove pool_type from logs, which showed up as None in recent versions
327 * Logs were erroneously showing the same server for retries of failed
328 operations even when the actual server being queried had changed
329
a06b031 @thobbs Bump version to 1.4.0
thobbs authored
330 Changes in Version 1.4.0
331
332 This release is primarily a bugfix release with a couple
333 of minor features and removed deprecated items.
334
335 Features
336
337 * Accept column_validation_classes when creating or altering
338 column families with SystemManager
339 * Ignore UNREACHABLE nodes when waiting for schema version
340 agreement
341
342 Bug Fixes
343
344 * Remove accidental print statement in SystemManager
345 * Raise TypeError when unexpected types are used for
346 comparator or validator types when creating or altering
347 a Column Family
348 * Fix packing of column values using column-specific validators
349 during batch inserts when the column name is changed by packing
350 * Always return timestamps from inserts
351 * Fix NameError when timestamps are used where a DateType is
352 expected
353 * Fix NameError in python 2.4 when unpacking DateType objects
7bb546a @thobbs Forgot composites bugfix in changelog
thobbs authored
354 * Handle reading composites with trailing components
355 missing
a06b031 @thobbs Bump version to 1.4.0
thobbs authored
356 * Upgrade ez_setup.py to fix broken setuptools link
357
358 Removed Deprecated Items
359
360 The following items have been removed:
361
362 * pycassa.connect()
363 * pycassa.connect_thread_local()
364 * ConnectionPool.status()
365 * ConnectionPool.recreate()
366
367
12d10d8 @thobbs Bump version to 1.3.0
thobbs authored
368 Changes in Version 1.3.0
369
370 This release adds full compatibility with Cassandra 1.0 and removes support
371 for schema manipulation in Cassandra 0.7.
a06b031 @thobbs Bump version to 1.4.0
thobbs authored
372
12d10d8 @thobbs Bump version to 1.3.0
thobbs authored
373 In this release, schema manipulation should work with Cassandra 0.8 and 1.0,
374 but not 0.7. The data API should continue to work with all three versions.
375
376 Bug Fixes
377
378 * Don’t ignore columns parameter in ColumnFamilyMap.insert()
379 * Handle empty instance fields in ColumnFamilyMap.insert()
380 * Use the same default for timeout in pycassa.connect() as ConnectionPool
381 uses
382 * Fix typo which caused a different exception to be thrown when an
383 AllServersUnavailable exception was raised
384 * IPython 0.11 compatibility in pycassaShell
385 * Correct dependency declaration in setup.py
386 * Add UUIDType to supported types
387
388 Features
389
390 The filter_empty parameter was added to get_range() with a default of True;
391 this allows empty rows to be kept if desired
392
393 Deprecated
394
395 pycassa.connect()
396 pycassa.connect_thread_local()
397
398
cb06be1 @thobbs Bump version to 1.2.1 and update changelog
thobbs authored
399 Changes in Version 1.2.1
400
401 This is strictly a bug-fix release addressing a few issues created in 1.2.0.
402
403 Bug Fixes
404
405 * Correctly check for Counters in ColumnFamily when setting
406 default_validation_class
407 * Pass kwargs in ColumnFamilyMap to ColumnFamily
408 * Avoid potential UnboundLocal in ConnectionPool.execute() when get() fails
409 * Fix ez_setup dependency/bundling so that package installations using
410 easy_install or pip don’t fail without ez_setup installed
411
412
d832833 @thobbs Bump to version 1.2.0 and changelog update
thobbs authored
413 Changes in Version 1.2.0
414
415 This should be a fairly smooth upgrade from pycassa 1.1. The
416 primary changes that may introduce minor incompatibilities are
417 the changes to ColumnFamilyMap and the automatic skipping of
418 "ghost ranges" in .ColumnFamily.get_range().
419
420 Features
421
422 * Add ConnectionPool.fill()
423 * Add FloatType, DoubleType, DateType, and BooleanType support.
424 * Add CompositeType support for static composites. See "Composite Types"
425 for more details.
426 * Add timestamp, ttl to ColumnFamilyMap.insert() params
427 * Support variable-length integers with IntegerType. This allows more
428 space-efficient small integers as well as integers that exceed the size
429 of a long.
430 * Make ColumnFamilyMap a subclass of ColumnFamily instead of using one
431 as a component. This allows all of the normal adjustments normally done
432 to a ColumnFamily to be done to a ColumnFamilyMap instead. See "Class
433 Mapping with Column Family Map" for examples of using the new version.
434 * Expose the following ConnectionPool attributes, allowing them to be
435 altered after creation: max_overflow, pool_timeout, recycle,
436 max_retries, and logging_name. Previously, these were all supplied as
437 constructor arguments. Now, the preferred way to set them is to alter
438 the attributes after creation. (However, they may still be set in the
439 constructor by using keyword arguments.)
440 * Automatically skip "ghost ranges" in ColumnFamily.get_range().
441 Rows without any columns will not be returned by the generator,
442 and these rows will not count towards the supplied row_count.
443
444 Bug Fixes
445
446 * Add connections to ConnectionPool more readily when prefill is False.
447 Before this change, if the ConnectionPool was created with prefill=False,
448 connections would only be added to the pool when there was concurrent
449 demand for connections. After this change, if prefill=False and
450 pool_size=N, the first N operations will each result in a new connection
451 being added to the pool.
452 * Close connection and adjust the ConnectionPool‘s connection count after a
453 TApplicationException. This exception generally indicates programmer error,
454 so it’s not extremely common.
455 * Handle typed keys that evaluate to False
456
457 Deprecated
458
459 * ConnectionPool.recreate()
460 * ConnectionPool.status()
461
462 Miscellaneous
463
464 * Better failure messages for ConnectionPool failures
465 * More efficient packing and unpacking
466 * More efficient multi-column inserts in ColumnFamily.insert() and
467 ColumnFamily.batch_insert()
468 * Prefer Python 2.7’s collections.OrderedDict over the bundled version when
469 available
470
471
b0aeed9 @thobbs Version bump to 1.1.1 plus changelog
thobbs authored
472 Changes in Version 1.1.1
473
474 Features
475
476 * Add max_count and column_reversed params to get_count()
477 * Add max_count and column_reversed params to multiget_count()
478
479 Bug Fixes
480
481 * Don’t retry operations after a TApplicationException. This exception is
482 reserved for programmatic errors (such as a bad API parameters), so
483 retries are not needed.
484 * If the read_consistency_level kwarg was used in a ColumnFamily
485 constructor, it would be ignored, resulting in a default read
486 consistency level of ONE. This did not affect the read consistency
487 level if it was specified in any other way, including per-method or by
488 setting the read_consistency_level attribute.
489
df92ad7 @thobbs Version bump to 1.1.0 and changelog
thobbs authored
490 Changes in Version 1.1.0
491
492 This release adds compatibility with Cassandra 0.8, including support for
493 counters and key_validation_class. This release is backwards-compatible with
494 Cassandra 0.7, and can support running against a mixed cluster of both
495 Cassandra 0.7 and 0.8.
496
497 Changes related to Cassandra 0.8
498
499 * Addition of COUNTER_COLUMN_TYPE to system_manager.
500 * Several new column family attributes, including key_validation_class,
501 replicate_on_write, merge_shards_chance, row_cache_provider, and key_alias.
502 * The new ColumnFamily.add() and ColumnFamily.remove_counter() methods.
503 * Support for counters in pycassa.batch and ColumnFamily.batch_insert().
504 * Autopacking of keys based on key_validation_class.
505
506 Other Features
507
508 * ColumnFamily.multiget() now has a buffer_size parameter
509 * ColumnFamily.multiget_count() now returns rows in the order that the
510 keys were passed in, similar to how multiget() behaves. It also uses
511 the dict_class attribute for the containing class instead of always
512 using a dict.
513 * Autpacking behavior is now more transparent and configurable, allowing
514 the user to get functionality similar to the CLI’s assume command, whereby
515 items are packed and unpacked as though they were a certain data type,
516 even if Cassandra does not use a matching comparator type or validation
517 class. This behavior can be controlled through the following attributes:
518 - ColumnFamily.column_name_class
519 - ColumnFamily.super_column_name_class
520 - ColumnFamily.key_validation_class
521 - ColumnFamily.default_validation_class
522 - ColumnFamily.column_validators
523 * A ColumnFamily may reload its schema to handle changes in validation
524 classes with ColumnFamily.load_schema().
525
526 Bug Fixes
527
528 There were several related issues with overlow in ConnectionPool:
529
530 * Connection failures when a ConnectionPool was in a state of overflow
531 would not result in adjustment of the overflow counter, eventually
532 leading the ConnectionPool to refuse to create new connections.
533 * Settings of -1 for ConnectionPool.overflow erroneously caused overflow
534 to be disabled.
535 * If overflow was enabled in conjunction with prefill being disabled,
536 the effective overflow limit was raised to max_overflow + pool_size.
537
538 Other
539
540 * Overflow is now disabled by default in ConnectionPool.
541 * ColumnFamilyMap now sets the underlying ColumnFamily‘s
542 autopack_names and autopack_values attributes to False upon construction.
543 * Documentation and tests will no longer be included in the
544 packaged tarballs.
545
546 Removed Deprecated Items
547
548 The following deprecated items have been removed:
549
550 * ColumnFamilyMap.get_count()
551 * The instance parameter from ColumnFamilyMap.get_indexed_slices()
552 * The Int64 Column type.
553 * SystemManager.get_keyspace_description()
554
555 Deprecated
556
557 Athough not technically deprecated, most ColumnFamily constructor
558 arguments should instead be set by setting the corresponding
559 attribute on the ColumnFamily after construction. However, all
560 previous constructor arguments will continue to be supported if
561 passed as keyword arguments.
562
563
fe7adca @thobbs Update changelog with 1.0.8 changes
thobbs authored
564 Changes in Version 1.0.8
565
566 * Pack IndexExpression values in get_indexed_slices() that are supplied
567 through the IndexClause instead of just the instance parameter.
568 * Column names and values which use Cassandra’s IntegerType are unpacked
569 as though they are in a BigInteger-like format. This is (backwards)
570 compatible with the format that pycassa uses to pack IntegerType data.
571 This fixes an incompatibility with the format that cassandra-cli and
572 other clients use to pack IntegerType data.
573 * Restore Python 2.5 compatibility that was broken through out of order
574 keyword arguments in ConnectionWrapper.
575 * Pack column_start and column_finish arguments in ColumnFamily *get*()
576 methods when the super_column parameter is used.
577 * Issue a DeprecationWarning when a method, parameter, or class that has
578 been deprecated is used. Most of these have been deprecated for several
579 releases, but no warnings were issued until now.
580 * Deprecations are now split into separate sections for each release in the changelog.
581
582 Deprecated in Version 1.0.8
583
584 * The instance parameter of ColumnFamilyMap.get_indexed_slices()
585
179a557 @thobbs Version bump to 1.0.7
thobbs authored
586 Changes in Version 1.0.7
587
588 * Catch KeyError in pycassa.columnfamily.ColumnFamily.multiget() empty row
589 removal. If the same non-existent key was passed multiple times, a
590 KeyError was raised when trying to remove it from the OrderedDictionary
591 after the first removal. The KeyError is caught and ignored now.
592 * Handle connection failures during retries. When a connection fails, it
593 tries to create a new connection to replace itself. Exceptions during
594 this process were not properly handled; they are now handled and count
595 towards the retry count for the current operation.
596 * Close connection when a MaximumRetryException is raised. Normally a
597 connection is closed when an operation it is performing fails, but this
598 was not happening for the final failure that triggers the
599 MaximumRetryException.
600
d703c07 @thobbs Version bump to 1.0.6
thobbs authored
601 Changes in Version 1.0.6
602
603 * Add EOFError to the list of exceptions that cause a connection swap and
604 retry
605 * Improved autopacking efficiency for AsciiType, UTF8Type, and BytesType
606 * Preserve sub-second timestamp precision in datetime arguments for
607 insertion or slice bounds where a TimeUUID is expected. Previously,
608 precision below a second was lost.
609 * In a MaximumRetryException‘s message, include details about the last
610 Exception that caused the MaximumRetryException to be raised
611 * pycassa.pool.ConnectionPool.status() now always reports a non-negative
612 overflow; 0 is now used when there is not currently any overflow
613 * Created pycassa.types.Long as a replacement for pycassa.types.Int64.
614 Long uses big-endian encoding, which is compatible with Cassandra’s LongType,
615 while Int64 used little-endian encoding.
616
fe7adca @thobbs Update changelog with 1.0.8 changes
thobbs authored
617 Deprecated in Version 1.0.6
618
619 * pycassa.types.Int64 has been deprecated in favor of pycassa.types.Long
620
e011479 @thobbs Version bump to 1.0.5
thobbs authored
621 Changes in Version 1.0.5
622
623 * Assume port 9160 if only a hostname is given
624 * Remove super_column param from pycassa.columnfamily.ColumnFamily.get_indexed_slices()
625 * Enable failover on functions that previously lacked it
626 * Increase base backoff time to 0.01 seconds
627 * Add a timeout parameter to pycassa.system_manager.SystemManger
628 * Return timestamp on single-column inserts
629
a78a15d @thobbs Version bump to 1.0.4 and changelog
thobbs authored
630 Changes in Version 1.0.4
631
632 * Fixed threadlocal issues that broke multithreading
633 * Fix bug in pycassa.columnfamily.ColumnFamily.remove() when a super_column
634 argument is supplied
635 * Fix minor PoolLogger logging bugs
636 * Added pycassa.system_manager.SystemManager.describe_partitioner()
637 * Added pycassa.system_manager.SystemManager.describe_snitch()
638 * Added pycassa.system_manager.SystemManager.get_keyspace_properties()
639 * Moved pycassa.system_manager.SystemManager.describe_keyspace() and
640 pycassa.system_manager.SystemManager.describe_column_family() to
641 pycassaShell describe_keyspace() and describe_column_family()
642
fe7adca @thobbs Update changelog with 1.0.8 changes
thobbs authored
643 Deprecated in Version 1.0.4
644
645 * Renamed pycassa.system_manager.SystemManager.get_keyspace_description()
646 to pycassa.system_manager.SystemManager.get_keyspace_column_families()
647 and deprecated the previous name
648
8074e56 @thobbs Bump version to 1.0.3 plus changelog
thobbs authored
649 Changes in Version 1.0.3
650
651 * Fixed supercolumn slice bug in get()
652 * pycassaShell now runs scripts with execfile to allow for multiline statements
653 * 2.4 compatability fixes
654
423cbaf @thobbs Bump to version 1.0.2 and changelog updates
thobbs authored
655 Changes in Version 1.0.2
656
657 * Failover handles a greater set of potential failures
658 * pycassaShell now loads/reloads pycassa.columnfamily.ColumnFamily instances when the underlying column family is created or updated
659 * Added an option to pycassaShell to run a script after startup
660 * Added pycassa.system_manager.SystemManager.list_keyspaces()
661
08e818e @thobbs Bump to 1.0.1 and changelog update
thobbs authored
662 Changes in Version 1.0.1
663
664 * Allow pycassaShell to be run without specifying a keyspace
665 * Added pycassa.system_manager.SystemManager.describe_schema_versions()
666
0a8d874 @thobbs Bump to version 1.0.0
thobbs authored
667 Changes in Version 1.0.0
668
e822804 @thobbs Minor fixes to CHANGES
thobbs authored
669 * Created the SystemManager class to allow for keyspace, column family, and
670 index creation, modification, and deletion. These operations are no longer
671 provided by a Connection class.
0a8d874 @thobbs Bump to version 1.0.0
thobbs authored
672 * Updated pycassaShell to use the SystemManager class
e822804 @thobbs Minor fixes to CHANGES
thobbs authored
673 * Improved retry behavior, including exponential backoff and proper resetting
674 of the retry attempt counter
675 * Condensed connection pooling classes into only pycassa.pool.ConnectionPool
676 to provide a simpler API
0a8d874 @thobbs Bump to version 1.0.0
thobbs authored
677 * Changed pycassa.connection.connect() to return a connection pool
678 * Use more performant Thrift API methods for insert() and get() where possible
679 * Bundled OrderedDict and set it as the default dictionary class for column families
680 * Provide better TypeError feedback when columns are the wrong type
681 * Use Thrift API 19.4.0
682
fe7adca @thobbs Update changelog with 1.0.8 changes
thobbs authored
683 Deprecated in Version 1.0.0
684
685 * ColumnFamilyMap.get_count() has been deprecated. Use
686 ColumnFamily.get_count() instead.
687
0a8d874 @thobbs Bump to version 1.0.0
thobbs authored
688 Changes in Version 0.5.4
689
690 * Allow for more backward and forward compatibility
691 * Mark a server as being down more quickly in Connection
692
e5edc76 @thobbs Version bump to 0.5.3 plus changelog update
thobbs authored
693 Changes in Version 0.5.3
694
e822804 @thobbs Minor fixes to CHANGES
thobbs authored
695 * Added PooledColumnFamily, which makes it easy to use connection pooling
696 automatically with a ColumnFamily.
e5edc76 @thobbs Version bump to 0.5.3 plus changelog update
thobbs authored
697
8bda7c2 @thobbs Version bump to 0.5.2 plus changelog
thobbs authored
698 Changes in Version 0.5.2
699
700 * Support for adding/updating/dropping Keyspaces and CFs in pycassa.connection.Connection
701 * get_range() optimization and more configurable batch size
702 * batch get_indexed_slices() similar to get_range()
703 * Reorganized pycassa logging
704 * More efficient packing of data types
705 * Fix error condition that results in infinite recursion
706 * Limit pooling retries to only appropriate exceptions
707 * Use Thrift API 19.3.0
708
fc29b48 @thobbs Make a more obvious location for the changelog
thobbs authored
709 Changes in Version 0.5.1
710
711 * Automatically detect if a column family is a standard column family or a super column family
712 * multiget_count() support
713 * Allow preservation of key order in multiget() if an ordered dictionary is used
714 * Convert timestamps to v1 UUIDs where appropriate
715 * pycassaShell documentation
716 * Use Thrift API 17.1.0
717
718 Changes in Version 0.5.0
719
720 * Connection Pooling support: pycassa.pool
721 * Started moving logging to pycassa.logger
722 * Use Thrift API 14.0.0
723
724 Changes in Version 0.4.3
725
726 * Autopack on CF’s default_validation_class
727 * Use Thrift API 13.0.0
728
729 Changes in Version 0.4.2
730
731 * Added batch mutations interface: pycassa.batch
732 * Made bundled thrift-gen code a subpackage of pycassa
733 * Don’t attempt to reencode already encoded UTF8 strings
734
e822804 @thobbs Minor fixes to CHANGES
thobbs authored
735 Changes in Version 0.4.1
fc29b48 @thobbs Make a more obvious location for the changelog
thobbs authored
736
737 * Added batch_insert()
738 * Redifined insert() in terms of batch_insert()
739 * Fixed UTF8 autopacking
740 * Convert datetime slice args to uuids when appropriate
741 * Changed how thrift-gen code is bundled
e822804 @thobbs Minor fixes to CHANGES
thobbs authored
742 * Assert that the major version of the thrift API is the same on the client
743 and on the server
fc29b48 @thobbs Make a more obvious location for the changelog
thobbs authored
744 * Use Thrift API 12.0.0
745
746 Changes in Version 0.4.0
747
748 * Added pycassaShell, a simple interactive shell
749 * Converted the test config from xml to yaml
750 * fixed overflow error on get_count()
751 * Only insert columns which exist in the model object
752 * Make ColumnFamilyMap not ignore the ColumnFamily’s dict_class
753 * Specify keyspace as argument to connect()
754 * Add support for framed transport and default to using it
755 * Added autopacking for column names and values
e822804 @thobbs Minor fixes to CHANGES
thobbs authored
756 * Added support for secondary indexes with get_indexed_slices() and
757 pycassa.index
fc29b48 @thobbs Make a more obvious location for the changelog
thobbs authored
758 * Added truncate()
759 * Use Thrift API 11.0.0
Something went wrong with that request. Please try again.