mysqlengine 1.1.2__cp311-cp311-macosx_10_9_universal2.whl → 1.1.5__cp311-cp311-macosx_10_9_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
mysqlengine/dml.pxd CHANGED
@@ -278,7 +278,7 @@ cdef class DML:
278
278
  cdef inline str _gen_select_statement(self, str pad=?)
279
279
  cdef inline str _gen_select_subquery(self, str pad=?)
280
280
  # Execute
281
- cpdef object _Execute(self, object args=?, object cursor=?, bint fetch=?, bint many=?, object conn=?)
281
+ cpdef object _Execute(self, object args=?, object cursor=?, bint fetch=?, bint fetch_all=?, bint many=?, object conn=?)
282
282
  # Validate
283
283
  cdef inline str _validate_element_name(self, str name, str msg)
284
284
  cdef inline str _validate_element(self, object element, str msg)
@@ -309,7 +309,7 @@ cdef class SelectDML(DML):
309
309
  # Statement
310
310
  cpdef str statement(self, int indent=?)
311
311
  # Execute
312
- cpdef object Execute(self, object args=?, object cursor=?, bint fetch=?, object conn=?)
312
+ cpdef object Execute(self, object args=?, object cursor=?, bint fetch=?, bint fetch_all=?, object conn=?)
313
313
  # Validate
314
314
  cdef inline bint _validate_join_clause_order(self) except -1
315
315
 
mysqlengine/dml.py CHANGED
@@ -2552,6 +2552,7 @@ class DML:
2552
2552
  args: object = None,
2553
2553
  cursor: object | None = None,
2554
2554
  fetch: cython.bint = True,
2555
+ fetch_all: cython.bint = True,
2555
2556
  many: cython.bint = False,
2556
2557
  conn: object | None = None,
2557
2558
  ) -> object:
@@ -2584,6 +2585,10 @@ class DML:
2584
2585
  If 'fetch=False', the statement will be executed but no results will be fetched.
2585
2586
  Instead returns the number of affected rows.
2586
2587
 
2588
+ :param fetch_all `<'bool'>`: Whether to fetch all the result set. Defaults to `True`.
2589
+ Only applicable when 'fetch=True'. If 'fetch_one=True', fetches the entire result set.
2590
+ Else, only one row will be fetched from the result set.
2591
+
2587
2592
  :param many `<'bool'>`: Whether the 'args' (data) is multi-rows. Determines how the data is escaped. Defaults to `False`.
2588
2593
  For a single-row data, set 'many=False'. For a multi-row data, set 'many=True'.
2589
2594
 
@@ -2610,7 +2615,12 @@ class DML:
2610
2615
  conn.select_database(self._db_name)
2611
2616
  with conn.cursor(cursor) as cur:
2612
2617
  rows = cur.execute(stmt, args, many)
2613
- return cur.fetchall() if fetch else rows
2618
+ if not fetch:
2619
+ return rows
2620
+ elif fetch_all:
2621
+ return cur.fetchall()
2622
+ else:
2623
+ return cur.fetchone()
2614
2624
 
2615
2625
  # Validate connection requirement
2616
2626
  if self._require_conn:
@@ -2624,13 +2634,19 @@ class DML:
2624
2634
  conn.select_database(self._db_name)
2625
2635
  with conn.transaction(cursor) as cur:
2626
2636
  rows = cur.execute(stmt, args, many)
2627
- return cur.fetchall() if fetch else rows
2637
+ if not fetch:
2638
+ return rows
2639
+ elif fetch_all:
2640
+ return cur.fetchall()
2641
+ else:
2642
+ return cur.fetchone()
2628
2643
 
