Update of /cvsroot/monetdb/MonetDB/src/gdk
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv14868/src/gdk

Modified Files:
        gdk.mx gdk_align.mx gdk_bat.mx gdk_batop.mx gdk_bbp.mx 
        gdk_heap.mx gdk_logger.mx gdk_rangejoin.mx 
        gdk_scanselect_defs.mx 
Log Message:
propagated changes of Sunday Feb 03 2008 - Friday Feb 08 2008
from the MonetDB_1-22 branch to the development trunk


Index: gdk_logger.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_logger.mx,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- gdk_logger.mx       1 Feb 2008 12:21:37 -0000       1.14
+++ gdk_logger.mx       8 Feb 2008 22:35:06 -0000       1.15
@@ -18,7 +18,7 @@
 @t Transactions
 @a N. J. Nes
 @v 2.0
[EMAIL PROTECTED]
+
 @* Introduction
 In the philosophy of MonetDB, transaction management overhead should only
 be paid when necessary. Transaction management is for this purpose 
@@ -32,7 +32,7 @@
 The logger uses a directory to store its log files. One master log file
 stores information about the version of the logger and the transaction 
 log files. This file is a simple ascii file with the following format: 
-       6DIGIT-VERSION\n[log file number \n]*]*
+ @code{6DIGIT-VERSION\n[log file number \n]*]*}
 The transaction log files have a binary format, which stores fixed size 
 logformat headers (flag,nr,bid), where the flag is the type of update logged.
 The nr field indicates how many changes there were (in case of 
inserts/deletes).

Index: gdk.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk.mx,v
retrieving revision 1.249
retrieving revision 1.250
diff -u -d -r1.249 -r1.250
--- gdk.mx      5 Feb 2008 15:19:02 -0000       1.249
+++ gdk.mx      8 Feb 2008 22:35:05 -0000       1.250
@@ -17,9 +17,9 @@
 @f gdk
 @t The Goblin Database Kernel
 @v Version 3.05
[EMAIL PROTECTED] Martin L. Kersten & Peter Boncz & Niels Nes
[EMAIL PROTECTED] Martin L. Kersten, Peter Boncz, Niels Nes
 
[EMAIL PROTECTED] The Inner Core
[EMAIL PROTECTED] The Inner Core
 The innermost library of the MonetDB database system is formed by
 the library called GDK, an abbreviation of Goblin Database Kernel.
 Its development was originally rooted in the design of a pure
@@ -86,9 +86,9 @@
 [EMAIL PROTECTED]
 @end tex
 .  A BAT is a
-self-descriptive main-memory structure that represents the @strong{binary
-relationship} between two atomic types.
-@
+self-descriptive main-memory structure that represents the 
[EMAIL PROTECTED] relationship} between two atomic types.
+
 The association can be defined over:
 @table @code
 @item void:
@@ -124,7 +124,6 @@
  Bat descriptor. This allows for recursive adminstered tables, but
 severely complicates transaction management. Therefore, they
 CAN ONLY BE STORED IN TRANSIENT BATs.
