MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _extend_values_for_multiparams

Function _extend_values_for_multiparams

lib/sqlalchemy/sql/crud.py:1564–1607  ·  view source on GitHub ↗
(
    compiler: SQLCompiler,
    stmt: ValuesBase,
    compile_state: DMLState,
    initial_values: Sequence[_CrudParamElementStr],
    _column_as_key: Callable[..., str],
    kw: Dict[str, Any],
)

Source from the content-addressed store, hash-verified

1562
1563
1564def _extend_values_for_multiparams(
1565 compiler: SQLCompiler,
1566 stmt: ValuesBase,
1567 compile_state: DMLState,
1568 initial_values: Sequence[_CrudParamElementStr],
1569 _column_as_key: Callable[..., str],
1570 kw: Dict[str, Any],
1571) -> List[Sequence[_CrudParamElementStr]]:
1572 values_0 = initial_values
1573 values = [initial_values]
1574
1575 has_visiting_cte = kw.get("visiting_cte") is not None
1576 mp = compile_state._multi_parameters
1577 assert mp is not None
1578 for i, row in enumerate(mp[1:]):
1579 extension: List[_CrudParamElementStr] = []
1580
1581 row = {_column_as_key(key): v for key, v in row.items()}
1582
1583 for col, col_expr, param, accumulated_names in values_0:
1584 if col.key in row:
1585 key = col.key
1586
1587 if coercions._is_literal(row[key]):
1588 new_param = _create_bind_param(
1589 compiler,
1590 col,
1591 row[key],
1592 name=("%s_m%d" % (col.key, i + 1)),
1593 force_anonymous=has_visiting_cte,
1594 **kw,
1595 )
1596 else:
1597 new_param = compiler.process(row[key].self_group(), **kw)
1598 else:
1599 new_param = _process_multiparam_default_bind(
1600 compiler, stmt, col, i, kw
1601 )
1602
1603 extension.append((col, col_expr, new_param, accumulated_names))
1604
1605 values.append(extension)
1606
1607 return values
1608
1609
1610def _get_stmt_parameter_tuples_params(

Callers 1

_get_crud_paramsFunction · 0.85

Calls 8

_column_as_keyFunction · 0.85
_create_bind_paramFunction · 0.85
getMethod · 0.45
itemsMethod · 0.45
processMethod · 0.45
self_groupMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected