Commit Graph
341 Commits
Author SHA1 Message Date
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