MCPcopy Create free account
hub / github.com/datastax/cql-proxy / filterSystemLocalValues

Method filterSystemLocalValues

proxy/proxy.go:733–747  ·  view source on GitHub ↗
(stmt *parser.SelectStatement, filtered []*message.ColumnMetadata)

Source from the content-addressed store, hash-verified

731}
732
733func (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
749func (c *client) localIP() net.IP {
750 if c.proxy.localNode.addr != nil {

Callers 1

interceptSystemQueryMethod · 0.95

Calls 5

localIPMethod · 0.95
FilterValuesFunction · 0.92
EncodeTypeFunction · 0.92
nameBasedUUIDFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected