Skip to content

Commit 0dee971

Browse files
committed
feat: loader now detects dialect
1 parent bb6fa6e commit 0dee971

File tree

4 files changed

+664
-73
lines changed

4 files changed

+664
-73
lines changed

sqlspec/adapters/adbc/pipeline_steps.py

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,30 +34,15 @@ def adbc_null_parameter_pipeline_step(context: SQLTransformContext) -> SQLTransf
3434
Input: SQL: "VALUES ($1, $2)", params: ["John", None]
3535
Output: SQL: "VALUES ($1, NULL)", params: ["John"]
3636
"""
37-
logger.debug("ADBC NULL step called with parameters: %s (type: %s)", context.parameters, type(context.parameters))
38-
3937
if not context.parameters:
40-
logger.debug("ADBC NULL step: No parameters, returning unchanged")
4138
return context
4239

4340
# Detect NULL parameters and their positions
4441
null_analysis = _analyze_null_parameters(context.parameters)
45-
logger.debug(
46-
"ADBC NULL step: Analysis result - has_nulls: %s, null_positions: %s",
47-
null_analysis.has_nulls,
48-
null_analysis.null_positions,
49-
)
5042

5143
if not null_analysis.has_nulls:
52-
logger.debug("ADBC NULL step: No NULLs found, returning unchanged")
5344
return context
5445

55-
logger.debug(
56-
"ADBC NULL step: Found %d NULL parameters at positions %s",
57-
len(null_analysis.null_positions),
58-
list(null_analysis.null_positions.keys()),
59-
)
60-
6146
# Transform SQL AST to replace NULL placeholders with NULL literals
6247
modified_expression = _replace_null_placeholders_in_ast(context.current_expression, null_analysis)
6348

@@ -96,7 +81,7 @@ def __init__(self, parameters: Any) -> None:
9681
self.original_count = len(parameters)
9782
for i, param in enumerate(parameters):
9883
if param is None:
99-
self.null_positions[i] = param
84+
self.null_positions[i] = None
10085
self.has_nulls = len(self.null_positions) > 0
10186
elif isinstance(parameters, dict):
10287
# Handle dict parameters with string keys (e.g., {'1': None, '2': 'value'})
@@ -108,9 +93,9 @@ def __init__(self, parameters: Any) -> None:
10893
if isinstance(key, str) and key.lstrip("$").isdigit():
10994
param_num = int(key.lstrip("$"))
11095
param_index = param_num - 1 # Convert to 0-based
111-
self.null_positions[param_index] = param
96+
self.null_positions[param_index] = None
11297
elif isinstance(key, int):
113-
self.null_positions[key] = param
98+
self.null_positions[key] = None
11499
except ValueError:
115100
# Skip non-numeric keys
116101
pass

0 commit comments

Comments
 (0)