diff options
author | Steve Langasek <vorlon@debian.org> | 2005-01-10 08:53:33 +0000 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:30 -0800 |
commit | e33f9eb9cf5cc29c36ce2aa7e10cd0f37ae0cc8e (patch) | |
tree | abbf06041619e445f9d0b772b0d58132009d8234 /dbsyn.scm | |
parent | f559c149c83da84d0b1c285f0298c84aec564af9 (diff) | |
parent | 8466d8cfa486fb30d1755c4261b781135083787b (diff) | |
download | slib-e33f9eb9cf5cc29c36ce2aa7e10cd0f37ae0cc8e.tar.gz slib-e33f9eb9cf5cc29c36ce2aa7e10cd0f37ae0cc8e.zip |
Import Debian changes 3a1-4.2debian/3a1-4.2
slib (3a1-4.2) unstable; urgency=low
* Non-maintainer upload.
* Add guile.init.local for use within the build dir, since otherwise we
have an (earlier unnoticed) circular build-dep due to a difference
between scm and guile.
slib (3a1-4.1) unstable; urgency=low
* Non-maintainer upload.
* Build-depend on guile-1.6 instead of scm, since the new version of
scm is wedged in unstable (closes: #281809).
slib (3a1-4) unstable; urgency=low
* Also check for expected creation on slibcat. (Closes: #240096)
slib (3a1-3) unstable; urgency=low
* Also check for /usr/share/guile/1.6/slib before installing for guile
1.6. (Closes: #239267)
slib (3a1-2) unstable; urgency=low
* Add format.scm back into slib until gnucash stops using it.
* Call guile-1.6 new-catalog (Closes: #238231)
slib (3a1-1) unstable; urgency=low
* New upstream release
* Remove Info section from doc-base file (Closes: #186950)
* Remove period from end of description (linda, lintian)
* html gen fixed upstream (Closes: #111778)
slib (2d4-2) unstable; urgency=low
* Fix url for upstream source (Closes: #144981)
* Fix typo in slib.texi (enquque->enqueue) (Closes: #147475)
* Add build depends.
slib (2d4-1) unstable; urgency=low
* New upstream.
slib (2d3-1) unstable; urgency=low
* New upstream.
* Remove texi2html call in debian/rules. Now done upstream. Add make
html instead.
* Changes to rules and doc-base to conform to upstream html gen
* Clean up upstream makefile to make sure it cleans up after itself.
Diffstat (limited to 'dbsyn.scm')
-rw-r--r-- | dbsyn.scm | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/dbsyn.scm b/dbsyn.scm new file mode 100644 index 0000000..1bc1319 --- /dev/null +++ b/dbsyn.scm @@ -0,0 +1,54 @@ +;;;; "dbsyn.scm" -- Syntactic extensions for RDMS (within-database) +;;; Copyright (C) 2002 Ivan Shmakov <ivan@theory.dcn-asu.ru> +;; +;; Permission to copy this software, to modify it, to redistribute it, +;; to distribute modified versions, and to use it for any purpose is +;; granted, subject to the following restrictions and understandings. +;; +;; 1. Any copy made of this software must include this copyright notice +;; in full. +;; +;; 2. I have made no warranty or representation that the operation of +;; this software will be error-free, and I am under no obligation to +;; provide any services, by way of maintenance, update, or otherwise. +;; +;; 3. In conjunction with products arising from the use of this +;; material, there shall be no use of my name in any advertising, +;; promotional, or sales literature without prior written consent in +;; each case. + +;;; History: + +;; 2002-08-01: I've tired of tracking database description elements +;; (such as `(define-tables ...)'); so I decided to use `etags'. But +;; its hard (if possible) to create regexp to match against RDMS' table +;; specs. So I wrote `within-database' syntax extension and now I can +;; simply use something like: + +;; $ etags -l scheme \ +;; -r '/ *(define-\(command\|table\) (\([^; \t]+\)/\2/' \ +;; source1.scm ... + +;; ... and get TAGS table with all of my database commands and tables. + +(require 'relational-database) +(require 'database-commands) +(require 'databases) +;@ +(define-syntax within-database + (syntax-rules (define-table define-command) + + ((within-database database) + database) + + ((within-database database + (define-table (name primary columns) row ...) + rest ...) + (begin (define-tables database '(name primary columns (row ...))) + (within-database database rest ...))) + + ((within-database database + (define-command template arg-1 arg-2 ...) + rest ...) + (begin (define-*commands* database '(template arg-1 arg-2 ...)) + (within-database database rest ...))))) |