Attached patch adds, as promised, backup capabilities to the migration code.
In fact it bases the whole thing on a backup/copy concept and only provides
special switches and a compatibility generic function MIGRATE.

In addition, it checks for a btree OID key being NIL. Don't know how
that got into my btrees, but this shouldn't abort the whole operation
in any case.

Please test it on your machines, too, so we can apply it.

  Leslie
Wed Apr 16 20:13:38 CEST 2008  [EMAIL PROTECTED]
  * Added backup functionality to migration code.

Wed Apr 16 20:15:57 CEST 2008  [EMAIL PROTECTED]
  * Replace migrate.lisp with backup.lisp

New patches:

[Added backup functionality to migration code.
[EMAIL PROTECTED] {
hunk ./src/elephant/migrate.lisp 3
-;;; migrate.lisp -- Migrate between repositories
+;;; backup.lisp -- Backup or migrate between repositories
hunk ./src/elephant/migrate.lisp 6
-;;; New version 2/19/2006 by Ian Eslick
-;;; <[EMAIL PROTECTED]>
+;;; New version 2/19/2006 by Ian Eslick <[EMAIL PROTECTED]>
+;;; Backup functionality added 2008 by Leslie P. Polzer <[EMAIL PROTECTED]>
hunk ./src/elephant/migrate.lisp 27
-;; The generic function Migrate provides an interface to moving objects between
-;; repositories and is used by the upgrade interface.
+;; The generic functions MIGRATE/BACKUP provide an interface to moving/copying objects
+;; between repositories and is used by the upgrade interface.
hunk ./src/elephant/migrate.lisp 65
+;;
+;; - Another quirk is the usage of MAKE-INSTANCE, which will make use
+;;   of any initforms; if any of those initforms will access data that
+;;   is not available (e.g. the *SESSION* binding of Hunchentoot)
+;;   the process will fail. Be sure to wrap such cases appropriately,
+;;   for example like:
+;;
+;;     (and (boundp '*session*) *session* (session-value 'user))
hunk ./src/elephant/migrate.lisp 78
-;;   (defmethod migrate ((dst store-controller) (src my-class)))
+;;   (defmethod backup ((dst store-controller) (src my-class)))
hunk ./src/elephant/migrate.lisp 88
-
hunk ./src/elephant/migrate.lisp 89
+  (:documentation "Convenience/compatibility function that calls (BACKUP DST SRC :MIGRATE-P T)")
+  (:method (dst src)
+    (backup dst src :migrate-p t)))
+
+(defgeneric backup (dst src &key migrate-p)
hunk ./src/elephant/migrate.lisp 105
-(defmethod migrate ((dst store-controller) (src store-controller))
-  "Perform a wholesale repository migration from the root. 
-   Also acts as a poor man's GC if you copy to another store 
+(defmethod backup ((dst store-controller) (src store-controller) &key (migrate-p nil))
+  "Perform a wholesale repository backup from the root. 
+   Also acts as a poor man's GC if you migrate to another store 
hunk ./src/elephant/migrate.lisp 117
-	       (when *migrate-messages*
-		 (if *migrate-verbose*
+	       (when *backup-messages*
+		 (if *backup-verbose*
hunk ./src/elephant/migrate.lisp 137
-		 (setf (%index-cache (find-class classname)) newcidx)
+                 (when migrate-p
+                   (setf (%index-cache (find-class classname)) newcidx))
hunk ./src/elephant/migrate.lisp 143
-		 (register-copied-object classidx newcidx)))
+                 (when migrate-p
+                   (register-copied-object classidx newcidx))
+                 ))
hunk ./src/elephant/migrate.lisp 148
-  (when *migrate-messages*
-    (if *migrate-verbose*
+  (when *backup-messages*
+    (if *backup-verbose*
hunk ./src/elephant/migrate.lisp 159
-  (update-in-memory-objects src dst)
-  (if (eq *store-controller* src)
-      (setf *store-controller* dst)
-      (setf *store-controller* nil))
+  (when migrate-p
+    (update-in-memory-objects src dst)
+    (if (eq *store-controller* src)
+        (setf *store-controller* dst)
+        (setf *store-controller* nil)))
hunk ./src/elephant/migrate.lisp 170
-		 (declare (ignore oldoid))
-		 (when (= (mod (1- (incf count)) 1000) 0)
-		   (when (and *migrate-messages* *migrate-verbose*)
-		     (format t "~A objects copied~%" count)))
-		 (let ((newinst (migrate sc oldinst)))
-		   (ensure-transaction (:store-controller sc)
-		     ;; This isn't redundant in most cases, but we may have
-		     ;; indexed objects without slots and without a slot
-		     ;; write the new index won't be updated in that case
-		     (setf (get-value (oid newinst) new) newinst))))
+                 (when (and *backup-messages* *backup-verbose*)
+                   (when (= (mod (1- (incf count)) 1000) 0)
+		     (format t "~A objects copied~%" count))
+                   (format t "oldoid: ~S oldinst: ~S type: ~S~%" oldoid oldinst (type-of oldinst)))
+                 (when oldinst
+                   (let ((newinst (migrate sc oldinst)))
+                     (ensure-transaction (:store-controller sc)
+                       ;; This isn't redundant in most cases, but we may have
+                       ;; indexed objects without slots and without a slot
+                       ;; write the new index won't be updated in that case
+                       (setf (get-value (oid newinst) new) newinst)))))
hunk ./src/elephant/migrate.lisp 187
-(defmethod migrate ((dst t) (src t))
-  (error "Cannot migrate ~A of type ~A to destination of type ~A" src (type-of src) (type-of dst)))
+(defmethod backup ((dst t) (src t) &key (migrate-p nil))
+  (error "Cannot copy ~A of type ~A to destination of type ~A" src (type-of src) (type-of dst)))
hunk ./src/elephant/migrate.lisp 190
-(defmethod migrate ((dst store-controller) (src t))
-  "Default: standard objects are automatically migrated"
+(defmethod backup ((dst store-controller) (src t) &key (migrate-p nil))
+  "Default: standard objects are automatically copied"
hunk ./src/elephant/migrate.lisp 198
-(defmethod migrate :before ((dst store-controller) (src persistent))
+(defmethod backup :before ((dst store-controller) (src persistent) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 209
-(defmethod migrate :before ((dst store-controller) (src store-controller))
+(defmethod backup :before ((dst store-controller) (src store-controller) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 213
-(defmethod migrate :after ((dst store-controller) (src store-controller))
+(defmethod backup :after ((dst store-controller) (src store-controller) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 217
-(defmethod migrate ((dst store-controller) (src standard-class))
-  (error "Cannot migrate class objects (i.e. ~A)" src))
+(defmethod backup ((dst store-controller) (src standard-class) &key (migrate-p nil))
+  (error "Cannot copy class objects (i.e. ~A)" src))
hunk ./src/elephant/migrate.lisp 220
-(defmethod migrate ((dst store-controller) (src function))
-  (error "Cannot migrate function objects (i.e. ~A)" src))
+(defmethod backup ((dst store-controller) (src function) &key (migrate-p nil))
+  (error "Cannot copy function objects (i.e. ~A)" src))
hunk ./src/elephant/migrate.lisp 229
-(defmethod migrate ((dst store-controller) (src persistent))
-   "Migrate a persistent object and apply a binary (lambda (dst src) ...) 
-    function to the new object.  Users can override migrate by creating
+(defmethod backup ((dst store-controller) (src persistent) &key (migrate-p nil))
+   "Copy a persistent object and apply a binary (lambda (dst src) ...) 
+    function to the new object.  Users can override copying by creating
hunk ./src/elephant/migrate.lisp 266
-	   (let ((value (migrate dstsc (slot-value-using-class class src slot-def))))
+	   (let ((value (backup dstsc (slot-value-using-class class src slot-def))))
hunk ./src/elephant/migrate.lisp 283
-(defmethod migrate ((dst store-controller) (src btree))
+(defmethod backup ((dst store-controller) (src btree) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 293
-(defmethod migrate ((dst store-controller) (src indexed-btree))
+(defmethod backup ((dst store-controller) (src indexed-btree) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 303
-		       (when (and *migrate-messages* *migrate-verbose*)
+		       (when (and *backup-messages* *backup-verbose*)
hunk ./src/elephant/migrate.lisp 314
-	       (let ((newval (migrate sc value))
-		     (newkey (migrate sc key)))
+	       (let ((newval (backup sc value))
+		     (newkey (backup sc key)))
hunk ./src/elephant/migrate.lisp 323
-(defmethod migrate ((dst store-controller) (src standard-object))
+(defmethod backup ((dst store-controller) (src standard-object) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 332
-	   (setf (slot-value src slotname) (migrate dst value)))))
+	   (setf (slot-value src slotname) (backup dst value)))))
hunk ./src/elephant/migrate.lisp 336
-(defmethod migrate ((dst store-controller) (src structure-object))
+(defmethod backup ((dst store-controller) (src structure-object) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 344
-		 (migrate dst value)))))
+		 (backup dst value)))))
hunk ./src/elephant/migrate.lisp 347
-(defmethod migrate ((dst store-controller) (src cons))
+(defmethod backup ((dst store-controller) (src cons) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 349
-  (cons (migrate dst (car src))
-	(migrate dst (cdr src))))
+  (cons (backup dst (car src))
+	(backup dst (cdr src))))
hunk ./src/elephant/migrate.lisp 352
-(defmethod migrate ((dst store-controller) (src array))
+(defmethod backup ((dst store-controller) (src array) &key (migrate-p nil))
hunk ./src/elephant/migrate.lisp 358
-	       (migrate dst value))))
+	       (backup dst value))))
hunk ./src/elephant/migrate.lisp 361
-(defmethod migrate ((dst store-controller) (src hash-table))
-  "Migrate each hash element as the types are non-uniform"
+(defmethod backup ((dst store-controller) (src hash-table) &key (migrate-p nil))
+  "Copy each hash element as the types are non-uniform"
hunk ./src/elephant/migrate.lisp 365
-		   (migrate dst value)))
+		   (backup dst value)))
hunk ./src/elephant/migrate.lisp 456
-	 
-
-
-
}

[Replace migrate.lisp with backup.lisp
[EMAIL PROTECTED] {
move ./src/elephant/migrate.lisp ./src/elephant/backup.lisp
hunk ./elephant.asd 320
-		       (:file "migrate")
+		       (:file "backup")
}

Context:

[un-disabled tests for SBCL
[EMAIL PROTECTED] 
[db-postmodern: sync-cache type handling fix
[EMAIL PROTECTED] 
[test concurrency extended
[EMAIL PROTECTED] 
[transaction restart support plus extended features
[EMAIL PROTECTED] 
[db-postmodern: transaction retry handling, serializable isolation
[EMAIL PROTECTED] 
[db-postmodern: small sync cache fix
[EMAIL PROTECTED]
 cache was discarded in empty txn
] 
[Disabling threading tests for SBCL
Robert L. Read**20080410015544] 
[Chun Tian's conditional for lispworks slot-definition-allocation
[EMAIL PROTECTED] 
[spelling errors
Robert L. Read**20080408140049] 
[Changed erroneous statement in tutorial that index comparison uses EQUALP.
[EMAIL PROTECTED] 
[DB-POSTMODERN: remove DBPM-ERROR; don't attempt to remove an already prepared statement (pointless since the txn is aborted at the time); defer all errors to txn handler (but warn and print the offending statement)
[EMAIL PROTECTED] 
[DB-POSTMODERN: support transaction retries; handle deadlock; add savepoint utility functions; add warnings to help debugging problematic conditions.
[EMAIL PROTECTED] 
[added BORDEAUX-THREADS dependency and changed PM controller to use it instead of SB-THREAD stuff.
[EMAIL PROTECTED] 
[added concurrency test cases.
[EMAIL PROTECTED] 
[DB-POSTMODERN: reap old connections when a new one is requested.
[EMAIL PROTECTED] 
[Improve berkeley DB version agnostic code
[EMAIL PROTECTED]
 
 Added an error message to configure my-config.sexp and made sure we load
 it directly from my-config.sexp so that we get it right at load time.
 Prior patch didn't override default until after load time.
 
] 
[Support for multiple BDB versions
[EMAIL PROTECTED] 
[db-bdb updated to BerkeleyDB 4.6
[EMAIL PROTECTED]
 Changed only BDB constants as upgrade 4.5 -> 4.6 they were
 changed.
 A kind of hack perhaps. But it works. The testing was not excessive,
 but it works well for my project.
] 
[Check for unbound slot; potential fix for a compiler error
[EMAIL PROTECTED] 
[Fix test dependence for ff-index-test
[EMAIL PROTECTED] 
[Enable multi-store indexed classes
[EMAIL PROTECTED] 
[Enable multiple process connections to a BDB data-store via DB_REGISTER option
[EMAIL PROTECTED] 
[Change semantics of transaction :retry-count from tries to retries
[EMAIL PROTECTED] 
[Minor edits, fixed a comment, fixed a db-lisp out of date error
[EMAIL PROTECTED] 
[Refactor UTF{16,32}LE serializers.
[EMAIL PROTECTED] 
[add test for STRING types (as opposed to SIMPLE-STRING types)
[EMAIL PROTECTED] 
[Alex's patch for 8.3
[EMAIL PROTECTED]
 I entered here the patch from Alex of 2088/02/16
 which apparently makes this compatible with Postgres 8.3.
 It is green for me on all tests on Posgres 8.1, so 
 I am committing it.
] 
[mtype change in dcm
[EMAIL PROTECTED] 
[moved cache-instance into initial-persistent-setup
[EMAIL PROTECTED]
 because it was bypassed by recreate-instance otherwise
] 
[accessor name in tests change
[EMAIL PROTECTED] 
[db-postmodern: pm-btree initialization fixed
[EMAIL PROTECTED] 
[recreate-instance stuff improved
[EMAIL PROTECTED] 
[db-postmodern: removed specialized map-index
[EMAIL PROTECTED]
 because pure cursor version works fine and is more robust
] 
[cursor-duplicate removed from db-postmodern
Henrik Hjelte<[EMAIL PROTECTED]>*-20071124163701] 
[db-postmodern fix map-index optimization bug
Henrik Hjelte <[EMAIL PROTECTED]>**20080104151644] 
[db-postmodern: cursors re-implemented
[EMAIL PROTECTED] 
[controller-doc-improvement
[EMAIL PROTECTED] 
[tutorial
[EMAIL PROTECTED] 
[non-keyword-accessors
[EMAIL PROTECTED]
 allows lispworks to run tests.
] 
[function-call-key-form
[EMAIL PROTECTED] 
[documentation type fix
[EMAIL PROTECTED] 
[Fix the use of internal symbol of sb-kernel in memutils
Leonardo Varuzza <[EMAIL PROTECTED]>**20071230000120
 
 memutil.lisp use the functions sb-kernel::copy-*-from-system-area, which
 aren't exported in the latest version of sbcl.
 
 Fix it adding the :: when appropriate
 
] 
[db-bdb bugfix: when bdb key comparison compared only the first half of utf16 strings
[EMAIL PROTECTED] 
[Fix instance deserialization to bypass initialization protocol
[EMAIL PROTECTED] 
[db-postmodern: optimized map-index for -by-value case
[EMAIL PROTECTED] 
[db-postmodern: optimized form-slot-key for persistent-slot-reader
[EMAIL PROTECTED]
 it uses SBCL internal function now, for other implementation it's less optimized.
] 
[db-postmodern: small example update
[EMAIL PROTECTED] 
[added sh script for flushing logs sample
[EMAIL PROTECTED] 
[db-postmodern removed possiblity of using NIL as a key in btrees
Henrik Hjelte<[EMAIL PROTECTED]>**20071124163828] 
[cursor-duplicate removed from db-postmodern
Henrik Hjelte<[EMAIL PROTECTED]>**20071124163701] 
[removed a little compiler warning (typo)
Henrik Hjelte<[EMAIL PROTECTED]>**20071122151929] 
[remove kind-hints parameter from add-index
Henrik Hjelte<[EMAIL PROTECTED]>**20071122151046
 Probably a coming feature from Ian, but
 right now it breaks the generic function add-index
 and thus postmodern, so I removed it for now.
] 
[Ensure set-db-synch is defined before pset is loaded
[EMAIL PROTECTED] 
[Fix instance deserialization to bypass initialization protocol
[EMAIL PROTECTED] 
[Fix to from-end traversal of new map-index
[EMAIL PROTECTED] 
[New map-index implementation
[EMAIL PROTECTED] 
[Cheaper get-instance-by-value
[EMAIL PROTECTED] 
[TAG ELEPHANT-0-9-1
[EMAIL PROTECTED] 
[a little comment update
Henrik Hjelte<[EMAIL PROTECTED]>**20071106080259] 
[postmodern removed ugly-fix from pm-btree-index 
Henrik Hjelte<[EMAIL PROTECTED]>**20071106080216
 and made char-columns hardcoded (removed other option).
] 
[Fixes to enable the docs to build (on OS X / SBCL using 'make' in elephant/doc)
[EMAIL PROTECTED] 
[random test for serializer
Henrik Hjelte<[EMAIL PROTECTED]>**20071101144320] 
[POSTMODERN-tests include hints to configure postgres
Henrik Hjelte<[EMAIL PROTECTED]>**20071101102627] 
[db-postmodern fixed buggy cursor-delete fix secondary-cursor
Henrik Hjelte<[EMAIL PROTECTED]>**20071101100700] 
[postmodern remove obsolete comment about weak tables
Henrik Hjelte<[EMAIL PROTECTED]>**20071031023318] 
[postmodern texinfo file
Henrik Hjelte<[EMAIL PROTECTED]>**20071030185853] 
[db-postmodern update the ugly map-index quick fix
Henrik Hjelte<[EMAIL PROTECTED]>**20071030181310] 
[db-postmodern secondary cursor should be closed after removing values
Henrik Hjelte<[EMAIL PROTECTED]>**20071030181154] 
[Postmodern backend: connection spec now accepts :port keyword argument, to specify the port. Similar to Postmodern's connection spec syntax.
[EMAIL PROTECTED] 
[Made enable-sync-cache more efficient and safe
Henrik Hjelte<[EMAIL PROTECTED]>**20070926015756] 
[fixes in pm-cache
[EMAIL PROTECTED] 
[global-sync-cache
[EMAIL PROTECTED] 
[un-disabled instance caching
[EMAIL PROTECTED] 
[txn btree value cache
[EMAIL PROTECTED] 
[db-postmodern ignore errors around close cursor
Henrik Hjelte<[EMAIL PROTECTED]>**20070921053113] 
[Fix some test harness issues for lispworks
[EMAIL PROTECTED] 
[Fix a typo
[EMAIL PROTECTED] 
[Fix signaling test to bind error appropriate for the given lisp
[EMAIL PROTECTED] 
[Patch to use core lisp comparison predicates, including fixes to sql cursors and removing a test that works by accident under BDB due to the inability to compare standard objects
[EMAIL PROTECTED] 
[Fix bugs that showed up in migration test suite; some test harness detritus and a bug in the SQL txn handling implementation
[EMAIL PROTECTED] 
[(#18) Preliminary migration-oriented GC, very slow. Also added warning print vars and did some preliminary work on (#48)
[EMAIL PROTECTED] 
[(#40) Allow delete while mapping; add tests; fix more test dependencies; fix bug in map-index
[EMAIL PROTECTED] 
[(#19) Fixed increment cursor on cursor-put
[EMAIL PROTECTED] 
[Fix bugs in recent changes and tests for change class and character indexing; tests are green
[EMAIL PROTECTED] 
[(#7) Delete slot data during instance edits in change-class and redefine-class; optional warning conditions
[EMAIL PROTECTED] 
[Fix a defaults bug in manual transaction handling
[EMAIL PROTECTED] 
[Fixed a bug in cursor-prev and added a test for standard btree cursors (was missing! wow!)
[EMAIL PROTECTED] 
[Add test for characters as index keys
[EMAIL PROTECTED] 
[Fix character comparison in BDB data store and lisp-compare functions
[EMAIL PROTECTED] 
[Fixed mop test dependencies for fiveam conversion
[EMAIL PROTECTED] 
[Fix lisp comparisons for map-index to mirror 0.9p1
[EMAIL PROTECTED]
 
 Forgot to push patch to lisp-compare<=/=/< functions from
 0.9 CVS to 091 darcs.  Fixed in merge branch. 
 
] 
[Fix FiveAM test dependencies, some Allegro issues, some mis-merges, etc.  See diff for details.
[EMAIL PROTECTED] 
[resolve merge conflicts between eslick working branch and postmodern branch
[EMAIL PROTECTED] 
[Most recent edits; small bug fixes and query testing
[EMAIL PROTECTED] 
[Add test for unicode values in slots from 0.9p1
[EMAIL PROTECTED] 
[Enable UTF32le unicode support for OpenMCL 1.1
[EMAIL PROTECTED] 
[Pset wasn't persistent
[EMAIL PROTECTED] 
[Last CVS branch bug fix: utf16 serializer
[EMAIL PROTECTED] 
[Keep to date with CVS for release tag 0.9
[EMAIL PROTECTED] 
[First pass complete cl-prevalence backend; still a few bugs to work out
[EMAIL PROTECTED] 
[Cleanup and export instance caching so data stores can override the protocol
[EMAIL PROTECTED] 
[Update elephant code version to 0.9.1
[EMAIL PROTECTED] 
[Cleanup persistent object printing to handle unbound oids
[EMAIL PROTECTED] 
[Simple augmentation of debugging model in deserializer
[EMAIL PROTECTED] 
[Fix map-legacy-names bug for null case
[EMAIL PROTECTED] 
[Prevalence fixes for duplicate and get cursor operations
[EMAIL PROTECTED] 
[Test duplicate operations without depending on primary key ordering part 1
[EMAIL PROTECTED] 
[A tiny convenience.
[EMAIL PROTECTED] 
[Cleaning up some type declarations
[EMAIL PROTECTED] 
[Somehow this was fixed before, and then regressed again in the 
[EMAIL PROTECTED]
 current code.  I have added a test which actually exercises,
 according the the XP discipline.  It is a very inelegant test,
 but it is a hard to exercise problem.
] 
[pm-btree make-plpgsql-insert/update duplicates handling fixed
[EMAIL PROTECTED] 
[fix type declaration in get-instances-by-range
[EMAIL PROTECTED] 
[intern to proper package in make-derived-name
[EMAIL PROTECTED] 
[db-postmodern safe-ignore-postgres-error on create-language
Henrik Hjelte<[EMAIL PROTECTED]>**20070823153914] 
[do-test-spec jumps into debugger by default
Henrik Hjelte<[EMAIL PROTECTED]>**20070823145758] 
[db-postmodern do not use postmoderns connection pooling
Henrik Hjelte<[EMAIL PROTECTED]>**20070823094751] 
[db-postmodern remove meaningless function
Henrik Hjelte<[EMAIL PROTECTED]>**20070823094715] 
[db-postmodern rename with-conn with-postmodern-conn
Henrik Hjelte<[EMAIL PROTECTED]>**20070823091456] 
[db-postmodern create-language on initialization (Robert L. Read)
Henrik Hjelte<[EMAIL PROTECTED]>**20070823090504] 
[db-postmodern ignore-errors changed to handler-case
Henrik Hjelte<[EMAIL PROTECTED]>**20070823085526] 
[db-postmodern update in initialization code
Henrik Hjelte<[EMAIL PROTECTED]>**20070823085018] 
[db-postmodern bugfix with transaction handling
Henrik Hjelte<[EMAIL PROTECTED]>**20070823084932] 
[db-postmodern attempt to solve uncommon error 42P01 with prepared statements
Henrik Hjelte<[EMAIL PROTECTED]>**20070823084724] 
[changed test for serializer
Henrik Hjelte<[EMAIL PROTECTED]>**20070822020617] 
[db-postmodern: execute-transaction does not use magic macro
Henrik Hjelte<[EMAIL PROTECTED]>**20070820201508] 
[TAG PostmodernImprovements
[EMAIL PROTECTED] 
[db-postmodern print-object on cursor
Henrik Hjelte<[EMAIL PROTECTED]>**20070814090413] 
[db-postmodern bugfix again map-index patch is always needed
Henrik Hjelte<[EMAIL PROTECTED]>**20070814090244] 
[db-postmodern print-object on pm-btree
Henrik Hjelte<[EMAIL PROTECTED]>**20070814081715] 
[db-postmodern ignore-errors when preparing-query
Henrik Hjelte<[EMAIL PROTECTED]>**20070808093908
 An ugly fix that should be solved at some point
] 
[db-postmodern minor changes
Henrik Hjelte<[EMAIL PROTECTED]>**20070731073031] 
[db-postmodern make char-columns default
Henrik Hjelte<[EMAIL PROTECTED]>**20070726054334] 
[db-postmodern some with-trans-and-vars changed to with-vars
Henrik Hjelte<[EMAIL PROTECTED]>**20070725220146] 
[db-postmodern cursor-set refactoring and bugfix
Henrik Hjelte<[EMAIL PROTECTED]>**20070725220115] 
[typo fix
Ties Stuij**20070724111443] 
[bugfix cursor-set on empty tree
Henrik Hjelte<[EMAIL PROTECTED]>**20070722140929] 
[db-postmodern some refactoring
Henrik Hjelte<[EMAIL PROTECTED]>**20070722113311] 
[db-postmodern misc cleaning up
Henrik Hjelte<[EMAIL PROTECTED]>**20070722075640] 
[db-postmodern some cleaning up
Henrik Hjelte<[EMAIL PROTECTED]>**20070722074116] 
[make a fixture for indexing tests
Henrik Hjelte<[EMAIL PROTECTED]>**20070722070302] 
[db-postmodern fix for problem with map-index
Henrik Hjelte<[EMAIL PROTECTED]>**20070722061401
 elephant apparently requires btrees with strings as keys
 to be sorted correctly according to lisp-compare<=. This works 
 for cl-sql which sorts things in memory, but not for the
 postmodern design which relies on the database to sort things.
 We need to either change elephant or implement db-postmodern
 differently. This fix changes elephant internals temporarily
 when using the db-postmodern backend. Not pretty.
] 
[some more basic indexing tests
Henrik Hjelte<[EMAIL PROTECTED]>**20070722060733] 
[testcase pcursor2-on-string
Henrik Hjelte<[EMAIL PROTECTED]>**20070722060604] 
[db-postmodern new implementation of cursor-set
Henrik Hjelte<[EMAIL PROTECTED]>**20070722030035
 Solved a bug with map-index for strings.
 Works with testcases but needs cleaning up..
] 
[test larger-indexing-with-string
Henrik Hjelte<[EMAIL PROTECTED]>**20070721180537
 fails on postmodern, works with bdb and clsql
] 
[two more indexing-basic tests for completeness
Henrik Hjelte<[EMAIL PROTECTED]>**20070721160313] 
[two more trivial map-index tests
Henrik Hjelte<[EMAIL PROTECTED]>**20070721153616] 
[removed-kv tests are merged to one test
Henrik Hjelte<[EMAIL PROTECTED]>**20070721150018
 removed old outcommented code
] 
[testcollections changed to fiveam
Henrik Hjelte<[EMAIL PROTECTED]>**20070721145633] 
[fiveam make a default testsuite elephant-tests
Henrik Hjelte<[EMAIL PROTECTED]>**20070721145533] 
[Test framework changed to FiveAM
Henrik Hjelte<[EMAIL PROTECTED]>**20070721044404] 
[file elephant-tests split into several files
Henrik Hjelte<[EMAIL PROTECTED]>**20070721022740] 
[pm-indexed-btree, remove cache slot
ties**20070717090830
                                                           
] 
[postmodern disable cache
Henrik Hjelte<[EMAIL PROTECTED]>**20070714161443
 Because it may cause conflicts when different processes access the same database
] 
[PuttingIndexOnMd5column
[EMAIL PROTECTED]
 I haven't gotten Henrik's approval of this yet, but it seems obvious
 (and my test bear out) that this is the column that should be indexed.
] 
[TryingToSurviveSerializationErrors
[EMAIL PROTECTED]
 This is an attempt to survive serialization errrors.
 Rob may be the only person who ever has these (having 
 a live database since around 0.3), and this method 
 is almost a non-method --- but at least it doesn't 
 make your whole attempt to load a database grind to a
 halt.
] 
[keysize test
[EMAIL PROTECTED]
 This is a test of how big a key can get.  It was introduced when
 debugging the postmodern stuff.  Unfortunately, there is a limit,
 which we should work to overcome.
] 
[db-postmodern some cleaning
Henrik Hjelte<[EMAIL PROTECTED]>**20070709191312] 
[Fixed Roberts bug with large blobs
Henrik Hjelte<[EMAIL PROTECTED]>**20070709190719
 Becuause the bob columb in blob had a unique index.
 Now the index is on a md5 value of the bob.
] 
[stress-test make subsets work with sbcl
Henrik Hjelte<[EMAIL PROTECTED]>**20070709093108] 
[db-postmodern send binary data instead of base64
Henrik Hjelte<[EMAIL PROTECTED]>**20070709092113] 
[db-postmodern blob table bid column is now a 64 bit integer
Henrik Hjelte<[EMAIL PROTECTED]>**20070708152711] 
[db-postmodern, treat strings as objects.
Henrik Hjelte<[EMAIL PROTECTED]>**20070706033714
 To avoid this: Database error 54000: index row size 3172 exceeds btree maximum, 2713
 Values larger than 1/3 of a buffer page cannot be indexed.
 Consider a function index of an MD5 hash of the value, or use full text indexing.
] 
[db-postmodern some cleaning
Henrik Hjelte<[EMAIL PROTECTED]>**20070706033345] 
[updated install-bdb.sh in henrik/contrib
Henrik Hjelte <[EMAIL PROTECTED]>**20070608144005] 
[btree-exec-prepared rewritten
Henrik Hjelte<[EMAIL PROTECTED]>**20070706005537] 
[postmodern integration
[EMAIL PROTECTED] 
[postmodern tests file
Henrik Hjelte <[EMAIL PROTECTED]>**20070511171430] 
[db-postmodern bug fix for cursor-previous et al
Henrik Hjelte <[EMAIL PROTECTED]>**20070511170648] 
[testcollections, cursor-previous variants, tests may cheat
Henrik Hjelte <[EMAIL PROTECTED]>**20070511154905
 
 because of loop for while m.
 It makes the test silently leave as soon as m is false
 despite what the value for p and v is. If the m is moved
 to the always clause everything is tested.
] 
[postmodern cursor-set need to be able to move to next key
Henrik Hjelte <[EMAIL PROTECTED]>**20070511070159] 
[upgrade-btree-type in db-postmodern
Henrik Hjelte <[EMAIL PROTECTED]>**20070510143154
 which fixed a bug shown by test pset
] 
[make Makefile documentation build on sbcl
Henrik Hjelte <[EMAIL PROTECTED]>**20070510132113] 
[make db-postmodern compile and load
Henrik Hjelte <[EMAIL PROTECTED]>**20070510093421] 
[initial import db-postmodern
Henrik Hjelte <[EMAIL PROTECTED]>**20070510080504] 
[Prevalence backend BTree index implementation; all but 11 tests pass (with fake serializer)
[EMAIL PROTECTED] 
[Fix btree-index forbidden ops factorization
[EMAIL PROTECTED] 
[Enable subclass override of controller object cache
[EMAIL PROTECTED] 
[Add specific conditions for errors in the deserializer than implementations can dispatch on; also generalized database error signal is exported
[EMAIL PROTECTED] 
[Remove user file my-config.sexp that should not be repo
[EMAIL PROTECTED] 
[Bug fix for primary key missing in map-index
[EMAIL PROTECTED] 
[Factor our forbidden secondary cursor ops
[EMAIL PROTECTED] 
[Resolve README Conflict
[EMAIL PROTECTED] 
[Prevalence store basic ops + BTrees + some index + some prep for new index architecture
[EMAIL PROTECTED] 
[Initial Import of CVS 0.9.1 RC1
[EMAIL PROTECTED] 
[Empty repository
[EMAIL PROTECTED] 
Patch bundle hash:
b32936e3f573b9967f9eaad8adec74b6660df0c8
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to