<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.lisp.cl-perec.devel">
    <title>gmane.lisp.cl-perec.devel</title>
    <link>http://blog.gmane.org/gmane.lisp.cl-perec.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/59"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/53"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/47"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/32"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/29"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/27"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/24"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/18"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/16"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/16"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/12"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.cl-perec.devel/2"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/59">
    <title>Installing CL-Perec</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/59</link>
    <description>&lt;pre&gt;Dear all,

I am very eager to try cl-perec, which looks great.

However, I stumbled on a lot of difficulties trying to install it with
cl-build and a recent version of sbcl.

First, it seems that it conflict with the package lock on
Alexandria.0.dev, where ensure-list is already defined.

Then, I can't find a way to have the package metacopy-with-contextl to
be available.

What is the recommended way to install cl-perec?

Thank you very much for your help.

Best regards,

Nicolas.

&lt;/pre&gt;</description>
    <dc:creator>nicolas.oury-Re5JQEeQqe8AvxtiuMwx3w&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2012-02-09T13:14:10</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/53">
    <title>oracle port</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/53</link>
    <description>&lt;pre&gt;Hi Tomi,

I am starting to work on porting hu.dwim.rdbms to oracle (and
hu.dwim.perec later) and I would like to ask what state was the oracle
backend last time it was maintained?  What version of oracle database
did you use?

Thank you,

Tomas

&lt;/pre&gt;</description>
    <dc:creator>Tomas Hlavaty</dc:creator>
    <dc:date>2010-03-17T12:10:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/47">
    <title>QA</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/47</link>
    <description>&lt;pre&gt;Hi all,

I would like to ask what is your policy regarding quality of the live
repository?  There are quite a few tests failing there so I wonder what
is the difference between live and head and also how do I know that the
code is stable enough for merging it into my own repository for further
work?

Thank you,

Tomas

&lt;/pre&gt;</description>
    <dc:creator>Tomas Hlavaty</dc:creator>
    <dc:date>2010-03-09T11:09:10</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/32">
    <title>allegro port</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/32</link>
    <description>&lt;pre&gt;Hi all,

thank you for cl-perec/hu.dwim.perec.  I am porting it to allegro and I
would like to ask whether you would be interested in portability
patches?  For start, I published my darcs repositories at:

   http://www.knowledgetools.de/tmp/temporaer/tomas/hu.dwim.walker/
   http://www.knowledgetools.de/tmp/temporaer/tomas/hu.dwim.serializer/

Any feedback is welcome.

Thank you,

Tomas

&lt;/pre&gt;</description>
    <dc:creator>Tomas Hlavaty</dc:creator>
    <dc:date>2010-01-21T15:10:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/29">
    <title>mapping for set</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/29</link>
    <description>&lt;pre&gt;I worked with hu.dwim.perec (live repo from 04.11.2009) and collided
with the following behavior:

