[postmodern-devel] Postgres transaction warnings and save-dao

Peter Stiernström peter.stiernstrom at blixtvik.se
Tue Mar 9 12:14:45 UTC 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Marijn Haverbeke wrote:
> Hey Daniel,
> 
> I'd say something like this works best as a project-local hack, rather
> than part of the library interface. The user can perfectly well do
> (execute "begin") outside of the macro, causing the *transaction*
> variable to no longer reflect the actual situation.

I agree that the pragmatic solution suggested is not a perfect one but
I'm leaning this way myself since I'm using with-transaction very
consistently. The best way would of course be if one could interrogate
postgresql about its transaction state so that it could catch explicit
statements like (execute "begin").

I implemented within-transaction-p using a special variable and a small
modification to within-transaction to bind it and with these tools
save-dao can be fixed for both when within and outside of a transaction
without generating any warnings.

For me the problem with the explicit solution of save-dao and
save-dao/transaction is that it can't be used to build any transaction
agnostic abstractions.

Anyhow, this solution is good enough for now (and me). Thanks for all
the input!

/Peter

> Best,
> Marijn
> 
> _______________________________________________
> postmodern-devel mailing list
> postmodern-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/postmodern-devel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkuWO7UACgkQ0brSZD05ZzDgBACgytukmnKbo8B9h5MfgEAzv4MA
np4AnjHYjpTdFHXMg4kKKC6W5mMbeQZ5
=M80q
-----END PGP SIGNATURE-----




More information about the postmodern-devel mailing list