MCPcopy Create free account
hub / github.com/araddon/qlbridge / walkNode

Method walkNode

datasource/sqlite/sqlrewrite.go:197–222  ·  view source on GitHub ↗

Walk() an expression, and its logic to create an appropriately nested bson document for mongo queries if possible. - if can't express logic we need to allow qlbridge to poly-fill

(cur expr.Node)

Source from the content-addressed store, hash-verified

195// - if can't express logic we need to allow qlbridge to poly-fill
196//
197func (m *rewrite) walkNode(cur expr.Node) (expr.Node, error) {
198 //u.Debugf("WalkNode: %#v", cur)
199 switch curNode := cur.(type) {
200 case *expr.NumberNode, *expr.StringNode:
201 return curNode, nil
202 case *expr.BinaryNode:
203 return m.walkFilterBinary(curNode)
204 case *expr.TriNode: // Between
205 return m.walkFilterTri(curNode)
206 case *expr.UnaryNode:
207 //return m.walkUnary(curNode)
208 u.Warnf("not implemented: %#v", curNode)
209 return nil, fmt.Errorf("Not implemented urnary function: %v", curNode.String())
210 case *expr.FuncNode:
211 return m.walkFilterFunc(curNode)
212 case *expr.IdentityNode:
213 u.Warnf("we are trying to project? %v", curNode.String())
214 return curNode, nil
215 case *expr.ArrayNode:
216 return m.walkArrayNode(curNode)
217 default:
218 u.Debugf("unrecognized T:%T %v", cur, cur)
219 }
220
221 return cur, nil
222}
223
224// Tri Nodes expressions:
225//

Callers 2

rewriteMethod · 0.95
walkGroupByMethod · 0.95

Calls 6

walkFilterBinaryMethod · 0.95
walkFilterTriMethod · 0.95
walkFilterFuncMethod · 0.95
walkArrayNodeMethod · 0.95
ErrorfMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected