expressions when used ast part of
(cur expr.Node)
| 164 | |
| 165 | // expressions when used ast part of <select_list> |
| 166 | func (m *rewrite) selectFunc(cur expr.Node) (expr.Node, error) { |
| 167 | switch curNode := cur.(type) { |
| 168 | // case *expr.NumberNode: |
| 169 | // return nil, value.NewNumberValue(curNode.Float64), nil |
| 170 | // case *expr.BinaryNode: |
| 171 | // return m.walkBinary(curNode) |
| 172 | // case *expr.TriNode: // Between |
| 173 | // return m.walkTri(curNode) |
| 174 | // case *expr.UnaryNode: |
| 175 | // //return m.walkUnary(curNode) |
| 176 | // u.Warnf("not implemented: %#v", curNode) |
| 177 | case *expr.FuncNode: |
| 178 | return m.walkProjectionFunc(curNode) |
| 179 | // case *expr.ArrayNode: |
| 180 | // return m.walkArrayNode(curNode) |
| 181 | // case *expr.IdentityNode: |
| 182 | // return nil, value.NewStringValue(curNode.Text), nil |
| 183 | // case *expr.StringNode: |
| 184 | // return nil, value.NewStringValue(curNode.Text), nil |
| 185 | default: |
| 186 | u.Warnf("likely ?? not agg T:%T %v", cur, cur) |
| 187 | //panic("Unrecognized node type") |
| 188 | } |
| 189 | return cur, nil |
| 190 | } |
| 191 | |
| 192 | // Walk() an expression, and its logic to create an appropriately |
| 193 | // nested bson document for mongo queries if possible. |
no test coverage detected