sqlspec 0.11.0__py3-none-any.whl → 0.11.1__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.
Potentially problematic release.
This version of sqlspec might be problematic. Click here for more details.
- sqlspec/adapters/adbc/driver.py +37 -60
- sqlspec/adapters/aiosqlite/driver.py +73 -104
- sqlspec/adapters/asyncmy/driver.py +28 -44
- sqlspec/adapters/asyncpg/driver.py +34 -44
- sqlspec/adapters/bigquery/driver.py +79 -168
- sqlspec/adapters/duckdb/driver.py +20 -49
- sqlspec/adapters/oracledb/driver.py +66 -86
- sqlspec/adapters/psqlpy/driver.py +39 -56
- sqlspec/adapters/psycopg/driver.py +71 -112
- sqlspec/adapters/sqlite/driver.py +15 -35
- sqlspec/base.py +0 -41
- sqlspec/filters.py +2 -1
- sqlspec/mixins.py +9 -10
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/METADATA +4 -1
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/RECORD +18 -18
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/WHEEL +0 -0
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/licenses/LICENSE +0 -0
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/licenses/NOTICE +0 -0
|
@@ -17,7 +17,7 @@ from sqlspec.statement import SQLStatement
|
|
|
17
17
|
from sqlspec.typing import is_dict
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
|
-
from collections.abc import Sequence
|
|
20
|
+
from collections.abc import Mapping, Sequence
|
|
21
21
|
|
|
22
22
|
from psqlpy import QueryResult
|
|
23
23
|
|
|
@@ -64,8 +64,7 @@ class PsqlpyDriver(
|
|
|
64
64
|
self,
|
|
65
65
|
sql: str,
|
|
66
66
|
parameters: "Optional[StatementParameterType]" = None,
|
|
67
|
-
|
|
68
|
-
*filters: StatementFilter,
|
|
67
|
+
*filters: "StatementFilter",
|
|
69
68
|
**kwargs: Any,
|
|
70
69
|
) -> "tuple[str, Optional[Union[tuple[Any, ...], dict[str, Any]]]]":
|
|
71
70
|
"""Process SQL and parameters for psqlpy.
|
|
@@ -82,15 +81,19 @@ class PsqlpyDriver(
|
|
|
82
81
|
Raises:
|
|
83
82
|
SQLParsingError: If the SQL parsing fails.
|
|
84
83
|
"""
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
data_params_for_statement: Optional[Union[Mapping[str, Any], Sequence[Any]]] = None
|
|
85
|
+
combined_filters_list: list[StatementFilter] = list(filters)
|
|
86
|
+
|
|
87
|
+
if parameters is not None:
|
|
88
|
+
if isinstance(parameters, StatementFilter):
|
|
89
|
+
combined_filters_list.insert(0, parameters)
|
|
90
|
+
else:
|
|
91
|
+
data_params_for_statement = parameters
|
|
92
|
+
if data_params_for_statement is not None and not isinstance(data_params_for_statement, (list, tuple, dict)):
|
|
93
|
+
data_params_for_statement = (data_params_for_statement,)
|
|
94
|
+
statement = SQLStatement(sql, data_params_for_statement, kwargs=kwargs, dialect=self.dialect)
|
|
95
|
+
|
|
96
|
+
for filter_obj in combined_filters_list:
|
|
94
97
|
statement = statement.apply_filter(filter_obj)
|
|
95
98
|
|
|
96
99
|
# Process the statement
|
|
@@ -162,8 +165,7 @@ class PsqlpyDriver(
|
|
|
162
165
|
self,
|
|
163
166
|
sql: str,
|
|
164
167
|
parameters: "Optional[StatementParameterType]" = None,
|
|
165
|
-
|
|
166
|
-
*filters: StatementFilter,
|
|
168
|
+
*filters: "StatementFilter",
|
|
167
169
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
168
170
|
schema_type: None = None,
|
|
169
171
|
**kwargs: Any,
|
|
@@ -173,8 +175,7 @@ class PsqlpyDriver(
|
|
|
173
175
|
self,
|
|
174
176
|
sql: str,
|
|
175
177
|
parameters: "Optional[StatementParameterType]" = None,
|
|
176
|
-
|
|
177
|
-
*filters: StatementFilter,
|
|
178
|
+
*filters: "StatementFilter",
|
|
178
179
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
179
180
|
schema_type: "type[ModelDTOT]",
|
|
180
181
|
**kwargs: Any,
|
|
@@ -183,8 +184,7 @@ class PsqlpyDriver(
|
|
|
183
184
|
self,
|
|
184
185
|
sql: str,
|
|
185
186
|
parameters: "Optional[StatementParameterType]" = None,
|
|
186
|
-
|
|
187
|
-
*filters: StatementFilter,
|
|
187
|
+
*filters: "StatementFilter",
|
|
188
188
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
189
189
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
190
190
|
**kwargs: Any,
|
|
@@ -217,8 +217,7 @@ class PsqlpyDriver(
|
|
|
217
217
|
self,
|
|
218
218
|
sql: str,
|
|
219
219
|
parameters: "Optional[StatementParameterType]" = None,
|
|
220
|
-
|
|
221
|
-
*filters: StatementFilter,
|
|
220
|
+
*filters: "StatementFilter",
|
|
222
221
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
223
222
|
schema_type: None = None,
|
|
224
223
|
**kwargs: Any,
|
|
@@ -228,8 +227,7 @@ class PsqlpyDriver(
|
|
|
228
227
|
self,
|
|
229
228
|
sql: str,
|
|
230
229
|
parameters: "Optional[StatementParameterType]" = None,
|
|
231
|
-
|
|
232
|
-
*filters: StatementFilter,
|
|
230
|
+
*filters: "StatementFilter",
|
|
233
231
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
234
232
|
schema_type: "type[ModelDTOT]",
|
|
235
233
|
**kwargs: Any,
|
|
@@ -238,8 +236,7 @@ class PsqlpyDriver(
|
|
|
238
236
|
self,
|
|
239
237
|
sql: str,
|
|
240
238
|
parameters: "Optional[StatementParameterType]" = None,
|
|
241
|
-
|
|
242
|
-
*filters: StatementFilter,
|
|
239
|
+
*filters: "StatementFilter",
|
|
243
240
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
244
241
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
245
242
|
**kwargs: Any,
|
|
@@ -275,8 +272,7 @@ class PsqlpyDriver(
|
|
|
275
272
|
self,
|
|
276
273
|
sql: str,
|
|
277
274
|
parameters: "Optional[StatementParameterType]" = None,
|
|
278
|
-
|
|
279
|
-
*filters: StatementFilter,
|
|
275
|
+
*filters: "StatementFilter",
|
|
280
276
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
281
277
|
schema_type: None = None,
|
|
282
278
|
**kwargs: Any,
|
|
@@ -286,8 +282,7 @@ class PsqlpyDriver(
|
|
|
286
282
|
self,
|
|
287
283
|
sql: str,
|
|
288
284
|
parameters: "Optional[StatementParameterType]" = None,
|
|
289
|
-
|
|
290
|
-
*filters: StatementFilter,
|
|
285
|
+
*filters: "StatementFilter",
|
|
291
286
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
292
287
|
schema_type: "type[ModelDTOT]",
|
|
293
288
|
**kwargs: Any,
|
|
@@ -296,8 +291,7 @@ class PsqlpyDriver(
|
|
|
296
291
|
self,
|
|
297
292
|
sql: str,
|
|
298
293
|
parameters: "Optional[StatementParameterType]" = None,
|
|
299
|
-
|
|
300
|
-
*filters: StatementFilter,
|
|
294
|
+
*filters: "StatementFilter",
|
|
301
295
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
302
296
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
303
297
|
**kwargs: Any,
|
|
@@ -332,8 +326,7 @@ class PsqlpyDriver(
|
|
|
332
326
|
self,
|
|
333
327
|
sql: str,
|
|
334
328
|
parameters: "Optional[StatementParameterType]" = None,
|
|
335
|
-
|
|
336
|
-
*filters: StatementFilter,
|
|
329
|
+
*filters: "StatementFilter",
|
|
337
330
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
338
331
|
schema_type: None = None,
|
|
339
332
|
**kwargs: Any,
|
|
@@ -343,8 +336,7 @@ class PsqlpyDriver(
|
|
|
343
336
|
self,
|
|
344
337
|
sql: str,
|
|
345
338
|
parameters: "Optional[StatementParameterType]" = None,
|
|
346
|
-
|
|
347
|
-
*filters: StatementFilter,
|
|
339
|
+
*filters: "StatementFilter",
|
|
348
340
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
349
341
|
schema_type: "type[T]",
|
|
350
342
|
**kwargs: Any,
|
|
@@ -353,8 +345,7 @@ class PsqlpyDriver(
|
|
|
353
345
|
self,
|
|
354
346
|
sql: str,
|
|
355
347
|
parameters: "Optional[StatementParameterType]" = None,
|
|
356
|
-
|
|
357
|
-
*filters: StatementFilter,
|
|
348
|
+
*filters: "StatementFilter",
|
|
358
349
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
359
350
|
schema_type: "Optional[type[T]]" = None,
|
|
360
351
|
**kwargs: Any,
|
|
@@ -388,8 +379,7 @@ class PsqlpyDriver(
|
|
|
388
379
|
self,
|
|
389
380
|
sql: str,
|
|
390
381
|
parameters: "Optional[StatementParameterType]" = None,
|
|
391
|
-
|
|
392
|
-
*filters: StatementFilter,
|
|
382
|
+
*filters: "StatementFilter",
|
|
393
383
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
394
384
|
schema_type: None = None,
|
|
395
385
|
**kwargs: Any,
|
|
@@ -399,8 +389,7 @@ class PsqlpyDriver(
|
|
|
399
389
|
self,
|
|
400
390
|
sql: str,
|
|
401
391
|
parameters: "Optional[StatementParameterType]" = None,
|
|
402
|
-
|
|
403
|
-
*filters: StatementFilter,
|
|
392
|
+
*filters: "StatementFilter",
|
|
404
393
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
405
394
|
schema_type: "type[T]",
|
|
406
395
|
**kwargs: Any,
|
|
@@ -409,8 +398,7 @@ class PsqlpyDriver(
|
|
|
409
398
|
self,
|
|
410
399
|
sql: str,
|
|
411
400
|
parameters: "Optional[StatementParameterType]" = None,
|
|
412
|
-
|
|
413
|
-
*filters: StatementFilter,
|
|
401
|
+
*filters: "StatementFilter",
|
|
414
402
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
415
403
|
schema_type: "Optional[type[T]]" = None,
|
|
416
404
|
**kwargs: Any,
|
|
@@ -446,8 +434,7 @@ class PsqlpyDriver(
|
|
|
446
434
|
self,
|
|
447
435
|
sql: str,
|
|
448
436
|
parameters: "Optional[StatementParameterType]" = None,
|
|
449
|
-
|
|
450
|
-
*filters: StatementFilter,
|
|
437
|
+
*filters: "StatementFilter",
|
|
451
438
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
452
439
|
**kwargs: Any,
|
|
453
440
|
) -> int:
|
|
@@ -477,8 +464,7 @@ class PsqlpyDriver(
|
|
|
477
464
|
self,
|
|
478
465
|
sql: str,
|
|
479
466
|
parameters: "Optional[StatementParameterType]" = None,
|
|
480
|
-
|
|
481
|
-
*filters: StatementFilter,
|
|
467
|
+
*filters: "StatementFilter",
|
|
482
468
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
483
469
|
schema_type: None = None,
|
|
484
470
|
**kwargs: Any,
|
|
@@ -488,8 +474,7 @@ class PsqlpyDriver(
|
|
|
488
474
|
self,
|
|
489
475
|
sql: str,
|
|
490
476
|
parameters: "Optional[StatementParameterType]" = None,
|
|
491
|
-
|
|
492
|
-
*filters: StatementFilter,
|
|
477
|
+
*filters: "StatementFilter",
|
|
493
478
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
494
479
|
schema_type: "type[ModelDTOT]",
|
|
495
480
|
**kwargs: Any,
|
|
@@ -498,16 +483,15 @@ class PsqlpyDriver(
|
|
|
498
483
|
self,
|
|
499
484
|
sql: str,
|
|
500
485
|
parameters: "Optional[StatementParameterType]" = None,
|
|
501
|
-
|
|
502
|
-
*filters: StatementFilter,
|
|
486
|
+
*filters: "StatementFilter",
|
|
503
487
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
504
488
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
505
489
|
**kwargs: Any,
|
|
506
490
|
) -> "Union[ModelDTOT, dict[str, Any]]":
|
|
507
|
-
"""Insert, update, or delete data
|
|
491
|
+
"""Insert, update, or delete data with RETURNING clause.
|
|
508
492
|
|
|
509
493
|
Args:
|
|
510
|
-
sql: The SQL statement
|
|
494
|
+
sql: The SQL statement with RETURNING clause.
|
|
511
495
|
parameters: The parameters for the statement (dict, tuple, list, or None).
|
|
512
496
|
*filters: Statement filters to apply.
|
|
513
497
|
connection: Optional connection override.
|
|
@@ -515,15 +499,15 @@ class PsqlpyDriver(
|
|
|
515
499
|
**kwargs: Additional keyword arguments to merge with parameters if parameters is a dict.
|
|
516
500
|
|
|
517
501
|
Returns:
|
|
518
|
-
The
|
|
502
|
+
The returned row data, as either a model instance or dictionary.
|
|
519
503
|
"""
|
|
520
504
|
connection = self._connection(connection)
|
|
521
505
|
sql, parameters = self._process_sql_params(sql, parameters, *filters, **kwargs)
|
|
522
506
|
parameters = parameters or []
|
|
523
507
|
|
|
524
|
-
result = await connection.
|
|
525
|
-
dict_results = result.result()
|
|
508
|
+
result = await connection.fetch(sql, parameters=parameters)
|
|
526
509
|
|
|
510
|
+
dict_results = result.result()
|
|
527
511
|
if not dict_results:
|
|
528
512
|
self.check_not_found(None)
|
|
529
513
|
|
|
@@ -533,7 +517,6 @@ class PsqlpyDriver(
|
|
|
533
517
|
self,
|
|
534
518
|
sql: str,
|
|
535
519
|
parameters: "Optional[StatementParameterType]" = None,
|
|
536
|
-
/,
|
|
537
520
|
connection: "Optional[PsqlpyConnection]" = None,
|
|
538
521
|
**kwargs: Any,
|
|
539
522
|
) -> str:
|