Changeset 422 for trunk/src/TM-SPARQL


Ignore:
Timestamp:
04/06/11 20:53:10 (14 years ago)
Author:
lgiessmann
Message:

TM-SPARQL: fixed a bug when there is a greater amount of variables in filters contained in one select-group

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/TM-SPARQL/sparql.lisp

    r421 r422  
    414414(defgeneric process-filters (construct)
    415415  (:documentation "Processes all filters by calling invoke-filter.")
    416   (:method ((construct SPARQL-Query))
     416  (:method ((construct SPARQL-Query))     
    417417    (dolist (filter (filters construct))
    418418      (let* ((filter-variable-names
     
    424424        (setf filter-variable-values
    425425              (cast-variable-values construct filter-variable-values))
    426         (dolist (filter (filters construct))
    427           (let ((true-values nil))
    428             (dolist (var-elem filter-variable-values)
    429               (when (eval (read-from-string (to-lisp-code var-elem filter)))
    430                 (map 'list #'(lambda(list-elem)
    431                                (push list-elem true-values))
    432                      var-elem)))
    433             (let ((values-to-remove
    434                    (return-false-values filter-variable-values
    435                                         (remove-duplicates true-values
    436                                                            :test #'variable-list=))))
    437               (dolist (to-del values-to-remove)
    438                 (delete-rows-by-value construct (getf to-del :variable-name)
    439                                       (getf to-del :variable-value))))))))
     426        (let ((true-values nil))
     427          (dolist (var-elem filter-variable-values)
     428            (when (eval (read-from-string (to-lisp-code var-elem filter)))
     429              (map 'list #'(lambda(list-elem)
     430                             (push list-elem true-values))
     431                   var-elem)))
     432          (let ((values-to-remove
     433                 (return-false-values filter-variable-values
     434                                      (remove-duplicates true-values
     435                                                         :test #'variable-list=))))
     436            (dolist (to-del values-to-remove)
     437              (delete-rows-by-value construct (getf to-del :variable-name)
     438                                    (getf to-del :variable-value)))))))
    440439    construct))
    441440
Note: See TracChangeset for help on using the changeset viewer.