sqlcycli 1.3.8__tar.gz → 1.4.1__tar.gz

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.
Files changed (90) hide show
  1. {sqlcycli-1.3.8/src/sqlcycli.egg-info → sqlcycli-1.4.1}/PKG-INFO +12 -30
  2. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/README.md +10 -28
  3. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/setup.cfg +2 -2
  4. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_auth.c +1 -1
  5. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_connect.c +39 -5
  6. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/connection.c +5177 -5634
  7. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/connection.py +20 -28
  8. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/pool.c +7725 -3828
  9. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/pool.pxd +6 -2
  10. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/pool.py +153 -25
  11. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/pool.pyi +11 -1
  12. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/connection.c +3584 -4056
  13. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/connection.py +20 -28
  14. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/errors.c +1 -1
  15. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/protocol.c +1 -1
  16. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlfunc.c +1 -1
  17. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlintvl.c +1 -1
  18. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/transcode.c +4415 -4515
  19. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/transcode.pxd +1 -1
  20. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/transcode.py +135 -196
  21. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/utils.c +165 -165
  22. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/utils.pxd +1 -1
  23. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/utils.py +2 -2
  24. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/utils.pyi +1 -1
  25. {sqlcycli-1.3.8 → sqlcycli-1.4.1/src/sqlcycli.egg-info}/PKG-INFO +12 -30
  26. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli.egg-info/requires.txt +1 -1
  27. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/LICENSE +0 -0
  28. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/MANIFEST.in +0 -0
  29. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/pyproject.toml +0 -0
  30. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/setup.py +0 -0
  31. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/__init__.pxd +0 -0
  32. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/__init__.py +0 -0
  33. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_auth.pxd +0 -0
  34. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_auth.py +0 -0
  35. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_connect.pxd +0 -0
  36. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_connect.py +0 -0
  37. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_optionfile.c +0 -0
  38. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_optionfile.pxd +0 -0
  39. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_optionfile.py +0 -0
  40. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_ssl.c +0 -0
  41. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_ssl.pxd +0 -0
  42. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/_ssl.py +0 -0
  43. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/__init__.pxd +0 -0
  44. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/__init__.py +0 -0
  45. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/connection.pxd +0 -0
  46. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/aio/connection.pyi +0 -0
  47. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/charset.c +0 -0
  48. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/charset.pxd +0 -0
  49. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/charset.py +0 -0
  50. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/charset.pyi +0 -0
  51. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/connection.pxd +0 -0
  52. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/connection.pyi +0 -0
  53. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/CLIENT.py +0 -0
  54. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/COMMAND.py +0 -0
  55. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/CR.py +0 -0
  56. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/ER.py +0 -0
  57. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/FIELD_TYPE.py +0 -0
  58. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/FLAG.py +0 -0
  59. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/SERVER_STATUS.py +0 -0
  60. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_CLIENT.c +0 -0
  61. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_CLIENT.pxd +0 -0
  62. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_CLIENT.py +0 -0
  63. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_COMMAND.c +0 -0
  64. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_COMMAND.pxd +0 -0
  65. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_COMMAND.py +0 -0
  66. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_FIELD_TYPE.c +0 -0
  67. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_FIELD_TYPE.pxd +0 -0
  68. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_FIELD_TYPE.py +0 -0
  69. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_SERVER_STATUS.c +0 -0
  70. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_SERVER_STATUS.pxd +0 -0
  71. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/_SERVER_STATUS.py +0 -0
  72. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/__init__.pxd +0 -0
  73. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/constants/__init__.py +0 -0
  74. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/errors.pxd +0 -0
  75. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/errors.py +0 -0
  76. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/protocol.pxd +0 -0
  77. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/protocol.py +0 -0
  78. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlfunc.pxd +0 -0
  79. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlfunc.py +0 -0
  80. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlfunc.pyi +0 -0
  81. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlintvl.pxd +0 -0
  82. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlintvl.py +0 -0
  83. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/sqlintvl.pyi +0 -0
  84. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/typeref.c +0 -0
  85. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/typeref.pxd +0 -0
  86. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli/typeref.py +0 -0
  87. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli.egg-info/SOURCES.txt +0 -0
  88. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli.egg-info/dependency_links.txt +0 -0
  89. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli.egg-info/not-zip-safe +0 -0
  90. {sqlcycli-1.3.8 → sqlcycli-1.4.1}/src/sqlcycli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlcycli
