Exemple #1
0
func scanReplica(row *pgx.Rows) (*pgmanager.Replica, error) {
	var start pgx.NullTime
	var id, addr, state, sentLoc, writeLoc, flushLoc, replayLoc, sync pgx.NullString
	var port pgx.NullInt32
	if err := row.Scan(&id, &addr, &port, &start, &state, &sentLoc, &writeLoc, &flushLoc, &replayLoc, &sync); err != nil {
		return nil, err
	}
	return &pgmanager.Replica{
		ID:             id.String,
		Addr:           fmt.Sprintf("%s:%d", addr.String, port.Int32),
		Start:          start.Time,
		State:          state.String,
		Sync:           sync.String == "sync",
		SentLocation:   sentLoc.String,
		WriteLocation:  writeLoc.String,
		FlushLocation:  flushLoc.String,
		ReplayLocation: replayLoc.String,
	}, nil
}