Coverage report: /home/ellis/comp/core/lib/q/engine.lisp
Kind | Covered | All | % |
expression | 0 | 24 | 0.0 |
branch | 0 | 0 | nil |
Key
Not instrumented
Conditionalized out
Executed
Not executed
Both branches taken
One branch taken
Neither branch taken
1
;;; engine.lisp --- Query Engine Protocol
7
;; A QUERY-ENGINE is a single object which provides top-level interfaces for
8
;; all levels of Query processing.
14
(defvar *query-engine*)
15
(deftype query-dialect-designator () `(member :sql :dql :simple))
16
(declaim (query-dialect-designator *query-dialect*))
17
(defvar *query-dialect* :sql)
21
;; (sb-mop:class-slots (find-class 'query-engine)) ;; service schema
22
(defclass query-engine (query-planner execution-context data-source engine)
23
((sources :initarg :sources)
24
(parser :initarg :parser :type query-parser)
25
(optimizer :initarg :optimizer :type query-optimizer)))
27
(defgeneric sql (self input)
28
(:documentation "Process sql input and return a DATA-FRAME."))
30
(defgeneric dql (self input)
31
(:documentation "Process dql input and return a DATA-FRAME."))
33
(defmethod execute* ((self query-engine) (plan data-frame))
34
(declare (ignore self))
37
(defmethod optimize-query ((self query-engine) (plan logical-plan))
38
(optimize-query (slot-value self 'query-optimizer) plan))
40
(defmethod execute* ((self query-engine) (plan logical-plan))
43
(optimize-query self plan))))