2009/8/20 Peter Bex <[email protected]>: > On Thu, Aug 20, 2009 at 06:24:27PM +0200, Thomas Chust wrote: >> * A complete usage example has been added to the documentation. > > In the example, the 'name' column in the 'Tags' table should be TEXT, > shouldn't it? > [...]
Hello, of course the declared type doesn't matter much when SQLite3 is used as the backend -- but it just looks wrong ;-) I fixed the example code. > [...] > There's a problem in the 'match method with Postgres, in the presence of > link slots. If I tweak the example a bit to work under postgres, I get > an error at (pretty-print ((a-post 'in-reply-to*) 'count)) : > > Error: (collect-results) ERROR: subquery in FROM must have an alias > HINT: For example, FROM (SELECT ...) [AS] foo. > [...] Oh my, why does everything have to have an explicit name in PostgreSQL? It makes generation of statements truly awkward and has no real benefit :-/ I fixed this by giving each of the subclauses some unique generated name for PostgreSQL, which is not only totally useless by itself but also renders statement caching futile :-( Well, at least it works correctly and we can still rely on the PostgreSQL server to do some caching of its own. 2009/8/20 Peter Bex <[email protected]>: > On Thu, Aug 20, 2009 at 08:38:39PM +0200, Thomas Chust wrote: >> [...] >> I admit that this use of import libraries in unorthodox, but it should >> not be problematic unless the names of the procedures imported ad used >> from the database driver eggs change, in which case the Pandora >> backends have to be adapted anyway. > > It sounds very brittle. Perhaps Felix can enlighten us to whether it's > a good idea to do it like this? > [...] I don't think this is brittle. It only makes the assumption that the visible API of the database driver does not change between compilation and execution time. Every program makes such an assumption of time invariant APIs at some point -- if nowhere else, then at the kernel userspace boundary. And after all, the bundled import libraries should be used during compilation of Pandora if and only if the corresponding database driver eggs are not installed, so even if some change in the API of a database driver makes the import libraries invalid, but requires no changes in client code (which is unlikely), Pandora can be fixed by simply recompiling it after installing the drivers in question. 2009/8/20 Peter Bex <[email protected]>: > [...] > I had another look at libpq, but now I remember why the postgresql egg > doesn't support prepared statements: they can be entered using SQL. > [...] Thanks for pointing this out. Ciao, Thomas -- When C++ is your hammer, every problem looks like your thumb. _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