2629
2644
  async def _aioExecute(
2630
2645
  self,
2631
2646
  args: object = None,
2632
2647
  cursor: type | None = None,
2633
2648
  fetch: cython.bint = True,
2649
+ fetch_all: cython.bint = True,
2634
2650
  many: cython.bint = False,
2635
2651
  conn: object | None = None,
2636
2652
  batch: cython.bint = False,
@@ -2664,6 +2680,10 @@ class DML:
2664
2680
  If 'fetch=False', the statement will be executed but no results will be fetched.
2665
2681
  Instead returns the number of affected rows.
2666
2682
 
2683
+ :param fetch_all `<'bool'>`: Whether to fetch all the result set. Defaults to `True`.
2684
+ Only applicable when 'fetch=True'. If 'fetch_one=True', fetches the entire result set.
2685
+ Else, only one row will be fetched from the result set.
2686
+
2667
2687
  :param many `<'bool'>`: Whether the 'args' (data) is multi-rows. Determines how the data is escaped. Defaults to `False`.
2668
2688
  For a single-row data, set 'many=False'. For a multi-row data, set 'many=True'.
2669
2689
 
@@ -2693,7 +2713,12 @@ class DML:
2693
2713
  await conn.select_database(self._db_name)
2694
2714
  async with conn.cursor(cursor) as cur:
2695
2715
  rows = await cur.execute(stmt, args, many)
2696
- return await cur.fetchall() if fetch else rows
2716
+ if not fetch:
2717
+ return rows
2718
+ elif fetch_all:
2719
+ return await cur.fetchall()
2720
+ else:
2721
+ return await cur.fetchone()
2697
2722
 
2698
2723
  # Validate connection requirement
2699
2724
  if self._require_conn:
@@ -2709,7 +2734,12 @@ class DML:
2709
2734
  await conn.select_database(self._db_name)
2710
2735
  async with conn.transaction(cursor) as cur:
2711
2736
  rows = await cur.execute(stmt, args, many)
2712
- return await cur.fetchall() if fetch else rows
2737
+ if not fetch:
2738
+ return rows
2739
+ elif fetch_all:
2740
+ return await cur.fetchall()
2741
+ else:
2742
+ return await cur.fetchone()
2713
2743
 
2714
2744
  # <-> single-row
2715
2745
  args_escaped = _escape(args, many, True)
@@ -4339,6 +4369,7 @@ class SelectDML(DML):
4339
4369
  args: object | None = None,
4340
4370
  cursor: object | None = None,
4341
4371
  fetch: cython.bint = True,
4372
+ fetch_all: cython.bint = True,
4342
4373
  conn: object | None = None,
4343
4374
  ) -> object:
4344
4375
  """[sync] Execute the SELECT statement, and fetch all the results.
@@ -4372,6 +4403,10 @@ class SelectDML(DML):
4372
4403
  statement that the result set is not needed (e.g., FOR UPDATE). This is normally used
4373
4404
  in a transaction with 'conn' specified.
4374
4405
 
4406
+ :param fetch_all `<'bool'>`: Whether to fetch all the result set. Defaults to `True`.
4407
+ Only applicable when 'fetch=True'. If 'fetch_one=True', fetches the entire result set.
4408
+ Else, only one row will be fetched from the result set.
4409
+
4375
4410
  :param conn `<'PoolSyncConnection/None'>`: The specific [sync] connection to execute the statement. Defaults to `None`.
4376
4411
  If 'conn=None', the statement will be executed by a (random) connection
4377
4412
  from the pool, and commit automatically after the statement execution.
@@ -4415,13 +4450,14 @@ class SelectDML(DML):
4415
4450
  UPDATE ...;
4416
4451
  COMMIT;
4417
4452
  """
4418
- return self._Execute(args, cursor, fetch, False, conn)
4453
+ return self._Execute(args, cursor, fetch, fetch_all, False, conn)
4419
4454
 
4420
4455
  async def aioExecute(
4421
4456
  self,
4422
4457
  args: object | None = None,
4423
4458
  cursor: type | None = None,
4424
4459
  fetch: cython.bint = True,
4460
+ fetch_all: cython.bint = True,
4425
4461
  conn: object | None = None,
4426
4462
  ) -> object:
4427
4463
  """[async] Execute the SELECT statement, and fetch all the results.
@@ -4455,6 +4491,10 @@ class SelectDML(DML):
4455
4491
  statement that the result set is not needed (e.g., FOR UPDATE). This is normally used
4456
4492
  in a transaction with 'conn' specified.
4457
4493
 
4494
+ :param fetch_all `<'bool'>`: Whether to fetch all the result set. Defaults to `True`.
4495
+ Only applicable when 'fetch=True'. If 'fetch_one=True', fetches the entire result set.
4496
+ Else, only one row will be fetched from the result set.
4497
+
4458
4498
  :param conn `<'PoolConnection/None'>`: The specific [async] connection to execute the statement. Defaults to `None`.
4459
4499
  If 'conn=None', the statement will be executed by a (random) connection
4460
4500
  from the pool, and commit automatically after the statement execution.
@@ -4497,7 +4537,9 @@ class SelectDML(DML):
4497
4537
  UPDATE ...;
4498
4538
  COMMIT;
4499
4539
  """
4500
- return await self._aioExecute(args, cursor, fetch, False, conn, False)
4540
+ return await self._aioExecute(
4541
+ args, cursor, fetch, fetch_all, False, conn, False
4542
+ )
4501
4543
 
4502
4544
  # Validate -----------------------------------------------------------------------------
4503
4545
  @cython.cfunc
@@ -5637,7 +5679,7 @@ class InsertDML(DML):
5637
5679
  INSERT INTO db.tb VALUES (...);
5638
5680
  COMMIT;
5639
5681
  """
5640
- return self._Execute(args, None, False, many, conn)
5682
+ return self._Execute(args, None, False, False, many, conn)
5641
5683
 
5642
5684
  async def aioExecute(
5643
5685
  self,
@@ -5705,7 +5747,7 @@ class InsertDML(DML):
5705
5747
  COMMIT;
5706
5748
  """
5707
5749
  batch: cython.bint = self._insert_mode == utils.INSERT_MODE.VALUES_MODE
5708
- return await self._aioExecute(args, None, False, many, conn, batch)
5750
+ return await self._aioExecute(args, None, False, False, many, conn, batch)
5709
5751
 
5710
5752
  # Validate -----------------------------------------------------------------------------
5711
5753
  @cython.cfunc
@@ -6721,7 +6763,7 @@ class ReplaceDML(DML):
6721
6763
  REPLACE INTO db.tb VALUES (...);
6722
6764
  COMMIT;
6723
6765
  """
6724
- return self._Execute(args, None, False, many, conn)
6766
+ return self._Execute(args, None, False, False, many, conn)
6725
6767
 
6726
6768
  async def aioExecute(
6727
6769
  self,
@@ -6789,7 +6831,7 @@ class ReplaceDML(DML):
6789
6831
  COMMIT;
6790
6832
  """
6791
6833
  batch: cython.bint = self._insert_mode == utils.INSERT_MODE.VALUES_MODE
6792
- return await self._aioExecute(args, None, False, many, conn, batch)
6834
+ return await self._aioExecute(args, None, False, False, many, conn, batch)
6793
6835
 
6794
6836
  # Validate -----------------------------------------------------------------------------
6795
6837
  @cython.cfunc
@@ -7468,7 +7510,7 @@ class UpdateDML(DML):
7468
7510
  WHERE id=1;
7469
7511
  COMMIT;
7470
7512
  """
7471
- return self._Execute(args, None, False, many, conn)
7513
+ return self._Execute(args, None, False, False, many, conn)
7472
7514
 
7473
7515
  async def aioExecute(
7474
7516
  self,
@@ -7553,7 +7595,7 @@ class UpdateDML(DML):
7553
7595
  WHERE id=1;
7554
7596
  COMMIT;
7555
7597
  """
7556
- return await self._aioExecute(args, None, False, many, conn, False)
7598
+ return await self._aioExecute(args, None, False, False, many, conn, False)
7557
7599
 
7558
7600
  # Validate -----------------------------------------------------------------------------
7559
7601
  @cython.cfunc
@@ -8192,7 +8234,7 @@ class DeleteDML(DML):
8192
8234
  DELETE FROM db.tb AS t0 WHERE id=1;
8193
8235
  COMMIT;
8194
8236
  """
8195
- return self._Execute(args, None, False, many, conn)
8237
+ return self._Execute(args, None, False, False, many, conn)
8196
8238
 
8197
8239
  async def aioExecute(
8198
8240
  self,
@@ -8267,7 +8309,7 @@ class DeleteDML(DML):
8267
8309
  DELETE FROM db.tb AS t0 WHERE id=1;
8268
8310
  COMMIT;
8269
8311
  """
8270
- return await self._aioExecute(args, None, False, many, conn, False)
8312
+ return await self._aioExecute(args, None, False, False, many, conn, False)
8271
8313
 
8272
8314
  # Validate -----------------------------------------------------------------------------
8273
8315
  @cython.cfunc
mysqlengine/dml.pyi CHANGED
@@ -165,6 +165,7 @@ class SelectDML(DML):
165
165
  type[Cursor | DictCursor | DfCursor | tuple | dict | DataFrame] | None
166
166
  ) = None,
167
167
  fetch: bool = True,
168
+ fetch_all: bool = True,
168
169
  conn: PoolSyncConnection | None = None,
169
170
  ) -> tuple[tuple] | tuple[dict] | DataFrame | int: ...
170
171
  async def aioExecute(
@@ -175,6 +176,7 @@ class SelectDML(DML):
175
176
  | None
176
177
  ) = None,
177
178
  fetch: bool = True,
179
+ fetch_all: bool = True,
178
180
  conn: PoolConnection | None = None,
179
181
  ) -> tuple[tuple] | tuple[dict] | DataFrame | int: ...
