Commit d2d909f1 by Adi Amir

add whitedb to 3 party

parent 047f3e1e
Showing with 4788 additions and 0 deletions
Authors
=======
Project lead T.Tammet <tanel.tammet@gmail.com>
Main programming T.Tammet and P.Järv (priit@whitedb.org)
Additional programming:
E.Reilent (t-tree) A.Puusepp (java bindings),
A.Rebane (dump/log parts), M.Puju (prototype version)
WhiteDB uses several packages developed
by other people. Information can be found
in README and AUTHORS files in corresponding
folders.
#!/bin/sh
# $Id: $
# $Source: $
# Booting up the GNU automake, autoconf, etc system:
# not needed after the configure executable script has been built
# Need to use use autoconf >= 2.50 an automake >= 1.5. This allows user to
# set these variables in their environment, or to just use the defaults below.
# This is needed since some systems still use autoconf-2.13 and automake-1.4 as
# the defaults (e.g. debian).
: ${ACLOCAL=aclocal}
: ${AUTOMAKE=automake}
: ${AUTOCONF=autoconf}
: ${AUTOHEADER=autoheader}
: ${LIBTOOLIZE=libtoolize}
command -v glibtoolize && LIBTOOLIZE=glibtoolize
set -e
set -x
(
${ACLOCAL}
${AUTOHEADER}
${AUTOCONF}
${LIBTOOLIZE} --no-warn
[ -d config-aux ] || mkdir config-aux
${AUTOMAKE} -a -c
)
rm -f config.cache
ChangeLog
=========
Nothing here: see https://github.com/priitj/whitedb for history
\ No newline at end of file
dballoc.lo: dballoc.c /usr/include/stdc-predef.h /usr/include/stdlib.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h ../config.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h dbfeatures.h dblock.h \
dbindex.h dbdata.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbfeatures.h:
dblock.h:
dbindex.h:
dbdata.h:
dbcompare.lo: dbcompare.c /usr/include/stdc-predef.h \
/usr/include/string.h /usr/include/features.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/string3.h dbdata.h ../config.h \
dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
dbcompare.h
/usr/include/stdc-predef.h:
/usr/include/string.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
dbdata.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbcompare.h:
dbdata.lo: dbdata.c /usr/include/stdc-predef.h /usr/include/stdlib.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
/usr/include/x86_64-linux-gnu/sys/timeb.h ../config.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h dbdata.h dbhash.h dblog.h \
dbindex.h dbcompare.h dblock.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
/usr/include/x86_64-linux-gnu/sys/timeb.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbdata.h:
dbhash.h:
dblog.h:
dbindex.h:
dbcompare.h:
dblock.h:
dbdump.lo: dbdump.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h ../config.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h dbmem.h dblock.h dblog.h \
dbdump.h crc1.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbmem.h:
dblock.h:
dblog.h:
dbdump.h:
crc1.h:
dbhash.lo: dbhash.c /usr/include/stdc-predef.h /usr/include/stdlib.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h ../config.h dbhash.h \
dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
dbdata.h dbmpool.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
../config.h:
dbhash.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbdata.h:
dbmpool.h:
dbindex.lo: dbindex.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h ../config.h dbdata.h \
dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
dbindex.h dbcompare.h dbhash.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
../config.h:
dbdata.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbindex.h:
dbcompare.h:
dbhash.h:
dbjson.lo: dbjson.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h ../config.h dbdata.h \
dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
dbcompare.h dbschema.h dbjson.h dbutil.h ../json/yajl_api.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
../config.h:
dbdata.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbcompare.h:
dbschema.h:
dbjson.h:
dbutil.h:
../json/yajl_api.h:
dblock.lo: dblock.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/bits/time.h /usr/include/xlocale.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h ../config.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h dblock.h \
/usr/include/linux/futex.h /usr/include/linux/types.h \
/usr/include/x86_64-linux-gnu/asm/types.h \
/usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
/usr/include/x86_64-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/x86_64-linux-gnu/asm/posix_types.h \
/usr/include/x86_64-linux-gnu/asm/posix_types_64.h \
/usr/include/asm-generic/posix_types.h /usr/include/unistd.h \
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h \
/usr/include/x86_64-linux-gnu/sys/syscall.h \
/usr/include/x86_64-linux-gnu/asm/unistd.h \
/usr/include/x86_64-linux-gnu/asm/unistd_64.h \
/usr/include/x86_64-linux-gnu/bits/syscall.h \
/usr/include/x86_64-linux-gnu/sys/errno.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/xlocale.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dblock.h:
/usr/include/linux/futex.h:
/usr/include/linux/types.h:
/usr/include/x86_64-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/x86_64-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/x86_64-linux-gnu/asm/posix_types.h:
/usr/include/x86_64-linux-gnu/asm/posix_types_64.h:
/usr/include/asm-generic/posix_types.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
/usr/include/x86_64-linux-gnu/sys/syscall.h:
/usr/include/x86_64-linux-gnu/asm/unistd.h:
/usr/include/x86_64-linux-gnu/asm/unistd_64.h:
/usr/include/x86_64-linux-gnu/bits/syscall.h:
/usr/include/x86_64-linux-gnu/sys/errno.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
dblog.lo: dblog.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/fcntl.h \
/usr/include/x86_64-linux-gnu/bits/fcntl.h \
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/bits/stat.h \
/usr/include/x86_64-linux-gnu/bits/fcntl2.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/unistd.h \
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h \
/usr/include/x86_64-linux-gnu/sys/errno.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
../config.h dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
dbdata.h dbhash.h dblog.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/fcntl.h:
/usr/include/x86_64-linux-gnu/bits/fcntl.h:
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/bits/stat.h:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/sys/stat.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
/usr/include/x86_64-linux-gnu/sys/errno.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbdata.h:
dbhash.h:
dblog.h:
dbmem.lo: dbmem.c /usr/include/stdc-predef.h /usr/include/stdlib.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
/usr/include/x86_64-linux-gnu/sys/shm.h \
/usr/include/x86_64-linux-gnu/sys/ipc.h \
/usr/include/x86_64-linux-gnu/bits/ipctypes.h \
/usr/include/x86_64-linux-gnu/bits/ipc.h \
/usr/include/x86_64-linux-gnu/bits/shm.h \
/usr/include/x86_64-linux-gnu/sys/errno.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h ../config.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h dbfeatures.h dbmem.h dblog.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
/usr/include/x86_64-linux-gnu/sys/shm.h:
/usr/include/x86_64-linux-gnu/sys/ipc.h:
/usr/include/x86_64-linux-gnu/bits/ipctypes.h:
/usr/include/x86_64-linux-gnu/bits/ipc.h:
/usr/include/x86_64-linux-gnu/bits/shm.h:
/usr/include/x86_64-linux-gnu/sys/errno.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbfeatures.h:
dbmem.h:
dblog.h:
dbmpool.lo: dbmpool.c /usr/include/stdc-predef.h /usr/include/stdlib.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
/usr/include/x86_64-linux-gnu/sys/shm.h \
/usr/include/x86_64-linux-gnu/sys/ipc.h \
/usr/include/x86_64-linux-gnu/bits/ipctypes.h \
/usr/include/x86_64-linux-gnu/bits/ipc.h \
/usr/include/x86_64-linux-gnu/bits/shm.h \
/usr/include/x86_64-linux-gnu/sys/errno.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
../config.h dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h dbmem.h \
dbapi.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/limits.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
/usr/include/x86_64-linux-gnu/sys/shm.h:
/usr/include/x86_64-linux-gnu/sys/ipc.h:
/usr/include/x86_64-linux-gnu/bits/ipctypes.h:
/usr/include/x86_64-linux-gnu/bits/ipc.h:
/usr/include/x86_64-linux-gnu/bits/shm.h:
/usr/include/x86_64-linux-gnu/sys/errno.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbmem.h:
dbapi.h:
dbquery.lo: dbquery.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h ../config.h dbquery.h \
dbdata.h dbindex.h dbcompare.h dbmpool.h dbschema.h dbhash.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
../config.h:
dbquery.h:
dbdata.h:
dbindex.h:
dbcompare.h:
dbmpool.h:
dbschema.h:
dbhash.h:
dbschema.lo: dbschema.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h ../config.h dbdata.h \
dballoc.h /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h \
/usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
dbcompare.h dbindex.h dbschema.h dblog.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
../config.h:
dbdata.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbcompare.h:
dbindex.h:
dbschema.h:
dblog.h:
dbutil.lo: dbutil.c /usr/include/stdc-predef.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/sigset.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
/usr/include/x86_64-linux-gnu/bits/string2.h \
/usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
dbdata.h ../config.h dballoc.h \
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h dbutil.h dbquery.h dbindex.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/sigset.h:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/x86_64-linux-gnu/bits/string.h:
/usr/include/x86_64-linux-gnu/bits/string2.h:
/usr/include/x86_64-linux-gnu/bits/string3.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
dbdata.h:
../config.h:
dballoc.h:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
dbutil.h:
dbquery.h:
dbindex.h:
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
../libDb.la
\ No newline at end of file
#
# - - - - main db sources - - -
noinst_LTLIBRARIES = libDb.la
libDb_la_SOURCES = dbmem.c dbmem.h\
dballoc.c dballoc.h dbfeatures.h\
dbdata.c dbdata.h\
dblock.c dblock.h\
dbdump.c dbdump.h crc1.h\
dblog.c dblog.h\
dbhash.c dbhash.h\
dbindex.c dbindex.h\
dbcompare.c dbcompare.h\
dbquery.c dbquery.h\
dbutil.c dbutil.h\
dbmpool.c dbmpool.h\
dbjson.c dbjson.h\
dbschema.c dbschema.h
if RAPTOR
AM_CFLAGS += `$(RAPTOR_CONFIG) --cflags`
endif
/*
* zlib/libpng license
* Copyright (c) 2000-2004 mypapit
*
* This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from the
* use of this software.
*
* Permission is granted to anyone to use this software for any purpose, including
* commercial applications, and to alter it and redistribute it freely, subject to
* the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not claim
* that you wrote the original software. If you use this software in a product, an
* acknowledgment in the product documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source distribution.
*/
/** @file crc1.h
* CRC32 calculator from minicrc project.
*/
/* table of CRC-32's of all single-byte values (made by makecrc.c) */
gint32 crc_table[256] = {
0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
0x2d02ef8dL
};
static gint32 update_crc32(char *buf, gint n, gint32 crc) {
register gint i;
crc ^= 0xffffffff;
for (i=0; i<n; i++)
crc = crc_table[0xff & (buf[i] ^ crc)] ^ (crc >> 8);
return crc ^= 0xffffffff;
}
# dballoc.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dballoc.o'
# Name of the non-PIC object
non_pic_object='dballoc.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2010,2011,2012,2013
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbcompare.c
* Data comparison functions.
*/
/* ====== Includes =============== */
#include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "dbdata.h"
/* ====== Private headers and defs ======== */
#include "dbcompare.h"
/* ====== Functions ============== */
/** Compare two encoded values
* a, b - encoded values
* returns WG_GREATER, WG_EQUAL or WG_LESSTHAN
* assumes that a and b themselves are not equal and so
* their decoded values need to be examined (which could still
* be equal for some data types).
* depth - recursion depth for records
*/
gint wg_compare(void *db, gint a, gint b, int depth) {
/* a very simplistic version of the function:
* - we get the types of the variables
* - if the types match, compare the decoded values
* - otherwise compare the type codes (not really scientific,
* but will provide a means of ordering values).
*
* One important point that should be observed here is
* that the returned values should be consistent when
* comparing A to B and then B to A. This applies to cases
* where we have no reason to think one is greater than
* the other from the *user's* point of view, but for use
* in T-tree index and similar, values need to be consistently
* ordered. Examples include unknown types and record pointers
* (once recursion depth runs out).
*/
/* XXX: might be able to save time here to mask and compare
* the type bits instead */
gint typea = wg_get_encoded_type(db, a);
gint typeb = wg_get_encoded_type(db, b);
/* assume types are >2 (NULLs are always equal) and
* <13 (not implemented as of now)
* XXX: all of this will fall apart if type codes
* are somehow rearranged :-) */
if(typeb==typea) {
if(typea>WG_CHARTYPE) { /* > 9, not a string */
if(typea>WG_FIXPOINTTYPE) {
/* date or time. Compare decoded gints */
gint deca, decb;
if(typea==WG_DATETYPE) {
deca = wg_decode_date(db, a);
decb = wg_decode_date(db, b);
} else if(typea==WG_TIMETYPE) {
deca = wg_decode_time(db, a);
decb = wg_decode_time(db, b);
} else if(typea==WG_VARTYPE) {
deca = wg_decode_var(db, a);
decb = wg_decode_var(db, b);
} else {
/* anon const or other new type, no idea how to compare */
return (a>b ? WG_GREATER : WG_LESSTHAN);
}
return (deca>decb ? WG_GREATER : WG_LESSTHAN);
} else {
/* fixpoint, need to compare doubles */
double deca, decb;
deca = wg_decode_fixpoint(db, a);
decb = wg_decode_fixpoint(db, b);
return (deca>decb ? WG_GREATER : WG_LESSTHAN);
}
}
else if(typea<WG_STRTYPE) { /* < 5, still not a string */
if(typea==WG_RECORDTYPE) {
void *deca, *decb;
deca = wg_decode_record(db, a);
decb = wg_decode_record(db, b);
if(!depth) {
/* No more recursion allowed and pointers aren't equal.
* So while we're technically comparing the addresses here,
* the main point is that the returned value != WG_EQUAL
*/
return ((gint) deca> (gint) decb ? WG_GREATER : WG_LESSTHAN);
}
else {
int i;
#ifdef USE_CHILD_DB
void *parenta, *parentb;
#endif
int lena = wg_get_record_len(db, deca);
int lenb = wg_get_record_len(db, decb);
#ifdef USE_CHILD_DB
/* Determine, if the records are inside the memory area beloning
* to our current base address. If it is outside, the encoded
* values inside the record contain offsets in relation to
* a different base address and need to be translated.
*/
parenta = wg_get_rec_owner(db, deca);
parentb = wg_get_rec_owner(db, decb);
#endif
/* XXX: Currently we're considering records of differing lengths
* non-equal without comparing the elements
*/
if(lena!=lenb)
return (lena>lenb ? WG_GREATER : WG_LESSTHAN);
/* Recursively check each element in the record. If they
* are not equal, break and return with the obtained value
*/
for(i=0; i<lena; i++) {
gint elema = wg_get_field(db, deca, i);
gint elemb = wg_get_field(db, decb, i);
#ifdef USE_CHILD_DB
if(parenta != dbmemseg(db)) {
elema = wg_translate_hdroffset(db, parenta, elema);
}
if(parentb != dbmemseg(db)) {
elemb = wg_translate_hdroffset(db, parentb, elemb);
}
#endif
if(elema != elemb) {
gint cr = wg_compare(db, elema, elemb, depth - 1);
if(cr != WG_EQUAL)
return cr;
}
}
return WG_EQUAL; /* all elements matched */
}
}
else if(typea==WG_INTTYPE) {
gint deca, decb;
deca = wg_decode_int(db, a);
decb = wg_decode_int(db, b);
if(deca==decb) return WG_EQUAL; /* large ints can be equal */
return (deca>decb ? WG_GREATER : WG_LESSTHAN);
} else {
/* WG_DOUBLETYPE */
double deca, decb;
deca = wg_decode_double(db, a);
decb = wg_decode_double(db, b);
if(deca==decb) return WG_EQUAL; /* decoded doubles can be equal */
return (deca>decb ? WG_GREATER : WG_LESSTHAN);
}
}
else { /* string */
/* Need to compare the characters. In case of 0-terminated
* strings we use strcmp() directly, which in glibc is heavily
* optimised. In case of blob type we need to query the length
* and use memcmp().
*/
char *deca, *decb, *exa=NULL, *exb=NULL;
char buf[4];
gint res;
if(typea==WG_STRTYPE) {
/* lang is ignored */
deca = wg_decode_str(db, a);
decb = wg_decode_str(db, b);
}
else if(typea==WG_URITYPE) {
exa = wg_decode_uri_prefix(db, a);
exb = wg_decode_uri_prefix(db, b);
deca = wg_decode_uri(db, a);
decb = wg_decode_uri(db, b);
}
else if(typea==WG_XMLLITERALTYPE) {
exa = wg_decode_xmlliteral_xsdtype(db, a);
exb = wg_decode_xmlliteral_xsdtype(db, b);
deca = wg_decode_xmlliteral(db, a);
decb = wg_decode_xmlliteral(db, b);
}
else if(typea==WG_CHARTYPE) {
buf[0] = wg_decode_char(db, a);
buf[1] = '\0';
buf[2] = wg_decode_char(db, b);
buf[3] = '\0';
deca = buf;
decb = &buf[2];
}
else { /* WG_BLOBTYPE */
deca = wg_decode_blob(db, a);
decb = wg_decode_blob(db, b);
}
if(exa || exb) {
/* String type where extra information is significant
* (we're ignoring this for plain strings and blobs).
* If extra part is equal, normal comparison continues. If
* one string is missing altogether, it is considered to be
* smaller than the other string.
*/
if(!exb) {
if(exa[0])
return WG_GREATER;
} else if(!exa) {
if(exb[0])
return WG_LESSTHAN;
} else {
res = strcmp(exa, exb);
if(res > 0) return WG_GREATER;
else if(res < 0) return WG_LESSTHAN;
}
}
#if 0 /* paranoia check */
if(!deca || !decb) {
if(decb)
if(decb[0])
return WG_LESSTHAN;
} else if(deca) {
if(deca[0])
return WG_GREATER;
}
return WG_EQUAL;
}
#endif
if(typea==WG_BLOBTYPE) {
/* Blobs are not 0-terminated */
int lena = wg_decode_blob_len(db, a);
int lenb = wg_decode_blob_len(db, b);
res = memcmp(deca, decb, (lena < lenb ? lena : lenb));
if(!res) res = lena - lenb;
} else {
res = strcmp(deca, decb);
}
if(res > 0) return WG_GREATER;
else if(res < 0) return WG_LESSTHAN;
else return WG_EQUAL;
}
}
else
return (typea>typeb ? WG_GREATER : WG_LESSTHAN);
}
#ifdef __cplusplus
}
#endif
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2010
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbcompare.h
* Public headers for data comparison functions.
*/
#ifndef DEFINED_DBCOMPARE_H
#define DEFINED_DBCOMPARE_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* For gint data type */
#include "dbdata.h"
/* ==== Public macros ==== */
#define WG_EQUAL 0
#define WG_GREATER 1
#define WG_LESSTHAN -1
/* If backlinking is enabled, records can be compared by their
* contents instead of just pointers. With no backlinking this
* is disabled so that records' comparative values do not change
* when updating their contents.
*/
#ifdef USE_BACKLINKING
#define WG_COMPARE_REC_DEPTH 7 /** recursion depth for record comparison */
#else
#define WG_COMPARE_REC_DEPTH 0
#endif
/* wrapper macro for wg_compare(), if encoded values are
* equal they will also decode to an equal value and so
* we can avoid calling the function.
*/
#define WG_COMPARE(d,a,b) (a==b ? WG_EQUAL :\
wg_compare(d,a,b,WG_COMPARE_REC_DEPTH))
/* ==== Protos ==== */
gint wg_compare(void *db, gint a, gint b, int depth);
#endif /* DEFINED_DBCOMPARE_H */
# dbcompare.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbcompare.o'
# Name of the non-PIC object
non_pic_object='dbcompare.o'
No preview for this file type
# dbdata.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbdata.o'
# Name of the non-PIC object
non_pic_object='dbdata.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Andri Rebane 2009, Priit Jrv 2009,2010,2013,2014
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbdump.c
* DB dumping support for WhiteDB memory database
*
*/
/* ====== Includes =============== */
#include <stdio.h>
#include <stdlib.h>
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <malloc.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
#include "dballoc.h"
#include "dbmem.h"
#include "dblock.h"
#include "dblog.h"
/* ====== Private headers and defs ======== */
#include "dbdump.h"
#include "crc1.h"
/* ======= Private protos ================ */
static gint show_dump_error(void *db, char *errmsg);
static gint show_dump_error_str(void *db, char *errmsg, char *str);
/* ====== Functions ============== */
/** dump shared memory to the disk.
* Returns 0 when successful (no error).
* -1 non-fatal error (db may continue)
* -2 fatal error (should abort db)
* This function is parallel-safe (may run during normal db usage)
*/
gint wg_dump(void * db,char fileName[]) {
return wg_dump_internal(db, fileName, 1);
}
/** Handle the actual dumping (called by the API wrapper)
* if locking is non-zero, properly acquire locks on the database.
* Otherwise do a rescue dump by copying the memory image without locking.
*/
gint wg_dump_internal(void * db, char fileName[], int locking) {
FILE *f;
db_memsegment_header* dbh = dbmemsegh(db);
gint dbsize = dbh->free; /* first unused offset - 0 = db size */
#ifdef USE_DBLOG
gint active;
#endif
gint err = -1;
gint lock_id = 0;
gint32 crc;
#ifdef CHECK
if(dbh->extdbs.count != 0) {
show_dump_error(db, "Database contains external references");
}
#endif
/* Open the dump file */
#ifdef _WIN32
if(fopen_s(&f, fileName, "wb")) {
#else
if(!(f = fopen(fileName, "wb"))) {
#endif
show_dump_error(db, "Error opening file");
return -1;
}
#ifndef USE_DBLOG
/* Get shared lock on the db */
if(locking) {
lock_id = db_rlock(db, DEFAULT_LOCK_TIMEOUT);
if(!lock_id) {
show_dump_error(db, "Failed to lock the database for dump");
return -1;
}
}
#else
/* Get exclusive lock on the db, we need to modify the logging area */
if(locking) {
lock_id = db_wlock(db, DEFAULT_LOCK_TIMEOUT);
if(!lock_id) {
show_dump_error(db, "Failed to lock the database for dump");
return -1;
}
}
active = dbh->logging.active;
if(active) {
wg_stop_logging(db);
}
#endif
/* Compute the CRC32 of the used area */
crc = update_crc32(dbmemsegbytes(db), dbsize, 0x0);
/* Now, write the memory area to file */
if(fwrite(dbmemseg(db), dbsize, 1, f) == 1) {
/* Overwrite checksum field */
fseek(f, ptrtooffset(db, &(dbh->checksum)), SEEK_SET);
if(fwrite(&crc, sizeof(gint32), 1, f) == 1) {
err = 0;
}
}
if(err)
show_dump_error(db, "Error writing file");
#ifndef USE_DBLOG
/* We're done writing */
if(locking) {
if(!db_rulock(db, lock_id)) {
show_dump_error(db, "Failed to unlock the database");
err = -2; /* This error should be handled as fatal */
}
}
#else
/* restart logging */
if(active) {
dbh->logging.dirty = 0;
if(wg_start_logging(db)) {
err = -2; /* Failed to re-initialize log */
}
}
if(locking) {
if(!db_wulock(db, lock_id)) {
show_dump_error(db, "Failed to unlock the database");
err = -2; /* Write lock failure --> fatal */
}
}
#endif
fflush(f);
fclose(f);
return err;
}
/* This has to be large enough to hold all the relevant
* fields in the header during the first pass of the read.
* (Currently this is the first 24 bytes of the dump file)
*/
#define BUFSIZE 8192
/** Check dump file for compatibility and errors.
* Returns 0 when successful (no error).
* -1 on system error (cannot open file, no memory)
* -2 header is incompatible
* -3 on file integrity error (size mismatch, CRC32 error).
*
* Sets minsize to minimum required segment size and maxsize
* to original memory image size if check was successful. Otherwise
* the contents of these variables may be undefined.
*/
gint wg_check_dump(void *db, char fileName[], gint *minsize, gint *maxsize) {
char *buf;
FILE *f;
gint len, filesize;
gint32 crc, dump_crc;
gint err = -1;
/* Attempt to open the dump file */
#ifdef _WIN32
if(fopen_s(&f, fileName, "rb")) {
#else
if(!(f = fopen(fileName, "rb"))) {
#endif
show_dump_error(db, "Error opening file");
return -1;
}
buf = (char *) malloc(BUFSIZE);
if(!buf) {
show_dump_error(db, "malloc error in wg_import_dump");
goto abort1;
}
/* First pass of reading. Examine the header. */
if(fread(buf, BUFSIZE, 1, f) != 1) {
show_dump_error(db, "Error reading dump header");
goto abort2;
}
if(wg_check_header_compat((db_memsegment_header *) buf)) {
show_dump_error_str(db, "Incompatible dump file", fileName);
wg_print_code_version();
wg_print_header_version((db_memsegment_header *) buf, 1);
err = -2;
goto abort2;
}
*minsize = ((db_memsegment_header *) buf)->free;
*maxsize = ((db_memsegment_header *) buf)->size;
/* Now check file integrity. */
dump_crc = ((db_memsegment_header *) buf)->checksum;
((db_memsegment_header *) buf)->checksum = 0;
len = BUFSIZE;
filesize = 0;
crc = 0;
do {
filesize += len;
crc = update_crc32(buf, len, crc);
} while((len=fread(buf,1,BUFSIZE,f)) > 0);
if(filesize != *minsize) {
show_dump_error_str(db, "File size incorrect", fileName);
err = -3;
}
else if(crc != dump_crc) {
show_dump_error_str(db, "File CRC32 incorrect", fileName);
err = -3;
}
else
err = 0;
abort2:
free(buf);
abort1:
fclose(f);
return err;
}
/** Import database dump from disk.
* Returns 0 when successful (no error).
* -1 non-fatal error (db may continue)
* -2 fatal error (should abort db)
*
* this function is NOT parallel-safe. Other processes accessing
* db concurrently may cause undefined behaviour (including data loss)
*/
gint wg_import_dump(void * db,char fileName[]) {
db_memsegment_header* dumph;
FILE *f;
db_memsegment_header* dbh = dbmemsegh(db);
gint dbsize = -1, newsize;
gint err = -1;
#ifdef USE_DBLOG
gint active = dbh->logging.active;
#endif
/* Attempt to open the dump file */
#ifdef _WIN32
if(fopen_s(&f, fileName, "rb")) {
#else
if(!(f = fopen(fileName, "rb"))) {
#endif
show_dump_error(db, "Error opening file");
return -1;
}
/* Examine the dump header. We only read the size, it is
* implied that the integrity and compatibility were verified
* earlier.
*/
dumph = (db_memsegment_header *) malloc(sizeof(db_memsegment_header));
if(!dumph) {
show_dump_error(db, "malloc error in wg_import_dump");
}
else if(fread(dumph, sizeof(db_memsegment_header), 1, f) != 1) {
show_dump_error(db, "Error reading dump header");
}
else {
dbsize = dumph->free;
if(dumph->extdbs.count != 0) {
show_dump_error(db, "Dump contains external references");
goto abort;
}
}
if(dumph) free(dumph);
/* 0 > dbsize >= dbh->size indicates that we were able to read the dump
* and it contained a memory image that fits in our current shared memory.
*/
if(dbh->size < dbsize) {
show_dump_error(db, "Data does not fit in shared memory area");
} else if(dbsize > 0) {
/* We have a compatible dump file. */
newsize = dbh->size;
fseek(f, 0, SEEK_SET);
if(fread(dbmemseg(db), dbsize, 1, f) != 1) {
show_dump_error(db, "Error reading dump file");
err = -2; /* database is in undetermined state now */
} else {
err = 0;
dbh->size = newsize;
dbh->checksum = 0;
}
}
abort:
fclose(f);
/* any errors up to now? */
if(err) return err;
/* Initialize db state */
#ifdef USE_DBLOG
/* restart logging */
dbh->logging.dirty = 0;
dbh->logging.active = 0;
if(active) { /* state inherited from memory */
if(wg_start_logging(db)) {
return -2; /* Failed to re-initialize log */
}
}
#endif
return wg_init_locks(db);
}
/* ------------ error handling ---------------- */
static gint show_dump_error(void *db, char *errmsg) {
#ifdef WG_NO_ERRPRINT
#else
fprintf(stderr,"wg dump error: %s.\n", errmsg);
#endif
return -1;
}
static gint show_dump_error_str(void *db, char *errmsg, char *str) {
#ifdef WG_NO_ERRPRINT
#else
fprintf(stderr,"wg dump error: %s: %s.\n", errmsg, str);
#endif
return -1;
}
#ifdef __cplusplus
}
#endif
/*
* $Id: $
* $Version: $
*
* Copyright (c) Andri Rebane 2009
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbdump.h
* Public headers for memory dumping to the disk.
*/
#ifndef DEFINED_DBDUMP_H
#define DEFINED_DBDUMP_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* ====== data structures ======== */
/* ==== Protos ==== */
gint wg_dump(void * db,char fileName[]); /* dump shared memory database to the disk */
gint wg_dump_internal(void * db,char fileName[], int locking); /* handle the dump */
gint wg_import_dump(void * db,char fileName[]); /* import database from the disk */
gint wg_check_dump(void *db, char fileName[],
gint *mixsize, gint *maxsize); /* check the dump file and get the db size */
#endif /* DEFINED_DBDUMP_H */
# dbdump.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbdump.o'
# Name of the non-PIC object
non_pic_object='dbdump.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Jrv 2010
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbfeatures.h
* Constructs bit vector of libwgdb compile-time features
*/
#ifndef DEFINED_DBFEATURES_H
#define DEFINED_DBFEATURES_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* Used to check for individual features */
#define FEATURE_BITS_64BIT 0x1
#define FEATURE_BITS_QUEUED_LOCKS 0x2
#define FEATURE_BITS_TTREE_CHAINED 0x4
#define FEATURE_BITS_BACKLINK 0x8
#define FEATURE_BITS_CHILD_DB 0x10
#define FEATURE_BITS_INDEX_TMPL 0x20
/* Construct the bit vector */
#ifdef HAVE_64BIT_GINT
#define FEATURE_BITS_01 FEATURE_BITS_64BIT
#else
#define FEATURE_BITS_01 0x0
#endif
#if (LOCK_PROTO==3)
#define FEATURE_BITS_02 FEATURE_BITS_QUEUED_LOCKS
#else
#define FEATURE_BITS_02 0x0
#endif
#ifdef TTREE_CHAINED_NODES
#define FEATURE_BITS_03 FEATURE_BITS_TTREE_CHAINED
#else
#define FEATURE_BITS_03 0x0
#endif
#ifdef USE_BACKLINKING
#define FEATURE_BITS_04 FEATURE_BITS_BACKLINK
#else
#define FEATURE_BITS_04 0x0
#endif
#ifdef USE_CHILD_DB
#define FEATURE_BITS_05 FEATURE_BITS_CHILD_DB
#else
#define FEATURE_BITS_05 0x0
#endif
#ifdef USE_INDEX_TEMPLATE
#define FEATURE_BITS_06 FEATURE_BITS_INDEX_TMPL
#else
#define FEATURE_BITS_06 0x0
#endif
#define MEMSEGMENT_FEATURES (FEATURE_BITS_01 |\
FEATURE_BITS_02 |\
FEATURE_BITS_03 |\
FEATURE_BITS_04 |\
FEATURE_BITS_05 |\
FEATURE_BITS_06)
#endif /* DEFINED_DBFEATURES_H */
/*
* $Id: $
* $Version: $
*
* Copyright (c) Tanel Tammet 2004,2005,2006,2007,2008,2009
* Copyright (c) Priit Jrv 2013,2014
*
* Contact: tanel.tammet@gmail.com
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbhash.h
* Public headers for hash-related procedures.
*/
#ifndef DEFINED_DBHASH_H
#define DEFINED_DBHASH_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
#include "dballoc.h"
/* ==== Public macros ==== */
#define HASHIDX_META_POS 1
#define HASHIDX_RECLIST_POS 2
#define HASHIDX_HASHCHAIN_POS 3
#define HASHIDX_HEADER_SIZE 4
/* ==== Protos ==== */
int wg_hash_typedstr(void* db, char* data, char* extrastr, gint type, gint length);
gint wg_find_strhash_bucket(void* db, char* data, char* extrastr, gint type, gint size, gint hashchain);
int wg_right_strhash_bucket
(void* db, gint longstr, char* cstr, char* cextrastr, gint ctype, gint cstrsize);
gint wg_remove_from_strhash(void* db, gint longstr);
gint wg_decode_for_hashing(void *db, gint enc, char **decbytes);
gint wg_idxhash_store(void* db, db_hash_area_header *ha,
char* data, gint length, gint offset);
gint wg_idxhash_remove(void* db, db_hash_area_header *ha,
char* data, gint length, gint offset);
gint wg_idxhash_find(void* db, db_hash_area_header *ha,
char* data, gint length);
void *wg_ginthash_init(void *db);
gint wg_ginthash_addkey(void *db, void *tbl, gint key, gint val);
gint wg_ginthash_getkey(void *db, void *tbl, gint key, gint *val);
void wg_ginthash_free(void *db, void *tbl);
void *wg_dhash_init(void *db, size_t entries);
void wg_dhash_free(void *db, void *tbl);
gint wg_dhash_addkey(void *db, void *tbl, gint key);
gint wg_dhash_haskey(void *db, void *tbl, gint key);
#endif /* DEFINED_DBHASH_H */
# dbhash.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbhash.o'
# Name of the non-PIC object
non_pic_object='dbhash.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Enar Reilent 2009, Priit Jrv 2010,2011,2013
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dblock.h
* Public headers for indexing routines
*/
#ifndef DEFINED_DBINDEX_H
#define DEFINED_DBINDEX_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* For gint data type */
#include "dbdata.h"
/* ==== Public macros ==== */
#define REALLY_BOUNDING_NODE 0
#define DEAD_END_LEFT_NOT_BOUNDING 1
#define DEAD_END_RIGHT_NOT_BOUNDING 2
#ifdef TTREE_CHAINED_NODES
#define TNODE_SUCCESSOR(d, x) (x->succ_offset)
#define TNODE_PREDECESSOR(d, x) (x->pred_offset)
#else
#define TNODE_SUCCESSOR(d, x) (x->right_child_offset ? \
wg_ttree_find_lub_node(d, x->right_child_offset) : \
wg_ttree_find_leaf_successor(d, ptrtooffset(d, x)))
#define TNODE_PREDECESSOR(d, x) (x->left_child_offset ? \
wg_ttree_find_glb_node(d, x->left_child_offset) : \
wg_ttree_find_leaf_predecessor(d, ptrtooffset(d, x)))
#endif
/* Check if record matches index (takes pointer arguments) */
#ifndef USE_INDEX_TEMPLATE
#define MATCH_TEMPLATE(d, h, r) 1
#else
#define MATCH_TEMPLATE(d, h, r) (h->template_offset ? \
wg_match_template(d, \
(wg_index_template *) offsettoptr(d, h->template_offset), r) : 1)
#endif
#define WG_INDEX_TYPE_TTREE 50
#define WG_INDEX_TYPE_TTREE_JSON 51
#define WG_INDEX_TYPE_HASH 60
#define WG_INDEX_TYPE_HASH_JSON 61
/* Index header helpers */
#define TTREE_ROOT_NODE(x) (x->ctl.t.offset_root_node)
#ifdef TTREE_CHAINED_NODES
#define TTREE_MIN_NODE(x) (x->ctl.t.offset_min_node)
#define TTREE_MAX_NODE(x) (x->ctl.t.offset_max_node)
#endif
#define HASHIDX_ARRAYP(x) (&(x->ctl.h.hasharea))
/* ====== data structures ======== */
/** structure of t-node
* (array of data pointers, pointers to parent/children nodes, control data)
* overall size is currently 64 bytes (cache line?) if array size is 10,
* with extra node chaining pointers the array size defaults to 8.
*/
struct wg_tnode{
gint parent_offset;
gint current_max; /** encoded value */
gint current_min; /** encoded value */
short number_of_elements;
unsigned char left_subtree_height;
unsigned char right_subtree_height;
gint array_of_values[WG_TNODE_ARRAY_SIZE];
gint left_child_offset;
gint right_child_offset;
#ifdef TTREE_CHAINED_NODES
gint succ_offset; /** forward (smaller to larger) sequential chain */
gint pred_offset; /** backward sequential chain */
#endif
};
/* ==== Protos ==== */
/* API functions (copied in indexapi.h) */
gint wg_create_index(void *db, gint column, gint type,
gint *matchrec, gint reclen);
gint wg_create_multi_index(void *db, gint *columns, gint col_count,
gint type, gint *matchrec, gint reclen);
gint wg_drop_index(void *db, gint index_id);
gint wg_column_to_index_id(void *db, gint column, gint type,
gint *matchrec, gint reclen);
gint wg_multi_column_to_index_id(void *db, gint *columns, gint col_count,
gint type, gint *matchrec, gint reclen);
gint wg_get_index_type(void *db, gint index_id);
void * wg_get_index_template(void *db, gint index_id, gint *reclen);
void * wg_get_all_indexes(void *db, gint *count);
/* WhiteDB internal functions */
gint wg_search_ttree_index(void *db, gint index_id, gint key);
#ifndef TTREE_CHAINED_NODES
gint wg_ttree_find_glb_node(void *db, gint nodeoffset);
gint wg_ttree_find_lub_node(void *db, gint nodeoffset);
gint wg_ttree_find_leaf_predecessor(void *db, gint nodeoffset);
gint wg_ttree_find_leaf_successor(void *db, gint nodeoffset);
#endif
gint wg_search_ttree_rightmost(void *db, gint rootoffset,
gint key, gint *result, struct wg_tnode *rb_node);
gint wg_search_ttree_leftmost(void *db, gint rootoffset,
gint key, gint *result, struct wg_tnode *lb_node);
gint wg_search_tnode_first(void *db, gint nodeoffset, gint key,
gint column);
gint wg_search_tnode_last(void *db, gint nodeoffset, gint key,
gint column);
gint wg_search_hash(void *db, gint index_id, gint *values, gint count);
#ifdef USE_INDEX_TEMPLATE
gint wg_match_template(void *db, wg_index_template *tmpl, void *rec);
#endif
gint wg_index_add_field(void *db, void *rec, gint column);
gint wg_index_add_rec(void *db, void *rec);
gint wg_index_del_field(void *db, void *rec, gint column);
gint wg_index_del_rec(void *db, void *rec);
#endif /* DEFINED_DBINDEX_H */
# dbindex.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbindex.o'
# Name of the non-PIC object
non_pic_object='dbindex.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2013, 2014
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbjson.h
* Public headers for JSON I/O.
*/
#ifndef DEFINED_DBJSON_H
#define DEFINED_DBJSON_H
/* ====== data structures ======== */
/* ==== Protos ==== */
gint wg_parse_json_file(void *db, char *filename);
gint wg_check_json(void *db, char *buf);
gint wg_parse_json_document(void *db, char *buf, void **document);
gint wg_parse_json_fragment(void *db, char *buf, void **document);
gint wg_parse_json_param(void *db, char *buf, void **document);
void wg_print_json_document(void *db, void *cb, void *cb_ctx, void *document);
#endif /* DEFINED_DBJSON_H */
# dbjson.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbjson.o'
# Name of the non-PIC object
non_pic_object='dbjson.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Jrv 2009, 2013, 2014
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dblock.h
* Public headers for concurrent access routines.
*/
#ifndef DEFINED_DBLOCK_H
#define DEFINED_DBLOCK_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* ==== Public macros ==== */
/* XXX: move to configure.in / config-xxx.h */
#define USE_LOCK_TIMEOUT 1
#define DEFAULT_LOCK_TIMEOUT 2000 /* in ms */
/* Lock protocol */
#define RPSPIN 1
#define WPSPIN 2
#define TFQUEUE 3
/* ====== data structures ======== */
#if (LOCK_PROTO==TFQUEUE)
/* Queue nodes are stored locally in allocated cells.
* The size of this structure can never exceed SYN_VAR_PADDING
* defined in dballoc.h.
*/
typedef struct {
/* XXX: do we need separate links for stack? Or even, does
* it break correctness? */
gint next_cell; /* freelist chain (db offset) */
gint class; /* LOCKQ_READ, LOCKQ_WRITE */
volatile gint waiting; /* sync variable */
volatile gint next; /* queue chain (db offset) */
volatile gint prev; /* queue chain */
} lock_queue_node;
#endif
/* ==== Protos ==== */
/* API functions (copied in dbapi.h) */
gint wg_start_write(void * dbase); /* start write transaction */
gint wg_end_write(void * dbase, gint lock); /* end write transaction */
gint wg_start_read(void * dbase); /* start read transaction */
gint wg_end_read(void * dbase, gint lock); /* end read transaction */
/* WhiteDB internal functions */
gint wg_compare_and_swap(volatile gint *ptr, gint oldv, gint newv);
gint wg_init_locks(void * db); /* (re-) initialize locking subsystem */
#if (LOCK_PROTO==RPSPIN)
#ifdef USE_LOCK_TIMEOUT
gint db_rpspin_wlock(void * dbase, gint timeout);
#define db_wlock(d, t) db_rpspin_wlock(d, t)
#else
gint db_rpspin_wlock(void * dbase); /* get DB level X lock */
#define db_wlock(d, t) db_rpspin_wlock(d)
#endif
gint db_rpspin_wulock(void * dbase); /* release DB level X lock */
#define db_wulock(d, l) db_rpspin_wulock(d)
#ifdef USE_LOCK_TIMEOUT
gint db_rpspin_rlock(void * dbase, gint timeout);
#define db_rlock(d, t) db_rpspin_rlock(d, t)
#else
gint db_rpspin_rlock(void * dbase); /* get DB level S lock */
#define db_rlock(d, t) db_rpspin_rlock(d)
#endif
gint db_rpspin_rulock(void * dbase); /* release DB level S lock */
#define db_rulock(d, l) db_rpspin_rulock(d)
#elif (LOCK_PROTO==WPSPIN)
#ifdef USE_LOCK_TIMEOUT
gint db_wpspin_wlock(void * dbase, gint timeout);
#define db_wlock(d, t) db_wpspin_wlock(d, t)
#else
gint db_wpspin_wlock(void * dbase); /* get DB level X lock */
#define db_wlock(d, t) db_wpspin_wlock(d)
#endif
gint db_wpspin_wulock(void * dbase); /* release DB level X lock */
#define db_wulock(d, l) db_wpspin_wulock(d)
#ifdef USE_LOCK_TIMEOUT
gint db_wpspin_rlock(void * dbase, gint timeout);
#define db_rlock(d, t) db_wpspin_rlock(d, t)
#else
gint db_wpspin_rlock(void * dbase); /* get DB level S lock */
#define db_rlock(d, t) db_wpspin_rlock(d)
#endif
gint db_wpspin_rulock(void * dbase); /* release DB level S lock */
#define db_rulock(d, l) db_wpspin_rulock(d)
#elif (LOCK_PROTO==TFQUEUE)
#ifdef USE_LOCK_TIMEOUT
gint db_tfqueue_wlock(void * dbase, gint timeout);
#define db_wlock(d, t) db_tfqueue_wlock(d, t)
#else
gint db_tfqueue_wlock(void * dbase); /* get DB level X lock */
#define db_wlock(d, t) db_tfqueue_wlock(d)
#endif
gint db_tfqueue_wulock(void * dbase, gint lock); /* release DB level X lock */
#define db_wulock(d, l) db_tfqueue_wulock(d, l)
#ifdef USE_LOCK_TIMEOUT
gint db_tfqueue_rlock(void * dbase, gint timeout);
#define db_rlock(d, t) db_tfqueue_rlock(d, t)
#else
gint db_tfqueue_rlock(void * dbase); /* get DB level S lock */
#define db_rlock(d, t) db_tfqueue_rlock(d)
#endif
gint db_tfqueue_rulock(void * dbase, gint lock); /* release DB level S lock */
#define db_rulock(d, l) db_tfqueue_rulock(d, l)
#else /* undefined or invalid value, disable locking */
#define db_wlock(d, t) (1)
#define db_wulock(d, l) (1)
#define db_rlock(d, t) (1)
#define db_rulock(d, l) (1)
#endif /* LOCK_PROTO */
#endif /* DEFINED_DBLOCK_H */
# dblock.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dblock.o'
# Name of the non-PIC object
non_pic_object='dblock.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Andri Rebane 2009
* Copyright (c) Priit Jrv 2013,2014
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dblog.h
* Public headers for the recovery journal.
*/
#ifndef DEFINED_DBLOG_H
#define DEFINED_DBLOG_H
#ifndef _WIN32
#define WG_JOURNAL_FILENAME DBLOG_DIR "/wgdb.journal"
#else
#define WG_JOURNAL_FILENAME DBLOG_DIR "\\wgdb_journal"
#endif
#define WG_JOURNAL_FN_BUFSIZE (sizeof(WG_JOURNAL_FILENAME) + 20)
#define WG_JOURNAL_MAX_BACKUPS 10
#define WG_JOURNAL_MAGIC "wgdb"
#define WG_JOURNAL_MAGIC_BYTES 4
#define WG_JOURNAL_ENTRY_ENC ((unsigned char) 0) /* top bits clear |= type */
#define WG_JOURNAL_ENTRY_CRE ((unsigned char) 0x40)
#define WG_JOURNAL_ENTRY_DEL ((unsigned char) 0x80)
#define WG_JOURNAL_ENTRY_SET ((unsigned char) 0xc0)
#define WG_JOURNAL_ENTRY_META ((unsigned char) 0x20)
#define WG_JOURNAL_ENTRY_CMDMASK (0xe0)
#define WG_JOURNAL_ENTRY_TYPEMASK (0x1f)
/* ====== data structures ======== */
typedef struct {
FILE *f;
int fd;
gint serial;
int umask;
} db_handle_logdata;
/* ==== Protos ==== */
gint wg_init_handle_logdata(void *db);
void wg_cleanup_handle_logdata(void *db);
int wg_log_umask(void *db, int cmask);
void wg_journal_filename(void *db, char *buf, size_t buflen);
gint wg_start_logging(void *db);
gint wg_stop_logging(void *db);
gint wg_replay_log(void *db, char *filename);
gint wg_log_create_record(void *db, gint length);
gint wg_log_delete_record(void *db, gint enc);
gint wg_log_encval(void *db, gint enc);
gint wg_log_encode(void *db, gint type, void *data, gint length,
void *extdata, gint extlength);
gint wg_log_set_field(void *db, void *rec, gint col, gint data);
gint wg_log_set_meta(void *db, void *rec, gint meta);
#endif /* DEFINED_DBLOG_H */
# dblog.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dblog.o'
# Name of the non-PIC object
non_pic_object='dblog.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Tanel Tammet 2004,2005,2006,2007,2008,2009
*
* Contact: tanel.tammet@gmail.com
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbmem.h
* Public headers for database memory handling.
*/
#ifndef DEFINED_DBMEM_H
#define DEFINED_DBMEM_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
#define DEFAULT_MEMDBASE_KEY 1000
//#define DEFAULT_MEMDBASE_SIZE 1000000 // 1 meg
#define DEFAULT_MEMDBASE_SIZE 10000000 // 10 meg
//#define DEFAULT_MEMDBASE_SIZE 800000000 // 800 meg
//#define DEFAULT_MEMDBASE_SIZE 2000000000
#define MAX_FILENAME_SIZE 100
/* ====== data structures ======== */
/* ==== Protos ==== */
void* wg_attach_database(char* dbasename, gint size); // returns a pointer to the database, NULL if failure
void* wg_attach_existing_database(char* dbasename); // like wg_attach_database, but does not create a new base
void* wg_attach_logged_database(char* dbasename, gint size); // like wg_attach_database, but activates journal logging on creation
void* wg_attach_database_mode(char* dbasename, gint size, int mode); // like wg_attach_database, set shared segment permissions to "mode"
void* wg_attach_logged_database_mode(char* dbasename, gint size, int mode); // like above, activate journal logging
void* wg_attach_memsegment(char* dbasename, gint minsize,
gint size, int create, int logging, int mode); // same as wg_attach_database, does not check contents
int wg_detach_database(void* dbase); // detaches a database: returns 0 if OK
int wg_delete_database(char* dbasename); // deletes a database: returns 0 if OK
int wg_check_header_compat(db_memsegment_header *dbh); // check memory image compatibility
void wg_print_code_version(void); // show libwgdb version info
void wg_print_header_version(db_memsegment_header *dbh, int verbose); // show version info from header
void* wg_attach_local_database(gint size);
void wg_delete_local_database(void* dbase);
int wg_memmode(void *db);
int wg_memowner(void *db);
int wg_memgroup(void *db);
#endif /* DEFINED_DBMEM_H */
# dbmem.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbmem.o'
# Name of the non-PIC object
non_pic_object='dbmem.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Tanel Tammet 2004,2005,2006,2007,2008,2009
*
* Contact: tanel.tammet@gmail.com
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbmpool.h
* Public headers for memory pool utilities.
*/
#ifndef DEFINED_DBMPOOL_H
#define DEFINED_DBMPOOL_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* ====== data structures ======== */
/* ==== Protos ==== */
void* wg_create_mpool(void* db, int bytes); // call this to init pool with initial size bytes
void* wg_alloc_mpool(void* db, void* mpool, int bytes); // call each time you want to "malloc":
// automatically extends pool if no space left
void wg_free_mpool(void* db, void* mpool); // remove the whole pool
int wg_ispair(void* db, void* ptr);
void* wg_mkpair(void* db, void* mpool, void* x, void* y);
void* wg_first(void* db, void* ptr);
void* wg_rest(void* db, void *ptr);
int wg_listtreecount(void* db, void *ptr);
int wg_isatom(void* db, void* ptr);
void* wg_mkatom(void* db, void* mpool, int type, char* str1, char* str2);
int wg_atomtype(void* db, void* ptr);
char* wg_atomstr1(void* db, void* ptr);
char* wg_atomstr2(void* db, void* ptr);
void wg_mpool_print(void* db, void* ptr);
#endif /* DEFINED_DBMPOOL_H */
# dbmpool.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbmpool.o'
# Name of the non-PIC object
non_pic_object='dbmpool.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Jrv 2010,2011,2013
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbcompare.h
* Public headers for WhiteDB query engine.
*/
#ifndef DEFINED_DBQUERY_H
#define DEFINED_DBQUERY_H
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
#include "dbdata.h"
#include "dbindex.h"
/* ==== Public macros ==== */
#define WG_COND_EQUAL 0x0001 /** = */
#define WG_COND_NOT_EQUAL 0x0002 /** != */
#define WG_COND_LESSTHAN 0x0004 /** < */
#define WG_COND_GREATER 0x0008 /** > */
#define WG_COND_LTEQUAL 0x0010 /** <= */
#define WG_COND_GTEQUAL 0x0020 /** >= */
#define WG_QTYPE_TTREE 0x01
#define WG_QTYPE_HASH 0x02
#define WG_QTYPE_SCAN 0x04
#define WG_QTYPE_PREFETCH 0x80
/* ====== data structures ======== */
/** Query argument list object */
typedef struct {
gint column; /** column (field) number this argument applies to */
gint cond; /** condition (equal, less than, etc) */
gint value; /** encoded value */
} wg_query_arg;
typedef struct {
gint key; /** encoded key */
gint value; /** encoded value */
} wg_json_query_arg;
/** Query object */
typedef struct {
gint qtype; /** Query type (T-tree, hash, full scan, prefetch) */
/* Argument list based query is the only one supported at the moment. */
wg_query_arg *arglist; /** check each row in result set against these */
gint argc; /** number of elements in arglist */
gint column; /** index on this column used */
/* Fields for T-tree query (XXX: some may be re-usable for
* other types as well) */
gint curr_offset;
gint end_offset;
gint curr_slot;
gint end_slot;
gint direction;
/* Fields for full scan */
gint curr_record; /** offset of the current record */
/* Fields for prefetch */
void *mpool; /** storage for row offsets */
void *curr_page; /** current page of results */
gint curr_pidx; /** current index on page */
wg_uint res_count; /** number of rows in results */
} wg_query;
/* ==== Protos ==== */
wg_query *wg_make_query(void *db, void *matchrec, gint reclen,
wg_query_arg *arglist, gint argc);
#define wg_make_prefetch_query wg_make_query
wg_query *wg_make_query_rc(void *db, void *matchrec, gint reclen,
wg_query_arg *arglist, gint argc, wg_uint rowlimit);
wg_query *wg_make_json_query(void *db, wg_json_query_arg *arglist, gint argc);
void *wg_fetch(void *db, wg_query *query);
void wg_free_query(void *db, wg_query *query);
gint wg_encode_query_param_null(void *db, char *data);
gint wg_encode_query_param_record(void *db, void *data);
gint wg_encode_query_param_char(void *db, char data);
gint wg_encode_query_param_fixpoint(void *db, double data);
gint wg_encode_query_param_date(void *db, int data);
gint wg_encode_query_param_time(void *db, int data);
gint wg_encode_query_param_var(void *db, gint data);
gint wg_encode_query_param_int(void *db, gint data);
gint wg_encode_query_param_double(void *db, double data);
gint wg_encode_query_param_str(void *db, char *data, char *lang);
gint wg_encode_query_param_xmlliteral(void *db, char *data, char *xsdtype);
gint wg_encode_query_param_uri(void *db, char *data, char *prefix);
gint wg_free_query_param(void* db, gint data);
void *wg_find_record(void *db, gint fieldnr, gint cond, gint data,
void* lastrecord);
void *wg_find_record_null(void *db, gint fieldnr, gint cond, char *data,
void* lastrecord);
void *wg_find_record_record(void *db, gint fieldnr, gint cond, void *data,
void* lastrecord);
void *wg_find_record_char(void *db, gint fieldnr, gint cond, char data,
void* lastrecord);
void *wg_find_record_fixpoint(void *db, gint fieldnr, gint cond, double data,
void* lastrecord);
void *wg_find_record_date(void *db, gint fieldnr, gint cond, int data,
void* lastrecord);
void *wg_find_record_time(void *db, gint fieldnr, gint cond, int data,
void* lastrecord);
void *wg_find_record_var(void *db, gint fieldnr, gint cond, gint data,
void* lastrecord);
void *wg_find_record_int(void *db, gint fieldnr, gint cond, int data,
void* lastrecord);
void *wg_find_record_double(void *db, gint fieldnr, gint cond, double data,
void* lastrecord);
void *wg_find_record_str(void *db, gint fieldnr, gint cond, char *data,
void* lastrecord);
void *wg_find_record_xmlliteral(void *db, gint fieldnr, gint cond, char *data,
char *xsdtype, void* lastrecord);
void *wg_find_record_uri(void *db, gint fieldnr, gint cond, char *data,
char *prefix, void* lastrecord);
#endif /* DEFINED_DBQUERY_H */
# dbquery.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbquery.o'
# Name of the non-PIC object
non_pic_object='dbquery.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2013, 2014
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbschema.c
* WhiteDB (semi-)structured data representation
*/
/* ====== Includes =============== */
#include <stdio.h>
/* ====== Private headers and defs ======== */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
#include "dbdata.h"
#include "dbcompare.h"
#include "dbindex.h"
#include "dbschema.h"
#include "dblog.h"
/* ======== Data ========================= */
/* ======= Private protos ================ */
#ifdef USE_BACKLINKING
static void *find_document_recursive(void *db, gint *rec, int depth);
#endif
static gint delete_record_recursive(void *db, void *rec, int depth);
static gint show_schema_error(void *db, char *errmsg);
/* ====== Functions ============== */
/*
* Create a data triple (subj, prop, ob)
* May also be called to create key-value pairs with (NULL, key, value)
* if isparam is non-0, the data is not indexed.
* returns the new record
* returns NULL on error.
*/
void *wg_create_triple(void *db, gint subj, gint prop, gint ob, gint isparam) {
void *rec = wg_create_raw_record(db, WG_SCHEMA_TRIPLE_SIZE);
gint *meta;
if(rec) {
meta = ((gint *) rec + RECORD_META_POS);
if(isparam) {
*meta |= (RECORD_META_NOTDATA|RECORD_META_MATCH);
} else if(wg_index_add_rec(db, rec) < -1) {
return NULL; /* index error */
}
if(wg_set_field(db, rec, WG_SCHEMA_TRIPLE_OFFSET, subj))
return NULL;
if(wg_set_field(db, rec, WG_SCHEMA_TRIPLE_OFFSET + 1, prop))
return NULL;
if(wg_set_field(db, rec, WG_SCHEMA_TRIPLE_OFFSET + 2, ob))
return NULL;
}
return rec;
}
/*
* Create an empty (JSON) array of given size.
* if isparam is non-0, the data is not indexed (incl. when updating later)
* if isdocument is non-0, the record represents a top-level document
* returns the new record
* returns NULL on error.
*/
void *wg_create_array(void *db, gint size, gint isdocument, gint isparam) {
void *rec = wg_create_raw_record(db, size);
gint *metap, meta;
if(rec) {
metap = ((gint *) rec + RECORD_META_POS);
meta = *metap; /* Temp variable used for write-ahead logging */
meta |= RECORD_META_ARRAY;
if(isdocument)
meta |= RECORD_META_DOC;
if(isparam)
meta |= (RECORD_META_NOTDATA|RECORD_META_MATCH);
#ifdef USE_DBLOG
if(dbmemsegh(db)->logging.active) {
if(wg_log_set_meta(db, rec, meta))
return NULL;
}
#endif
*metap = meta;
if(!isparam) {
if(wg_index_add_rec(db, rec) < -1) {
return NULL; /* index error */
}
}
}
return rec;
}
/*
* Create an empty (JSON) object of given size.
* if isparam is non-0, the data is not indexed (incl. when updating later)
* if isdocument is non-0, the record represents a top-level document
* returns the new record
* returns NULL on error.
*/
void *wg_create_object(void *db, gint size, gint isdocument, gint isparam) {
void *rec = wg_create_raw_record(db, size);
gint *metap, meta;
if(rec) {
metap = ((gint *) rec + RECORD_META_POS);
meta = *metap;
meta |= RECORD_META_OBJECT;
if(isdocument)
meta |= RECORD_META_DOC;
if(isparam)
meta |= (RECORD_META_NOTDATA|RECORD_META_MATCH);
#ifdef USE_DBLOG
if(dbmemsegh(db)->logging.active) {
if(wg_log_set_meta(db, rec, meta))
return NULL;
}
#endif
*metap = meta;
if(!isparam) {
if(wg_index_add_rec(db, rec) < -1) {
return NULL; /* index error */
}
}
}
return rec;
}
/*
* Find a top-level document that the record belongs to.
* returns the document pointer on success
* returns NULL if the document was not found.
*/
void *wg_find_document(void *db, void *rec) {
#ifndef USE_BACKLINKING
show_schema_error(db, "Backlinks are required to find complete documents");
return NULL;
#else
return find_document_recursive(db, (gint *) rec, WG_COMPARE_REC_DEPTH-1);
#endif
}
#ifdef USE_BACKLINKING
/*
* Find a document recursively.
* iterates through the backlink chain and checks each parent recursively.
* Returns the pointer to the (first) found document.
* Returns NULL if nothing found.
* XXX: if a document links to the contents of another document, it
* can "hijack" it in the search results this way. The priority
* depends on the position(s) in the backlink chain, as this is a depth-first
* search.
*/
static void *find_document_recursive(void *db, gint *rec, int depth) {
if(is_schema_document(rec))
return rec;
if(depth > 0) {
gint backlink_list = *(rec + RECORD_BACKLINKS_POS);
if(backlink_list) {
gcell *next = (gcell *) offsettoptr(db, backlink_list);
for(;;) {
void *res = find_document_recursive(db,
(gint *) offsettoptr(db, next->car),
depth-1);
if(res)
return res; /* Something was found recursively */
if(!next->cdr)
break;
next = (gcell *) offsettoptr(db, next->cdr);
}
}
}
return NULL; /* Depth exhausted or nothing found. */
}
#endif
/*
* Delete a top-level document
* returns 0 on success
* returns -1 on error
*/
gint wg_delete_document(void *db, void *document) {
#ifdef CHECK
if(!is_schema_document(document)) {
return show_schema_error(db, "wg_delete_document: not a document");
}
#endif
#ifndef USE_BACKLINKING
return delete_record_recursive(db, document, 99);
#else
return delete_record_recursive(db, document, WG_COMPARE_REC_DEPTH);
#endif
}
/*
* Delete a record and all the records it points to.
* This is safe to call on JSON documents.
*/
static gint delete_record_recursive(void *db, void *rec, int depth) {
gint i, reclen;
if(depth <= 0) {
return show_schema_error(db, "deleting record: recursion too deep");
}
reclen = wg_get_record_len(db, rec);
for(i=0; i<reclen; i++) {
gint enc = wg_get_field(db, rec, i);
gint type = wg_get_encoded_type(db, enc);
if(type == WG_RECORDTYPE) {
if(wg_set_field(db, rec, i, 0))
return -1;
if(delete_record_recursive(db, wg_decode_record(db, enc), depth-1))
return -1;
}
}
if(wg_delete_record(db, rec))
return -1;
return 0;
}
/* ------------ error handling ---------------- */
static gint show_schema_error(void *db, char *errmsg) {
#ifdef WG_NO_ERRPRINT
#else
fprintf(stderr,"wg schema error: %s.\n", errmsg);
#endif
return -1;
}
#ifdef __cplusplus
}
#endif
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2013
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbschema.h
* Public headers for the strucured data functions.
*/
#ifndef DEFINED_DBSCHEMA_H
#define DEFINED_DBSCHEMA_H
/* ==== Public macros ==== */
#define WG_SCHEMA_TRIPLE_SIZE 3
#define WG_SCHEMA_TRIPLE_OFFSET 0
#define WG_SCHEMA_KEY_OFFSET (WG_SCHEMA_TRIPLE_OFFSET + 1)
#define WG_SCHEMA_VALUE_OFFSET (WG_SCHEMA_TRIPLE_OFFSET + 2)
/* ====== data structures ======== */
/* ==== Protos ==== */
void *wg_create_triple(void *db, gint subj, gint prop, gint ob, gint isparam);
#define wg_create_kvpair(db, key, val, ip) \
wg_create_triple(db, 0, key, val, ip)
void *wg_create_array(void *db, gint size, gint isdocument, gint isparam);
void *wg_create_object(void *db, gint size, gint isdocument, gint isparam);
void *wg_find_document(void *db, void *rec);
gint wg_delete_document(void *db, void *document);
#endif /* DEFINED_DBSCHEMA_H */
# dbschema.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbschema.o'
# Name of the non-PIC object
non_pic_object='dbschema.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2010
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file dbutil.h
* Public headers for miscellaneous functions.
*/
#ifndef DEFINED_DBUTIL_H
#define DEFINED_DBUTIL_H
#ifdef HAVE_RAPTOR
#include <raptor.h>
#endif
#ifdef _WIN32
#include "../config-w32.h"
#else
#include "../config.h"
#endif
/* ====== data structures ======== */
#ifdef HAVE_RAPTOR
struct wg_triple_handler_params {
void *db;
int pref_fields; /** number of fields preceeding the triple */
int suff_fields; /** number of fields to reserve at the end */
gint (*callback) (void *, void *); /** function called after
*the triple is stored */
raptor_parser *rdf_parser; /** parser object */
int count; /** return status: rows parsed */
int error; /** return status: error level */
};
#endif
/* ==== Protos ==== */
/* API functions (copied in dbapi.h) */
void wg_print_db(void *db);
void wg_print_record(void *db, gint* rec);
void wg_snprint_value(void *db, gint enc, char *buf, int buflen);
gint wg_parse_and_encode(void *db, char *buf);
gint wg_parse_and_encode_param(void *db, char *buf);
void wg_export_db_csv(void *db, char *filename);
gint wg_import_db_csv(void *db, char *filename);
/* Separate raptor API (copied in rdfapi.h) */
#ifdef HAVE_RAPTOR
gint wg_import_raptor_file(void *db, gint pref_fields, gint suff_fields,
gint (*callback) (void *, void *), char *filename);
gint wg_import_raptor_rdfxml_file(void *db, gint pref_fields, gint suff_fields,
gint (*callback) (void *, void *), char *filename);
gint wg_rdfparse_default_callback(void *db, void *rec);
gint wg_export_raptor_file(void *db, gint pref_fields, char *filename,
char *serializer);
gint wg_export_raptor_rdfxml_file(void *db, gint pref_fields, char *filename);
#endif
void wg_pretty_print_memsize(gint memsz, char *buf, size_t buflen);
#endif /* DEFINED_DBUTIL_H */
# dbutil.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/dbutil.o'
# Name of the non-PIC object
non_pic_object='dbutil.o'
No preview for this file type
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2011
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file indexapi.h
*
* Index management API for WhiteDB.
*
* wg_int type is defined in dbapi.h
*/
#ifndef DEFINED_INDEXAPI_H
#define DEFINED_INDEXAPI_H
/* Public macros */
#define WG_INDEX_TYPE_TTREE 50
#define WG_INDEX_TYPE_TTREE_JSON 51
#define WG_INDEX_TYPE_HASH 60
#define WG_INDEX_TYPE_HASH_JSON 61
/* Public protos */
wg_int wg_create_index(void *db, wg_int column, wg_int type,
wg_int *matchrec, wg_int reclen);
wg_int wg_create_multi_index(void *db, wg_int *columns, wg_int col_count,
wg_int type, wg_int *matchrec, wg_int reclen);
wg_int wg_drop_index(void *db, wg_int index_id);
wg_int wg_column_to_index_id(void *db, wg_int column, wg_int type,
wg_int *matchrec, wg_int reclen);
wg_int wg_multi_column_to_index_id(void *db, wg_int *columns,
wg_int col_count, wg_int type, wg_int *matchrec, wg_int reclen);
wg_int wg_get_index_type(void *db, wg_int index_id);
void * wg_get_index_template(void *db, wg_int index_id, wg_int *reclen);
void * wg_get_all_indexes(void *db, wg_int *count);
#endif /* DEFINED_INDEXAPI_H */
# libDb.la - a libtool library file
# Generated by libtool (GNU libtool) 2.4.2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname=''
# Names of this library.
library_names=''
# The name of the static archive.
old_library='libDb.a'
# Linker flags that can not go in dependency_libs.
inherited_linker_flags=''
# Libraries that this one depends upon.
dependency_libs=' -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
# Version information for libDb.
current=
age=
revision=
# Is this an already installed library?
installed=no
# Should we warn about portability when linking against -modules?
shouldnotlink=no
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir=''
/*
* $Id: $
* $Version: $
*
* Copyright (c) Priit Järv 2010
*
* This file is part of WhiteDB
*
* WhiteDB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WhiteDB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WhiteDB. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** @file rdfapi.h
*
* RDF parsing API for WhiteDB, depends on libraptor.
*
*/
#ifndef DEFINED_RDFAPI_H
#define DEFINED_RDFAPI_H
wg_int wg_import_raptor_file(void *db, wg_int pref_fields, wg_int suff_fields,
wg_int (*callback) (void *, void *), char *filename);
wg_int wg_import_raptor_rdfxml_file(void *db, wg_int pref_fields,
wg_int suff_fields, wg_int (*callback) (void *, void *), char *filename);
wg_int wg_rdfparse_default_callback(void *db, void *rec);
wg_int wg_export_raptor_file(void *db, wg_int pref_fields, char *filename,
char *serializer);
wg_int wg_export_raptor_rdfxml_file(void *db, wg_int pref_fields,
char *filename);
#endif /* DEFINED_RDFAPI_H */
WhiteDB Installation
====================
Introduction
------------
There are two primary ways you can use the distribution package:
- compile the database library ('libwgdb.so' under Linux, 'wgdb.dll' under
Windows) and link your application against that
- compile your application program by including the database files directly
In both of these cases your application using WhiteDB calls should
include the API header file: 'dbapi.h'
In addition, you may want to compile the included utility program (`wgdb`)
to manage the database.
If you're installing from a source package, see the "Quick-start instructions"
immediately below. If you grabbed the source code from the source repository,
please read "Building the repository version" first. If you have a binary
package for your system, follow the instructions for installing packages
on your system instead.
Quick-start instructions
------------------------
These instructions assume you're installing from a distribution source package.
Under Linux, type
./configure
make
make install
This produces the database utilities, the library and installs the
them together with the database header files.
NOTE: on Debian and Ubuntu, you may need to additionally run `ldconfig`
as root.
Under Windows, check that you have MSVC installed. Open the command
prompt with the Visual C environment configured and type:
compile.bat
This produces the database utilities, 'wgdb.lib' and 'wgdb.dll'.
The shared memory
-----------------
Under Linux, the default memory settings are sufficient for testing
and initial evaluation. For increasing the maximum amount of shared
memory, type:
sysctl kernel.shmmax=100000000
This example sets the available shared memory to 100M bytes. Under Mac OS X
you need to set a kern.sysv.shmmax and kern.sysv.shmall, type:
sudo sysctl -w kern.sysv.shmmax=1073741824
sudo sysctl -w kern.sysv.shmall=262144
You can add these settings to '/etc/sysctl.conf' to make it permanent.
Under Windows, the shared memory is not persistent. To maintain a
persistent database, use
wgdb server 100000000
This example creates a shared memory database of 100M bytes. Once
this process is terminated, the shared memory is destroyed.
The configure script
--------------------
Some more relevant options to the configure script are:
'--prefix=PREFIX' specifies the directory the program is
installed under. The binaries go in 'PREFIX/bin', the header files
in 'PREFIX/include/whitedb' and the libraries in 'PREFIX/lib'.
The Python modules, if compiled, will be placed in
'PREFIX/lib/pythonX.Y/site-packages', where X.Y is the Python version
'--with-python' compiles the Python bindings. By default, the configure
script attempts to automatically locate a suitable version of Python. Use
'--with-python=/usr/bin/pythonX.Y' to point to a specific version
of Python.
'--enable-locking' changes the locking protocol. The available options
are: 'rpspin' (a reader preference spinlock), 'wpspin' (a writer preference
spinlock), 'tfqueue' (task-fair queue, no preference) and 'no' (locking
is disabled). The default value is 'tfqueue' which performs best under heavy
workload. For simple applications 'rpspin' may be preferrable, as it has
lower overhead.
'--enable-logging' enables the journal log of the database. Still
somewhat experimental; off by default.
'--enable-reasoner' enables the Gandalf reasoner. Disabled by default.
'--disable-backlink' disables references between records. May be used
to increase performance if the database records never contain any
links to other records.
'--disable-checking' disables sanity checking in many internal
database operations. Increases performance by a small percentage.
`./configure --help` will provide the full list of available options.
Building the repository version
-------------------------------
The github repository (https://github.com/priitj/whitedb) does not
contain a pre-generated configure script. You'll need the autoconf,
automake and libtool packages. If you have those installed, run:
./Bootstrap
This generates the `configure` script and other scripts used by the
autotools build. Then you can continue with the normal installation
process.
Keep in mind that the repository version is a work in progress and may
therefore be unstable and contain undocumented and incomplete features.
Building the utilities without configure and GNU make
-----------------------------------------------------
The `compile.sh` script is provided to allow compiling the utilities
with the C compiler. This is intended to simplify building in
cross-target or embedded environments. It is assumed that the
GNU C Compiler (`gcc`) or the CLang Compiler (`clang`) is used.
When the script is executed with 'gcc' as first parameter or without
parameters, GNU C Compiler is used. You can use CLang compiler using
'clang' as first parameter for this script.
When the script is executed the first time, it copies 'config-gcc.h'
to 'config.h', unless that file is already present. Edit 'config.h' to
change database options. Note that if your system generates 64-bit
binaries, then the macro `HAVE_64BIT_GINT` needs to be enabled explicitly.
Uncomment the compilation of `selftest` in the compilation script and
run it, if in doubt about whether the configuration is correct.
Under Windows, `compile.bat` serves a similar function. To change the
database options, edit the 'config-w32.h' file.
Note that in both cases, the config file for building the `wgdb` utility
should match the config file for building your database application.
Not building anything
---------------------
Building the database library and the utilities is not strictly necessary.
Alternatively you may compile the database sources directly into your
program.
An effective way of doing this is executing the shell script `unite.sh` which
will produce an amalgamation of header files, and an amalgamation of source
files. The end result is two files: 'whitedb.h', and 'whitedb.c'. These can
easily be included in your repository, or code base, and compiled directly in,
while conforming to the license terms.
NOTE: The 'whitedb.h' header produced this way is not the same as the standard
API header. For better compatibility, consider including the 'Db/dbapi.h'
header in your own sources, as documented elsewhere.
See 'Examples/compile_demo.sh' ('Examples\compile_demo.bat' under
Windows). This compiles the demo program 'demo.c' with the WhiteDB source
files. These programs and scripts may be used as templates for creating
database applications.
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
This diff could not be displayed because it is too large.
No preview for this file type
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
No preview for this file type
No preview for this file type
No preview for this file type
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment