MCPcopy
hub / github.com/PeerDB-io/peerdb / storeColumnInfoForTable

Function storeColumnInfoForTable

flow/pkg/clickhouse/validation.go:253–277  ·  view source on GitHub ↗
(ctx context.Context, logger log.Logger, conn clickhouse.Conn,
	queryTables []string,
	tableColumnsMapping map[string][]ClickHouseColumn,
)

Source from the content-addressed store, hash-verified

251}
252
253func storeColumnInfoForTable(ctx context.Context, logger log.Logger, conn clickhouse.Conn,
254 queryTables []string,
255 tableColumnsMapping map[string][]ClickHouseColumn,
256) error {
257 rows, err := Query(ctx, logger, conn,
258 fmt.Sprintf("SELECT name,type,default_kind,table FROM system.columns WHERE database=currentDatabase() AND table IN (%s)",
259 strings.Join(queryTables, ",")))
260 if err != nil {
261 return fmt.Errorf("failed to get columns for destination tables: %w", err)
262 }
263 defer rows.Close()
264 for rows.Next() {
265 var tableName string
266 var clickhouseColumn ClickHouseColumn
267 if err := rows.Scan(&clickhouseColumn.Name, &clickhouseColumn.Type, &clickhouseColumn.DefaultKind, &tableName); err != nil {
268 return fmt.Errorf("failed to scan columns for tables: %w", err)
269 }
270 tableColumnsMapping[tableName] = append(tableColumnsMapping[tableName], clickhouseColumn)
271 }
272 if err := rows.Err(); err != nil {
273 return fmt.Errorf("failed to read rows: %w", err)
274 }
275
276 return nil
277}
278
279func ValidateOrderingKeys(ctx context.Context, logger log.Logger, conn clickhouse.Conn,
280 chVersion *chvproto.Version, sourceTable string,

Callers 1

GetTableColumnsMappingFunction · 0.85

Calls 5

QueryFunction · 0.70
CloseMethod · 0.65
NextMethod · 0.65
ErrMethod · 0.65
ScanMethod · 0.45

Tested by

no test coverage detected