forked from josiahcarlson/rom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
178 lines (178 loc) · 11.4 KB
/
changelog.txt
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
#---------------------------------- 0.29.0 -----------------------------------
[added] Query result iterator: query.iter_result(timeout, pagesize) that
automatically wraps query.cached_result(timeout) for convenient iteration
over all entities in the query. Added at the request of Github user
https://github.com/JamesHutchison .
[added] On delete for OneToMany columns now support 'cascade' for recursively
deleting all referencing entities. All on delete behavior is checked
before deleting (a restrict in an entity after 100 levels of 'cascade'
will prevent all deletions). Requested by
https://github.com/JamesHutchison and closes issue #39.
[added] OneToMany columns can now include a reference to the foreign model's
ManyToOne column name that references *this* OneToMany. Useful for cases
where models have multiple OneToMany or ManyToOne columns referencing the
same models. Closes issue #23.
[fixes] Index clearing with util.clean_old_index()
[changed] Index clearing with util.clean_old_index() will also clean out index
data for entities directly deleted or expired in Redis. Closes issue #40.
#---------------------------------- 0.28.0 -----------------------------------
[added] Composite unique constraints like SQLAlchemy's UniqueConstraint() and
Django's unique_together, spelled and used like Django's unique_together.
See http://pythonhosted.org//rom/rom.html#rom.Model for details.
[fixed] Deleting entities will no longer leave extra index data around
(regardless of whether the entitiy had any indexes defined).
[added] Convenience function for cleaning out old index data from deleted
entities. See and read the help on util.clean_old_index() .
[added] Convenience function util.show_progress() to show the progress of
util.refresh_indices() and util.clean_old_index() . See and read the help
on util.show_progress() for usage.
[fixed] Tests to no longer leave testing data in db 15, and running tests
again should clean out the testing data.
[fixed] Incorrect documentation about the String column type.
#---------------------------------- 0.27.0 -----------------------------------
[changed] Added auto-tagging support for release versions pushed to PyPI.
[added] Foreign key references defined with a OneToMany and ManyToOne
relationship will now have the "one" side of the relationship deletion
optionally restrict. Thanks to https://github.com/pconerly for the initial
request and patch.
[added] Additional warnings and tests for future on_delete behavior choices.
[fixed] Re-save issue for datetime objects, as well as any future re-save
issues (like what happened with json columns in rom 0.15). Thanks to
https://github.com/iamkhush for the bug report and example testcase that
lead to the solution.
#---------------------------------- 0.26.5 -----------------------------------
[added] the ability to selectively choose rom's session caching behavior, see
http://pythonhosted.org//rom/rom.html#using-a-non-caching-session-object
#---------------------------------- 0.26.4 -----------------------------------
[fixed] forgot one reference that should have been fixed in 0.26.3. Everyone
should upgrade from 0.26.3 . Thanks to https://github.com/Alanperd for the
report and test case.
#---------------------------------- 0.26.3 -----------------------------------
[fixed] issue when pattern match queries would sometimes produce more results
than would be correct, bug report, test, and initial fix thanks to
https://github.com/Alanperd
#---------------------------------- 0.26.2 -----------------------------------
[fixed] issue when pattern-match queries wouldn't always return full results,
bug report, test, and initial fix thanks to https://github.com/Alanperd
[fixed] two testing errors in Python 2.6.
[fixed] some test cases that weren't properly namespaced for easy cleanup.
[removed] built documention from rom source distribution (see
http://pythonhosted.org/rom/ instead).
[fixed] base documention about rom including the readme is now a part of the
docs available at http://pythonhosted.org/rom/ , thanks to
https://github.com/pconerly for the report on incomplete docs.
[fixed] added modern requirements thanks to report from
https://github.com/pconerly .
[fixed] documentation on per-model connection objects.
[removed] extraneous and confusing documentation about the `index` and
`columns` submodules.
#---------------------------------- 0.26.1 -----------------------------------
[fixed] issue with deleted entity resurrection, bug report and fix thanks to
Justin Mayfield https://github.com/mayfield
[fixed] issue with deleted entities not being completely cleared out during
delete with Lua writes enabled, bug report and fix also courtesy of Justin
Mayfield https://github.com/mayfield
#---------------------------------- 0.26.0 -----------------------------------
[added] support for Python 3.3 thanks to the six library and porting effort
from Justin Mayfield https://github.com/mayfield, which also includes some
additional tests.
[remove] String column from Python 3.3, use the Text column instead.
[changed] Both String and Text columns can use unique columns.
[fixed] rom's behavior with long ints in some situations.
[fixed] rom's behavior with unicode suffixes in Python 2.x.
[added] tests for unicode text indexes, unique indexes, prefix indexes, and
suffix indexes.
[updated] relevant docs regarding the Text column and unique indexes.
[fixed] improperly labeled 0.25.1 release in this changelog.
#---------------------------------- 0.25.1 -----------------------------------
[fixed] an issue where Lua writing wouldn't properly update unique indexes on
deletion was fixed. Thank you to https://github.com/thedrow for the
report.
[changed] added a link to the full Python docs to the Readme.
#---------------------------------- 0.25.0 -----------------------------------
[changed] version numbers to account for bugfixes vs. feature updates.
[added] columns can now be defined to allow for prefix and/or suffix queries.
Enabling prefix queries also enables arbitrary pattern matching over your
data.
[fixed] in some cases, rom would allow the definition of multiple primary
keys, of which only one would ever be used (inconsistently). This will now
result in an error.
[changed] defaulted to assume Lua is available on Redis, which has been
released for over 15 months at this point. You can disable support via
a call to rom._disable_lua_writes().
[added] the ability to cache and get the key that holds the result of a query,
which can be used for pagination, etc. See: Query.cached_result()
[warning] using rom versions of 0.23 with 0.25.0 when prefix and suffix
indexes are enabled can result in improper results from prefix, suffix,
and/or pattern queries, and can result in orphan data living in prefix or
suffix indexes. Upgrade all of your clients!
[changed] temporary keys for queries are now prefixed with the name of the
model over which queries are being executed on. This should effect
basically zero people, but can allow for query cleanup in the off chance
of a failure during execution.
#----------------------------- 0.23 (unreleased) -----------------------------
[changed] reduced number of round trips for single-filter queries by 1, thanks
to https://github.com/MickeyKim for the report.
#----------------------------------- 0.22 ------------------------------------
[fixed] size estimation for intersection ordering when filtering has now been
fixed, thank you to https://github.com/MickeyKim for the report and the
change (should improve performance).
[fixed] an issue with some types when trying to update attributes has now been
fixed, thank you to https://github.com/denisvolokh for the report.
[changed] improved performance for simple numeric range queries of the form
Model.get_by(attr=value) or Model.get_by(attr=(min, max)) by roughly a
factor of 60x or better in some cases. Thank you to
https://github.com/MickeyKim for the report on poor performance.
#----------------------------------- 0.21 ------------------------------------
[fixed] upload for rom 0.20 was missing new columns.py, now fixed
#----------------------------------- 0.20 ------------------------------------
[changed] Added exception when performing .all(), .execute(), or .count() on
query objects that have had no filters or attribute ordering provided.
This addresses issue #12.
[changed] Moved column definitions to their own module, shouldn't affect any
normal uses of rom.
[added] For users of Redis 2.6 and later, there is a beta Lua-enabled writing
option that allows for multiple unique columns on models. In some cases,
this may improve performance when writing many entities very quickly.
[added] The ability to reload an entity from Redis, optionally discarding any
modifications to the object itself. Check out the documentation for
Model.refresh(), Session.refresh(), and Session.refresh_all()
[added] Tests for the newly changed/added features.
[changed] Tests no longer use flushdb() - all test models/indexes/etc. are
prefixed with RomTest, and we find/delete such keys before and after any
tests are run. Now anyone can reasonably run the test suite.
#----------------------------------- 0.19 ------------------------------------
[fixed] Thanks to a bug report by https://github.com/MickeyKim , was notified
of a bug when using unique indexes, which is now fixed and has a testcase.
#----------------------------------- 0.18 ------------------------------------
[fixed] Thanks to a bug report by https://github.com/MickeyKim , was notified
and received an interim patch for a bug that could cause deleted entities
to be resurrected on session.commit() or session.flush() . This has now
been fixed and a testcase has been added.
#----------------------------------- 0.17 ------------------------------------
[added] LGPL 3 licensing option.
#----------------------------------- 0.16 ------------------------------------
[added] Thanks to a feature request from https://github.com/jrsmith , Boolean
column support is now available.
[added] DateTime, Date, and Time column types because I was already adding
Boolean columns.
#----------------------------------- 0.15 ------------------------------------
[fixed] Thanks to https://github.com/MickeyKim who fixed Json columns so that
they round-trip after multiple saves.
#----------------------------------- 0.14 ------------------------------------
[fixed] Thanks to https://github.com/mayfield the manifest is fixed for the
source installation.
#----------------------------------- 0.13 ------------------------------------
[fixed] updating a model will no longer unindex the model on attributes that
weren't updated. Thanks to https://github.com/mayfield for the bug report,
analysis, and initial pull request that ultimately resulted in the fix.
[fixed] pip requires, versioning, etc., thanks to fixes from
https://github.com/mayfield
[changed] Model.get_by() will now work on any type of indexed columns. Unique
columns work as before, and other columns get pass-through to the
Model.query interface.
[changed] Model.get_by() and Model.query.filter() will both accept single
numbers as the value to match on (you don't need to specify a range if you
are querying by equality).
[changed] all changes will be documented in this changelog.txt file to keep a
list of everything that is going on with the project.