Commit Graph

317 Commits

Author SHA1 Message Date
Frank Villaro-Dixon
b6ed0587ed Fix race condition when getting column keys of new table
_columns_keys() sets _columns to {}, but _sync_table() empties _columns
when table is empty.
2020-02-24 13:02:31 +01:00
Friedrich Lindenberg
c01e717436 Bump version: 1.2.0 → 1.2.1 2020-02-23 19:17:20 +01:00
Friedrich Lindenberg
72ecf561fe Make column lookups properly case-insensitive, refs #310. 2020-02-23 19:13:34 +01:00
Friedrich Lindenberg
5ddff753b7 Bump version: 1.1.2 → 1.2.0 2020-01-11 16:50:39 +01:00
Friedrich Lindenberg
b362f25816 Use default pool for Sqlite, refs #283, #163. 2020-01-11 16:47:01 +01:00
Friedrich Lindenberg
354a51bf98 Add support for database views, fixes #235, fixes #267. 2020-01-11 16:46:04 +01:00
Friedrich Lindenberg
fc3af9e1f1 Fix memory leak, fixes #226. 2020-01-11 15:01:22 +01:00
Friedrich Lindenberg
71b9421d60 Document ensure_schema behaviour, fixes #225. 2020-01-11 14:38:21 +01:00
Friedrich Lindenberg
39385b7e0a Make has_column case insensitive, refs #270. 2020-01-11 14:31:51 +01:00
Friedrich Lindenberg
9b1f8ea649 Simplify 2020-01-11 14:31:07 +01:00
Friedrich Lindenberg
45ae60349c Remove use of six because its 2020 2020-01-11 14:06:57 +01:00
Friedrich Lindenberg
ce28a0d4e8 Pass through column arguments, fixes #233, #266. 2020-01-11 13:55:57 +01:00
Friedrich Lindenberg
e766fa25f0 Fix incorrect query generation, fixes #290. 2020-01-11 13:47:34 +01:00
Friedrich Lindenberg
d7f23933f1 Fix doc error, fixes #297. 2020-01-11 13:36:28 +01:00
Friedrich Lindenberg
d0c4e9fcc7 Implement method to close database connections, fixes #246. 2020-01-11 13:16:30 +01:00
Friedrich Lindenberg
00d2279abf Split _args_to_clause into two functions 2020-01-11 13:02:32 +01:00
Friedrich Lindenberg
bd70c2aa9e
Merge pull request #301 from abmyii/more_find_operators
Implement additional find operators (and relevant tests)
2020-01-11 12:43:29 +01:00
Friedrich Lindenberg
5a09e72fd1 Fix error introduced in #305. 2020-01-11 12:37:50 +01:00
Friedrich Lindenberg
db3ef16566 pep8 2020-01-11 12:11:30 +01:00
Abdurrahmaan Iqbal
e2431bc344 Use lists instead of sets to maintain order of column names 2019-12-24 18:03:35 +00:00
Abdurrahmaan Iqbal
d8cf515ffe Implement additional find operators (and relevant tests) 2019-08-08 12:55:29 +01:00
Friedrich Lindenberg
43e9431865
Merge pull request #296 from conorreid/bigint_check
Add support for BigInteger
2019-07-14 17:58:43 +02:00
conorreid
8409c40645 switch all ints to bigints 2019-07-13 10:42:20 -04:00
Friedrich Lindenberg
081cb5ec7a
Merge pull request #298 from abmyii/master
Implement update_many, upsert_many and refactor for a 2x speed-up of insert_many
2019-07-13 14:47:04 +02:00
Abdurrahmaan Iqbal
19a73759ca Remove f-string for wider compatiblity 2019-07-09 09:50:36 +01:00
Abdurrahmaan Iqbal
6874889591 Fix logic error in insert_many 2019-07-09 09:45:18 +01:00
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