HOME&amp;gt; (defpclass* test1 () ((c1 :type string)))
#&amp;lt;PERSISTENT-CLASS TEST1&amp;gt;
HOME&amp;gt; (hu.dwim.perec::mapping-of (nth 4 (class-slots (find-class 'test1))))
#&amp;lt;HU.DWIM.PEREC::MAPPING {10872E01}&amp;gt;
HOME&amp;gt; (defpclass* test2 () ((c2 :type (set test1))))
#&amp;lt;PERSISTENT-CLASS TEST2&amp;gt;
HOME&amp;gt; (hu.dwim.perec::mapping-of (nth 4 (class-slots (find-class 'test2))))
NIL

This is correct?

&lt;/pre&gt;</description>
    <dc:creator>Leonid Novikov</dc:creator>
    <dc:date>2009-12-01T14:11:42</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/27">
    <title>How to select individual fields?</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/27</link>
    <description>&lt;pre&gt;Hi,

I'm trying to write a query that selects only a few fields.

Example that works:

  (select ((create-time-of o))
    (from (o db-template)))

  ; SELECT _o._create_time FROM _db_template_ap _o

Adding one more field though results in a SELECT that covers all
fields:

  (select ((create-time-of o) (modify-time-of o))
    (from (o db-template)))

  ; SELECT _o._oid, _o._edition, _o._create_time, _o._modify_time,
  _o._name, _o._body_type, _o._edited_body, _o._processed_body,
  _o._parent_oid FROM _db_template_ap _o

Is there any way to fetch more than one field, but not all, in a single
query?

Thanks,
-Mihai
&lt;/pre&gt;</description>
    <dc:creator>Mihai Bazon</dc:creator>
    <dc:date>2009-10-16T13:50:26</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/24">
    <title>Bug with accessors to boolean field.</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/24</link>
    <description>&lt;pre&gt;Hello.

I think I have found a bug in cl-perec. The following lines in REPL
reproduce it. (My lisp is SBCL 1.0.29, cl-perec and all required
libraries are installed via clbuild.)

(asdf:oos 'asdf:load-op :cl-perec)

(in-package :cl-perec)

;; Then I connect to database, Postgresql in my case.

(defpclass* example ()
       ((f1 :type string)
(f2 :type boolean)))

(with-transaction
       (make-instance 'example :f1 "123" :f2 t))

(with-transaction
       (let ((e (select-instance (e example))))
 (f1-of e)))
;; Works fine and returns "123"

(with-transaction
       (let ((e (select-instance (e example))))
 (f2-of e)))
;; The function F2-OF is undefined.
;;    [Condition of type UNDEFINED-FUNCTION]

PS. By the way, do you rejected #t and #f convection for true and
false? T and NIL work fine for me, but Pinterface's tutorial and tests
confused me and I tried get them working.

&lt;/pre&gt;</description>
    <dc:creator>Valeriy Fedotov</dc:creator>
    <dc:date>2009-10-12T21:38:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/18">
    <title>Optimization question</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/18</link>
    <description>&lt;pre&gt;Hi folks,

Here are two variants, I'd say equivalent, to select some objects:

   (select-instances (o) (where (typep o 'db-group)))

   (defvar tmp 'db-user)
   (select-instances (o) (where (typep o tmp)))

Both work the same, but the first one is better because it results in a
single select that fetches the data as well.  Here's what I see using
start-sql-recording:

1st version:

; SELECT _o._oid, _o._edition, _o._name, _o._description FROM _db_group_ap _o

2nd version:

; SELECT _o._oid FROM _db_group_ai _o
; $1 = 69012 as BIGINT
; SELECT _edition, _name, _description FROM _db_group_dd WHERE (_oid = $1::BIGINT)
; $1 = 134548 as BIGINT
; SELECT _edition, _name, _description FROM _db_group_dd WHERE (_oid = $1::BIGINT)
; $1 = 200084 as BIGINT
; SELECT _edition, _name, _description FROM _db_group_dd WHERE (_oid = $1::BIGINT)

I presume there's some compile-time magic that happens in case 1 and not
in case 2.  I can't hard-code the type so I'd like to use the second
variant, but is it possible to optimize it so that it results in a
single select like the first one?

Thanks for any hints!
-Mihai
&lt;/pre&gt;</description>
    <dc:creator>Mihai Bazon</dc:creator>
    <dc:date>2009-10-09T13:00:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/16">
    <title>undefined variable: PERSISTENT-OBJECT</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/16</link>
    <description>&lt;pre&gt;Hi,

Using the following code to select a few instances:

(with-transaction
  (select-instances (o)
    (where (member (oid-of o) list-of-oids))))

If I specify a type, i.e. (select-instances (o base-type)) then it
works (even if the selected instances are of mixed types derived from
base-type), but without it I get this warning:

; caught WARNING:
;   This variable is undefined:
;     PERSISTENT-OBJECT

Probably a bug in perec?

Cheers,
-Mihai
&lt;/pre&gt;</description>
    <dc:creator>Mihai Bazon</dc:creator>
    <dc:date>2009-10-03T09:23:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/16">
    <title>undefined variable: PERSISTENT-OBJECT</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/16</link>
    <description>&lt;pre&gt;Hi,

Using the following code to select a few instances:

(with-transaction
  (select-instances (o)
    (where (member (oid-of o) list-of-oids))))

If I specify a type, i.e. (select-instances (o base-type)) then it
works (even if the selected instances are of mixed types derived from
base-type), but without it I get this warning:

; caught WARNING:
;   This variable is undefined:
;     PERSISTENT-OBJECT

Probably a bug in perec?

Cheers,
-Mihai
&lt;/pre&gt;</description>
    <dc:creator>Mihai Bazon</dc:creator>
    <dc:date>2009-10-03T09:23:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/12">
    <title>JSON serialization</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/12</link>
    <description>&lt;pre&gt;Hi folks,

I'm trying to use a custom keyword in slot definitions (:serializable)
that would let a base class know whether that slot is supposed to be
serialized in JSON (to implement a generic way to JSONize perec
objects).

Defclass-star allows arbitrary keywords, but the problem is that when
defassociation is called, the values of :serializable passed in class
definition are lost. What happens, I think, is that the class gets
redefined but the system uses only slot keywords declared in
persistent-slot-definition and subclasses.

Talked to some folks on the IRC, the general opinion is to modify
cl-perec, but I don't like to use modified versions of libraries I
didn't wrote :).  So my question is, if I implement generic support for
encode-json in cl-perec, would it be acceptable to include the patch in
the official repository?  This support would mean the following:

* keyword :serializable (or :json?) supported in slot definitions with
  one of the following values: :always (default), :light, :heavy,
  :never

* (encode-json persistent-object stream) will write a JSON
  representation of the object that includes :always and :light slots
  (and the OID)

* (let ((prc::*full-json* t)) (encode-json object stream)) will include
  the :heavy slots as well

* associations will be serialized as OID (for 1-1) or [ OID, OID ... ]
  (for 1-n, m-n)

All of the above is pretty easy to do without touching perec, but I just
miss the :serializable keyword support.  (or maybe I just don't know
enough Lisp and there's an easy way around it?  I did investigate
creating my own metaclass and slot definition classes, but concluded
that it's too much boilerplate code for such simple functionality)

Cheers,
-Mihai
&lt;/pre&gt;</description>
    <dc:creator>Mihai Bazon</dc:creator>
    <dc:date>2009-09-19T09:59:52</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.cl-perec.devel/2">
    <title>Lots of questions :-)</title>
    <link>http://comments.gmane.org/gmane.lisp.cl-perec.devel/2</link>
    <description>&lt;pre&gt;Hi folks,

First off, I think you did a great job!  CL-perec is very cool, but it's
a pity it's poorly documented and it's hard to get started, so I thought
I'd ask my questions on this list...  Please note that I'm new to Lisp
as well, which makes it harder for me to "use the source, Luke".  I'd
love to help with some howtos, once I figure out the stuff I'm after.

Questions, in no particular order:

1. I'm defining my own DB package in which I :USE :CL-PEREC.  This
   introduces some conflicts that can be mitigated by
   :shadowing-import-from :cl-perec :set :time.  What is the recommended
   way, though?  Would it be better if I don't :USE :cl-perec and prefix
   all names with "cl-perec:"?

2. I have a (defpclass* page) which shows the following warning in SBCL:

   ; caught STYLE-WARNING:
   ;   defclass* for CL-PEREC:PAGE while its home package is not *package* (#&amp;lt;PACKAGE "DLWEB.DB"&amp;gt;)

   I can guess that there's a class named "page" in cl-perec?

3. OIDs seem to be randomly generated.  Are they generated by cl-perec,
   or by Postgres itself? (I haven't use PG in many years so sorry if
   it's PG-related).

4. I have a Perl background and have used various DB-to-Object mappers
   (and even wrote my own).  Most of them, in Perl, provide an easy way
   to "inflate/deflate" columns.  For example, if a column is of type
   TIMESTAMP (which the DB server returns as a string), when an instance
   is retrieved I can make that slot return an object of type DateTime,
   which is more comfortable to work with.  So in other words, an
   automatic conversion happens when a row is fetched from the DB, and
   the reverse conversion when it's stored into DB.

   Another example is storing hashed passwords in the DB.  In Perl I
   would do:

      $user-&amp;gt;password("foobar");
      $user-&amp;gt;update;
      ## and now $user-&amp;gt;password is some MD5 of "foobar"

   Is there a way to do this with cl-perec?

5. I plan to use cl-perec with hunchentoot for creating sites.  One of
   the things I commonly did in Perl was to use the same code (and
   server) for multiple websites; because they had different data, the
   database connection was selected at runtime, depending on the target
   domain name of the incoming request.  I presume a way to do this in
   cl-perec would be to set the value of *database* accordingly on each
   request, but since Hunchentoot is multithreaded, would this be safe?
   If not, can you recommend a better way?

6. What's with the _ad, _ai, _ap, _dd, _di, _dp views?  I can understand
   some of them, but for example _ad, _ap, _dd and _dp seem to be
   duplicates...

7. How do I define columns of type VARCHAR(255)?  It seems wasteful to
   use TEXT for every string..

I think that's all. :-) Sorry for the long email and thank you for any
clarifications.

Cheers,
-Mihai

http://mihai.bazon.net/blog
&lt;/pre&gt;</description>
    <dc:creator>Mihai Bazon</dc:creator>
    <dc:date>2009-09-13T10:27:31</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.lisp.cl-perec.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.cl-perec.devel</link>
  </textinput>
</rdf:RDF>
