Database¶
A couple of low-level utilities for those who tired of manually creating cursors.
-
fetch_all(sql, params=(), server='default')¶ Execute given sql and return all resulting rows.
-
fetch_row(sql, params=(), server='default')¶ Execute given sql and return one row.
-
fetch_col(sql, params=(), server='default')¶ Execute given sql and return list of values in first result column.
-
fetch_val(sql, params=(), server='default')¶ Execute given sql and return single resulting value:
last_id = fetch_val('select max(id) from some_table')
-
do_sql(sql, params=(), server='default')¶ Execute given sql with given params.
-
fetch_dicts(sql, params=(), server='default')¶ Same as
fetch_all(), but returns results as dicts.
-
fetch_dict(sql, params=(), server='default')¶ Same as
fetch_row(), but returns result as dict.
-
fetch_named(sql, params=(), server='default')¶ Same as
fetch_all(), but returnsnamedtuples.
-
fetch_named_row(sql, params=(), server='default')¶ Same as
fetch_row(), but returnsnamedtuple.
-
queryset_iterator(queryset, chunksize=1000)¶ Iterate over a Django Queryset ordered by the primary key.
This method loads a maximum of chunksize (default: 1000) rows in it’s memory at the same time while django normally would load all rows in it’s memory. It also bypasses django queryset cache.
Note that ordered querysets not supported.
-
queryset_chunks(queryset, chunksize=1000)¶ Returns iterator yielding chunks of django queryset. Takes care not to load everything at once.