Abdurrahmaan Iqbal
7fd9241f25
Refactor input_many to remove duplicate code, fix some pep8 problems
2019-07-09 09:37:48 +01:00
Abdurrahmaan Iqbal
76b6165181
Speed up insert_many by sync columns before input, not on the go
2019-07-08 23:24:55 +01:00
Abdurrahmaan Iqbal
85d974b0c3
Refactor to remove duplicate code
2019-07-08 18:00:54 +01:00
Abdurrahmaan Iqbal
70874a2501
Implement update_many and upsert_many
2019-07-08 17:48:05 +01:00
conorreid
7753d0610a
bigint check
2019-06-21 11:45:44 -04:00
Andrey Alekseenko
25477717bc
Fix bug when UPSERTing a column named 'id'
2019-02-14 22:35:47 -05:00
Friedrich Lindenberg
22b64ee480
Bump version: 1.1.1 → 1.1.2
2019-02-07 10:49:52 +01:00
Friedrich Lindenberg
53e72ef6a8
Bump version: 1.1.0 → 1.1.1
2019-01-31 18:38:30 +01:00
Friedrich Lindenberg
bc1ac231f3
fix actual test failure
2019-01-31 18:22:42 +01:00
Friedrich Lindenberg
8324350f2e
Try to fix up tests, Python 3.8 warnings
2019-01-31 14:56:19 +01:00
Friedrich Lindenberg
163e6554cc
Merge pull request #265 from saimn/distinct
...
Add support for advanced queries in distinct
2018-10-04 16:00:13 +02:00
Simon Conseil
c69827de7c
Add support for advanced queries in distinct
...
Fix #263
2018-09-26 17:36:09 +02:00
Simon Conseil
c36b0f346b
Complete table names with IPython
2018-09-26 17:11:08 +02:00
Friedrich Lindenberg
0a2f7c0799
Merge pull request #256 from thelittlebug/dsl-find-feature
...
add find operators
2018-07-08 11:47:59 -04:00
mwmajewsk
bcd20c7eca
Update util.py - fix ensure_tuple instance check
...
doing isinstance(obj, Sequence) makes calls with keys of dict impossible
Example:
Returns
```
d = {'a':'a', 'b':'b'}
table.upsert(values, d.keys())
```
`dict_keys(['a', 'b'])` is not of instance Sequence, but Iterable, therefore `ensure_tuple(dict_keys(['a', 'b']))` returns (dict_keys(['a', 'b']),)
which leads to invalid iteration.
2018-06-20 22:44:49 +02:00
Unknown
45e3ec0037
fix wrong clauses parameter false to sqlalchemy's false()
2018-06-14 07:03:38 +02:00
Unknown
7746e2529b
convert unchangeable lists to tuples
2018-06-14 07:01:35 +02:00
Unknown
5829fcc366
remove unused between import
2018-06-13 03:35:24 +02:00
Unknown
f9bb652034
add find operators
2018-06-13 02:29:32 +02:00
Friedrich Lindenberg
38a59b921e
Bump version: 1.0.8 → 1.1.0
2018-05-29 22:12:56 +03:00
Friedrich Lindenberg
6d1f42f48c
begin using bumpversion.
2018-05-29 22:12:48 +03:00
Friedrich Lindenberg
2b2813c7fe
fix lint
2018-05-29 22:05:53 +03:00
Friedrich Lindenberg
881127880a
Pad missing columns. Fixes #252 .
2018-05-29 21:55:25 +03:00
Paul M Furley
c414f85df9
find(): if table doesn't exist, return an iterator
...
... rather than []
If a table exists, you can treat the output of `find` as an iterator,
specifically you can call `next(find(...))`:
```
>>> db = dataset.connect('sqlite:///:memory1:')
>>> table = db['table_which_exists']
>>> table.insert({'foo': 'x'})
>>> next(table.find(foo='x')) # no problem
```
But if the table hasn't been created yet, `find(...)` returns an empty list,
which you can't call `next()` on:
```
>>> db = dataset.connect('sqlite:///:memory2:')
>>> table = db_no_table['table_which_doesnt_exis']
>>> next(table.find(foo='x'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not an iterator
```
^^^ rather than a `TypeError`, I'd expect to get a `StopIteration`
exception.
2018-05-29 18:07:32 +01:00
Paul M Furley
a40341abaa
in create_column docs, signpost the Types class
2018-05-17 15:04:30 +01:00
Friedrich Lindenberg
66fd7ce173
make sure all records have the same fields.
2018-04-04 10:43:19 +02:00
Friedrich Lindenberg
9d99ed3e29
Add helper class for chunked inserts.
2018-04-04 09:34:39 +02:00
Friedrich Lindenberg
0d9b2877e2
reflect table again, hoping that helps with sync errors
2018-02-18 10:22:32 +01:00
Friedrich Lindenberg
bce7b31b29
fix #234
2018-01-03 12:22:33 +01:00
Friedrich Lindenberg
2cf9da068a
fix flake8 complaints
2017-12-05 17:21:08 +01:00
Friedrich Lindenberg
8226e51408
option for streamed responses.
2017-12-04 23:22:08 +01:00
Friedrich Lindenberg
dbc1edeca9
cleanup imports
2017-10-25 23:06:55 +02:00
Friedrich Lindenberg
f2e62606c7
new version
2017-10-25 23:06:31 +02:00
Friedrich Lindenberg
7a69baf491
Merge pull request #224 from emanuelfeld/master
...
Check if primary column on first _sync_table call
2017-09-30 12:01:14 +02:00
Stefan Wehrmeyer
da901efbf7
Remove Python 2.6 support code
2017-09-29 14:11:07 +02:00
emanuelfeld
753d4a28d4
Check if primary column on first _sync_table call
...
Checks if column is primary key column on table creation, before
attempting to add again as non-primary key column.
2017-09-28 23:57:48 -04:00
Friedrich Lindenberg
1fd19f37b9
extra check before column creation
2017-09-24 10:41:08 +03:00
Friedrich Lindenberg
39da7522cb
create table upon create_column, fixes #220 .
2017-09-14 20:17:01 -03:00
Friedrich Lindenberg
44b49a6bb9
build instructions.
2017-09-09 18:40:47 +02:00
Friedrich Lindenberg
fc59bc59e6
Fix up imports, refs #217 .
2017-09-09 18:34:32 +02:00
Friedrich Lindenberg
a049691749
Remove datafreeze component, fixes #217
2017-09-09 18:24:34 +02:00
Friedrich Lindenberg
cd091eadca
Missing check on self.local.
2017-09-05 07:59:02 +02:00
Friedrich Lindenberg
ffea0f7a69
Warn about mixing transactions, schema changes and threading.
2017-09-05 07:49:05 +02:00
Friedrich Lindenberg
e5b3cd5f49
fix transaction metadata bug
2017-09-04 22:55:12 +02:00
Friedrich Lindenberg
7e614c0933
cleanup inspection code
2017-09-04 22:26:51 +02:00
Friedrich Lindenberg
df0d79d75c
fix _step bug
2017-09-04 10:57:01 +02:00
Friedrich Lindenberg
4232606d27
Move to a model where the table is created lazily, with an initial set of columns
2017-09-03 23:23:57 +02:00
Friedrich Lindenberg
e30cf24195
Rewrite data change functions on table.
2017-09-03 10:05:17 +02:00
Friedrich Lindenberg
213a7ce857
Use introspection for table indexes.
2017-09-02 23:05:50 +02:00
Friedrich Lindenberg
37d7f47d39
Make table instances singleton-ish.
2017-09-02 22:35:29 +02:00
Friedrich Lindenberg
13cbff37fe
Fix postgres errors.
2017-09-02 20:33:11 +02:00
Friedrich Lindenberg
a2748b7fde
Reduce dependence on internal metadata caching, refs #208 .
2017-09-02 19:35:01 +02:00
Friedrich Lindenberg
47cdf52323
fix mysql issue, test no-column table.
2017-09-02 17:25:52 +02:00
Friedrich Lindenberg
cc7787036b
still more cases of using the engine and not the executable in transaction
2017-09-02 17:17:24 +02:00
Friedrich Lindenberg
17ef44485d
Explicitly not that string types are unsupported.
2017-09-02 16:48:53 +02:00
Friedrich Lindenberg
a4c73a8fb8
Begin implementing a types handler instead of using plain text types.
...
this is potentially BREAKING scripts which use the string syntax.
2017-09-02 16:47:04 +02:00
Friedrich Lindenberg
54dc192244
allow mixed-case column names, fixes #188
2017-09-02 08:39:52 +02:00
Friedrich Lindenberg
edc41e4d82
Merge branch 'master' into create_column_by_example
2017-09-02 08:22:22 +02:00
Stefan Wehrmeyer
3f330df20f
Check for clauses and filters in delete
...
Guard against wrong API use before dropping all data
2017-05-16 16:57:07 +02:00
Friedrich Lindenberg
77762266dd
Simplify transactional logging code, fix deadlock situation.
2017-01-29 17:31:04 +01:00
Friedrich Lindenberg
522415a27c
refactor query code to be simpler
2017-01-29 15:45:18 +01:00
Joe Schmid
c3158d7fe1
Allow Date column type (in addition to existing DateTime type)
2016-12-05 14:14:47 -05:00
Friedrich Lindenberg
27af456be7
get over weird lint error
2016-11-21 08:47:41 +01:00
Paul M Furley
866713f110
Order JSON freeze fields deterministically
...
To avoid commits like [this
one](f0599f87bc )
on Python 3
2016-11-21 07:30:43 +00:00
Paul Fitzpatrick
94bc6e09c0
add Table.create_column_by_example method
...
This adds a method to create a column by giving an example of
the data it will contain rather than by specifying its
SQLAlchemy type. This extends the range of operations that
can be performed without reading the SQLAlchemy docs.
2016-10-26 09:29:55 -04:00
Friedrich Lindenberg
5c04bd1e5d
allow for **kwargs in create_index, refs #172 .
2016-09-24 10:44:49 +02:00
Friedrich Lindenberg
2eaa3403ff
Merge pull request #172 from jsvine/master
...
Let users pass `unique` boolean to .create_index
2016-09-24 10:41:07 +02:00
Friedrich Lindenberg
8032c66219
Merge pull request #179 from johnlpuc163/master
...
bug fix, make Table.drop_column be aware of table schema
2016-09-22 17:57:16 +02:00
Friedrich Lindenberg
2928ba4f39
Merge pull request #180 from arturhoo/patch-1
...
Fix typo on #create_column
2016-09-22 17:56:51 +02:00
Florent Bervas
458d086db5
import decimal module
2016-08-10 14:20:06 +02:00
Florent Bervas
e36f26a72c
handle Decimal class as a string to avoid "null" as returned value
2016-08-09 16:47:33 +02:00
Artur Rodrigues
0046bcb428
Fix typo on #create_column
2016-07-27 23:24:30 +01:00
Xu Liu
4147871b39
bug fix, make Table.drop_column be aware of table schema
2016-07-26 17:59:30 -04:00
Friedrich Lindenberg
927f88bbd5
work in row pruning, fixes #176
2016-07-03 11:18:17 +02:00
Jeremy Singer-Vine
fc26d7afcd
Let users pass unique boolean to .create_index
2016-05-24 14:11:26 -04:00
Friedrich Lindenberg
5f1a38a15f
Merge pull request #169 from saun4app/feature_insert_ignore
...
Added insert_ignore and changed upsert.
2016-05-14 08:57:21 +02:00
Saun Shewanown
72b01df60d
Fixed Build Jobs Build #186 blank space errors
2016-04-27 16:48:45 -04:00
Saun Shewanown
e7f45b2a68
Added error check to _upsert_pre_check(), res = None when error
2016-04-27 16:39:50 -04:00
Saun Shewanown
7fd1a71506
Corrected upsert logical error.
2016-04-23 07:59:25 -04:00
Saun Shewanown
9c162a056c
Changed upsert code style. The logic should be the same.
2016-04-22 14:13:52 -04:00
Saun Shewanown
66547aafb5
Fixed Build Jobs Build #182 errors
2016-04-22 13:04:17 -04:00
Saun Shewanown
ff9bed01f1
Fixed Build Jobs Build #181 errors
2016-04-22 12:57:35 -04:00
Saun Shewanown
c1e82bb9ae
Added insert_ignore and changed upsert.
2016-04-22 11:35:14 -04:00
Friedrich Lindenberg
fb48c914f4
fix regression, fixes #168
2016-04-22 15:45:10 +02:00
Friedrich Lindenberg
bdd937e2c9
pep8
2016-04-10 10:25:14 +03:00
Friedrich Lindenberg
b64837e2e2
Merge pull request #165 from jmerkow/rtn_query
...
Simple change in table.py to return query from find
2016-04-10 10:12:27 +03:00
Friedrich Lindenberg
4fcb7f55ed
use staticPool for sqlite, fixes #163
2016-04-10 10:08:58 +03:00
Jameson Merkow
2fa5f5f1d4
Simple change in table.py to return query from find
2016-04-09 15:16:10 -07:00
Friedrich Lindenberg
38aef065cb
add to dataset.connect
2016-04-08 11:14:03 +03:00
Friedrich Lindenberg
4fb4845efc
set default of the ensure_schema flag per session
2016-04-08 09:23:24 +03:00
krkhnh
6909ba5c2f
Update table.py
...
This propose is based on issue #133 . Added 'ensure_session' global variable as a default value for 'ensure' parameter.
I haven't used Python for a long time and I can't test this code for now. I'm sorry for my irresponsibility, but here is a rough idea as a solution.
2016-04-08 09:48:27 +09:00
ryneeverett
1565fe5fe2
Implement comparison operators. Resolve #128 .
2016-03-24 17:57:26 -05:00
Friedrich Lindenberg
dcf1e09bbe
python 3 urllib
2016-02-14 11:19:19 +01:00
Friedrich Lindenberg
9c316ff7a6
Merge pull request #152 from twds/master
...
Release all the locks acquired by transaction on commit/rollback
2016-02-12 18:14:34 +01:00
Friedrich Lindenberg
e192e3f0dc
provide consistent return values, fixes #138
2016-02-12 18:12:22 +01:00
Friedrich Lindenberg
cc742b7a00
do not create columns upon find(), fixes #143
2016-02-12 18:10:50 +01:00
Friedrich Lindenberg
c45b98d862
remove password from conn URLs, fixes #157
2016-02-12 17:58:55 +01:00
Friedrich Lindenberg
d460e7ca55
use qualified table name, fixes #156
2016-02-12 17:44:43 +01:00
Di Wu
7fa056bfe2
Release all the locks acquired by transaction on commit/rollback
2016-01-26 15:02:19 +08:00
Friedrich Lindenberg
af1e675e24
satisfy the pep8 checker
2016-01-19 18:19:13 +01:00