mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2024-11-25 10:13:45 +03:00
stream only SELECTs, to prevent "connection reset by peer" errors
This commit is contained in:
parent
0a21f5da83
commit
52e9d30c5c
|
@ -58,7 +58,7 @@ class Database(object):
|
||||||
|
|
||||||
def select(self, query, model_class=None, settings=None):
|
def select(self, query, model_class=None, settings=None):
|
||||||
query += ' FORMAT TabSeparatedWithNamesAndTypes'
|
query += ' FORMAT TabSeparatedWithNamesAndTypes'
|
||||||
r = self._send(query, settings)
|
r = self._send(query, settings, True)
|
||||||
lines = r.iter_lines()
|
lines = r.iter_lines()
|
||||||
field_names = parse_tsv(next(lines))
|
field_names = parse_tsv(next(lines))
|
||||||
field_types = parse_tsv(next(lines))
|
field_types = parse_tsv(next(lines))
|
||||||
|
@ -103,9 +103,9 @@ class Database(object):
|
||||||
query = "SELECT module_name from `%s`.`%s` WHERE package_name = '%s'" % (self.db_name, MigrationHistory.table_name(), migrations_package_name)
|
query = "SELECT module_name from `%s`.`%s` WHERE package_name = '%s'" % (self.db_name, MigrationHistory.table_name(), migrations_package_name)
|
||||||
return set(obj.module_name for obj in self.select(query))
|
return set(obj.module_name for obj in self.select(query))
|
||||||
|
|
||||||
def _send(self, data, settings=None):
|
def _send(self, data, settings=None, stream=False):
|
||||||
params = self._build_params(settings)
|
params = self._build_params(settings)
|
||||||
r = requests.post(self.db_url, params=params, data=data, stream=True)
|
r = requests.post(self.db_url, params=params, data=data, stream=stream)
|
||||||
if r.status_code != 200:
|
if r.status_code != 200:
|
||||||
raise DatabaseException(r.text)
|
raise DatabaseException(r.text)
|
||||||
return r
|
return r
|
||||||
|
|
Loading…
Reference in New Issue
Block a user