3
- Version: 1.3.8
3
+ Version: 1.4.1
4
4
  Summary: Fast MySQL driver build in Cython (Sync and Async).
5
5
  Home-page: https://github.com/AresJef/SQLCyCli
6
6
  Author: Jiefu Chen
@@ -17,7 +17,7 @@ License-File: LICENSE
17
17
  Requires-Dist: numpy>=1.25.2
18
18
  Requires-Dist: orjson>=3.10.2
19
19
  Requires-Dist: pandas>=2.1.0
20
- Requires-Dist: mysqlclient>=2.2.0
20
+ Requires-Dist: typing-extensions>=4.9.0
21
21
  Dynamic: license-file
22
22
 
23
23
  # Fast MySQL driver build in Cython (Sync and Async).
@@ -38,19 +38,6 @@ Install from `github`
38
38
  pip install git+https://github.com/AresJef/SQLCyCli.git
39
39
  ```
40
40
 
41
- For Linux systems, if you encounter the following error when installing the SQLCyCli dependency [mysqlclient](https://github.com/PyMySQL/mysqlclient):
42
-
43
- ```
44
- Exception: Can not find valid pkg-config name.
45
- Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
46
- ```
47
-
48
- Try the following to fix dependency issue (source: [Stack Overflow](https://stackoverflow.com/questions/76585758/mysqlclient-cannot-install-via-pip-cannot-find-pkg-config-name-in-ubuntu)):
49
-
50
- ```bash
51
- sudo apt-get install pkg-config python3-dev default-libmysqlclient-dev build-essential
52
- ```
53
-
54
41
  ## Requirements
55
42
 
56
43
  - Python 3.10 or higher.
@@ -70,8 +57,6 @@ The following result comes from [benchmark](./src/benchmark.py):
70
57
 
71
58
  - Device: MacbookPro M1Pro(2E8P) 32GB
72
59
  - Python: 3.12.4
73
- - MySQL: 8.3.0
74
- - mysqlclient: 2.2.4
75
60
  - PyMySQL: 1.1.1
76
61
  - aiomysql: 0.2.0
77
62
  - asyncmy: 0.2.9
@@ -79,23 +64,21 @@ The following result comes from [benchmark](./src/benchmark.py):
79
64
  ```
80
65
  # Unit: second | Lower is better
81
66
  name type rows insert-per-row insert-bulk select-per-row select-all
82
- mysqlclient sync 50000 1.729575 0.435661 1.719481 0.117943
83
- SQLCyCli sync 50000 2.165910 0.275736 2.215093 0.056679
84
- PyMySQL sync 50000 2.553401 0.404618 4.212548 0.325706
85
- SQLCyCli async 50000 3.347850 0.282364 4.153874 0.135656
86
- aiomysql async 50000 3.478428 0.394711 5.101733 0.321200
87
- asyncmy async 50000 3.665675 0.397671 5.483239 0.313418
67
+ SQLCyCli sync 50000 2.428453 0.367404 2.526141 0.078057
68
+ PyMySQL sync 50000 2.821481 0.480322 4.784844 0.335978
69
+ SQLCyCli async 50000 3.757844 0.340909 5.017284 0.157078
70
+ aiomysql async 50000 3.845818 0.419444 5.764339 0.333526
71
+ asyncmy async 50000 4.015180 0.484794 6.144809 0.337285
88
72
  ```
89
73
 
90
74
  ```
91
75
  # Unit: second | Lower is better
92
76
  name type rows update-per-row update-all delete-per-row delete-all
93
- mysqlclient sync 50000 1.735787 0.345561 1.531275 0.105109
94
- SQLCyCli sync 50000 2.241458 0.343359 2.078324 0.104441
95
- PyMySQL sync 50000 2.516349 0.344614 2.264735 0.104326
96
- SQLCyCli async 50000 3.465996 0.343864 3.269337 0.103967
97
- aiomysql async 50000 3.534125 0.344573 3.345815 0.104281
98
- asyncmy async 50000 3.695764 0.352104 3.460674 0.104523
77
+ SQLCyCli sync 50000 2.597837 0.327441 2.251010 0.131872
78
+ PyMySQL sync 50000 3.044907 0.368951 2.789961 0.158141
79
+ SQLCyCli async 50000 4.226546 0.369085 3.994125 0.139679
80
+ aiomysql async 50000 3.792293 0.356109 3.589203 0.134762
81
+ asyncmy async 50000 4.160017 0.362896 3.928555 0.145456
99
82
  ```
100
83
 
101
84
  ## Usage
@@ -299,4 +282,3 @@ SQLCyCli is based on the following open-source repositories:
299
282
  - [numpy](https://github.com/numpy/numpy)
300
283
  - [orjson](https://github.com/ijl/orjson)
301
284
  - [pandas](https://github.com/pandas-dev/pandas)
302
- - [mysqlclient](https://github.com/PyMySQL/mysqlclient)
@@ -16,19 +16,6 @@ Install from `github`
16
16
  pip install git+https://github.com/AresJef/SQLCyCli.git
17
17
  ```
18
18
 
19
- For Linux systems, if you encounter the following error when installing the SQLCyCli dependency [mysqlclient](https://github.com/PyMySQL/mysqlclient):
20
-
21
- ```
22
- Exception: Can not find valid pkg-config name.
23
- Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
24
- ```
25
-
26
- Try the following to fix dependency issue (source: [Stack Overflow](https://stackoverflow.com/questions/76585758/mysqlclient-cannot-install-via-pip-cannot-find-pkg-config-name-in-ubuntu)):
27
-
28
- ```bash
29
- sudo apt-get install pkg-config python3-dev default-libmysqlclient-dev build-essential
30
- ```
31
-
32
19
  ## Requirements
33
20
 
34
21
  - Python 3.10 or higher.
@@ -48,8 +35,6 @@ The following result comes from [benchmark](./src/benchmark.py):
48
35
 
49
36
  - Device: MacbookPro M1Pro(2E8P) 32GB
50
37
  - Python: 3.12.4
51
- - MySQL: 8.3.0
52
- - mysqlclient: 2.2.4
53
38
  - PyMySQL: 1.1.1
54
39
  - aiomysql: 0.2.0
55
40
  - asyncmy: 0.2.9
@@ -57,23 +42,21 @@ The following result comes from [benchmark](./src/benchmark.py):
57
42
  ```
58
43
  # Unit: second | Lower is better
59
44
  name type rows insert-per-row insert-bulk select-per-row select-all
60
- mysqlclient sync 50000 1.729575 0.435661 1.719481 0.117943
61
- SQLCyCli sync 50000 2.165910 0.275736 2.215093 0.056679
62
- PyMySQL sync 50000 2.553401 0.404618 4.212548 0.325706
63
- SQLCyCli async 50000 3.347850 0.282364 4.153874 0.135656
64
- aiomysql async 50000 3.478428 0.394711 5.101733 0.321200
65
- asyncmy async 50000 3.665675 0.397671 5.483239 0.313418
45
+ SQLCyCli sync 50000 2.428453 0.367404 2.526141 0.078057
46
+ PyMySQL sync 50000 2.821481 0.480322 4.784844 0.335978
47
+ SQLCyCli async 50000 3.757844 0.340909 5.017284 0.157078
48
+ aiomysql async 50000 3.845818 0.419444 5.764339 0.333526
49
+ asyncmy async 50000 4.015180 0.484794 6.144809 0.337285
66
50
  ```
67
51
 
68
52
  ```
69
53
  # Unit: second | Lower is better
70
54
  name type rows update-per-row update-all delete-per-row delete-all
71
- mysqlclient sync 50000 1.735787 0.345561 1.531275 0.105109
72
- SQLCyCli sync 50000 2.241458 0.343359 2.078324 0.104441
73
- PyMySQL sync 50000 2.516349 0.344614 2.264735 0.104326
74
- SQLCyCli async 50000 3.465996 0.343864 3.269337 0.103967
75
- aiomysql async 50000 3.534125 0.344573 3.345815 0.104281
76
- asyncmy async 50000 3.695764 0.352104 3.460674 0.104523
55
+ SQLCyCli sync 50000 2.597837 0.327441 2.251010 0.131872
56
+ PyMySQL sync 50000 3.044907 0.368951 2.789961 0.158141
57
+ SQLCyCli async 50000 4.226546 0.369085 3.994125 0.139679
58
+ aiomysql async 50000 3.792293 0.356109 3.589203 0.134762
59
+ asyncmy async 50000 4.160017 0.362896 3.928555 0.145456
77
60
  ```
78
61
 
79
62
  ## Usage
@@ -277,4 +260,3 @@ SQLCyCli is based on the following open-source repositories:
277
260
  - [numpy](https://github.com/numpy/numpy)
278
261
  - [orjson](https://github.com/ijl/orjson)
279
262
  - [pandas](https://github.com/pandas-dev/pandas)
280
- - [mysqlclient](https://github.com/PyMySQL/mysqlclient)
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = sqlcycli
3
- version = 1.3.8
3
+ version = 1.4.1
4
4
  author = Jiefu Chen
5
5
  author_email = keppa1991@163.com
6
6
  description = Fast MySQL driver build in Cython (Sync and Async).
@@ -26,7 +26,7 @@ install_requires =
26
26
  numpy>=1.25.2
27
27
  orjson>=3.10.2
28
28
  pandas>=2.1.0
29
- mysqlclient>=2.2.0
29
+ typing-extensions>=4.9.0
30
30
 
31
31
  [options.packages.find]
32
32
  where = src
@@ -13,7 +13,7 @@
13
13
  "-Wno-unreachable-code"
14
14
  ],
15
15
  "include_dirs": [
16
- "/tmp/build-env-yqko7sk6/lib/python3.12/site-packages/numpy/_core/include"
16
+ "/tmp/build-env-qjota9sk/lib/python3.12/site-packages/numpy/_core/include"
17
17
  ],
18
18
  "name": "sqlcycli._auth",
19
19
  "sources": [
@@ -1531,6 +1531,7 @@ struct __pyx_obj_8sqlcycli_3aio_10connection_BaseConnection;
1531
1531
  struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnection;
1532
1532
  struct __pyx_obj_8sqlcycli_3aio_4pool_PoolSyncConnection;
1533
1533
  struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager;
1534
+ struct __pyx_obj_8sqlcycli_3aio_4pool_PoolTransactionManager;
1534
1535
  struct __pyx_obj_8sqlcycli_3aio_4pool_Pool;
1535
1536
  struct __pyx_obj_8sqlcycli_8_connect_ConnectionManager;
1536
1537
  struct __pyx_obj_8sqlcycli_8_connect_PoolManager;
@@ -2410,7 +2411,19 @@ struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager {
2410
2411
 
2411
2412
 
2412
2413
  /* "pool.pxd":34
2413
- * cdef inline bint _release_sync_conn(self) except -1
2414
+ * cdef inline bint _release_sync_conn(self, bint close) except -1
2415
+ *
2416
+ * cdef class PoolTransactionManager(PoolConnectionManager): # <<<<<<<<<<<<<<
2417
+ * pass
2418
+ *
2419
+ */
2420
+ struct __pyx_obj_8sqlcycli_3aio_4pool_PoolTransactionManager {
2421
+ struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager __pyx_base;
2422
+ };
2423
+
2424
+
2425
+ /* "pool.pxd":37
2426
+ * pass
2414
2427
  *
2415
2428
  * cdef class Pool: # <<<<<<<<<<<<<<
2416
2429
  * cdef:
@@ -3135,13 +3148,27 @@ static struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolSyncConnection *__pyx_vt
3135
3148
 
3136
3149
  struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolConnectionManager {
3137
3150
  struct __pyx_obj_8sqlcycli_3aio_4pool_PoolSyncConnection *(*_acquire_sync_conn)(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager *);
3138
- int (*_release_sync_conn)(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager *);
3151
+ int (*_release_sync_conn)(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager *, int);
3139
3152
  };
3140
3153
  static struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolConnectionManager *__pyx_vtabptr_8sqlcycli_3aio_4pool_PoolConnectionManager;
3141
3154
 
3142
3155
 
3143
3156
  /* "pool.pxd":34
3144
- * cdef inline bint _release_sync_conn(self) except -1
3157
+ * cdef inline bint _release_sync_conn(self, bint close) except -1
3158
+ *
3159
+ * cdef class PoolTransactionManager(PoolConnectionManager): # <<<<<<<<<<<<<<
3160
+ * pass
3161
+ *
3162
+ */
3163
+
3164
+ struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolTransactionManager {
3165
+ struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolConnectionManager __pyx_base;
3166
+ };
3167
+ static struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolTransactionManager *__pyx_vtabptr_8sqlcycli_3aio_4pool_PoolTransactionManager;
3168
+
3169
+
3170
+ /* "pool.pxd":37
3171
+ * pass
3145
3172
  *
3146
3173
  * cdef class Pool: # <<<<<<<<<<<<<<
3147
3174
  * cdef:
@@ -3163,6 +3190,7 @@ struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_Pool {
3163
3190
  unsigned int (*_get_total)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *);
3164
3191
  PyObject *(*_get_loop)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *);
3165
3192
  struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager *(*acquire)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *, int __pyx_skip_dispatch);
3193
+ struct __pyx_obj_8sqlcycli_3aio_4pool_PoolTransactionManager *(*transaction)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *, int __pyx_skip_dispatch);
3166
3194
  PyObject *(*release)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *, PyObject *, int __pyx_skip_dispatch);
3167
3195
  struct __pyx_obj_8sqlcycli_3aio_4pool_PoolSyncConnection *(*_acquire_sync_conn)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *);
3168
3196
  int (*_release_sync_conn)(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool *, struct __pyx_obj_8sqlcycli_3aio_4pool_PoolSyncConnection *);
@@ -4344,6 +4372,7 @@ typedef struct {
4344
4372
  PyTypeObject *__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnection;
4345
4373
  PyTypeObject *__pyx_ptype_8sqlcycli_3aio_4pool_PoolSyncConnection;
4346
4374
  PyTypeObject *__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager;
4375
+ PyTypeObject *__pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager;
4347
4376
  PyTypeObject *__pyx_ptype_8sqlcycli_3aio_4pool_Pool;
4348
4377
  #if CYTHON_USE_MODULE_STATE
4349
4378
  #endif
@@ -4673,6 +4702,7 @@ static int __pyx_m_clear(PyObject *m) {
4673
4702
  Py_CLEAR(clear_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnection);
4674
4703
  Py_CLEAR(clear_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolSyncConnection);
4675
4704
  Py_CLEAR(clear_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager);
4705
+ Py_CLEAR(clear_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager);
4676
4706
  Py_CLEAR(clear_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_Pool);
4677
4707
  Py_CLEAR(clear_module_state->__pyx_ptype_8sqlcycli_8_connect_ConnectionManager);
4678
4708
  Py_CLEAR(clear_module_state->__pyx_type_8sqlcycli_8_connect_ConnectionManager);
@@ -4976,6 +5006,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
4976
5006
  Py_VISIT(traverse_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnection);
4977
5007
  Py_VISIT(traverse_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolSyncConnection);
4978
5008
  Py_VISIT(traverse_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager);
5009
+ Py_VISIT(traverse_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager);
4979
5010
  Py_VISIT(traverse_module_state->__pyx_ptype_8sqlcycli_3aio_4pool_Pool);
4980
5011
  Py_VISIT(traverse_module_state->__pyx_ptype_8sqlcycli_8_connect_ConnectionManager);
4981
5012
  Py_VISIT(traverse_module_state->__pyx_type_8sqlcycli_8_connect_ConnectionManager);
@@ -5303,6 +5334,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
5303
5334
  #define __pyx_ptype_8sqlcycli_3aio_4pool_PoolConnection __pyx_mstate_global->__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnection
5304
5335
  #define __pyx_ptype_8sqlcycli_3aio_4pool_PoolSyncConnection __pyx_mstate_global->__pyx_ptype_8sqlcycli_3aio_4pool_PoolSyncConnection
5305
5336
  #define __pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager __pyx_mstate_global->__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager
5337
+ #define __pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager __pyx_mstate_global->__pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager
5306
5338
  #define __pyx_ptype_8sqlcycli_3aio_4pool_Pool __pyx_mstate_global->__pyx_ptype_8sqlcycli_3aio_4pool_Pool
5307
5339
  #if CYTHON_USE_MODULE_STATE
5308
5340
  #endif
@@ -15107,8 +15139,10 @@ static int __Pyx_modinit_type_import_code(void) {
15107
15139
  __pyx_vtabptr_8sqlcycli_3aio_4pool_PoolSyncConnection = (struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolSyncConnection*)__Pyx_GetVtable(__pyx_ptype_8sqlcycli_3aio_4pool_PoolSyncConnection); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_4pool_PoolSyncConnection)) __PYX_ERR(7, 18, __pyx_L1_error)
15108
15140
  __pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager = __Pyx_ImportType_3_0_12(__pyx_t_1, "sqlcycli.aio.pool", "PoolConnectionManager", sizeof(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager), __PYX_GET_STRUCT_ALIGNMENT_3_0_12(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolConnectionManager),__Pyx_ImportType_CheckSize_Warn_3_0_12); if (!__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager) __PYX_ERR(7, 25, __pyx_L1_error)
15109
15141
  __pyx_vtabptr_8sqlcycli_3aio_4pool_PoolConnectionManager = (struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolConnectionManager*)__Pyx_GetVtable(__pyx_ptype_8sqlcycli_3aio_4pool_PoolConnectionManager); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_4pool_PoolConnectionManager)) __PYX_ERR(7, 25, __pyx_L1_error)
15110
- __pyx_ptype_8sqlcycli_3aio_4pool_Pool = __Pyx_ImportType_3_0_12(__pyx_t_1, "sqlcycli.aio.pool", "Pool", sizeof(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool), __PYX_GET_STRUCT_ALIGNMENT_3_0_12(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool),__Pyx_ImportType_CheckSize_Warn_3_0_12); if (!__pyx_ptype_8sqlcycli_3aio_4pool_Pool) __PYX_ERR(7, 34, __pyx_L1_error)
15111
- __pyx_vtabptr_8sqlcycli_3aio_4pool_Pool = (struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_Pool*)__Pyx_GetVtable(__pyx_ptype_8sqlcycli_3aio_4pool_Pool); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_4pool_Pool)) __PYX_ERR(7, 34, __pyx_L1_error)
15142
+ __pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager = __Pyx_ImportType_3_0_12(__pyx_t_1, "sqlcycli.aio.pool", "PoolTransactionManager", sizeof(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolTransactionManager), __PYX_GET_STRUCT_ALIGNMENT_3_0_12(struct __pyx_obj_8sqlcycli_3aio_4pool_PoolTransactionManager),__Pyx_ImportType_CheckSize_Warn_3_0_12); if (!__pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager) __PYX_ERR(7, 34, __pyx_L1_error)
15143
+ __pyx_vtabptr_8sqlcycli_3aio_4pool_PoolTransactionManager = (struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_PoolTransactionManager*)__Pyx_GetVtable(__pyx_ptype_8sqlcycli_3aio_4pool_PoolTransactionManager); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_4pool_PoolTransactionManager)) __PYX_ERR(7, 34, __pyx_L1_error)
15144
+ __pyx_ptype_8sqlcycli_3aio_4pool_Pool = __Pyx_ImportType_3_0_12(__pyx_t_1, "sqlcycli.aio.pool", "Pool", sizeof(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool), __PYX_GET_STRUCT_ALIGNMENT_3_0_12(struct __pyx_obj_8sqlcycli_3aio_4pool_Pool),__Pyx_ImportType_CheckSize_Warn_3_0_12); if (!__pyx_ptype_8sqlcycli_3aio_4pool_Pool) __PYX_ERR(7, 37, __pyx_L1_error)
15145
+ __pyx_vtabptr_8sqlcycli_3aio_4pool_Pool = (struct __pyx_vtabstruct_8sqlcycli_3aio_4pool_Pool*)__Pyx_GetVtable(__pyx_ptype_8sqlcycli_3aio_4pool_Pool); if (unlikely(!__pyx_vtabptr_8sqlcycli_3aio_4pool_Pool)) __PYX_ERR(7, 37, __pyx_L1_error)
15112
15146
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15113
15147
  __Pyx_RefNannyFinishContext();
15114
15148
  return 0;