Skip to content

Commit 21237a5

Browse files
committed
refactor: remove dupplicate code
1 parent 5fd68b2 commit 21237a5

File tree

4 files changed

+81
-111
lines changed

4 files changed

+81
-111
lines changed

mariadb-c/mariadb_c/mariadb_cursor.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,6 @@ static PyMethodDef MrdbCursor_Methods[] =
159159
{"_execute_bulk", (PyCFunction)MrdbCursor_execute_bulk,
160160
METH_NOARGS,
161161
NULL},
162-
{"_readresponse", (PyCFunction)MrdbCursor_readresponse,
163-
METH_NOARGS,
164-
NULL},
165162
{"_clear_result", (PyCFunction)MrdbCursor_clear_result,
166163
METH_NOARGS,
167164
NULL},

mariadb/impl/client/async_client.py

Lines changed: 39 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -531,69 +531,57 @@ async def execute_stmt(self, sql: str, messages: List[ClientMessage], config: 'C
531531
use_pipeline = (self.configuration.pipeline and
532532
self.context.has_capability(constants.CAPABILITY.BULK_OPERATIONS))
533533

534-
if use_pipeline:
535-
# Pipeline mode: write prepare and all execute messages before reading
536-
await self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
537-
for message in messages:
538-
await self.write_payload(message.payload(self.context), message.type(), True)
539-
prepareResult = None
540-
first_error = None
541-
try:
542-
prepareResult = await self._parse_prepare_response(await self.read_payload(), sql)
543-
except DatabaseError as e:
544-
first_error = e
545-
finally:
546-
# Ensure reading, even if prepared has an error
547-
548-
all_completions = []
534+
prepareResult = None
535+
first_error = None
536+
all_completions = []
537+
538+
try:
539+
if use_pipeline:
540+
# Pipeline mode: write prepare and all execute messages before reading
541+
await self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
542+
543+
for message in messages:
544+
await self.write_payload(message.payload(self.context), message.type(), True)
545+
546+
try:
547+
prepareResult = await self._parse_prepare_response(await self.read_payload(), sql)
548+
except DatabaseError as e:
549+
first_error = e
550+
551+
# Read all execute results (even if prepare failed)
549552
for message in messages:
550553
try:
551554
completions = await self._read_result(message.is_binary(), config, buffered, prepareResult)
552555
all_completions.append(completions)
553556
except DatabaseError as e:
554557
if not first_error:
555558
first_error = e
556-
557-
if prepareResult:
558-
if self.configuration.cache_prep_stmts:
559-
self.prepared_statement_cache[key] = prepareResult
560-
prepareResult.close()
561-
562-
if first_error:
563-
raise first_error
564-
return all_completions
565-
else:
566-
# Non-pipeline mode: read prepare response before writing execute messages
567-
await self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
568-
569-
prepareResult = None
570-
first_error = None
571-
try:
559+
else:
560+
# Non-pipeline mode: read prepare response before writing execute messages
561+
await self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
562+
572563
prepareResult = await self._parse_prepare_response(await self.read_payload(), sql)
573-
except DatabaseError as e:
574-
first_error = e
575-
raise
576-
577-
# Now write and read execute messages
578-
all_completions = []
579-
for message in messages:
580-
message.statement_id = prepareResult.statement_id
581-
await self.write_payload(message.payload(self.context), message.type(), True)
582-
try:
583-
completions = await self._read_result(message.is_binary(), config, buffered, prepareResult)
584-
all_completions.append(completions)
585-
except DatabaseError as e:
586-
if not first_error:
587-
first_error = e
588-
564+
565+
# Now write and read execute messages
566+
for message in messages:
567+
message.statement_id = prepareResult.statement_id
568+
await self.write_payload(message.payload(self.context), message.type(), True)
569+
try:
570+
completions = await self._read_result(message.is_binary(), config, buffered, prepareResult)
571+
all_completions.append(completions)
572+
except DatabaseError as e:
573+
if not first_error:
574+
first_error = e
575+
finally:
576+
# Cache and close prepared statement
589577
if prepareResult:
590578
if self.configuration.cache_prep_stmts:
591579
self.prepared_statement_cache[key] = prepareResult
592580
prepareResult.close()
593-
594-
if first_error:
595-
raise first_error
596-
return all_completions
581+
582+
if first_error:
583+
raise first_error
584+
return all_completions
597585

598586
except DatabaseError as e:
599587
raise e

mariadb/impl/client/sync_client.py

Lines changed: 42 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -535,74 +535,60 @@ def execute_stmt(self, sql: str, messages: List[ClientMessage], config: 'Configu
535535
use_pipeline = (self.configuration.pipeline and
536536
self.context.has_capability(constants.CAPABILITY.BULK_OPERATIONS))
537537

538-
if use_pipeline:
539-
# Pipeline mode: write prepare and all execute messages before reading
540-
self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
541-
542-
for message in messages:
543-
self.write_payload(message.payload(self.context), message.type(), True)
544-
self.reset_buffer()
545-
546-
prepareResult = None
547-
first_error = None
548-
try:
549-
prepareResult = self._parse_prepare_response(self.read_payload(), sql)
550-
except DatabaseError as e:
551-
first_error = e
552-
finally:
553-
# Ensure reading, even if prepared has an error
554-
555-
all_completions = []
538+
prepareResult = None
539+
first_error = None
540+
all_completions = []
541+
542+
try:
543+
if use_pipeline:
544+
# Pipeline mode: write prepare and all execute messages before reading
545+
self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
546+
547+
for message in messages:
548+
self.write_payload(message.payload(self.context), message.type(), True)
549+
self.reset_buffer()
550+
551+
try:
552+
prepareResult = self._parse_prepare_response(self.read_payload(), sql)
553+
except DatabaseError as e:
554+
first_error = e
555+
556+
# Read all execute results (even if prepare failed)
556557
for message in messages:
557558
try:
558559
completions = self._read_result(message.is_binary(), config, buffered, prepareResult)
559560
all_completions.append(completions)
560561
except DatabaseError as e:
561562
if not first_error:
562563
first_error = e
563-
564-
if prepareResult:
565-
if self.configuration.cache_prep_stmts:
566-
self.prepared_statement_cache[key] = prepareResult
567-
prepareResult.close()
568-
569-
if first_error:
570-
raise first_error
571-
return all_completions
572-
else:
573-
# Non-pipeline mode: read prepare response before writing execute messages
574-
self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
575-
self.reset_buffer()
576-
577-
prepareResult = None
578-
first_error = None
579-
try:
580-
prepareResult = self._parse_prepare_response(self.read_payload(), sql)
581-
except DatabaseError as e:
582-
first_error = e
583-
raise
584-
585-
# Now write and read execute messages
586-
all_completions = []
587-
for message in messages:
588-
message.statement_id = prepareResult.statement_id
589-
self.write_payload(message.payload(self.context), message.type(), True)
564+
else:
565+
# Non-pipeline mode: read prepare response before writing execute messages
566+
self.write_payload(prepare_message.payload(self.context), prepare_message.type(), True)
590567
self.reset_buffer()
591-
try:
592-
completions = self._read_result(message.is_binary(), config, buffered, prepareResult)
593-
all_completions.append(completions)
594-
except DatabaseError as e:
595-
if not first_error:
596-
first_error = e
597-
568+
569+
prepareResult = self._parse_prepare_response(self.read_payload(), sql)
570+
571+
# Now write and read execute messages
572+
for message in messages:
573+
message.statement_id = prepareResult.statement_id
574+
self.write_payload(message.payload(self.context), message.type(), True)
575+
self.reset_buffer()
576+
try:
577+
completions = self._read_result(message.is_binary(), config, buffered, prepareResult)
578+
all_completions.append(completions)
579+
except DatabaseError as e:
580+
if not first_error:
581+
first_error = e
582+
finally:
583+
# Cache and close prepared statement
598584
if prepareResult:
599585
if self.configuration.cache_prep_stmts:
600586
self.prepared_statement_cache[key] = prepareResult
601587
prepareResult.close()
602-
603-
if first_error:
604-
raise first_error
605-
return all_completions
588+
589+
if first_error:
590+
raise first_error
591+
return all_completions
606592

607593
except DatabaseError as e:
608594
raise e

tests/integration/test_cursor_async.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1858,7 +1858,6 @@ async def test_conpy178(self):
18581858
"char CHARACTER SET utf8mb4);\nEND")
18591859

18601860
for i in range(0, 500):
1861-
print("DIEGO")
18621861
await cursor.callproc("p2", ("foo", "bar", 1))
18631862
row = await cursor.fetchone()
18641863
self.assertEqual(row[0], b"foobar" if is_mysql() else "foobar")

0 commit comments

Comments
 (0)