rewrite Query9 API implementation without traversal framework
Merge branch '2.0-maint' into 2.1-maint