MCPcopy Index your code
hub / github.com/dataease/SQLBot / sync_fields

Function sync_fields

backend/apps/datasource/crud/datasource.py:238–267  ·  view source on GitHub ↗
(session: SessionDep, ds: CoreDatasource, table: CoreTable, fields: List[ColumnSchema])

Source from the content-addressed store, hash-verified

236
237
238def sync_fields(session: SessionDep, ds: CoreDatasource, table: CoreTable, fields: List[ColumnSchema]):
239 id_list = []
240 for index, item in enumerate(fields):
241 statement = select(CoreField).where(
242 and_(CoreField.table_id == table.id, CoreField.field_name == item.fieldName))
243 record = session.exec(statement).first()
244 if record is not None:
245 item.id = record.id
246 id_list.append(record.id)
247
248 record.field_comment = item.fieldComment
249 record.field_index = index
250 record.field_type = item.fieldType
251 session.add(record)
252 session.commit()
253 else:
254 field = CoreField(ds_id=ds.id, table_id=table.id, checked=True, field_name=item.fieldName,
255 field_type=item.fieldType, field_comment=item.fieldComment,
256 custom_comment=item.fieldComment, field_index=index)
257 session.add(field)
258 session.flush()
259 session.refresh(field)
260 item.id = field.id
261 id_list.append(field.id)
262 session.commit()
263
264 if len(id_list) > 0:
265 session.query(CoreField).filter(and_(CoreField.table_id == table.id, CoreField.id.not_in(id_list))).delete(
266 synchronize_session=False)
267 session.commit()
268
269
270def update_table_and_fields(session: SessionDep, data: TableObj):

Callers 2

sync_single_fieldsFunction · 0.70
sync_tableFunction · 0.70

Calls 7

CoreFieldClass · 0.85
addMethod · 0.65
firstMethod · 0.45
execMethod · 0.45
appendMethod · 0.45
deleteMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected