in cluster/cluster.go [496:521]
func GetSegmentConfiguration(connection *dbconn.DBConn, getMirrors ...bool) ([]SegConfig, error) {
includeMirrors := len(getMirrors) == 1 && getMirrors[0]
query := ""
whereClause := "WHERE role = 'p'"
if includeMirrors {
whereClause = ""
}
query = fmt.Sprintf(`
SELECT
dbid,
content as contentid,
role,
port,
hostname,
datadir
FROM gp_segment_configuration
%s
ORDER BY content, role DESC;`, whereClause)
results := make([]SegConfig, 0)
err := connection.Select(&results, query)
if err != nil {
return nil, err
}
return results, nil
}