func EqNamed(column, name string) Cmp {
	return Cmp{
		op:     eq,
		column: column,
		value:  param(name),
	}
}
EqNamed produces column=? with a custom parameter name.
package qb
import (
	"bytes"
)
type op byte
const (
	eq op = iota
	ne
	lt
	leq
	gt
	geq
	in
	cnt
	cntKey
	like
)
type Cmp struct {
	op     op
	column string
	value  value
}
func (c Cmp) writeCql(cql *bytes.Buffer) (names []string) {
	cql.WriteString(c.column)
	switch c.op {
	case eq:
		cql.WriteByte('=')
	case ne:
		cql.WriteString("!=")
	case lt:
		cql.WriteByte('<')
	case leq:
		cql.WriteByte('<')
		cql.WriteByte('=')
	case gt:
		cql.WriteByte('>')
	case geq:
		cql.WriteByte('>')
		cql.WriteByte('=')
	case in:
		cql.WriteString(" IN ")
	case cnt:
		cql.WriteString(" CONTAINS ")
	case cntKey:
		cql.WriteString(" CONTAINS KEY ")
	case like:
		cql.WriteString(" LIKE ")
	}
	return c.value.writeCql(cql)
}
func Eq(column string) Cmp {
	return Cmp{
		op:     eq,
		column: column,
		value:  param(column),
	}
}
func EqTuple(column string, count int) Cmp {
	return Cmp{
		op:     eq,
		column: column,
		value: tupleParam{
			param: param(column),
			count: count,
		},
	}
}