[Cl-perec-devel] [patch] (select (foo) (from foo)) / (select (foo) (from (foo foo))) inconsistency

Stanislaw Halik sthalik+perec at tehran.lain.pl
Fri Jun 27 13:16:46 UTC 2008


Heya,

The query structure generated by the query:

  (select (foo) (from (foo foo)))

asserts (typep foo 'foo).

The query "(select (foo) (from foo))" doesn't. This has an effect of
pulling objects from other classes into the result:

  PRC> (with-transaction
         (select (foo) (from foo)))
  WARNING:
     *COMPILED-QUERY-CACHE* is unbound, query compiler cache is disabled.
     See WITH-COMPILED-QUERY-CACHE and MAKE-COMPILED-QUERY-CACHE.
  (#<BAR :persistent #t 2014 {BFCA371}> #<BAR :persistent #t 2015 {BFCAC61}>
   #<FOO :persistent #t 2012 {BFCADC1}> #<FOO :persistent #t 2013 #{BFCAF21}>)

With the patch in place, the two queries give identical results.

-- 
The great peril of our existence lies in the fact that our diet consists
entirely of souls. -- Inuit saying
-------------- next part --------------
A non-text attachment was scrubbed...
Name: perec-select-query-missing-assert.diff
Type: text/x-diff
Size: 1032 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/cl-perec-devel/attachments/20080627/db11fc3c/attachment.diff>


More information about the cl-perec-devel mailing list