crate 0.35.1__tar.gz → 2.0.0.dev0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- crate-2.0.0.dev0/CHANGES.rst +938 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/DEVELOP.rst +42 -15
- {crate-0.35.1 → crate-2.0.0.dev0}/LICENSE +0 -70
- crate-2.0.0.dev0/MANIFEST.in +5 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/NOTICE +1 -1
- {crate-0.35.1 → crate-2.0.0.dev0}/PKG-INFO +67 -26
- {crate-0.35.1 → crate-2.0.0.dev0}/README.rst +31 -20
- crate-2.0.0.dev0/docs/_extra/robots.txt +4 -0
- crate-2.0.0.dev0/docs/backlog.rst +6 -0
- crate-2.0.0.dev0/docs/blobs.rst +162 -0
- crate-2.0.0.dev0/docs/by-example/blob.rst +100 -0
- crate-2.0.0.dev0/docs/by-example/client.rst +321 -0
- crate-2.0.0.dev0/docs/by-example/connection.rst +68 -0
- crate-2.0.0.dev0/docs/by-example/cursor.rst +442 -0
- crate-2.0.0.dev0/docs/by-example/http.rst +248 -0
- crate-2.0.0.dev0/docs/by-example/https.rst +127 -0
- crate-2.0.0.dev0/docs/by-example/index.rst +27 -0
- crate-2.0.0.dev0/docs/conf.py +35 -0
- crate-2.0.0.dev0/docs/connect.rst +286 -0
- crate-2.0.0.dev0/docs/data-types.rst +110 -0
- crate-2.0.0.dev0/docs/docutils.conf +3 -0
- crate-2.0.0.dev0/docs/getting-started.rst +75 -0
- crate-2.0.0.dev0/docs/index-all.rst +22 -0
- crate-2.0.0.dev0/docs/index.rst +194 -0
- crate-2.0.0.dev0/docs/other-options.rst +55 -0
- crate-2.0.0.dev0/docs/query.rst +302 -0
- crate-2.0.0.dev0/docs/sqlalchemy.rst +17 -0
- crate-2.0.0.dev0/pyproject.toml +109 -0
- crate-2.0.0.dev0/requirements.txt +2 -0
- crate-2.0.0.dev0/setup.cfg +4 -0
- crate-2.0.0.dev0/setup.py +102 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/__init__.py +5 -4
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/blob.py +9 -7
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/connection.py +58 -52
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/converter.py +15 -10
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/cursor.py +55 -51
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/exceptions.py +10 -3
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/http.py +216 -174
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/testing/layer.py +140 -102
- crate-0.35.1/src/crate/client/test_util.py → crate-2.0.0.dev0/src/crate/testing/util.py +30 -4
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate.egg-info/PKG-INFO +67 -26
- crate-2.0.0.dev0/src/crate.egg-info/SOURCES.txt +47 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate.egg-info/requires.txt +14 -17
- crate-0.35.1/MANIFEST.in +0 -5
- crate-0.35.1/docs/_extra/robots.txt +0 -4
- crate-0.35.1/pyproject.toml +0 -5
- crate-0.35.1/setup.cfg +0 -10
- crate-0.35.1/setup.py +0 -104
- crate-0.35.1/src/crate/__init__.py +0 -28
- crate-0.35.1/src/crate/client/pki/readme.rst +0 -91
- crate-0.35.1/src/crate/client/sqlalchemy/__init__.py +0 -50
- crate-0.35.1/src/crate/client/sqlalchemy/compat/api13.py +0 -156
- crate-0.35.1/src/crate/client/sqlalchemy/compat/core10.py +0 -264
- crate-0.35.1/src/crate/client/sqlalchemy/compat/core14.py +0 -359
- crate-0.35.1/src/crate/client/sqlalchemy/compat/core20.py +0 -447
- crate-0.35.1/src/crate/client/sqlalchemy/compiler.py +0 -318
- crate-0.35.1/src/crate/client/sqlalchemy/dialect.py +0 -369
- crate-0.35.1/src/crate/client/sqlalchemy/predicates/__init__.py +0 -99
- crate-0.35.1/src/crate/client/sqlalchemy/sa_version.py +0 -28
- crate-0.35.1/src/crate/client/sqlalchemy/support.py +0 -62
- crate-0.35.1/src/crate/client/sqlalchemy/tests/__init__.py +0 -59
- crate-0.35.1/src/crate/client/sqlalchemy/tests/array_test.py +0 -111
- crate-0.35.1/src/crate/client/sqlalchemy/tests/bulk_test.py +0 -256
- crate-0.35.1/src/crate/client/sqlalchemy/tests/compiler_test.py +0 -434
- crate-0.35.1/src/crate/client/sqlalchemy/tests/connection_test.py +0 -129
- crate-0.35.1/src/crate/client/sqlalchemy/tests/create_table_test.py +0 -313
- crate-0.35.1/src/crate/client/sqlalchemy/tests/datetime_test.py +0 -90
- crate-0.35.1/src/crate/client/sqlalchemy/tests/dialect_test.py +0 -156
- crate-0.35.1/src/crate/client/sqlalchemy/tests/dict_test.py +0 -460
- crate-0.35.1/src/crate/client/sqlalchemy/tests/function_test.py +0 -47
- crate-0.35.1/src/crate/client/sqlalchemy/tests/insert_from_select_test.py +0 -85
- crate-0.35.1/src/crate/client/sqlalchemy/tests/match_test.py +0 -137
- crate-0.35.1/src/crate/client/sqlalchemy/tests/query_caching.py +0 -143
- crate-0.35.1/src/crate/client/sqlalchemy/tests/update_test.py +0 -115
- crate-0.35.1/src/crate/client/sqlalchemy/tests/warnings_test.py +0 -64
- crate-0.35.1/src/crate/client/sqlalchemy/types.py +0 -277
- crate-0.35.1/src/crate/client/test_connection.py +0 -98
- crate-0.35.1/src/crate/client/test_cursor.py +0 -341
- crate-0.35.1/src/crate/client/test_http.py +0 -678
- crate-0.35.1/src/crate/testing/__init__.py +0 -1
- crate-0.35.1/src/crate/testing/settings.py +0 -51
- crate-0.35.1/src/crate/testing/test_layer.py +0 -290
- crate-0.35.1/src/crate/testing/util.py +0 -20
- crate-0.35.1/src/crate.egg-info/SOURCES.txt +0 -64
- crate-0.35.1/src/crate.egg-info/entry_points.txt +0 -2
- crate-0.35.1/src/crate.egg-info/namespace_packages.txt +0 -1
- {crate-0.35.1 → crate-2.0.0.dev0}/CONTRIBUTING.rst +0 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/docs/requirements.txt +0 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate/client/_pep440.py +0 -0
- {crate-0.35.1/src/crate/client/sqlalchemy/compat → crate-2.0.0.dev0/src/crate/testing}/__init__.py +0 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate.egg-info/dependency_links.txt +0 -0
- {crate-0.35.1 → crate-2.0.0.dev0}/src/crate.egg-info/top_level.txt +0 -0
@@ -0,0 +1,938 @@
|
|
1
|
+
=================
|
2
|
+
Changes for crate
|
3
|
+
=================
|
4
|
+
|
5
|
+
Unreleased
|
6
|
+
==========
|
7
|
+
|
8
|
+
- Use ``orjson`` to improve JSON marshalling performance. Thanks, @widmogrod.
|
9
|
+
|
10
|
+
2024/11/23 1.0.1
|
11
|
+
================
|
12
|
+
|
13
|
+
- Python: Fixed "implicit namespace packages" migration by omitting
|
14
|
+
``__init__.py`` from ``crate`` namespace package, see `PEP 420`_
|
15
|
+
and `Package Discovery and Namespace Package » Finding namespace packages`_.
|
16
|
+
|
17
|
+
|
18
|
+
2024/11/05 1.0.0
|
19
|
+
================
|
20
|
+
|
21
|
+
- BREAKING CHANGE: The SQLAlchemy dialect has been split off into
|
22
|
+
the `sqlalchemy-cratedb`_ package, see notice below.
|
23
|
+
- Feature: Returned Python ``datetime`` objects are now always timezone-aware,
|
24
|
+
using UTC by default.
|
25
|
+
It may be a breaking change for some users of the library that don't expect
|
26
|
+
to receive "aware" instead of "naive" Python ``datetime`` objects from now
|
27
|
+
on, i.e. instances with or without the ``tzinfo`` attribute set.
|
28
|
+
When no ``time_zone`` information is specified when creating a database
|
29
|
+
connection or cursor, ``datetime`` objects will now use Coordinated
|
30
|
+
Universal Time (UTC), like CrateDB is storing timestamp values in this
|
31
|
+
format.
|
32
|
+
This update is coming from a deprecation of Python's
|
33
|
+
``datetime.utcfromtimestamp()``, which is effectively also phasing out
|
34
|
+
the use of "naive" timestamp objects in Python, in favor of using
|
35
|
+
timezone-aware objects, also to represent datetimes in UTC.
|
36
|
+
- Feature: Configured DB API interface attribute ``threadsafety = 1``,
|
37
|
+
which signals "Threads may share the module, but not connections."
|
38
|
+
- Feature: Added ``error_trace`` to string representation of an Error,
|
39
|
+
to relay server stacktraces into exception messages.
|
40
|
+
- Refactoring: The module namespace ``crate.client.test_util`` has been
|
41
|
+
renamed to ``crate.testing.util``.
|
42
|
+
- Error handling: At two spots in cursor / value converter handling, where
|
43
|
+
``assert`` statements have been used, ``ValueError`` exceptions are raised
|
44
|
+
now.
|
45
|
+
- Python: Migrated to use "implicit namespace packages" instead of "declared
|
46
|
+
namespaces" for the ``crate`` namespace package, see `PEP 420`_.
|
47
|
+
|
48
|
+
|
49
|
+
.. note::
|
50
|
+
|
51
|
+
For learning about the transition to `sqlalchemy-cratedb`_,
|
52
|
+
we recommend to read the enumeration of necessary migration steps
|
53
|
+
at `Migrate from crate.client to sqlalchemy-cratedb`_.
|
54
|
+
|
55
|
+
|
56
|
+
.. _Migrate from crate.client to sqlalchemy-cratedb: https://cratedb.com/docs/sqlalchemy-cratedb/migrate-from-crate-client.html
|
57
|
+
.. _Package Discovery and Namespace Package » Finding namespace packages: https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#namespace-packages
|
58
|
+
.. _PEP 420: https://peps.python.org/pep-0420/
|
59
|
+
.. _sqlalchemy-cratedb: https://pypi.org/project/sqlalchemy-cratedb/
|
60
|
+
|
61
|
+
|
62
|
+
2024/01/18 0.35.2
|
63
|
+
=================
|
64
|
+
|
65
|
+
- Test compatibility: Permit installation of pandas 2.1.
|
66
|
+
|
67
|
+
|
68
|
+
2024/01/18 0.35.1
|
69
|
+
=================
|
70
|
+
|
71
|
+
- Compatibility: Re-add ``crate.client._pep440.Version`` from ``verlib2``.
|
72
|
+
It is needed the prevent breaking ``crash``.
|
73
|
+
|
74
|
+
|
75
|
+
2024/01/17 0.35.0
|
76
|
+
=================
|
77
|
+
|
78
|
+
- Permit ``urllib3.Timeout`` instances for defining timeout values.
|
79
|
+
This way, both ``connect`` and ``read`` socket timeout settings can be
|
80
|
+
configured. The unit is seconds.
|
81
|
+
|
82
|
+
|
83
|
+
2023/09/29 0.34.0
|
84
|
+
=================
|
85
|
+
|
86
|
+
- Properly handle Python-native UUID types in SQL parameters. Thanks,
|
87
|
+
@SStorm.
|
88
|
+
- SQLAlchemy: Fix handling URL parameters ``timeout`` and ``pool_size``
|
89
|
+
- Permit installation with urllib3 v2, see also `urllib3 v2.0 roadmap`_
|
90
|
+
and `urllib3 v2.0 migration guide`_. You can optionally retain support
|
91
|
+
for TLS 1.0 and TLS 1.1, but a few other outdated use-cases of X.509
|
92
|
+
certificate details are immanent, like no longer accepting the long
|
93
|
+
deprecated ``commonName`` attribute. Instead, going forward, only the
|
94
|
+
``subjectAltName`` attribute will be used.
|
95
|
+
- SQLAlchemy: Improve DDL compiler to ignore foreign key and uniqueness
|
96
|
+
constraints.
|
97
|
+
- DBAPI: Properly raise ``IntegrityError`` exceptions instead of
|
98
|
+
``ProgrammingError``, when CrateDB raises a ``DuplicateKeyException``.
|
99
|
+
- SQLAlchemy: Ignore SQL's ``FOR UPDATE`` clause. Thanks, @surister.
|
100
|
+
|
101
|
+
.. _urllib3 v2.0 migration guide: https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html
|
102
|
+
.. _urllib3 v2.0 roadmap: https://urllib3.readthedocs.io/en/stable/v2-roadmap.html
|
103
|
+
|
104
|
+
|
105
|
+
2023/07/17 0.33.0
|
106
|
+
=================
|
107
|
+
|
108
|
+
- SQLAlchemy: Rename leftover occurrences of ``Object``. The new symbol to represent
|
109
|
+
CrateDB's ``OBJECT`` column type is now ``ObjectType``.
|
110
|
+
|
111
|
+
- SQLAlchemy DQL: Use CrateDB's native ``ILIKE`` operator instead of using SA's
|
112
|
+
generic implementation ``lower() LIKE lower()``. Thanks, @hlcianfagna.
|
113
|
+
|
114
|
+
|
115
|
+
2023/07/06 0.32.0
|
116
|
+
=================
|
117
|
+
|
118
|
+
- SQLAlchemy DDL: Allow turning off column store using ``crate_columnstore=False``.
|
119
|
+
Thanks, @fetzerms.
|
120
|
+
|
121
|
+
- SQLAlchemy DDL: Allow setting ``server_default`` on columns to enable
|
122
|
+
server-generated defaults. Thanks, @JanLikar.
|
123
|
+
|
124
|
+
- Allow handling datetime values tagged with time zone info when inserting or updating.
|
125
|
+
|
126
|
+
- SQLAlchemy: Fix SQL statement caching for CrateDB's ``OBJECT`` type. Thanks, @faymarie.
|
127
|
+
|
128
|
+
- SQLAlchemy: Refactor ``OBJECT`` type to use SQLAlchemy's JSON type infrastructure.
|
129
|
+
|
130
|
+
- SQLAlchemy: Added ``insert_bulk`` fast-path ``INSERT`` method for pandas, in
|
131
|
+
order to support efficient batch inserts using CrateDB's "bulk operations" endpoint.
|
132
|
+
|
133
|
+
- SQLAlchemy: Add documentation and software tests for usage with Dask
|
134
|
+
|
135
|
+
|
136
|
+
2023/04/18 0.31.1
|
137
|
+
=================
|
138
|
+
|
139
|
+
- SQLAlchemy Core: Re-enable support for ``INSERT/UPDATE...RETURNING`` in
|
140
|
+
SQLAlchemy 2.0 by adding the new ``insert_returning`` and ``update_returning`` flags
|
141
|
+
in the CrateDB dialect.
|
142
|
+
|
143
|
+
|
144
|
+
2023/03/30 0.31.0
|
145
|
+
=================
|
146
|
+
|
147
|
+
- SQLAlchemy Core: Support ``INSERT...VALUES`` with multiple value sets by enabling
|
148
|
+
``supports_multivalues_insert`` on the CrateDB dialect, it is used by pandas'
|
149
|
+
``method="multi"`` option
|
150
|
+
|
151
|
+
- SQLAlchemy Core: Enable the ``insertmanyvalues`` feature, which lets you control
|
152
|
+
the batch size of ``INSERT`` operations using the ``insertmanyvalues_page_size``
|
153
|
+
engine-, connection-, and statement-options.
|
154
|
+
|
155
|
+
- SQLAlchemy ORM: Remove support for the legacy ``session.bulk_save_objects`` API
|
156
|
+
on SQLAlchemy 2.0, in favor of the new ``insertmanyvalues`` feature. Performance
|
157
|
+
optimizations from ``bulk_save()`` have been made inherently part of ``add_all()``.
|
158
|
+
Note: The legacy mode will still work on SQLAlchemy 1.x, while SQLAlchemy 2.x users
|
159
|
+
MUST switch to the new method now.
|
160
|
+
|
161
|
+
|
162
|
+
2023/03/02 0.30.1
|
163
|
+
=================
|
164
|
+
|
165
|
+
- Fixed SQLAlchemy 2.0 incompatibility with ``CrateDialect.{has_schema,has_table}``
|
166
|
+
|
167
|
+
|
168
|
+
2023/02/16 0.30.0
|
169
|
+
=================
|
170
|
+
|
171
|
+
- Added deprecation warning about dropping support for SQLAlchemy 1.3 soon, it
|
172
|
+
is effectively EOL.
|
173
|
+
|
174
|
+
- Added support for SQLAlchemy 2.0. See also `What's New in SQLAlchemy 2.0`_
|
175
|
+
and `SQLAlchemy 2.0 migration guide`_.
|
176
|
+
|
177
|
+
- Updated to geojson 3.0.0.
|
178
|
+
|
179
|
+
.. _SQLAlchemy 2.0 migration guide: https://docs.sqlalchemy.org/en/20/changelog/migration_20.html
|
180
|
+
.. _What's New in SQLAlchemy 2.0: https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html
|
181
|
+
|
182
|
+
|
183
|
+
2022/12/08 0.29.0
|
184
|
+
=================
|
185
|
+
|
186
|
+
- SQLAlchemy: Added support for ``crate_index`` and ``nullable`` attributes in
|
187
|
+
ORM column definitions.
|
188
|
+
|
189
|
+
- Added support for converting ``TIMESTAMP`` columns to timezone-aware
|
190
|
+
``datetime`` objects, using the new ``time_zone`` keyword argument.
|
191
|
+
|
192
|
+
|
193
|
+
2022/12/02 0.28.0
|
194
|
+
=================
|
195
|
+
|
196
|
+
- Added a generic data type converter to the ``Cursor`` object, for converting
|
197
|
+
fetched data from CrateDB data types to Python data types.
|
198
|
+
|
199
|
+
- Fixed generating appropriate syntax for OFFSET/LIMIT clauses. It was possible
|
200
|
+
that SQL statement clauses like ``LIMIT -1`` could have been generated. Both
|
201
|
+
PostgreSQL and CrateDB only accept ``LIMIT ALL`` instead.
|
202
|
+
|
203
|
+
- Added support for computed columns in the SQLAlchemy ORM
|
204
|
+
|
205
|
+
2022/10/10 0.27.2
|
206
|
+
=================
|
207
|
+
|
208
|
+
- Improved SQLAlchemy's ``CrateDialect.get_pk_constraint`` to be compatible
|
209
|
+
with breaking changes in CrateDB >=5.1.0.
|
210
|
+
|
211
|
+
|
212
|
+
2022/07/04 0.27.1
|
213
|
+
=================
|
214
|
+
|
215
|
+
- Fixed regression introduced by ``0.27.0`` resulting in unavailable servers if
|
216
|
+
all configured servers aren't reachable once.
|
217
|
+
|
218
|
+
|
219
|
+
2022/06/02 0.27.0
|
220
|
+
=================
|
221
|
+
|
222
|
+
- Added support for Python 3.9 and 3.10.
|
223
|
+
|
224
|
+
- Dropped support for Python 3.4, 3.5 and 3.6.
|
225
|
+
|
226
|
+
- Dropped support for SQLAlchemy 1.1 and 1.2.
|
227
|
+
|
228
|
+
- Dropped support for CrateDB < 2.0.0.
|
229
|
+
|
230
|
+
- BREAKING CHANGE: The driver now verifies SSL certificates when connecting via
|
231
|
+
HTTP by default. Previously, this setting defaulted to false. This setting
|
232
|
+
can be changed via the ``verify_ssl_cert`` connection parameter.
|
233
|
+
|
234
|
+
- Adjusted connect arguments to accept credentials within the HTTP URI.
|
235
|
+
|
236
|
+
- Added support for enabling SSL using SQLAlchemy DB URI with parameter
|
237
|
+
``?ssl=true``.
|
238
|
+
|
239
|
+
- Added support for SQLAlchemy 1.4
|
240
|
+
|
241
|
+
.. note::
|
242
|
+
|
243
|
+
For learning about the transition to SQLAlchemy 1.4, we recommend the
|
244
|
+
corresponding documentation `What’s New in SQLAlchemy 1.4?`_.
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
Breaking changes
|
249
|
+
----------------
|
250
|
+
|
251
|
+
Textual column expressions
|
252
|
+
''''''''''''''''''''''''''
|
253
|
+
|
254
|
+
SQLAlchemy 1.4 became stricter on some details. It requires to wrap `CrateDB
|
255
|
+
system columns`_ like ``_score`` in a `SQLAlchemy literal_column`_ type.
|
256
|
+
Before, it was possible to use a query like this::
|
257
|
+
|
258
|
+
session.query(Character.name, '_score')
|
259
|
+
|
260
|
+
It must now be written like::
|
261
|
+
|
262
|
+
session.query(Character.name, sa.literal_column('_score'))
|
263
|
+
|
264
|
+
Otherwise, SQLAlchemy will complain like::
|
265
|
+
|
266
|
+
sqlalchemy.exc.ArgumentError: Textual column expression '_score' should be
|
267
|
+
explicitly declared with text('_score'), or use column('_score') for more
|
268
|
+
specificity
|
269
|
+
|
270
|
+
|
271
|
+
.. _CrateDB system columns: https://crate.io/docs/crate/reference/en/4.8/general/ddl/system-columns.html
|
272
|
+
.. _SQLAlchemy literal_column: https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.literal_column
|
273
|
+
.. _What’s New in SQLAlchemy 1.4?: https://docs.sqlalchemy.org/en/14/changelog/migration_14.html
|
274
|
+
|
275
|
+
|
276
|
+
2020/09/28 0.26.0
|
277
|
+
=================
|
278
|
+
|
279
|
+
- Enabled TCP keepalive on socket level and support for setting socket options
|
280
|
+
when creating the connection. The supported options are:
|
281
|
+
|
282
|
+
- ``TCP_KEEPIDLE`` (overriding ``net.ipv4.tcp_keepalive_time``)
|
283
|
+
- ``TCP_KEEPINTVL`` (overriding ``net.ipv4.tcp_keepalive_intvl``)
|
284
|
+
- ``TCP_KEEPCNT`` (overriding ``net.ipv4.tcp_keepalive_probes``)
|
285
|
+
|
286
|
+
- Propagate connect parameter ``pool_size`` to urllib3 as ``maxsize`` parameter
|
287
|
+
in order to make the connection pool size configurable.
|
288
|
+
|
289
|
+
2020/08/05 0.25.0
|
290
|
+
=================
|
291
|
+
|
292
|
+
- Added support for the ``RETURNING`` clause to the SQLAlchemy dialect. This
|
293
|
+
requires CrateDB 4.2 or greater. In case you use any server side generated
|
294
|
+
columns in your primary key constraint with earlier CrateDB versions, you can
|
295
|
+
turn this feature off by passing ``implicit_returning=False`` in the
|
296
|
+
``create_engine()`` call.
|
297
|
+
|
298
|
+
- Added support for ``geo_point`` and ``geo_json`` types to the SQLAlchemy
|
299
|
+
dialect.
|
300
|
+
|
301
|
+
2020/05/27 0.24.0
|
302
|
+
=================
|
303
|
+
|
304
|
+
- Upgraded SQLAlchemy support to 1.3.
|
305
|
+
|
306
|
+
- Added ``backoff_factor`` in connection to configure retry interval.
|
307
|
+
|
308
|
+
- Added official Python 3.8 support.
|
309
|
+
|
310
|
+
- Made it so that the SQLAlchemy dialect is now aware of the return type of the
|
311
|
+
``date_trunc`` function.
|
312
|
+
|
313
|
+
- Added driver attribute, as SQLAlchemy relies on interfaces having that string for identification.
|
314
|
+
|
315
|
+
2019/09/19 0.23.2
|
316
|
+
=================
|
317
|
+
|
318
|
+
- Fixed a bug in the ``CrateLayer`` which caused ``CrateDB`` not to start up,
|
319
|
+
in case the ``JAVA_HOME`` environment variable was not set.
|
320
|
+
|
321
|
+
2019/08/01 0.23.1
|
322
|
+
=================
|
323
|
+
|
324
|
+
- Extended the type mapping for SQLAlchemy for the upcoming type name changes
|
325
|
+
in CrateDB 4.0.
|
326
|
+
|
327
|
+
- Added support for Python 3.7 and made that version the recommended one.
|
328
|
+
|
329
|
+
2019/03/05 0.23.0
|
330
|
+
=================
|
331
|
+
|
332
|
+
- Fixed a resource leak in ``CrateLayer``
|
333
|
+
|
334
|
+
- Added ability to specify chunk size when getting a blob from the blob container
|
335
|
+
|
336
|
+
2018/08/08 0.22.1
|
337
|
+
=================
|
338
|
+
|
339
|
+
- Client no longer removes servers from the active server list when encountering a
|
340
|
+
connection reset or a broken pipe error.
|
341
|
+
|
342
|
+
2018/05/02 0.22.0
|
343
|
+
=================
|
344
|
+
|
345
|
+
- BREAKING: Dropped support for Python 2.7 and 3.3
|
346
|
+
If you are using this package with Python 2.7 or 3.3 already, you will not be
|
347
|
+
able to install newer versions of this package.
|
348
|
+
|
349
|
+
- Add support for SQLAlchemy 1.2
|
350
|
+
|
351
|
+
- The client now allows to define a different default schema when connecting to
|
352
|
+
CrateDB with the ``schema`` keyword argument. This causes all statements and
|
353
|
+
queries that do not specify a schema explicitly to use the provided schema.
|
354
|
+
|
355
|
+
- Updated ``get_table_names()`` method in SQLAlchemy dialect to only return
|
356
|
+
tables but not views. This enables compatibility with CrateDB 3.0 and newer.
|
357
|
+
|
358
|
+
2018/03/14 0.21.3
|
359
|
+
=================
|
360
|
+
|
361
|
+
- Fixed an issue that caused ``metadata.create_all(bind=engine)`` to fail
|
362
|
+
creating tables that contain an ``ObjectArray`` column.
|
363
|
+
|
364
|
+
2018/02/15 0.21.2
|
365
|
+
=================
|
366
|
+
|
367
|
+
- BREAKING: In the testing layer, the custom setting of
|
368
|
+
`cluster.routing.allocation.disk.watermark.low` (1b) and
|
369
|
+
`cluster.routing.allocation.disk.watermark.high` (1b) has been removed.
|
370
|
+
These now default to 85% and 90%, respectively.
|
371
|
+
|
372
|
+
2018/01/03 0.21.1
|
373
|
+
=================
|
374
|
+
|
375
|
+
- Fixed an issue that prevented the usage of SQLAlchemy types ``NUMERIC`` and
|
376
|
+
``DECIMAL`` as column types.
|
377
|
+
|
378
|
+
2017/12/07 0.21.0
|
379
|
+
=================
|
380
|
+
|
381
|
+
- Added new parameter ``password`` used to authenticate the user in CrateDB.
|
382
|
+
|
383
|
+
- Prepared SQL Alchemy primary key retrieval for CrateDB 2.3.0. Preserved
|
384
|
+
backwards-compatibility for lower versions.
|
385
|
+
|
386
|
+
2017/08/18 0.20.1
|
387
|
+
=================
|
388
|
+
|
389
|
+
- Fixed deprecation warnings logged in CrateDB server on every REST request.
|
390
|
+
|
391
|
+
2017/06/26 0.20.0
|
392
|
+
=================
|
393
|
+
|
394
|
+
- Added new parameter ``username`` used to authenticate the user in CrateDB.
|
395
|
+
|
396
|
+
2017/06/23 0.19.5
|
397
|
+
=================
|
398
|
+
|
399
|
+
- Enforced cert check when verify_ssl_cert=True
|
400
|
+
|
401
|
+
2017/06/20 0.19.4
|
402
|
+
=================
|
403
|
+
|
404
|
+
- Testing: Fixed issue that caused the test layer to hang after it failed to
|
405
|
+
start a CrateDB instance in time.
|
406
|
+
|
407
|
+
2017/05/18 0.19.3
|
408
|
+
=================
|
409
|
+
|
410
|
+
- Fix bulk updates which were broken due to query rewrites.
|
411
|
+
|
412
|
+
|
413
|
+
2017/04/28 0.19.2
|
414
|
+
=================
|
415
|
+
|
416
|
+
- Output logs in test-layer in case when CrateDB instance does not start in
|
417
|
+
time.
|
418
|
+
|
419
|
+
- Increased the default timeout for the test-layer startup to avoid timeouts
|
420
|
+
on slow hosts.
|
421
|
+
|
422
|
+
2017/02/27 0.19.1
|
423
|
+
=================
|
424
|
+
|
425
|
+
- Testing: Prevent the process.stdout buffer from filling up in the test layer
|
426
|
+
which in turn would cause the process to block
|
427
|
+
|
428
|
+
- Raise more meaningful `BlobLocationNotFoundException` error when
|
429
|
+
trying to upload a file to an invalid blob table.
|
430
|
+
|
431
|
+
|
432
|
+
2017/02/17 0.19.0
|
433
|
+
=================
|
434
|
+
|
435
|
+
- Testing: Added support for setting environment variables.
|
436
|
+
|
437
|
+
2017/02/02 0.18.0
|
438
|
+
=================
|
439
|
+
|
440
|
+
- BREAKING: Dropped Crate version < 1.0.0 support for Crate test layer
|
441
|
+
|
442
|
+
- Testing: Dropped ``multicast`` support for Crate test layer
|
443
|
+
|
444
|
+
- Added support for ``Insert`` from select to the SQLAlchemy dialect
|
445
|
+
|
446
|
+
- sqlalchemy: support `get_columns` and `get_pk_constraint`
|
447
|
+
|
448
|
+
2016/12/19 0.17.0
|
449
|
+
=================
|
450
|
+
|
451
|
+
- BREAKING: Dropped support for SQLAlchemy < 1.0.0
|
452
|
+
|
453
|
+
- Fix sqlalchemy: crate dialect didn't work properly with alpha and beta
|
454
|
+
versions of sqlalchemy due to a wrong version check
|
455
|
+
(e.g.: sandman2 depends on 1.1.0b3)
|
456
|
+
|
457
|
+
- sqlalchemy: added support for native Arrays
|
458
|
+
|
459
|
+
- Fix sqlalchemy: ``sa.inspect(engine).get_table_names`` failed due
|
460
|
+
to an attribute error
|
461
|
+
|
462
|
+
2016/11/21 0.16.5
|
463
|
+
=================
|
464
|
+
|
465
|
+
- Added compatibility for SQLAlchemy version 1.1
|
466
|
+
|
467
|
+
2016/10/18 0.16.4
|
468
|
+
=================
|
469
|
+
|
470
|
+
- Fix sqlalchemy: updates in nested object columns have been ignored
|
471
|
+
|
472
|
+
2016/08/16 0.16.3
|
473
|
+
=================
|
474
|
+
|
475
|
+
- Fix: Avoid invalid keyword argument error when fetching blobs from cluster
|
476
|
+
by removing certificate keywords before creating non-https server in pool.
|
477
|
+
|
478
|
+
- Testing: Made Crate test layer logging less verbose (hide Crate startup logs)
|
479
|
+
and added ``verbose keyword`` argument to layer to control its verbosity.
|
480
|
+
|
481
|
+
2016/07/22 0.16.2
|
482
|
+
=================
|
483
|
+
|
484
|
+
- Increased ``urllib3`` version requirement to >=1.9 to prevent from
|
485
|
+
compatibility issues.
|
486
|
+
|
487
|
+
- Testing: Do not rely on startup log if static http port is defined in test
|
488
|
+
layer.
|
489
|
+
|
490
|
+
2016/06/23 0.16.1
|
491
|
+
=================
|
492
|
+
|
493
|
+
- Fix: ``Date`` column type is now correctly created as ``TIMESTAMP`` column
|
494
|
+
when creating the table
|
495
|
+
|
496
|
+
2016/06/09 0.16.0
|
497
|
+
=================
|
498
|
+
|
499
|
+
- Added a ``from_uri`` factory method to the ``CrateLayer``
|
500
|
+
|
501
|
+
- The ``Connection`` class now supports the context management protocol and
|
502
|
+
can therefore be used with the ``with`` statement.
|
503
|
+
|
504
|
+
- Sockets are now properly closed if a connection is closed.
|
505
|
+
|
506
|
+
- Added support for serialization of Decimals
|
507
|
+
|
508
|
+
2016/05/17 0.15.0
|
509
|
+
=================
|
510
|
+
|
511
|
+
- Added support for client certificates
|
512
|
+
|
513
|
+
- Dropped support for Python 2.6
|
514
|
+
|
515
|
+
2016/03/18 0.14.2
|
516
|
+
=================
|
517
|
+
|
518
|
+
- Fix: Never retry on http read errors (so never send SQL statements twice)
|
519
|
+
|
520
|
+
2016/03/10 0.14.1
|
521
|
+
=================
|
522
|
+
|
523
|
+
- test-layer: Removed options that are going to be removed from Crate
|
524
|
+
|
525
|
+
2016/02/05 0.14.0
|
526
|
+
=================
|
527
|
+
|
528
|
+
- Added support for serialization of date and datetime objects
|
529
|
+
|
530
|
+
2015/10/21 0.13.6
|
531
|
+
=================
|
532
|
+
|
533
|
+
- fix in crate test layer: wait for layer to completely start up node
|
534
|
+
|
535
|
+
2015/10/12 0.13.5
|
536
|
+
=================
|
537
|
+
|
538
|
+
- fix: use proper CLUSTERED clause syntax in SQLAlchemy's create table statement
|
539
|
+
|
540
|
+
2015/08/12 0.13.4
|
541
|
+
=================
|
542
|
+
|
543
|
+
- Fix urllib3 error with invalid kwargs for ``HTTPConnectionPool``
|
544
|
+
when ``REQUESTS_CA_BUNDLE`` is set
|
545
|
+
|
546
|
+
2015/06/29 0.13.3
|
547
|
+
=================
|
548
|
+
|
549
|
+
- Fix: allow ObjectArrays to be set to None
|
550
|
+
|
551
|
+
2015/06/15 0.13.2
|
552
|
+
=================
|
553
|
+
|
554
|
+
- wait until master of test cluster is elected before starting tests
|
555
|
+
|
556
|
+
2015/05/29 0.13.1
|
557
|
+
=================
|
558
|
+
|
559
|
+
- fixed compatibility issues with SQLAlchemy 1.0.x
|
560
|
+
|
561
|
+
- map SQLAlchemy's text column type to Crate's ``STRING`` type
|
562
|
+
|
563
|
+
2015/03/10 0.13.0
|
564
|
+
=================
|
565
|
+
|
566
|
+
- add support for table creation using the SQLAlchemy ORM functionality.
|
567
|
+
|
568
|
+
- fix: match predicate now properly handles term literal
|
569
|
+
|
570
|
+
2015/02/13 0.12.5
|
571
|
+
=================
|
572
|
+
|
573
|
+
- changed SQLAlchemy update statement generation to be compatible with crate
|
574
|
+
0.47.X
|
575
|
+
|
576
|
+
2015/02/04 0.12.4
|
577
|
+
=================
|
578
|
+
|
579
|
+
- added missing functionality in CrateDialect, containing:
|
580
|
+
default schema name, server version info,
|
581
|
+
check if table/schema exists, list all tables/schemas
|
582
|
+
|
583
|
+
- updated crate to version 0.46.1
|
584
|
+
|
585
|
+
2014/10/27 0.12.3
|
586
|
+
=================
|
587
|
+
|
588
|
+
- support iterator protocol on cursor
|
589
|
+
|
590
|
+
2014/10/20 0.12.2
|
591
|
+
=================
|
592
|
+
|
593
|
+
- added match predicate in sqlalchemy to support fulltext
|
594
|
+
search
|
595
|
+
|
596
|
+
2014/10/02 0.12.1
|
597
|
+
=================
|
598
|
+
|
599
|
+
- send application/json Accept header when requesting crate
|
600
|
+
|
601
|
+
2014/09/11 0.12.0
|
602
|
+
=================
|
603
|
+
|
604
|
+
- add new options to CrateLayer in order to build test clusters
|
605
|
+
|
606
|
+
2014/09/19 0.11.2
|
607
|
+
=================
|
608
|
+
|
609
|
+
- improved server failover
|
610
|
+
|
611
|
+
2014/08/26 0.11.1
|
612
|
+
=================
|
613
|
+
|
614
|
+
- more reliable failover mechanism
|
615
|
+
|
616
|
+
2014/08/26 0.11.0
|
617
|
+
=================
|
618
|
+
|
619
|
+
- improved server failover / retry behaviour
|
620
|
+
|
621
|
+
- use bulk_args in executemany to increase performance:
|
622
|
+
With crate server >= 0.42.0 executemany uses bulk_args
|
623
|
+
and returns a list of results.
|
624
|
+
With crate server < 0.42.0 executemany still issues
|
625
|
+
a request for every parameter and doesn't return
|
626
|
+
any results.
|
627
|
+
|
628
|
+
- improved docs formatting of field lists
|
629
|
+
|
630
|
+
2014/07/25 0.10.7
|
631
|
+
=================
|
632
|
+
|
633
|
+
- fix: ``cursor.executemany()`` now correctly sets the cursor description
|
634
|
+
|
635
|
+
2014/07/18 0.10.6
|
636
|
+
=================
|
637
|
+
|
638
|
+
- fix: correctly attach server error trace to crate client exceptions
|
639
|
+
|
640
|
+
2014/07/16 0.10.5
|
641
|
+
=================
|
642
|
+
|
643
|
+
- fix: only send ``error_trace`` when it is explicitly set
|
644
|
+
|
645
|
+
2014/07/16 0.10.4
|
646
|
+
=================
|
647
|
+
|
648
|
+
- expose the ``error_trace`` option to give a full traceback of server exceptions
|
649
|
+
|
650
|
+
2014/07/14 0.10.3
|
651
|
+
=================
|
652
|
+
|
653
|
+
- fix: Columns that have an onupdate definition are now correctly updated
|
654
|
+
|
655
|
+
2014/06/03 0.10.2
|
656
|
+
=================
|
657
|
+
|
658
|
+
- fix: return -1 for rowcount if rowcount attribute is missing in crate
|
659
|
+
response
|
660
|
+
|
661
|
+
2014/05/21 0.10.1
|
662
|
+
=================
|
663
|
+
|
664
|
+
- fixed redirect handling for blob downloads and uploads.
|
665
|
+
|
666
|
+
2014/05/16 0.10.0
|
667
|
+
=================
|
668
|
+
|
669
|
+
- implemented ANY operator on object array containment checks
|
670
|
+
for SQLAlchemy
|
671
|
+
|
672
|
+
- updated crate to 0.37.1
|
673
|
+
|
674
|
+
2014/05/13 0.9.5
|
675
|
+
================
|
676
|
+
|
677
|
+
- bugfix: updates of complex types will only be rewritten if the dialect is
|
678
|
+
set to 'crate' in SQLAlchemy.
|
679
|
+
|
680
|
+
2014/05/09 0.9.4
|
681
|
+
================
|
682
|
+
|
683
|
+
- bugfix: raise correct error if fetching infos is not possible because server
|
684
|
+
is not fully started
|
685
|
+
|
686
|
+
2014/05/09 0.9.3
|
687
|
+
================
|
688
|
+
|
689
|
+
- bugfix: old versions of `six` caused import errors
|
690
|
+
|
691
|
+
- updated crate doc theme config
|
692
|
+
|
693
|
+
2014/05/07 0.9.2
|
694
|
+
================
|
695
|
+
|
696
|
+
- fixed python3.3 compatibility issue in sphinx script
|
697
|
+
|
698
|
+
2014/05/07 0.9.1
|
699
|
+
================
|
700
|
+
|
701
|
+
- use new crate doc theme
|
702
|
+
|
703
|
+
2014/04/01 0.9.0
|
704
|
+
================
|
705
|
+
|
706
|
+
- replaced requests with urllib3 to improve performance
|
707
|
+
|
708
|
+
- add ``verify_ssl_cert`` and ``ca_cert`` as kwargs to ``Connection``,
|
709
|
+
``connect`` and as SQLAlchemy ``connect_args``
|
710
|
+
|
711
|
+
2014/04/04 0.8.1
|
712
|
+
================
|
713
|
+
|
714
|
+
- client: fix error handling in ``client.server_infos()``
|
715
|
+
|
716
|
+
2014/03/21 0.8.0
|
717
|
+
================
|
718
|
+
|
719
|
+
- updated crate to 0.32.3
|
720
|
+
|
721
|
+
- client: adding keyword arguments ``verify_ssl_cert`` and ``ca_cert``
|
722
|
+
to enable ssl server certificate validation
|
723
|
+
|
724
|
+
- client: disable ssl server certificate validation by default
|
725
|
+
|
726
|
+
2014/03/14 0.7.1
|
727
|
+
================
|
728
|
+
|
729
|
+
- updated crate to 0.31.0
|
730
|
+
|
731
|
+
- client: fixed error handling on wrong content-type and bad status codes (on connect)
|
732
|
+
|
733
|
+
2014/03/13 0.7.0
|
734
|
+
================
|
735
|
+
|
736
|
+
- removed the crate shell ``crash`` from this package. it will live
|
737
|
+
now under the name ``crate-shell`` on pypi.
|
738
|
+
|
739
|
+
2014/03/12 0.6.0
|
740
|
+
================
|
741
|
+
|
742
|
+
- updated crate to 0.30.0
|
743
|
+
|
744
|
+
- crash: added support for ``ALTER`` statements.
|
745
|
+
|
746
|
+
- crash: added support for ``REFRESH`` statements.
|
747
|
+
|
748
|
+
- crash: added support for multi-statements for stdin and ``--command`` parameter
|
749
|
+
|
750
|
+
- crash: renamed cli parameter ``--statement/-s`` to ``--command/-c``
|
751
|
+
|
752
|
+
2014/03/12 0.5.0
|
753
|
+
================
|
754
|
+
|
755
|
+
- updated crate to 0.29.0. This release contains backward incompatible changes
|
756
|
+
related to blob support.
|
757
|
+
|
758
|
+
- updated crash autocompletion keywords
|
759
|
+
|
760
|
+
2014/03/11 0.4.0
|
761
|
+
================
|
762
|
+
|
763
|
+
- fix a bug where setting an empty list on a multi valued field results in returning ``None``
|
764
|
+
after refreshing the session.
|
765
|
+
|
766
|
+
- the test layer now uses the '/' crate endpoint in order to wait for crate to
|
767
|
+
be available.
|
768
|
+
|
769
|
+
- updated crate to 0.28.0. This release contains backward incompatible changes.
|
770
|
+
|
771
|
+
- changed the test layer to no longer use the `-f`
|
772
|
+
option. Note that this breaks the test layer for all previous crate
|
773
|
+
versions.
|
774
|
+
|
775
|
+
2014/03/05 0.3.4
|
776
|
+
================
|
777
|
+
|
778
|
+
- fix readline bug in windows bundle
|
779
|
+
|
780
|
+
2014/03/05 0.3.3
|
781
|
+
================
|
782
|
+
|
783
|
+
- readline support for windows
|
784
|
+
|
785
|
+
- updated crate to 0.26.0
|
786
|
+
|
787
|
+
2014/03/04 0.3.2
|
788
|
+
================
|
789
|
+
|
790
|
+
- added single-file crash bundle ``crash.zip.py``
|
791
|
+
|
792
|
+
2014/02/27 0.3.1
|
793
|
+
================
|
794
|
+
|
795
|
+
- minor documentation syntax fix
|
796
|
+
|
797
|
+
2014/01/27 0.3.0
|
798
|
+
================
|
799
|
+
|
800
|
+
- added the `ObjectArray` type to the sqlalchemy dialect.
|
801
|
+
|
802
|
+
- renamed `Craty` type to `Object`.
|
803
|
+
`Craty` can still be imported to maintain backward compatibility
|
804
|
+
|
805
|
+
2014/01/15 0.2.0
|
806
|
+
================
|
807
|
+
|
808
|
+
- adapted for compatibility with SQLAlchemy >= 0.9.x
|
809
|
+
|
810
|
+
- changed default port to 4200
|
811
|
+
|
812
|
+
2013/12/17 0.1.10
|
813
|
+
=================
|
814
|
+
|
815
|
+
- allow to specify https urls in client and crash cli
|
816
|
+
|
817
|
+
2013/12/06 0.1.9
|
818
|
+
================
|
819
|
+
|
820
|
+
- sqlalchemy dialect supports native booleans
|
821
|
+
|
822
|
+
2013/12/02 0.1.8
|
823
|
+
================
|
824
|
+
|
825
|
+
- Fix: Date columns return date objects
|
826
|
+
|
827
|
+
2013/11/25 0.1.7
|
828
|
+
================
|
829
|
+
|
830
|
+
- Added ``duration`` property to the cursor displaying the server-side duration.
|
831
|
+
Show this value at the `crash` crate cli now instead of client-side duration.
|
832
|
+
|
833
|
+
- Added `readline` as a requirement package on OS X (Darwin), fixes umlauts problem.
|
834
|
+
|
835
|
+
- Fix sqlalchemy: raise exception if timezone aware datetime is saved
|
836
|
+
|
837
|
+
- Fix: raise concrete exception while uploading blobs to an index with disabled blobs support
|
838
|
+
|
839
|
+
- crash: check if given servers are available
|
840
|
+
and retrieve some basic information on connect command
|
841
|
+
|
842
|
+
2013/11/13 0.1.6
|
843
|
+
================
|
844
|
+
|
845
|
+
- Fix: show rows affected at `crash` on ``copy`` command
|
846
|
+
|
847
|
+
- crash: Added persistent history stored in platform dependent app-dir
|
848
|
+
|
849
|
+
- crash: Added support for multiple hosts for ``crash --hosts ...`` and the connect cmd
|
850
|
+
|
851
|
+
2013/11/11 0.1.5
|
852
|
+
================
|
853
|
+
|
854
|
+
- Added SQL ``copy`` command support to `crash` crate cli
|
855
|
+
|
856
|
+
2013/11/11 0.1.4
|
857
|
+
================
|
858
|
+
|
859
|
+
- crate layer: set working directory on layer instantiation instead of start hook
|
860
|
+
|
861
|
+
2013/11/08 0.1.3
|
862
|
+
================
|
863
|
+
|
864
|
+
- fixed sqlalchemy datetime parsing that didn't work with crate >= 0.18.4 due
|
865
|
+
to the fixed datetime mapping.
|
866
|
+
|
867
|
+
2013/11/08 0.1.2
|
868
|
+
================
|
869
|
+
|
870
|
+
- documented SQLAlchemy count() and group_by() support.
|
871
|
+
|
872
|
+
2013/11/07 0.1.1
|
873
|
+
================
|
874
|
+
|
875
|
+
- http keepalive support
|
876
|
+
|
877
|
+
- uppercase command support for crash
|
878
|
+
|
879
|
+
- fixed python3.3 compatibility issue in crash
|
880
|
+
|
881
|
+
2013/10/23 0.1.0
|
882
|
+
================
|
883
|
+
|
884
|
+
- the `crash` crate cli supports multiple line commands and auto-completion now,
|
885
|
+
commands are delimited by a semi-colon.
|
886
|
+
|
887
|
+
- the `crash` crate cli displays the status and, if related, the row count on every command now.
|
888
|
+
|
889
|
+
2013/10/09 0.0.9
|
890
|
+
================
|
891
|
+
|
892
|
+
- SQLAlchemy `DateTime` and `Date` can now be nullable
|
893
|
+
|
894
|
+
2013/10/04 0.0.8
|
895
|
+
================
|
896
|
+
|
897
|
+
- fixed an error with the `Craty` type and SQLAlchemy's ORM where the `update`
|
898
|
+
statement wasn't correctly generated.
|
899
|
+
|
900
|
+
2013/10/02 0.0.7
|
901
|
+
================
|
902
|
+
|
903
|
+
- rowcount in results of update-requests gives affected rows
|
904
|
+
|
905
|
+
- the `Date` and `DateTime` sqlalchemy types are now supported.
|
906
|
+
|
907
|
+
- make http-client thread-safe
|
908
|
+
|
909
|
+
2013/10/01 0.0.6
|
910
|
+
================
|
911
|
+
|
912
|
+
- add support for sqlalchemy including complex types
|
913
|
+
|
914
|
+
- error handling improvements in crash
|
915
|
+
|
916
|
+
2013/09/18 0.0.5
|
917
|
+
================
|
918
|
+
|
919
|
+
- added qmark parameter substitution support
|
920
|
+
|
921
|
+
- basic Blob-Client-API implemented
|
922
|
+
|
923
|
+
2013/09/16 0.0.4
|
924
|
+
================
|
925
|
+
|
926
|
+
- the `crash` crate cli is now included with the client library
|
927
|
+
|
928
|
+
- the client library is now compatible with python 3
|
929
|
+
|
930
|
+
2013/09/09 0.0.3
|
931
|
+
================
|
932
|
+
|
933
|
+
- text files are now also included in binary egg distributions
|
934
|
+
|
935
|
+
2013/09/05 0.0.2
|
936
|
+
================
|
937
|
+
|
938
|
+
- initial release
|