-[on the list to become depreciated,
 @end table
 
 This model can be used as a back-end model underlying other -higher
@@ -162,7 +161,7 @@
 @end tex
 . Alternatively, when the table is sorted, it will resort to merge-scan
 operations or binary lookups.
-@
+
 BATs are built on the concept of heaps, which are large pieces of main
 memory. They can also consist of virtual memory, in case the working
 set exceeds main-memory. In this case, GDK supports operations that
@@ -171,7 +170,6 @@
 
 
 @- Rationale
-
 The rationale for choosing a BAT as the building block for both
 relational and object-oriented system is based on the following
 observations:
@@ -211,7 +209,7 @@
 @item -
 Object-oriented systems often maintain a double cache, one with the
 disk-based representation and a C pointer-based main-memory structure.
-This causes expensive conversions and replicated storage management.\\
+This causes expensive conversions and replicated storage management.
 GDK does not do such `pointer swizzling'. It used virtual-memory 
 (@strong{mmap()}) and buffer management advice (@strong{madvise()}) OS 
primitives to
 cache only once. Tables take the same form in memory as on disk,
@@ -293,7 +291,6 @@
 and relational operators. They are implemented in terms of BAT- and
 BUN-manipulation GDK primitives.
 @end table
-@
 
 @+ Interface Files
 In this section we summarize the user interface to the GDK library.
@@ -450,7 +447,7 @@
 @item int
 @tab GDKexit (int status)
 @end multitable
-@
+
 The session is bracketed by @%GDKinit@ and @[EMAIL PROTECTED] Initialization 
involves
 setting up the administration for database access, such as memory allocation
 for the database buffer pool.
@@ -712,7 +709,7 @@
 referred to as @strong{Head Heap}s and @strong{Tail Heap}s). The BUN heap then
 contains integer byte-offsets (fixed-sized, of course) into a head-
 or tail-heap.
-@
+
 The BUN heap contains a contiguous range of BUNs. It starts after
 the @strong{first} pointer, and finishes at the end in the @strong{free}
 area of the BUN. All BUNs after the @strong{inserted} pointer have been
@@ -726,7 +723,7 @@
 may change between successive library routine invocations.  Therefore, one
 should avoid keeping references into the BAT storage area for long
 periods.
-@
+
 Passing values between the library routines and the enclosing C
 program is primarily through value pointers of type @[EMAIL PROTECTED] Pointers
 into the BAT storage area should only be used for retrieval. Direct
@@ -788,10 +785,9 @@
 @}
 
 @- The BAT record
-
 The elements of the BAT structure are introduced in the remainder.
 Instead of using the underlying types hidden beneath it, one should
-use a @%BAT@ type that is supposed to look like this:
+use a @emph{BAT} type that is supposed to look like this:
 @verbatim
 typedef struct {
           /* static BAT properties */
@@ -1023,7 +1019,6 @@
 @item int
 @tab
  HEAPwarm (Heap *h);
[EMAIL PROTECTED] int
 @end multitable
 
 @
@@ -1051,13 +1046,13 @@
 
 @table @code
 @item void
-HEAP_initialize  (Heap* h, size\_t nbytes, size\_t nprivate, int align )
+HEAP_initialize  (Heap* h, size_t nbytes, size_t nprivate, int align )
 @item void
 HEAP_destroy     (Heap* h)
 @item int
-HEAP_malloc      (Heap* heap, size\_t nbytes)
+HEAP_malloc      (Heap* heap, size_t nbytes)
 @item void
-HEAP_free        (Heap *heap, size\_t block)
+HEAP_free        (Heap *heap, size_t block)
 @item int
 HEAP_private     (Heap* h)
 @item void
@@ -1560,7 +1555,7 @@
 MonetDB now has a mmap trim thread that takes care of flushing the
 memory mapped regions when MonetDB starts to consume too much
 main memory. Heaps (that are randomly accessed) can be excluded
-from this mechanism, by pinning them. BATmmap\_pin/unpin do
+from this mechanism, by pinning them. BATmmap_pin/unpin do
 this for all heaps of a BAT.
 
 @- Heap Storage Modes
@@ -1687,6 +1682,8 @@
 @h
 #define GDK_SORTED_REV 128     /* reversely sorted */
 #define GDK_SORTED     65      /* 65 = (32 bits radix_clustered)<<1 + 1 */
+#define REVERT_SORTED(o) \
+       o==GDK_SORTED?GDK_SORTED_REV:(o==GDK_SORTED_REV?GDK_SORTED:0)
 
 gdk_export BAT *BATsort(BAT *b);
 gdk_export BAT *BATsort_rev(BAT *b);
@@ -2665,8 +2662,8 @@
 by doing BATabort on all persistent bats.
 
 BUG: after a failed @%TMcommit@, @%TMabort@ does not do anything
-because @%TMcommit@ does the @[EMAIL PROTECTED] *before* attempting to 
-sync to disk instead of *after& doing this. 
+because @%TMcommit@ does the @[EMAIL PROTECTED] @emph{before} attempting to 
+sync to disk instead of @sc{after} doing this. 
 
 The previous state can also be queried. @%BATprev@ is a view 
 on the current BAT as it was in the previous state.  @%BATalpha@ 
@@ -2696,10 +2693,10 @@
 @tab ALIGNrelated (BAT *b1, BAT *b2)
 @item int
 @tab ALIGNsetH    ((BAT *dst, BAT *src)
-\hline
+
 @item BAT *
 @tab BATpropcheck (BAT *b, int mode)
-\hline
+
 @item BAT*
 @tab VIEWcreate   (BAT *h, BAT *t)
 @item int
@@ -2715,7 +2712,7 @@
 @item BAT*
 @tab VIEWreset    (BAT *b)
 @item BAT*
[EMAIL PROTECTED] BATmaterialize  (BAT *b, size\_t size)
[EMAIL PROTECTED] BATmaterialize  (BAT *b, size_t size)
 @end multitable
 @
 Alignments of two columns of a BAT means that the system knows
@@ -2955,9 +2952,9 @@
 
 @verbatim
 void
-print_books(BAT *author\_books, str author)
+print_books(BAT *author_books, str author)
 {
-        BAT *b = author\_books;
+        BAT *b = author_books;
         size_t i;
 
         printf("%s\n==================\n", author);
@@ -3151,18 +3148,18 @@
 @- BAT relational operators
  @multitable @columnfractions 0.08 0.7
 @item BAT *
[EMAIL PROTECTED] BATjoin (BAT *l, BAT *r, size\_t estimate)
[EMAIL PROTECTED] BATjoin (BAT *l, BAT *r, size_t estimate)
 @item BAT *
[EMAIL PROTECTED] BATouterjoin (BAT *l, BAT *r, size\_t estimate)
[EMAIL PROTECTED] BATouterjoin (BAT *l, BAT *r, size_t estimate)
 @item BAT *
[EMAIL PROTECTED] BATthetajoin (BAT *l, BAT *r, int mode, size\_t estimate)
[EMAIL PROTECTED] BATthetajoin (BAT *l, BAT *r, int mode, size_t estimate)
 @item BAT *
 @tab BATsemijoin (BAT *l, BAT *r)
 @item BAT *
 @tab BATselect (BAT *b, ptr tl, ptr th)
 @item BAT *
 @tab BATfragment (BAT *b, ptr l, ptr h, ptr L, ptr H)
[EMAIL PROTECTED] \hline
[EMAIL PROTECTED] 
 @item BAT *
 @tab BATsunique (BAT *b)
 @item BAT *

Index: gdk_bbp.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_bbp.mx,v
retrieving revision 1.209
retrieving revision 1.210
diff -u -d -r1.209 -r1.210
--- gdk_bbp.mx  5 Feb 2008 15:19:03 -0000       1.209
+++ gdk_bbp.mx  8 Feb 2008 22:35:06 -0000       1.210
@@ -25,13 +25,13 @@
 The BBP is a directory which contains status information about all known BATs. 
 This interface may be used very heavily, by data-intensive applications.
 To eliminate all overhead, read-only access to the BBP may be done by 
-table-lookups. The integer index type for these lookups is @%bat@, as 
-retrieved by @%BBPcacheid(b)@. The @%bat@ zero is reserved for the nil bat. 
+table-lookups. The integer index type for these lookups is @emph{bat}, as 
+retrieved by @emph{BBPcacheid(b)}. The @emph{bat} zero is reserved for the nil 
bat. 
 
 @item persistence
 The BBP is made persistent by saving it to the dictionary file 
 called @emph{BBP.dir} in the database. The dictionary can always be 
-reconstructed from the @emph{ .desc} files. Its main role is to 
+reconstructed from the @emph{.desc} files. Its main role is to 
 speed-up system restart, because now it requires just a few IOs 
 instead of a complete directory scan and reading all descriptors
 to find all BATs.
@@ -257,15 +257,15 @@
 @table @code
 @item GDKcacheLock]
 this lock guards the free slot management in the BBP array.  The BBP 
-operations that allocate a new slot for a new BAT (@%BBPinit@,@%BBPcacheit@), 
-delete the slot of a destroyed BAT (@%BBPreclaim@), or rename a BAT 
-(@%BBPrename@), hold this lock. It also protects all BAT (re)naming actions 
+operations that allocate a new slot for a new BAT 
(@emph{BBPinit},@emph{BBPcacheit}), 
+delete the slot of a destroyed BAT (@emph{BBPreclaim}), or rename a BAT 
+(@emph{BBPrename}), hold this lock. It also protects all BAT (re)naming 
actions 
 include (read and write) in the hash table with BAT names.
 @item GDKswapLock
 this lock guards the swap (loaded/unloaded) status of the BATs. Hence, all
 BBP routines that influence the swapping policy, or actually carry out the
-swapping policy itself, acquire this lock (e.g. @%BBPfix@,@%BBPunfix@).
-Note that this also means that updates to the BBP\_status indicator array
+swapping policy itself, acquire this lock (e.g. @emph{BBPfix},@emph{BBPunfix}).
+Note that this also means that updates to the BBP_status indicator array
 must be protected by GDKswapLock. 
 
 To reduce contention GDKswapLock was split into multiple locks; it is now 
@@ -282,7 +282,7 @@
 operations may be ongoing while at the same time at most one BBP write 
 operation @strong{on a different BAT} is executing.  
 This holds for accesses to the public (quasi-)
-arrays @%BBPcache@, @%BBPstatus@, @%BBPrefs@, @%BBPlogical@ and @[EMAIL 
PROTECTED] These 
+arrays @emph{BBPcache}, @emph{BBPstatus}, @emph{BBPrefs}, @emph{BBPlogical} 
and @emph{BBPphysical}. These 
 arrays are called quasi as now they are actually stored together in one big 
BBPrec 
 array called BBP, that is allocated in anonymous VM space, so we can 
reallocate 
 this structure without changing the base address (a crucial feature if read 
@@ -1786,7 +1786,7 @@
 @item
 while decisions are made as to which bats to unload (1) the BBP is
 scanned, and (2) unload decisions are made. Due to these properties,
-the search\&decide phase of BBPtrim acquires both GDKcacheLock (due to (1))i
+the search&decide phase of BBPtrim acquires both GDKcacheLock (due to (1))
 and all GDKswapLocks (due to (2)). They must be released during the actual 
 unloading.  (as otherwise deadlock occurs => unloading a bat may e.g. kill 
 an accelerator that is a BAT, which in turn requires BBP lock acquisition).
@@ -1794,7 +1794,7 @@
 to avoid further deadlock, the update functions in BBP that hold either 
 GDKcacheLock or a GDKswapLock may never cause a BBPtrim (notice that BBPtrim 
 could theoretically be set off just by allocating a little piece of memory, 
e.g. 
-GDKstrdup()). If these routines must alloc memory, they must set the 
BBP\_notrim 
+GDKstrdup()). If these routines must alloc memory, they must set the 
BBP_notrim 
 variable, acquiring the addition GDKtrimLock, in order to prevent such 
deadlock.
 @item
 the BBPtrim is atomic; only releases its locks when all BAT unload 
@@ -1814,7 +1814,7 @@
 We also refined the swap criterion. If the BBPtrim was initiated due to:
 - too much descriptors: small bats are unloaded first (from LRU cold to hot)  
 - too little memory: big bats are unloaded first (from LRU cold to hot).
-Unloading-first is enforced by subtracting $2^31$ from the stamp in the
+Unloading-first is enforced by subtracting @math{2^31} from the stamp in the
 field where the candidates are sorted on.
 @{
 @c
@@ -2185,7 +2185,6 @@
 @}
 
 @+ Small BAT Cache
[EMAIL PROTECTED]
 PETER: rewrote the batcache to make it stable with views and actually faster
        than allocating new bats (I guess that was the purpose of it)
 
@@ -2205,13 +2204,13 @@
 
 and then benchmark the d*mn thing (also missing in the previous exercise) :
 
-module(alarm);
-bbp_batcache_minsize(wrd(256));
-{ var t := time(), i := 0; while((i :+= 1) < 100000) bat(int,int); 
print(time() - t); }
-[ 490 ]
-bbp_batcache_minsize(wrd(0));
-{ var t := time(), i := 0; while((i :+= 1) < 100000) bat(int,int); 
print(time() - t); }
-[ 847 ]
+ module(alarm);
+ bbp_batcache_minsize(wrd(256));
+ @{ var t := time(), i := 0; while((i :+= 1) < 100000) bat(int,int); 
print(time() - t); @}
+ [ 490 ]
+ bbp_batcache_minsize(wrd(0));
+ @{ var t := time(), i := 0; while((i :+= 1) < 100000) bat(int,int); 
print(time() - t); @}
+ [ 847 ]
 
 so with caching *some* MIL programs can be nearly twice as fast (optimized 
compile),
 though I expect the gains to be smaller in general.
@@ -2753,7 +2752,7 @@
 
 It is now locked, to get proper file counters, and also to prevent
 concurrent BBPrecovers, etc.
[EMAIL PROTECTED]
+
 backup_dir == 0 => no backup BBP.dir 
 backup_dir == 1 => BBP.dir saved in BACKUP/
 backup_dir == 2 => BBP.dir saved in SUBCOMMIT/

Index: gdk_batop.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_batop.mx,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -d -r1.150 -r1.151
--- gdk_batop.mx        1 Feb 2008 12:21:35 -0000       1.150
+++ gdk_batop.mx        8 Feb 2008 22:35:05 -0000       1.151
@@ -1681,31 +1681,36 @@
                        return NULL;
        }
        ALIGNdel(b, "BATrevert", FALSE);
-       hs = (size_t) Hsize(b);
-       ts = (size_t) Tsize(b);
-       h = (char *) GDKmalloc(hs);
-       t = (char *) GDKmalloc(ts);
-       if (!h || !t) {
+       if ((hs = (size_t) Hsize(b)) > 0) {
+               h = (char *) GDKmalloc(hs);
+               if (!h) {
+                       return NULL;
+               }
+               for (p = BUNlast(b)?BUNlast(b) - 1:0, q = BUNfirst(b); p > q; 
p--, q++){
+                       char *ph = BUNhloc(bi,p);
+                       char *qh = BUNhloc(bi,q);
+
+                       memcpy(h , ph, hs);
+                       memcpy(ph, qh, hs);
+                       memcpy(qh, h , hs);
+               }
                GDKfree(h);
-               GDKfree(t);
-               return NULL;
        }
-       for (p = BUNlast(b)?BUNlast(b) - 1:0, q = BUNfirst(b); p > q; p--, q++){
-               char *ph = BUNhloc(bi,p);
-               char *qh = BUNhloc(bi,q);
-               char *pt = BUNtloc(bi,p);
-               char *qt = BUNtloc(bi,q);
-
-               memcpy(h , ph, hs);
-               memcpy(ph, qh, hs);
-               memcpy(qh, h , hs);
+       if ((ts = (size_t) Tsize(b)) > 0) {
+               t = (char *) GDKmalloc(ts);
+               if (!t) {
+                       return NULL;
+               }
+               for (p = BUNlast(b)?BUNlast(b) - 1:0, q = BUNfirst(b); p > q; 
p--, q++){
+                       char *pt = BUNtloc(bi,p);
+                       char *qt = BUNtloc(bi,q);
 
-               memcpy(h , pt, ts);
-               memcpy(pt, qt, ts);
-               memcpy(qt, h , ts);
+                       memcpy(t , pt, ts);
+                       memcpy(pt, qt, ts);
+                       memcpy(qt, t , ts);
+               }
+               GDKfree(t);
        }
-       GDKfree(h);
-       GDKfree(t);
        HASHdestroy(b);
        if (b->hsorted & GDK_SORTED)
                b->hsorted = GDK_SORTED_REV;

Index: gdk_rangejoin.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_rangejoin.mx,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- gdk_rangejoin.mx    5 Feb 2008 15:19:03 -0000       1.8
+++ gdk_rangejoin.mx    8 Feb 2008 22:35:06 -0000       1.9
@@ -29,24 +29,28 @@
 #include "gdk.h"
 
 @- BAT range and band join operators
-@
 The @%BATbandjoin@ produces the associations [A, D] such that S.C-c1 <=
 R.b <= S.C + c2.  The special case c1 = 0 and c2 = infinite leads to a
 thetajoin.  
 
 @h
 gdk_export BAT *BATrangejoin(BAT *l, BAT *rl, BAT *rh, bit li, bit hi);
-/* Join all BUNs of the BATs that have tail values: {rl <= l <= rh}. */
+@
+Join all BUNs of the BATs that have tail values: {rl <= l <= rh}. 
 
[EMAIL PROTECTED]
 gdk_export BAT *BATbandjoin(BAT *l, BAT *r, ptr mnus, ptr plus, bit li, bit 
hi);
-/* Join all BUNs of the BATs that have tail values: {r-mnus <= l <= r+plus}. */
+@
+Join all BUNs of the BATs that have tail values: {r-mnus <= l <= r+plus}. 
 
[EMAIL PROTECTED]
 #endif /* GDK_RANGEJOIN_H */
 @c
 
 #include "monetdb_config.h"
 #include "gdk_rangejoin.h"
 
[EMAIL PROTECTED]
 BAT *BATrangejoin(BAT *l, BAT *rl, BAT *rh, bit li, bit hi)
 {
        BAT *bn;
@@ -214,8 +218,6 @@
 
        return bn;
 }
-
-@
 @}
 @-
 The easiest case is to implement a nested loop for band operations.
@@ -254,7 +256,6 @@
        @:bandjoin_nl_(@1,>,<)
 break;
 @
[EMAIL PROTECTED]
 
 @= bandjoin_mj_loop
        /* sliding window like solution */
@@ -404,3 +405,4 @@
                BBPreclaim(r);
        return bn;
 }
[EMAIL PROTECTED]

Index: gdk_align.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_align.mx,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -d -r1.90 -r1.91
--- gdk_align.mx        1 Feb 2008 12:21:33 -0000       1.90
+++ gdk_align.mx        8 Feb 2008 22:35:05 -0000       1.91
@@ -31,9 +31,9 @@
 This operation will mark both columns of the first @emph{BAT} as synced with
 the second (likewise, @emph{BATcopy()}, which makes a copy, instead of 
in-place 
 shuffling, has the same alignment effect, @emph{BATmark()} marks the tail 
column 
-as synced with the head of the original @emph{BAT}, and for instance 
[EMAIL PROTECTED]()} marks both return columns as aligned with its left 
parameter).
-@
+as synced with the head of the original @emph{BAT}, and for 
+instance @emph{BATsemijoin()} marks both return columns as aligned with its 
left parameter).
+
 Each alignment sequence is given a unique identifier, so as to easily
 detect this situation. It is retained in the @emph{BAT descriptor}.
 @+ Alignment Design Considerations
@@ -52,7 +52,7 @@
 Alignment statuses must be 
 kept consistent under database commits and aborts.
 @end itemize
-@
+
 As for performance, the most important observation to make is that 
 operations that do not need alignment, will suffer most from
 overheads introduced in the BUN update mechanism. For this reason,
@@ -192,11 +192,11 @@
 BAT is @emph{VIEWcreate}. On this @emph{#read-only} BAT (there is kernel
 support for this), you can then make vertical slices. 
 Use @emph{VIEWhead} for this. 
-@
+
 It is possible to create a view on a writable BAT. Updates
 in the parent are then automatically reflected in the VIEW.
 Note that the VIEW bat itself can never be modified.
-@
+
 Horizontal views should only be given out on a view BAT, but
 only if it is dead sure the parent BAT is read-only.
 This because they cannot physically share the batBuns heap

Index: gdk_heap.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_heap.mx,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- gdk_heap.mx 1 Feb 2008 12:21:36 -0000       1.93
+++ gdk_heap.mx 8 Feb 2008 22:35:06 -0000       1.94
@@ -497,7 +497,7 @@
 As we do not (yet) want to change the BAT image on disk, This is now fixed by 
 switching on-the-fly between two representations. We ensure that the 64-bit 
memory 
 representation is just as long as the 32-bits version (20 bytes) so the rest 
of 
-the heap never needs to shift. The function HEAP\_checkformat converts at load 
+the heap never needs to shift. The function HEAP_checkformat converts at load 
 time dynamically between the layout found on disk and the memory format.
 Recognition of the header mode is done by looking at the first two ints: 
 alignment must be 4 or 8, and head can never be 4 or eight. 

Index: gdk_scanselect_defs.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_scanselect_defs.mx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- gdk_scanselect_defs.mx      11 Jan 2008 10:37:00 -0000      1.2
+++ gdk_scanselect_defs.mx      8 Feb 2008 22:35:06 -0000       1.3
@@ -32,6 +32,7 @@
 calls to these functions.
 @c
 
[EMAIL PROTECTED]
 @- The actual BAT_scanselect
 
 @= seqscanPrologue
@@ -300,3 +301,5 @@
 @c
 @:DEFseqscanTTget(c)@
 @-
+
[EMAIL PROTECTED]

Index: gdk_bat.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_bat.mx,v
retrieving revision 1.187
retrieving revision 1.188
diff -u -d -r1.187 -r1.188
--- gdk_bat.mx  1 Feb 2008 12:21:35 -0000       1.187
+++ gdk_bat.mx  8 Feb 2008 22:35:05 -0000       1.188
@@ -2268,7 +2268,7 @@
 Thus we cannot modify the hp->storage fields, but rather store the new modes 
in special
 batMap fields that are used when the BAT descriptor is saved.
 
-This makes the BATmmap safer \& simpler as it is now
+This makes the BATmmap safer & simpler as it is now
 incorporated in the normal bat loading and saving mechanism.
 
 It also makes the mmap faster as when through caching you
@@ -2476,8 +2476,8 @@
 goto (1)
 @end multitable
 
-Now we see that for BBPsync (heap\_move) it is sufficient to check for the 
.priv
-suffix to determine the appropriate backup\_bat behavior (i.e. register a X 
.killfile
+Now we see that for BBPsync (heap_move) it is sufficient to check for the .priv
+suffix to determine the appropriate backup_bat behavior (i.e. register a X 
.killfile
 anticipating the write(X) besides a X.priv).
 
 HEAPsave: we do not need to worry about saving readonly bats: as we save them 
in 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to