180
182
 
mysqlengine/element.c CHANGED
@@ -15,7 +15,7 @@
15
15
  "-Wno-incompatible-pointer-types"
16
16
  ],
17
17
  "include_dirs": [
18
- "/private/var/folders/_l/91ns3hs96sd11p4_lzxh1l140000gn/T/pip-build-env-plpr8u0m/overlay/lib/python3.11/site-packages/numpy/_core/include"
18
+ "/private/var/folders/kg/7q73ww8s3llgyl61c9z_j5g40000gn/T/pip-build-env-3xxdkxlp/overlay/lib/python3.11/site-packages/numpy/_core/include"
19
19
  ],
20
20
  "name": "mysqlengine.element",
21
21
  "sources": [
@@ -1789,7 +1789,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_6Cursor_scroll {
1789
1789
  PyObject *mode;
1790
1790
  };
1791
1791
 
1792
- /* "sqlcycli/connection.pxd":193
1792
+ /* "sqlcycli/connection.pxd":196
1793
1793
  * cdef inline bint _setup_internal(self) except -1
1794
1794
  * # Cursor
1795
1795
  * cpdef Cursor cursor(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1801,7 +1801,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_cursor {
1801
1801
  PyObject *cursor;
1802
1802
  };
1803
1803
 
1804
- /* "sqlcycli/connection.pxd":194
1804
+ /* "sqlcycli/connection.pxd":197
1805
1805
  * # Cursor
1806
1806
  * cpdef Cursor cursor(self, object cursor=?)
1807
1807
  * cpdef TransactionManager transaction(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1813,7 +1813,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_transaction {
1813
1813
  PyObject *cursor;
1814
1814
  };
1815
1815
 
1816
- /* "sqlcycli/connection.pxd":197
1816
+ /* "sqlcycli/connection.pxd":200
1817
1817
  * cdef inline type _validate_cursor(self, object cursor)
1818
1818
  * # Query
1819
1819
  * cpdef unsigned long long query(self, str sql, bint unbuffered=?) # <<<<<<<<<<<<<<
@@ -1825,7 +1825,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_query {
1825
1825
  int unbuffered;
1826
1826
  };
1827
1827
 
1828
- /* "sqlcycli/connection.pxd":207
1828
+ /* "sqlcycli/connection.pxd":210
1829
1829
  * cpdef tuple show_warnings(self)
1830
1830
  * cpdef bint select_database(self, str db) except -1
1831
1831
  * cpdef object escape_args(self, object args, bint many=?, bint itemize=?) # <<<<<<<<<<<<<<
@@ -1838,7 +1838,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_escape_args {
1838
1838
  int itemize;
1839
1839
  };
1840
1840
 
1841
- /* "sqlcycli/connection.pxd":210
1841
+ /* "sqlcycli/connection.pxd":213
1842
1842
  * cpdef bytes encode_sql(self, str sql)
1843
1843
  * # . client
1844
1844
  * cpdef bint set_charset(self, str charset, object collation=?) except -1 # <<<<<<<<<<<<<<
@@ -1850,7 +1850,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_set_charset {
1850
1850
  PyObject *collation;
1851
1851
  };
1852
1852
 
1853
- /* "sqlcycli/connection.pxd":247
1853
+ /* "sqlcycli/connection.pxd":250
1854
1854
  * cpdef bint closed(self) except -1
1855
1855
  * cpdef bint kill(self, int thread_id) except -1
1856
1856
  * cpdef bint ping(self, bint reconnect=?) except -1 # <<<<<<<<<<<<<<
@@ -1862,7 +1862,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_ping {
1862
1862
  int reconnect;
1863
1863
  };
1864
1864
 
1865
- /* "sqlcycli/connection.pxd":261
1865
+ /* "sqlcycli/connection.pxd":264
1866
1866
  * cdef inline bint _set_use_time(self) except -1
1867
1867
  * # Read
1868
1868
  * cpdef unsigned long long next_result(self, bint unbuffered=?) # <<<<<<<<<<<<<<
@@ -1892,7 +1892,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_6Cursor_mogrify {
1892
1892
  int itemize;
1893
1893
  };
1894
1894
 
1895
- /* "connection.pxd":170
1895
+ /* "connection.pxd":173
1896
1896
  * cdef inline bint _setup_internal(self) except -1
1897
1897
  * # Cursor
1898
1898
  * cpdef CursorManager cursor(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1904,7 +1904,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_14BaseConnection_cursor {
1904
1904
  PyObject *cursor;
1905
1905
  };
1906
1906
 
1907
- /* "connection.pxd":171
1907
+ /* "connection.pxd":174
1908
1908
  * # Cursor
1909
1909
  * cpdef CursorManager cursor(self, object cursor=?)
1910
1910
  * cpdef TransactionManager transaction(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1916,7 +1916,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_14BaseConnection_transaction {
1916
1916
  PyObject *cursor;
1917
1917
  };
1918
1918
 
1919
- /* "connection.pxd":174
1919
+ /* "connection.pxd":177
1920
1920
  * cdef inline type _validate_cursor(self, object cursor)
1921
1921
  * # Query
1922
1922
  * cpdef object escape_args(self, object args, bint many=?, bint itemize=?) # <<<<<<<<<<<<<<
@@ -1930,7 +1930,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_14BaseConnection_escape_args {
1930
1930
  };
1931
1931
  struct __pyx_opt_args_8sqlcycli_3aio_4pool_4Pool_escape_args;
1932
1932
 
1933
- /* "sqlcycli/aio/pool.pxd":131
1933
+ /* "sqlcycli/aio/pool.pxd":134
1934
1934
  * cdef inline bint _verify_open(self) except -1
1935
1935
  * # Query
1936
1936
  * cpdef object escape_args(self, object args, bint many=?, bint itemize=?) # <<<<<<<<<<<<<<
@@ -2658,6 +2658,8 @@ struct __pyx_obj_8sqlcycli_10connection_BaseConnection {
2658
2658
  int _use_decimal;
2659
2659
  int _decode_bit;
2660
2660
  int _decode_json;
2661
+ PyObject *_retry_errno;
2662
+ int _retry_times;
2661
2663
  int _server_protocol_version;
2662
2664
  PyObject *_server_info;
2663
2665
  PyObject *_server_version;
@@ -2678,7 +2680,7 @@ struct __pyx_obj_8sqlcycli_10connection_BaseConnection {
2678
2680
  };
2679
2681
 
2680
2682
 
2681
- /* "sqlcycli/connection.pxd":269
2683
+ /* "sqlcycli/connection.pxd":272
2682
2684
  * cdef inline bytes _read_bytes(self, unsigned int size)
2683
2685
  *
2684
2686
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -2879,6 +2881,8 @@ struct __pyx_obj_8sqlcycli_3aio_10connection_BaseConnection {
2879
2881
  int _use_decimal;
2880
2882
  int _decode_bit;
2881
2883
  int _decode_json;
2884
+ PyObject *_retry_errno;
2885
+ int _retry_times;
2882
2886
  int _server_protocol_version;
2883
2887
  PyObject *_server_info;
2884
2888
  PyObject *_server_version;
@@ -2900,7 +2904,7 @@ struct __pyx_obj_8sqlcycli_3aio_10connection_BaseConnection {
2900
2904
  };
2901
2905
 
2902
2906
 
2903
- /* "connection.pxd":200
2907
+ /* "connection.pxd":203
2904
2908
  * cdef inline bint _set_use_time(self) except -1
2905
2909
  *
2906
2910
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -3027,6 +3031,8 @@ struct __pyx_obj_8sqlcycli_3aio_4pool_Pool {
3027
3031
  int _use_decimal;
3028
3032
  int _decode_bit;
3029
3033
  int _decode_json;
3034
+ PyObject *_retry_errno;
3035
+ int _retry_times;
3030
3036
  };
3031
3037
 
3032
3038
 
@@ -3696,7 +3702,7 @@ struct __pyx_vtabstruct_8sqlcycli_10connection_BaseConnection {
3696
3702
  static struct __pyx_vtabstruct_8sqlcycli_10connection_BaseConnection *__pyx_vtabptr_8sqlcycli_10connection_BaseConnection;
3697
3703
 
3698
3704
 
3699
- /* "sqlcycli/connection.pxd":269
3705
+ /* "sqlcycli/connection.pxd":272
3700
3706
  * cdef inline bytes _read_bytes(self, unsigned int size)
3701
3707
  *
3702
3708
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -3859,7 +3865,7 @@ struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_BaseConnection {
3859
3865
  static struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_BaseConnection *__pyx_vtabptr_8sqlcycli_3aio_10connection_BaseConnection;
3860
3866
 
3861
3867
 
3862
- /* "connection.pxd":200
3868
+ /* "connection.pxd":203
3863
3869
  * cdef inline bint _set_use_time(self) except -1
3864
3870
  *
3865
3871
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -58356,8 +58362,8 @@ static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
58356
58362
  #else
58357
58363
  sizeof(struct __pyx_obj_8sqlcycli_10connection_Connection), __PYX_GET_STRUCT_ALIGNMENT_3_2_1(struct __pyx_obj_8sqlcycli_10connection_Connection),
58358
58364
  #endif
58359
- __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection) __PYX_ERR(10, 269, __pyx_L1_error)
58360
- __pyx_vtabptr_8sqlcycli_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_10connection_Connection)) __PYX_ERR(10, 269, __pyx_L1_error)
58365
+ __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection) __PYX_ERR(10, 272, __pyx_L1_error)
58366
+ __pyx_vtabptr_8sqlcycli_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_10connection_Connection)) __PYX_ERR(10, 272, __pyx_L1_error)
58361
58367
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58362
58368
  __pyx_t_1 = PyImport_ImportModule("sqlcycli.aio.connection"); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 7, __pyx_L1_error)
58363
58369
  __Pyx_GOTREF(__pyx_t_1);
@@ -58467,8 +58473,8 @@ static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
58467
58473
  #else
58468
58474
  sizeof(struct __pyx_obj_8sqlcycli_3aio_10connection_Connection), __PYX_GET_STRUCT_ALIGNMENT_3_2_1(struct __pyx_obj_8sqlcycli_3aio_10connection_Connection),
58469
58475
  #endif
58470
- __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection) __PYX_ERR(11, 200, __pyx_L1_error)
58471
- __pyx_vtabptr_8sqlcycli_3aio_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_10connection_Connection)) __PYX_ERR(11, 200, __pyx_L1_error)
58476
+ __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection) __PYX_ERR(11, 203, __pyx_L1_error)
58477
+ __pyx_vtabptr_8sqlcycli_3aio_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_10connection_Connection)) __PYX_ERR(11, 203, __pyx_L1_error)
58472
58478
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
58473
58479
  __pyx_t_1 = PyImport_ImportModule("sqlcycli.aio.pool"); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 12, __pyx_L1_error)
58474
58480
  __Pyx_GOTREF(__pyx_t_1);
Binary file
mysqlengine/index.c CHANGED
@@ -15,7 +15,7 @@
15
15
  "-Wno-incompatible-pointer-types"
16
16
  ],
17
17
  "include_dirs": [
18
- "/private/var/folders/_l/91ns3hs96sd11p4_lzxh1l140000gn/T/pip-build-env-plpr8u0m/overlay/lib/python3.11/site-packages/numpy/_core/include"
18
+ "/private/var/folders/kg/7q73ww8s3llgyl61c9z_j5g40000gn/T/pip-build-env-3xxdkxlp/overlay/lib/python3.11/site-packages/numpy/_core/include"
19
19
  ],
20
20
  "name": "mysqlengine.index",
21
21
  "sources": [
@@ -1739,7 +1739,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_6Cursor_scroll {
1739
1739
  PyObject *mode;
1740
1740
  };
1741
1741
 
1742
- /* "sqlcycli/connection.pxd":193
1742
+ /* "sqlcycli/connection.pxd":196
1743
1743
  * cdef inline bint _setup_internal(self) except -1
1744
1744
  * # Cursor
1745
1745
  * cpdef Cursor cursor(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1751,7 +1751,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_cursor {
1751
1751
  PyObject *cursor;
1752
1752
  };
1753
1753
 
1754
- /* "sqlcycli/connection.pxd":194
1754
+ /* "sqlcycli/connection.pxd":197
1755
1755
  * # Cursor
1756
1756
  * cpdef Cursor cursor(self, object cursor=?)
1757
1757
  * cpdef TransactionManager transaction(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1763,7 +1763,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_transaction {
1763
1763
  PyObject *cursor;
1764
1764
  };
1765
1765
 
1766
- /* "sqlcycli/connection.pxd":197
1766
+ /* "sqlcycli/connection.pxd":200
1767
1767
  * cdef inline type _validate_cursor(self, object cursor)
1768
1768
  * # Query
1769
1769
  * cpdef unsigned long long query(self, str sql, bint unbuffered=?) # <<<<<<<<<<<<<<
@@ -1775,7 +1775,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_query {
1775
1775
  int unbuffered;
1776
1776
  };
1777
1777
 
1778
- /* "sqlcycli/connection.pxd":207
1778
+ /* "sqlcycli/connection.pxd":210
1779
1779
  * cpdef tuple show_warnings(self)
1780
1780
  * cpdef bint select_database(self, str db) except -1
1781
1781
  * cpdef object escape_args(self, object args, bint many=?, bint itemize=?) # <<<<<<<<<<<<<<
@@ -1788,7 +1788,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_escape_args {
1788
1788
  int itemize;
1789
1789
  };
1790
1790
 
1791
- /* "sqlcycli/connection.pxd":210
1791
+ /* "sqlcycli/connection.pxd":213
1792
1792
  * cpdef bytes encode_sql(self, str sql)
1793
1793
  * # . client
1794
1794
  * cpdef bint set_charset(self, str charset, object collation=?) except -1 # <<<<<<<<<<<<<<
@@ -1800,7 +1800,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_set_charset {
1800
1800
  PyObject *collation;
1801
1801
  };
1802
1802
 
1803
- /* "sqlcycli/connection.pxd":247
1803
+ /* "sqlcycli/connection.pxd":250
1804
1804
  * cpdef bint closed(self) except -1
1805
1805
  * cpdef bint kill(self, int thread_id) except -1
1806
1806
  * cpdef bint ping(self, bint reconnect=?) except -1 # <<<<<<<<<<<<<<
@@ -1812,7 +1812,7 @@ struct __pyx_opt_args_8sqlcycli_10connection_14BaseConnection_ping {
1812
1812
  int reconnect;
1813
1813
  };
1814
1814
 
1815
- /* "sqlcycli/connection.pxd":261
1815
+ /* "sqlcycli/connection.pxd":264
1816
1816
  * cdef inline bint _set_use_time(self) except -1
1817
1817
  * # Read
1818
1818
  * cpdef unsigned long long next_result(self, bint unbuffered=?) # <<<<<<<<<<<<<<
@@ -1842,7 +1842,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_6Cursor_mogrify {
1842
1842
  int itemize;
1843
1843
  };
1844
1844
 
1845
- /* "connection.pxd":170
1845
+ /* "connection.pxd":173
1846
1846
  * cdef inline bint _setup_internal(self) except -1
1847
1847
  * # Cursor
1848
1848
  * cpdef CursorManager cursor(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1854,7 +1854,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_14BaseConnection_cursor {
1854
1854
  PyObject *cursor;
1855
1855
  };
1856
1856
 
1857
- /* "connection.pxd":171
1857
+ /* "connection.pxd":174
1858
1858
  * # Cursor
1859
1859
  * cpdef CursorManager cursor(self, object cursor=?)
1860
1860
  * cpdef TransactionManager transaction(self, object cursor=?) # <<<<<<<<<<<<<<
@@ -1866,7 +1866,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_14BaseConnection_transaction {
1866
1866
  PyObject *cursor;
1867
1867
  };
1868
1868
 
1869
- /* "connection.pxd":174
1869
+ /* "connection.pxd":177
1870
1870
  * cdef inline type _validate_cursor(self, object cursor)
1871
1871
  * # Query
1872
1872
  * cpdef object escape_args(self, object args, bint many=?, bint itemize=?) # <<<<<<<<<<<<<<
@@ -1880,7 +1880,7 @@ struct __pyx_opt_args_8sqlcycli_3aio_10connection_14BaseConnection_escape_args {
1880
1880
  };
1881
1881
  struct __pyx_opt_args_8sqlcycli_3aio_4pool_4Pool_escape_args;
1882
1882
 
1883
- /* "sqlcycli/aio/pool.pxd":131
1883
+ /* "sqlcycli/aio/pool.pxd":134
1884
1884
  * cdef inline bint _verify_open(self) except -1
1885
1885
  * # Query
1886
1886
  * cpdef object escape_args(self, object args, bint many=?, bint itemize=?) # <<<<<<<<<<<<<<
@@ -2660,6 +2660,8 @@ struct __pyx_obj_8sqlcycli_10connection_BaseConnection {
2660
2660
  int _use_decimal;
2661
2661
  int _decode_bit;
2662
2662
  int _decode_json;
2663
+ PyObject *_retry_errno;
2664
+ int _retry_times;
2663
2665
  int _server_protocol_version;
2664
2666
  PyObject *_server_info;
2665
2667
  PyObject *_server_version;
@@ -2680,7 +2682,7 @@ struct __pyx_obj_8sqlcycli_10connection_BaseConnection {
2680
2682
  };
2681
2683
 
2682
2684
 
2683
- /* "sqlcycli/connection.pxd":269
2685
+ /* "sqlcycli/connection.pxd":272
2684
2686
  * cdef inline bytes _read_bytes(self, unsigned int size)
2685
2687
  *
2686
2688
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -2881,6 +2883,8 @@ struct __pyx_obj_8sqlcycli_3aio_10connection_BaseConnection {
2881
2883
  int _use_decimal;
2882
2884
  int _decode_bit;
2883
2885
  int _decode_json;
2886
+ PyObject *_retry_errno;
2887
+ int _retry_times;
2884
2888
  int _server_protocol_version;
2885
2889
  PyObject *_server_info;
2886
2890
  PyObject *_server_version;
@@ -2902,7 +2906,7 @@ struct __pyx_obj_8sqlcycli_3aio_10connection_BaseConnection {
2902
2906
  };
2903
2907
 
2904
2908
 
2905
- /* "connection.pxd":200
2909
+ /* "connection.pxd":203
2906
2910
  * cdef inline bint _set_use_time(self) except -1
2907
2911
  *
2908
2912
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -3029,6 +3033,8 @@ struct __pyx_obj_8sqlcycli_3aio_4pool_Pool {
3029
3033
  int _use_decimal;
3030
3034
  int _decode_bit;
3031
3035
  int _decode_json;
3036
+ PyObject *_retry_errno;
3037
+ int _retry_times;
3032
3038
  };
3033
3039
 
3034
3040
 
@@ -3974,7 +3980,7 @@ struct __pyx_vtabstruct_8sqlcycli_10connection_BaseConnection {
3974
3980
  static struct __pyx_vtabstruct_8sqlcycli_10connection_BaseConnection *__pyx_vtabptr_8sqlcycli_10connection_BaseConnection;
3975
3981
 
3976
3982
 
3977
- /* "sqlcycli/connection.pxd":269
3983
+ /* "sqlcycli/connection.pxd":272
3978
3984
  * cdef inline bytes _read_bytes(self, unsigned int size)
3979
3985
  *
3980
3986
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -4137,7 +4143,7 @@ struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_BaseConnection {
4137
4143
  static struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_BaseConnection *__pyx_vtabptr_8sqlcycli_3aio_10connection_BaseConnection;
4138
4144
 
4139
4145
 
4140
- /* "connection.pxd":200
4146
+ /* "connection.pxd":203
4141
4147
  * cdef inline bint _set_use_time(self) except -1
4142
4148
  *
4143
4149
  * cdef class Connection(BaseConnection): # <<<<<<<<<<<<<<
@@ -50120,8 +50126,8 @@ static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
50120
50126
  #else
50121
50127
  sizeof(struct __pyx_obj_8sqlcycli_10connection_Connection), __PYX_GET_STRUCT_ALIGNMENT_3_2_1(struct __pyx_obj_8sqlcycli_10connection_Connection),
50122
50128
  #endif
50123
- __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection) __PYX_ERR(8, 269, __pyx_L1_error)
50124
- __pyx_vtabptr_8sqlcycli_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_10connection_Connection)) __PYX_ERR(8, 269, __pyx_L1_error)
50129
+ __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection) __PYX_ERR(8, 272, __pyx_L1_error)
50130
+ __pyx_vtabptr_8sqlcycli_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_10connection_Connection)) __PYX_ERR(8, 272, __pyx_L1_error)
50125
50131
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50126
50132
  __pyx_t_1 = PyImport_ImportModule("sqlcycli.aio.connection"); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 7, __pyx_L1_error)
50127
50133
  __Pyx_GOTREF(__pyx_t_1);
@@ -50231,8 +50237,8 @@ static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
50231
50237
  #else
50232
50238
  sizeof(struct __pyx_obj_8sqlcycli_3aio_10connection_Connection), __PYX_GET_STRUCT_ALIGNMENT_3_2_1(struct __pyx_obj_8sqlcycli_3aio_10connection_Connection),
50233
50239
  #endif
50234
- __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection) __PYX_ERR(9, 200, __pyx_L1_error)
50235
- __pyx_vtabptr_8sqlcycli_3aio_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_10connection_Connection)) __PYX_ERR(9, 200, __pyx_L1_error)
50240
+ __Pyx_ImportType_CheckSize_Warn_3_2_1); if (!__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection) __PYX_ERR(9, 203, __pyx_L1_error)
50241
+ __pyx_vtabptr_8sqlcycli_3aio_10connection_Connection = (struct __pyx_vtabstruct_8sqlcycli_3aio_10connection_Connection*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_8sqlcycli_3aio_10connection_Connection); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_10connection_Connection)) __PYX_ERR(9, 203, __pyx_L1_error)
50236
50242
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
50237
50243
  __pyx_t_1 = PyImport_ImportModule("sqlcycli.aio.pool"); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
50238
50244
  __Pyx_GOTREF(__pyx_t_1);
Binary file