Coverage report: /development/source/library/com/dydra/gitlab/dydra-cgi/ffi/lisp/rdfcache/query.lisp

KindCoveredAll%
expression038 0.0
branch02 0.0
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 (in-package :rdfcache)
2
 
3
 ;; Query API: COUNT
4
 
5
 (defun count (transaction context-number subject-number predicate-number object-number)
6
   (declare (type foreign-pointer transaction)
7
            (type fixnum context-number subject-number predicate-number object-number))
8
   (with-checked-long-result "rdfcache_ffi_count"
9
     (%%count (transaction-uuid-pointer transaction)
10
              context-number subject-number predicate-number object-number)))
11
 
12
 ;; Query API: MATCH-WITH-FILTER
13
 
14
 (defun match-with-filter (transaction cursor context-number subject-number predicate-number object-number filter-expression)
15
   (declare (type (or foreign-pointer string) transaction)
16
            (type fixnum context-number subject-number predicate-number object-number)
17
            (type foreign-pointer cursor)
18
            (type list filter-expression))
19
   (when (zerop predicate-number)
20
     (cl:error "PREDICATE-NUMBER cannot be a wildcard when invoking MATCH-WITH-FILTER"))
21
   (destructuring-bind (boolean-operator (minimum-operator minimum-value)
22
                                         (maximum-operator maximum-value))
23
                       filter-expression
24
     (declare (ignore boolean-operator minimum-operator minimum-value maximum-operator maximum-value))
25
     (with-checked-long-result "rdfcache_ffi_match_with_filter"
26
       (let ((min-value-id (cadadr (rest filter-expression)))
27
             (max-value-id (cadar (rest filter-expression))))
28
         (%%match-with-filter (transaction-uuid-pointer transaction)
29
                              context-number subject-number predicate-number object-number
30
                              min-value-id max-value-id cursor)))))
31
 
32
 ;; Query API: MATCH
33
 
34
 (defun match (transaction cursor context-number subject-number predicate-number object-number)
35
   (declare (type (or foreign-pointer string) transaction)
36
            (type fixnum context-number subject-number predicate-number object-number)
37
            (type foreign-pointer cursor))
38
     (with-checked-long-result "rdfcache_ffi_match"
39
       (%%match (transaction-uuid-pointer transaction)
40
                context-number subject-number predicate-number object-number
41
                cursor)))