iris-pgwire 1.2.31__tar.gz → 1.2.32__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.
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/PKG-INFO +1 -1
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/__init__.py +1 -1
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/dbapi_connection_pool.py +2 -2
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/models/dbapi_connection.py +19 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/.gitignore +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/CHANGELOG.md +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/LICENSE +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/README.md +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/docs/VECTOR_PARAMETER_BINDING.md +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/examples/BI_TOOLS_SETUP.md +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/examples/async_sqlalchemy_demo.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/examples/bi_tools_demo.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/examples/client_demonstrations.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/examples/client_demos.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/examples/translation_api_demo.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/pyproject.toml +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/auth/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/auth/auth_selector.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/auth/gssapi_auth.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/auth/oauth_bridge.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/auth/scram.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/auth/wallet_credentials.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/backend_selector.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/bulk_executor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/catalog_functions.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/catalog_router.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/oid_generator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_attrdef.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_attribute.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_class.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_constraint.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_index.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_namespace.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/catalog/pg_type.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/column_validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/config_schema.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/constitutional.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/bulk_insert.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/date_horolog.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/ddl_idempotency.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/ddl_splitter.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/json_path.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/conversions/vector_syntax.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/copy_handler.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/csv_processor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/dbapi_executor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/debug_tracer.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/health_checker.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/integratedml.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/iris_constructs.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/iris_executor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/iris_log_handler.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/iris_user_management.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/models/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/models/backend_config.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/models/connection_pool_state.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/models/ipm_metadata.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/models/vector_query_request.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/observability.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/performance_monitor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/protocol.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/__main__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/code_quality_validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/documentation_validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/package_metadata_validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/security_validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/schema_mapper.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/server.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/alias_extractor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/api.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/boolean_translator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/cache.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/confidence_analyzer.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/config.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/copy_parser.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/date_translator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/debug.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/default_values.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/enum_registry.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/enum_translator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/error_handler.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/identifier_normalizer.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/interceptor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/logging_config.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/constructs.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/datatypes.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/document_filters.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/functions.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/metrics.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/models.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/normalizer.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/parser.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/performance_monitor.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/pipeline.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/refiner.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/skipped_table_set.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/statement_filter.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/transaction_translator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/translator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/validator.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/testing/__init__.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/testing/base_fixture_builder.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/type_mapping.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/vector_metrics.py +0 -0
- {iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/vector_optimizer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iris-pgwire
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.32
|
|
4
4
|
Summary: PostgreSQL Wire Protocol Server for InterSystems IRIS - Connect BI tools, Python frameworks, and PostgreSQL clients to IRIS databases
|
|
5
5
|
Project-URL: Homepage, https://github.com/intersystems-community/iris-pgwire
|
|
6
6
|
Project-URL: Documentation, https://github.com/intersystems-community/iris-pgwire#readme
|
|
@@ -6,7 +6,7 @@ Based on the specification from docs/iris_pgwire_plan.md and proven patterns fro
|
|
|
6
6
|
caretdev/sqlalchemy-iris.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
__version__ = "1.2.
|
|
9
|
+
__version__ = "1.2.32"
|
|
10
10
|
__author__ = "Thomas Dyar <thomas.dyar@intersystems.com>"
|
|
11
11
|
|
|
12
12
|
# Don't import server/protocol in __init__ to avoid sys.modules conflicts
|
|
@@ -339,9 +339,9 @@ class IRISConnectionPool:
|
|
|
339
339
|
self._total_created += 1
|
|
340
340
|
|
|
341
341
|
logger.info(
|
|
342
|
-
"
|
|
342
|
+
"Created new IRIS connection",
|
|
343
343
|
connection_id=conn_wrapper.connection_id,
|
|
344
|
-
idle_seconds=round(conn_wrapper
|
|
344
|
+
idle_seconds=round(getattr(conn_wrapper, "idle_seconds", 0.0), 1),
|
|
345
345
|
)
|
|
346
346
|
|
|
347
347
|
return conn_wrapper
|
|
@@ -79,6 +79,7 @@ class DBAPIConnection(BaseModel):
|
|
|
79
79
|
pool_recycle_seconds: int = Field(
|
|
80
80
|
ge=60, description="Maximum connection lifetime before recycling"
|
|
81
81
|
)
|
|
82
|
+
is_overflow: bool = Field(default=False, description="Whether this is an overflow connection")
|
|
82
83
|
|
|
83
84
|
# Pydantic v2 configuration
|
|
84
85
|
model_config = ConfigDict(
|
|
@@ -101,10 +102,28 @@ class DBAPIConnection(BaseModel):
|
|
|
101
102
|
"iris_port": 1972,
|
|
102
103
|
"iris_namespace": "USER",
|
|
103
104
|
"pool_recycle_seconds": 3600,
|
|
105
|
+
"is_overflow": False,
|
|
104
106
|
}
|
|
105
107
|
},
|
|
106
108
|
)
|
|
107
109
|
|
|
110
|
+
@property
|
|
111
|
+
def idle_seconds(self) -> float:
|
|
112
|
+
"""
|
|
113
|
+
Calculate connection idle time in seconds.
|
|
114
|
+
|
|
115
|
+
Returns:
|
|
116
|
+
Seconds since last usage, or since creation if never used.
|
|
117
|
+
"""
|
|
118
|
+
reference_time = self.last_used_at or self.created_at
|
|
119
|
+
now = datetime.now(UTC)
|
|
120
|
+
|
|
121
|
+
if now < reference_time:
|
|
122
|
+
# Handle potential clock skew
|
|
123
|
+
return 0.0
|
|
124
|
+
|
|
125
|
+
return (now - reference_time).total_seconds()
|
|
126
|
+
|
|
108
127
|
def age_seconds(self) -> float:
|
|
109
128
|
"""
|
|
110
129
|
Calculate connection age in seconds.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/documentation_validator.py
RENAMED
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/quality/package_metadata_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/boolean_translator.py
RENAMED
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/confidence_analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/identifier_normalizer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/__init__.py
RENAMED
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/constructs.py
RENAMED
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/datatypes.py
RENAMED
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/mappings/functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/performance_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/skipped_table_set.py
RENAMED
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/statement_filter.py
RENAMED
|
File without changes
|
{iris_pgwire-1.2.31 → iris_pgwire-1.2.32}/src/iris_pgwire/sql_translator/transaction_translator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|