Home | History | Annotate | Download | only in hash
History log of /src/lib/libc/db/hash/hash_page.c
RevisionDateAuthorComments
 1.29  24-Sep-2016  christos When writing out pages in the "other endian" format, make a copy instead of
trashing the in-memory one.
 1.28  18-Nov-2015  christos branches: 1.28.2;
Introduce a HASH_BSIZE macro to return the blocksize; in the 64K case this
returns 0xffff to avoid overflow. This is used where sizes are stored.
 1.27  18-Nov-2015  christos If MAX_BSIZE == hashp->BSIZE (65536) then it does not fit in a short, and
we end up storing 0... This means that every entry needs a page. We store
MAX_BSIZE - 1 here, but it would be better to always store (avail - 1) here
so that we don't waste a byte and be consistent.
 1.26  01-Dec-2013  christos branches: 1.26.4;
- centralize opening of regular and temp files to avoid code duplication
- don't cast malloc
- use malloc sizeof(*var) instead of sizeof(type)
 1.25  13-Mar-2012  christos branches: 1.25.2;
PR/45989: Martin Husemann: lint invocation does include -w only on i386

- turn lint -w for all the platforms after fixing the lint warnings.
- add _DIAGASSERTS() for casts that would assign values to types that
would not fit.
- change types, add casts
- change into ansii prototypes
- turn on _DIAGNOSTIC for libc (during current, to be eliminated for release
builds)

approved by core@
 1.24  17-Apr-2011  christos branches: 1.24.4;
Correct check for snprintf() overflow via Maksymilian Arciemowicz from FreeBSD.
(the bt one was ok, but set errno and make it the same for consistency).
[to be pulled up]
 1.23  11-Sep-2008  joerg branches: 1.23.4; 1.23.6; 1.23.10; 1.23.14;
Consistently include "nbtool_config.h" when cross-compiling.
 1.22  10-Sep-2008  joerg In preparation for providing a db fallback in libnbcompat, remove
sccsid and conditionals around __RCSID. lint understands __RCSID enough
to ignore it, undefining LIBC_SCCS is superseded by MKSTRIPIDENT.
No functional changes.
 1.21  26-Aug-2008  joerg Convert db from UCB types to POSIX types. Prefer uint8_t for u_char as
it is mostly about the wire format.

Patched libc.so is bit-identical.

OK matt@
 1.20  03-Feb-2007  christos branches: 1.20.12;
cleanup:
- remove __P
- remove unneeded casts
- add _DIAGASSERT
- add more diagnostics for integer overflow
- fix size_t/int confusion
- make debugging and statistics code compile
 1.19  03-Nov-2006  christos branches: 1.19.2;
use FD_CLOEXEC instead of 1.
 1.18  26-Mar-2006  rtr make __hash_open obey TMPDIR

resolves pr32565 and pr32454
 1.17  24-Jan-2006  christos simplify assertion.
 1.16  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15  29-Jul-1999  mycroft Only squeeze a short key/value pair onto a page with other complete key/value
pairs, not onto a page containing the end of a big pair.
 1.14  29-Jul-1999  mycroft Return a useful errno value in the overflow case.
Also, print a message to stderr in one more case.
 1.13  09-Dec-1998  christos delint
 1.12  14-Oct-1998  kleink Need "namespace.h".
 1.11  26-Jul-1998  mycroft Reinitialize the mkstemp() template each time it's used.
 1.10  30-Jun-1998  thorpej Use pread(2) and pwrite(2) where appropriate.
 1.9  13-Jul-1997  christos Fix RCSID's
Fix gcc warnings.
 1.8  03-May-1996  cgd merge DB 1.85 changes
 1.7  27-Feb-1995  cgd add unintrusive Ids
 1.6  18-Aug-1994  cgd branches: 1.6.2; 1.6.4;
clean up import
 1.5  17-Sep-1993  cgd get rid of extraneous include of machine/endian.h now that it's
