diff --git a/py_dbcn/connectors/core/records.py b/py_dbcn/connectors/core/records.py index 231eb811a292b851af5f969f9ef6b2e3bdfd5d11..593953bb538222981967aa3e84ae4c9832d9b898 100644 --- a/py_dbcn/connectors/core/records.py +++ b/py_dbcn/connectors/core/records.py @@ -259,6 +259,26 @@ class BaseRecords: :param display_query: Bool indicating if query should output to console. Defaults to True. :param display_results: Bool indicating if results should output to console. Defaults to True. """ + # Check provided size. + upper_limit = 10000 # 10,000 limit for now. + if len(values_clause) > upper_limit: + print('Subdividing query.') + # Exceeds upper limit. Recursively call self on smaller subsets. + for index in range(0, len(values_clause), upper_limit): + print(' Range [{0}:{1}]'.format(index, index + upper_limit)) + self.update_many( + table_name, + columns_clause, + values_clause[index:index + upper_limit], + where_columns_clause, + column_types_clause=column_types_clause, + display_query=display_query, + display_results=display_results, + ) + + # Terminate once all recursive calls have finished. + return + # Check that provided table name is valid format. if not self._base.validate.table_name(table_name): raise ValueError('Invalid table name of "{0}".'.format(table_name))