From d7d32964ef7b0951ecfd8565af2351ebfe1ea02b Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Wed, 4 Jul 2018 18:57:29 +0200 Subject: [PATCH] Fixed #29541 -- Fixed Cursor.execute() crash when setinputsizes() is called without arguments wit cx_Oracle 6.4. --- django/db/backends/oracle/base.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 2d953af2e4..1f46b60b24 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -459,7 +459,8 @@ class FormatStylePlaceholderCursor: for k, value in params.items(): if value.input_size: sizes[k] = value.input_size - self.setinputsizes(**sizes) + if sizes: + self.setinputsizes(**sizes) else: # It's not a list of dicts; it's a list of sequences sizes = [None] * len(params_list[0]) @@ -467,7 +468,8 @@ class FormatStylePlaceholderCursor: for i, value in enumerate(params): if value.input_size: sizes[i] = value.input_size - self.setinputsizes(*sizes) + if sizes: + self.setinputsizes(*sizes) def _param_generator(self, params): # Try dict handling; if that fails, treat as sequence