included by sys/types.h
 1.4  09-Sep-1993  cgd upgrade new DB code to version 1.7
 1.3  26-Aug-1993  jtc Declare rcsid strings so they are stored in text segment.
 1.2  01-Aug-1993  mycroft Add RCS identifiers.
 1.1  14-Jun-1993  cgd branches: 1.1.1;
update db code to v1.6 from vangogh, and put it in "db" rather than "DB"
 1.1.1.2  03-May-1996  cgd Import of Berkeley DB version 1.85
 1.1.1.1  17-Aug-1994  cgd update to db 1.79
 1.6.4.1  02-May-1995  jtc #include "namespace.h"
 1.6.2.2  18-Aug-1994  cgd clean up import
 1.6.2.1  18-Aug-1994  cgd file hash_page.c was added on branch netbsd-1-0 on 1994-08-18 00:41:09 +0000
 1.19.2.1  08-May-2011  bouyer Pull up following revision(s) (requested by christos in ticket #1428):
lib/libc/db/hash/hash_page.c: revision 1.24
lib/libc/db/btree/bt_open.c: revision 1.25
Correct check for snprintf() overflow via Maksymilian Arciemowicz from FreeBSD.
(the bt one was ok, but set errno and make it the same for consistency).
[to be pulled up]
 1.20.12.2  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.20.12.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.23.14.1  19-May-2011  bouyer Pull up following revision(s) (requested by christos in ticket #1602):
lib/libc/db/hash/hash_page.c: revision 1.24
lib/libc/db/btree/bt_open.c: revision 1.25
Correct check for snprintf() overflow via Maksymilian Arciemowicz from FreeBSD.
(the bt one was ok, but set errno and make it the same for consistency).
[to be pulled up]
 1.23.10.1  19-May-2011  bouyer Pull up following revision(s) (requested by christos in ticket #1602):
lib/libc/db/hash/hash_page.c: revision 1.24
lib/libc/db/btree/bt_open.c: revision 1.25
Correct check for snprintf() overflow via Maksymilian Arciemowicz from FreeBSD.
(the bt one was ok, but set errno and make it the same for consistency).
[to be pulled up]
 1.23.6.2  11-Sep-2008  joerg Consistently include "nbtool_config.h" when cross-compiling.
 1.23.6.1  11-Sep-2008  joerg file hash_page.c was added on branch christos-time_t on 2008-09-11 12:58:01 +0000
 1.23.4.1  19-May-2011  bouyer Pull up following revision(s) (requested by christos in ticket #1602):
lib/libc/db/hash/hash_page.c: revision 1.24
lib/libc/db/btree/bt_open.c: revision 1.25
Correct check for snprintf() overflow via Maksymilian Arciemowicz from FreeBSD.
(the bt one was ok, but set errno and make it the same for consistency).
[to be pulled up]
 1.24.4.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.24.4.1  17-Apr-2012  yamt sync with head
 1.25.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.26.4.1  22-Nov-2015  bouyer Pull up following revision(s) (requested by christos in ticket #1046):
lib/libc/db/hash/hash_page.c: revision 1.27
lib/libc/db/hash/hash_page.c: revision 1.28
lib/libc/db/hash/hash.h: revision 1.16
lib/libc/db/hash/hash.c: revision 1.36
lib/libc/db/hash/hash.c: revision 1.37
lib/libc/db/hash/hash.c: revision 1.38
lib/libc/db/hash/hash_bigkey.c: revision 1.25
Account for the -1 hack to fit 0x10000 in a short in hash_page.c
Introduce a HASH_BSIZE macro to return the blocksize; in the 64K case this
returns 0xffff to avoid overflow. This is used where sizes are stored.
If MAX_BSIZE == hashp->BSIZE (65536) then it does not fit in a short, and
we end up storing 0... This means that every entry needs a page. We store
MAX_BSIZE - 1 here, but it would be better to always store (avail - 1) here
so that we don't waste a byte and be consistent.
PR/50441: Manuel Bouyer: hash seq enumeration skips keys on big data.
XXX: pullup-7
 1.28.2.1  04-Nov-2016  pgoyette Sync with HEAD

RSS XML Feed