func (this *builder) VisitKeyspaceTerm(node *algebra.KeyspaceTerm) (interface{}, error) { node.SetDefaultNamespace(this.namespace) keyspace, err := this.getTermKeyspace(node) if err != nil { return nil, err } if node.Keys() != nil { scan := NewKeyScan(node.Keys()) this.children = append(this.children, scan) } else { if this.subquery { return nil, errors.NewError(nil, fmt.Sprintf( "FROM in subquery must use KEYS clause: FROM %s.", node.Keyspace())) } scan, err := this.selectScan(keyspace, node) if err != nil { return nil, err } this.children = append(this.children, scan) } fetch := NewFetch(keyspace, node) this.subChildren = append(this.subChildren, fetch) return nil, nil }