(stmt *parser.SelectStatement, filtered []*message.ColumnMetadata)
| 731 | } |
| 732 | |
| 733 | func (c *client) filterSystemLocalValues(stmt *parser.SelectStatement, filtered []*message.ColumnMetadata) (row []message.Column, err error) { |
| 734 | return parser.FilterValues(stmt, filtered, func(name string) (value message.Column, err error) { |
| 735 | if name == "rpc_address" { |
| 736 | return codecs.EncodeType(datatype.Inet, c.proxy.cluster.NegotiatedVersion, c.localIP()) |
| 737 | } else if name == "host_id" { |
| 738 | return codecs.EncodeType(datatype.Uuid, c.proxy.cluster.NegotiatedVersion, nameBasedUUID(c.localIP().String())) |
| 739 | } else if val, ok := c.proxy.systemLocalValues[name]; ok { |
| 740 | return val, nil |
| 741 | } else if name == parser.CountValueName { |
| 742 | return encodedOneValue, nil |
| 743 | } else { |
| 744 | return nil, fmt.Errorf("no column value for %s", name) |
| 745 | } |
| 746 | }) |
| 747 | } |
| 748 | |
| 749 | func (c *client) localIP() net.IP { |
| 750 | if c.proxy.localNode.addr != nil { |
no test coverage detected