MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _upsert

Function _upsert

lib/sqlalchemy/dialects/postgresql/provision.py:140–167  ·  view source on GitHub ↗
(
    cfg,
    table,
    returning,
    *,
    set_lambda=None,
    sort_by_parameter_order=False,
    index_elements=None,
)

Source from the content-addressed store, hash-verified

138
139@upsert.for_db("postgresql")
140def _upsert(
141 cfg,
142 table,
143 returning,
144 *,
145 set_lambda=None,
146 sort_by_parameter_order=False,
147 index_elements=None,
148):
149 from sqlalchemy.dialects.postgresql import insert
150
151 stmt = insert(table)
152
153 table_pk = inspect(table).selectable
154
155 if set_lambda:
156 if index_elements is None:
157 index_elements = table_pk.primary_key
158 stmt = stmt.on_conflict_do_update(
159 index_elements=index_elements, set_=set_lambda(stmt.excluded)
160 )
161 else:
162 stmt = stmt.on_conflict_do_nothing()
163
164 stmt = stmt.returning(
165 *returning, sort_by_parameter_order=sort_by_parameter_order
166 )
167 return stmt
168
169
170_extensions = [

Callers

nothing calls this directly

Calls 5

insertFunction · 0.90
inspectFunction · 0.90
on_conflict_do_updateMethod · 0.45
returningMethod · 0.45

Tested by

no test coverage detected