altcodepro-polydb-python 2.5.22__py3-none-any.whl → 2.5.23__py3-none-any.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.
- {altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/METADATA +1 -1
- {altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/RECORD +7 -7
- polydb/__init__.py +1 -1
- polydb/databaseFactory.py +7 -0
- {altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/WHEEL +0 -0
- {altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/licenses/LICENSE +0 -0
- {altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/top_level.txt +0 -0
{altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: altcodepro-polydb-python
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.23
|
|
4
4
|
Summary: Production-ready multi-cloud database abstraction layer with connection pooling, retry logic, and thread safety
|
|
5
5
|
Author: AltCodePro
|
|
6
6
|
Project-URL: Homepage, https://github.com/altcodepro/polydb-python
|
{altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/RECORD
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
altcodepro_polydb_python-2.5.
|
|
1
|
+
altcodepro_polydb_python-2.5.23.dist-info/licenses/LICENSE,sha256=9X8GLocsBwy-5aR5JGOt2SAMDDPs9Qv-YnqmHBHOXrw,1067
|
|
2
2
|
polydb/PolyDB.py,sha256=Lp0QtG7D89Z6P6nt9fVoT8rVHAy8xlE2kFRSS70r-mk,23672
|
|
3
|
-
polydb/__init__.py,sha256=
|
|
3
|
+
polydb/__init__.py,sha256=YpqOiACLWxsO_WcZRbRjcEXsvc5LTlnRwCa6S1i4IZo,1876
|
|
4
4
|
polydb/advanced_query.py,sha256=M9sKmdF2PsLZWSc-zKpXRcwaDumbYYTsibmL_IAjKP4,6931
|
|
5
5
|
polydb/aio.py,sha256=0EQ6hXrf6N4If6pcht6L9B7qz0PU2yGahyGzEss2eQg,8340
|
|
6
6
|
polydb/batch.py,sha256=ulvSdtVeofsOiVNVAQwrE9tXIIaP8fjiW1Sbpz3dcv0,4093
|
|
7
7
|
polydb/cache.py,sha256=ArI0zRbuhAYd6kn4TPVMBHBptdRmuZyy05_hwIATUsQ,11784
|
|
8
8
|
polydb/cloudDatabaseFactory.py,sha256=eJiNKycdaC9nO2BKWPjkig3GaNGkNjoJci6yVJC7A_c,25301
|
|
9
|
-
polydb/databaseFactory.py,sha256=
|
|
9
|
+
polydb/databaseFactory.py,sha256=l0ODaR3HbTN4KNpC_oEPqN1ussorXGfKnRRq2r5xt6Q,60202
|
|
10
10
|
polydb/errors.py,sha256=AtXCLdzkHE2ncUaE1P0wH5HmIyW3NXx9KHL-fCejjA4,1832
|
|
11
11
|
polydb/json_safe.py,sha256=jj3ZA6gImGwgTO0dCZVcckjeUHtewa2HP6OA1-u6VZ0,137
|
|
12
12
|
polydb/models.py,sha256=Pq_63FXu1IiTxl-RshZ2vmoe-5m5k6qft-tXpHLn-70,12600
|
|
@@ -69,7 +69,7 @@ polydb/observability/logging.py,sha256=FWYky-Mg1IhLpwuaKuLIsTROBZc9bI_-AO-y53nvE
|
|
|
69
69
|
polydb/services/__init__.py,sha256=Zs3PZbHutgPdPjJatygvtYvKPZMBt1qKSqESbFRPHJs,241
|
|
70
70
|
polydb/services/compliance_service.py,sha256=UMjCbQ4z13-w6pT4RLQpMi_u1zbShEpiz8kawA2WsSU,5075
|
|
71
71
|
polydb/services/security_service.py,sha256=gGo_j9Ca_rgvxS7s6C5JUktugQBj1PV1DXpMnOYAGbI,4992
|
|
72
|
-
altcodepro_polydb_python-2.5.
|
|
73
|
-
altcodepro_polydb_python-2.5.
|
|
74
|
-
altcodepro_polydb_python-2.5.
|
|
75
|
-
altcodepro_polydb_python-2.5.
|
|
72
|
+
altcodepro_polydb_python-2.5.23.dist-info/METADATA,sha256=tuxdh0NjiLqvblEJCPDELjllC78Ti73LcwPLluaeTRA,15599
|
|
73
|
+
altcodepro_polydb_python-2.5.23.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
74
|
+
altcodepro_polydb_python-2.5.23.dist-info/top_level.txt,sha256=WgLFWJoYjUhwvyPxJFl6jYLrVFuBJDX3OABf4ocwk_E,7
|
|
75
|
+
altcodepro_polydb_python-2.5.23.dist-info/RECORD,,
|
polydb/__init__.py
CHANGED
|
@@ -4,7 +4,7 @@ PolyDB - Enterprise Cloud-Independent Database Abstraction
|
|
|
4
4
|
Full LINQ support, field-level audit, cache, soft delete, overflow storage
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "2.5.
|
|
7
|
+
__version__ = "2.5.23"
|
|
8
8
|
|
|
9
9
|
from .aio import AsyncDatabaseFactory, AsyncPolyDB
|
|
10
10
|
from .audit.context import AuditContext
|
polydb/databaseFactory.py
CHANGED
|
@@ -457,6 +457,13 @@ class DatabaseFactory:
|
|
|
457
457
|
conflict_cols = _parse_unique_violation_columns(exc)
|
|
458
458
|
if not conflict_cols or not all(c in data for c in conflict_cols):
|
|
459
459
|
raise
|
|
460
|
+
if not set(conflict_cols) <= {"id", "tenant_id"}:
|
|
461
|
+
# A declared-unique NON-key column: a second row with the same value is
|
|
462
|
+
# a violation, never a silent overwrite of the existing row.
|
|
463
|
+
from .base.constraints import UniqueConstraintError
|
|
464
|
+
|
|
465
|
+
col = conflict_cols[0]
|
|
466
|
+
raise UniqueConstraintError(col, data.get(col)) from exc
|
|
460
467
|
where = {c: data[c] for c in conflict_cols}
|
|
461
468
|
logger.warning(
|
|
462
469
|
"insert %s hit unique violation on %s — falling through to update",
|
{altcodepro_polydb_python-2.5.22.dist-info → altcodepro_polydb_python-2.5.23.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|