This repository has been archived by the owner on Aug 4, 2020. It is now read-only.
forked from hoan/phpcassa
-
Notifications
You must be signed in to change notification settings - Fork 79
/
CHANGES
320 lines (263 loc) · 10.2 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
Changelog
=========
Changes in 1.1.1
----------------
Features
^^^^^^^^
- Allow null row_count to represent no limit
- Add UUID::minTimeuuid() and UUID::maxTimeuuid()
- Make Clock::get_time() more efficient
Miscellaneous
-------------
- UUID->string doesn't need to be dynamic
- Tweak phpunit for hhvm, update TravisCI config
Changes in 1.1.0
----------------
The largest change in this release is an upgrade
to the Thrift 0.9.0 PHP library, which brings improvements
to the C extension and fixes autoloading issues around
namespacing of Thrift classes.
Features
^^^^^^^^
- Add support for per-column TTLs on insert
- Upgrade to Thrift 0.9.0
- Accept string representation of UUIDs on inserts
Bugfixes
^^^^^^^^
- Fix subcolumn name packing in super column methods
- Prevent get_range() infinite loop with ARRAY_FORMAT
- Fix syntax error with php 5.3
- Resolve php strict inheritance issues with CfMutator
- Fix full row and single column counter deletions
- Properly handle non-scalar types inside composites
Miscellaneous
^^^^^^^^^^^^^
- Suggest C extension in composer config
- Add VERSION file
- Move C extension to ext/ directory
Changes in 1.0.a.6
------------------
This release adds a couple of minor features and primarily
fixes bugs related to estrict warnings and creating and altering
keyspaces. It should be entirely compatible with the previous
release of phpcassa.
Features
^^^^^^^^
- Accept a map of key => ttl for the $ttl parameter in
ColumnFamily.batch_insert()
- Add ColumnFamily.get_range_by_token()
Bugfixes
^^^^^^^^
- Create deletion predicate correctly in remove_super_column()
- Always apply all supplied attributes to KsDefs when creating
keyspaces through SystemManager()
- Fix estrict warnings related to subclassing
- Fix alter_keyspace(), which was failing to clear cf_defs from
the KsDef
Miscellaneous
^^^^^^^^^^^^^
- Add composer.json file
- Integration with Travis CI
Changes in 1.0.a.5
------------------
This is a bugfix release, with yet another important fix related to packing.
In this case, FloatType and DoubleType data were being store in little-endian
format, while Cassandra expects big-endian format. If you are only using
phpcassa, you might not have noticed this, but if you were also using other
clients, you could get some unexpected values.
This release only reads and writes FloatType and DoubleType values in the
correct, big-endian format, so any values writting in the old little-endian
format will not be read correctly. If you need help migrating the old values
to the new format, please let me know, and I can help you write a quick
migration script.
Bugfixes
^^^^^^^^
- Store FloatType and DoubleType in big-endian format
- Handle serialized keys in batch_insert() with DICTIONARY_FORMAT
correctly
- Don't limit get_count(), multiget_count() to 100 by default
Changes in 1.0.a.4
------------------
This is a bugfix release, with the most important fix affecting some negative
values when using IntegerType (Int32Type and LongType were not affected).
This bug basically affected half of all negative integers. In particular, the
ones where the top byte would have a leading 1 bit if it were (abs($value) - 1).
So, -129 through -256, -32769 through -65536, etc would be packed incorrectly.
If you are only reading negative IntegerType values with phpcassa, this fix
does not affect you.
Bugfixes
^^^^^^^^
- Fix bad packing of some negative IntegerType values
- Pack IndexExpression values correctly when using a non-string comparator
Changes in 1.0.a.3
------------------
This is primarily a bug fix release, with most of the bugs
affecting get_range() and get_indexed_slices().
Features
^^^^^^^^
- Int32Type support (4 byte signed integers)
- DateType support (millisecond precision timestamps)
- SystemManager::alter_column() has been added, allowing you to easily
set a single column validator
Bugfixes
^^^^^^^^
- Avoid potential stack overflow from recursing too deep while skipping
tombstones in get_range() and get_indexed_slices()
- Use correct namespace for UUIDException in UUID.php
- Fix paging in get_range() and get_indexed_slices() for column families
that have non-string key validation classes
- Handle row count of 1 for get_range() and get_indexed_slices() correctly
- Fix packing and unpacking of validated columns on column familes with
non-string column names
- Allow creation and dropping of indexes on non-string column names
Changes in 1.0.a.2
------------------
This addresses a few bugs in the 1.0.a.2 release only.
Bugfixes
^^^^^^^^
- Fix autoloading issues in older versions of PHP 5.3
- Fix ConsistencyLevel reference in Batch\Mutator
- Fix BooleanType unpacking
- Fix Thrift C extension for PHP 5.4
- Add php5-dev, g++ to debian build dependencies
Changes in 1.0.a.1
------------------
This release introduces several major changes to phpcassa:
- PHP namespaces are now used for phpcassa and thrift classes
- Many classes or functions that were once part of columnfamily.php
are now in their own classes and modules
- An autoload.php file has been added for bootstrapping the autoloader
for phpcassa and Thrift classes; this *must* be used for imports to
work correctly
- Full batch operation support has been added
- CompositeType support has been added
- Alternate formats for inserting and fetching data may now
be used
- Super column families should be handled with the new phpcassa\SuperColumnFamily
class. Any $super_column parameters have been removed from methods
in ColumnFamily.
- Parameters related to column slices are now handled by a single ColumnSlice
parameter; in most cases, parameter order has changed slightly for these
methods, so check the documentation carefully
- FloatType, DoubleType, and BooleanType are now supported
- Thrift has been upgraded to 0.8.0
To help make the upgrade process easier and to demonstrate some of the new
features, an examples/ directory has been created with full, working
examples.
Additionally, test coverage has been greatly improved, so a few miscellaneous
bugs have likely been resolved recently.
Changes in 0.8.a.2
------------------
This release upgrades the bundled version of Thrift
to 0.7.0, which fixes several issues with 32bit
environments.
Features
^^^^^^^^
- Add drop_index() to SystemManager
- Order multiget_count() results by the order of the input
keys
- Allow for overriding the ConnectionPool error_log mechanism
for custom error handling
Bugfixes
^^^^^^^^
- Handle multiget() requests with responses that are
larger than $buffer_size correctly
- Don't ignore the $pool_size parameter in the ConnectionPool
constructor
- Pass data intended for UTF8Type values unaltered to Thrift.
This fixes issues with corruption of some utf8 data, but the
user is now responsible for ensuring the data is encoded
correctly.
- Fix corruption of timestamps in 32bit environments by
upgrading to Thrift 0.7.0
Changes in 0.8.a.1
------------------
This release adds support for Cassandra 0.8. This release is
backwards compatible with Cassandra 0.7, and supports a cluster
with a mixture of nodes running 0.7 and 0.8.
Features
^^^^^^^^
- Added ColumnFamily.add() and remove_counter() to work with 0.8
counters.
- Support for the 0.8 column family attribute key_validation_class.
Keys may now be automatically packed and upacked, similar to column
names and values.
- Addition of sysmanager.php and the SystemManager class. This class
makes it much easier to dynamically create, alter, and drop keyspaces,
column families, and secondary indexes.
- New ConnectionPools are no longer automatically filled upon creation.
The method ConnectionPool.fill() was added as an alternative way to
supply this functionality.
Bugfixes
^^^^^^^^
- Handle NotFoundException and other Exceptions cleanly in ConnectionPool.
Previously, these could result in a slow drain of connections from the
pool.
- The default ColumnFamily buffer_size has been lowered from 8096 to 1024.
Deprecated
^^^^^^^^^^
- The ColumnFamily constructor arguments $autopack_names and $autopack_values
are deprecated. Use set_autopack_names() and
set_autopack_values() after creating the ColumnFamily instead.
- The ColumnFamily constructor argument $buffer_size has been deprecated.
The public attribute $buffer_size should be set instead.
- The ColumnFamily constructor arguments $read_consistency_level
and $write_consistency_level have been deprecated.
The public attributes of the same names should be set instead. Both
attributes still default to ConsistencyLevel ONE.
- The ConnectionPool constructor argument $framed_transport is deprecated;
framed transport will be assumed in later versions.
- The ConnectionPool constructor argument $max_retries is deprecated;
adjust the public attribue of the same name instead.
- The ConnectionPool constructor argument $recycle is deprecated;
adjust the public attribue of the same name instead.
Changes in 0.7.a.4
------------------
The bundled Thrift library has been updated to a post-0.6 trunk
version. An important bugfix was made in Thrift which greatly
improves performance.
Bugfixes
^^^^^^^^
- Credentials were not properly passed through Thrift, causing
any authorization attempts to fail.
Features
^^^^^^^^
- Added the ConnectionPool class to connection.php. This allows
for better failover and loadbalancing of operations. See the
documentation for the ConnectionPool class when upgrading from
0.7.a.3 or earlier.
Deprecated
^^^^^^^^^^
- The Connection class in connection.php has been replaced by
ConnectionPool and is now deprecated.
Changes in 0.7.a.3
------------------
Bugfixes
^^^^^^^^
- Typo in throwing IncompatibleAPIException
- remove() on super column families did not pack names correctly
- CassandraUtil::uuid3() param name should be $node not $null
Features
^^^^^^^^
- Use remove() Thrift API call instead of batch_mutate() when possible
- Allow a microsecond timestamp to be passed in for v1 UUID creation
- Log connection errors with error_log()
Deprecated
^^^^^^^^^^
None
Changes in 0.7.a.2
------------------
Bugfixes
^^^^^^^^
- Fix server revival bug
- Remove print statement from Connection on connection failure
Features
^^^^^^^^
- Add an import() method for UUIDs to CassandraUtil to convert binary UUID
representations back into UUID objects
Deprecated
^^^^^^^^^^^^
None
Changes in 0.7.a1
-----------------
Initial release