Changes of Revision 90
[-] [+] | Changed | cego.changes |
[-] [+] | Changed | cego.spec ^ |
[-] [+] | Deleted | cego-2.19.12.tar.bz2/config.h.in~ ^ |
@@ -1,118 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the `crypt' library (-lcrypt). */ -#undef HAVE_LIBCRYPT - -/* Define to 1 if you have the `curses' library (-lcurses). */ -#undef HAVE_LIBCURSES - -/* Define to 1 if you have the `history' library (-lhistory). */ -#undef HAVE_LIBHISTORY - -/* Define to 1 if you have the `lfcbase' library (-llfcbase). */ -#undef HAVE_LIBLFCBASE - -/* Define to 1 if you have the `lfcxml' library (-llfcxml). */ -#undef HAVE_LIBLFCXML - -/* Define to 1 if you have the `ncurses' library (-lncurses). */ -#undef HAVE_LIBNCURSES - -/* Define to 1 if you have the `nsl' library (-lnsl). */ -#undef HAVE_LIBNSL - -/* Define to 1 if you have the `pdcurses' library (-lpdcurses). */ -#undef HAVE_LIBPDCURSES - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -#undef HAVE_LIBPTHREAD - -/* Define to 1 if you have the `readline' library (-lreadline). */ -#undef HAVE_LIBREADLINE - -/* Define to 1 if you have the `rt' library (-lrt). */ -#undef HAVE_LIBRT - -/* Define to 1 if you have the `socket' library (-lsocket). */ -#undef HAVE_LIBSOCKET - -/* Define to 1 if you have the `ws2_32' library (-lws2_32). */ -#undef HAVE_LIBWS2_32 - -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -#undef HAVE_MALLOC - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if your system has a GNU libc compatible `realloc' function, - and to 0 otherwise. */ -#undef HAVE_REALLOC - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if the system has the type `_Bool'. */ -#undef HAVE__BOOL - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - -/* Define to rpl_realloc if the replacement function should be used. */ -#undef realloc | ||
Deleted | cego-2.19.14.tar.bz2 ^ | |
[-] [+] | Changed | cego-2.20.1.tar.bz2/README ^ |
@@ -65,7 +65,13 @@ $ export CXX=clang++ $ ./configure --prefix=<prefix-dir> -Run make +To get debug output, cego has to be compiled with compiler definition CGDEBUG. For this, run configure with +the following option + + $ ./configure "CXXFLAGS=-DCGDEBUG" + + +Now run make $ make | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/configure ^ |
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Cego 2.19.12. +# Generated by GNU Autoconf 2.69 for Cego 2.20.1. # # Report bugs to <lemke@lemke-it.com>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='Cego' PACKAGE_TARNAME='cego' -PACKAGE_VERSION='2.19.12' -PACKAGE_STRING='Cego 2.19.12' +PACKAGE_VERSION='2.20.1' +PACKAGE_STRING='Cego 2.20.1' PACKAGE_BUGREPORT='lemke@lemke-it.com' PACKAGE_URL='' @@ -1326,7 +1326,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Cego 2.19.12 to adapt to many kinds of systems. +\`configure' configures Cego 2.20.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1396,7 +1396,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Cego 2.19.12:";; + short | recursive ) echo "Configuration of Cego 2.20.1:";; esac cat <<\_ACEOF @@ -1507,7 +1507,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Cego configure 2.19.12 +Cego configure 2.20.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2051,7 +2051,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Cego $as_me 2.19.12, which was +It was created by Cego $as_me 2.20.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2914,7 +2914,7 @@ # Define the identity of the package. PACKAGE='cego' - VERSION='2.19.12' + VERSION='2.20.1' cat >>confdefs.h <<_ACEOF @@ -16776,7 +16776,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Cego $as_me 2.19.12, which was +This file was extended by Cego $as_me 2.20.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16842,7 +16842,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Cego config.status 2.19.12 +Cego config.status 2.20.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/configure.ac ^ |
@@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([Cego], [2.19.12], [lemke@lemke-it.com]) +AC_INIT([Cego], [2.20.1], [lemke@lemke-it.com]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/samples/cgplustest/Makefile ^ |
@@ -164,13 +164,13 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.19.12/missing aclocal-1.14 +ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.20.1/missing aclocal-1.14 AMTAR = $${TAR-tar} AM_DEFAULT_VERBOSITY = 1 AR = ar -AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.19.12/missing autoconf -AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.19.12/missing autoheader -AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.19.12/missing automake-1.14 +AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.20.1/missing autoconf +AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.20.1/missing autoheader +AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.20.1/missing automake-1.14 AWK = awk CC = gcc CCDEPMODE = depmode=gcc3 @@ -210,7 +210,7 @@ LIPO = lipo LN_S = ln -s LTLIBOBJS = -MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.19.12/missing makeinfo +MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.20.1/missing makeinfo MANIFEST_TOOL = : MKDIR_P = ../.././install-sh -c -d NM = /usr/bin/nm @@ -222,21 +222,21 @@ PACKAGE = cego PACKAGE_BUGREPORT = lemke@lemke-it.com PACKAGE_NAME = Cego -PACKAGE_STRING = Cego 2.19.12 +PACKAGE_STRING = Cego 2.20.1 PACKAGE_TARNAME = cego PACKAGE_URL = -PACKAGE_VERSION = 2.19.12 +PACKAGE_VERSION = 2.20.1 PATH_SEPARATOR = : RANLIB = ranlib SED = /usr/bin/sed SET_MAKE = SHELL = /bin/sh STRIP = strip -VERSION = 2.19.12 -abs_builddir = /Users/lemke/work/cego-2.19.12/samples/cgplustest -abs_srcdir = /Users/lemke/work/cego-2.19.12/samples/cgplustest -abs_top_builddir = /Users/lemke/work/cego-2.19.12 -abs_top_srcdir = /Users/lemke/work/cego-2.19.12 +VERSION = 2.20.1 +abs_builddir = /Users/lemke/work/cego-2.20.1/samples/cgplustest +abs_srcdir = /Users/lemke/work/cego-2.20.1/samples/cgplustest +abs_top_builddir = /Users/lemke/work/cego-2.20.1 +abs_top_srcdir = /Users/lemke/work/cego-2.20.1 ac_ct_AR = ar ac_ct_CC = gcc ac_ct_CXX = g++ @@ -266,7 +266,7 @@ htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /Users/lemke/work/cego-2.19.12/install-sh +install_sh = ${SHELL} /Users/lemke/work/cego-2.20.1/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/samples/cgwraptest/Makefile ^ |
@@ -164,13 +164,13 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.19.12/missing aclocal-1.14 +ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.20.1/missing aclocal-1.14 AMTAR = $${TAR-tar} AM_DEFAULT_VERBOSITY = 1 AR = ar -AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.19.12/missing autoconf -AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.19.12/missing autoheader -AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.19.12/missing automake-1.14 +AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.20.1/missing autoconf +AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.20.1/missing autoheader +AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.20.1/missing automake-1.14 AWK = awk CC = gcc CCDEPMODE = depmode=gcc3 @@ -210,7 +210,7 @@ LIPO = lipo LN_S = ln -s LTLIBOBJS = -MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.19.12/missing makeinfo +MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.20.1/missing makeinfo MANIFEST_TOOL = : MKDIR_P = ../.././install-sh -c -d NM = /usr/bin/nm @@ -222,21 +222,21 @@ PACKAGE = cego PACKAGE_BUGREPORT = lemke@lemke-it.com PACKAGE_NAME = Cego -PACKAGE_STRING = Cego 2.19.12 +PACKAGE_STRING = Cego 2.20.1 PACKAGE_TARNAME = cego PACKAGE_URL = -PACKAGE_VERSION = 2.19.12 +PACKAGE_VERSION = 2.20.1 PATH_SEPARATOR = : RANLIB = ranlib SED = /usr/bin/sed SET_MAKE = SHELL = /bin/sh STRIP = strip -VERSION = 2.19.12 -abs_builddir = /Users/lemke/work/cego-2.19.12/samples/cgwraptest -abs_srcdir = /Users/lemke/work/cego-2.19.12/samples/cgwraptest -abs_top_builddir = /Users/lemke/work/cego-2.19.12 -abs_top_srcdir = /Users/lemke/work/cego-2.19.12 +VERSION = 2.20.1 +abs_builddir = /Users/lemke/work/cego-2.20.1/samples/cgwraptest +abs_srcdir = /Users/lemke/work/cego-2.20.1/samples/cgwraptest +abs_top_builddir = /Users/lemke/work/cego-2.20.1 +abs_top_srcdir = /Users/lemke/work/cego-2.20.1 ac_ct_AR = ar ac_ct_CC = gcc ac_ct_CXX = g++ @@ -266,7 +266,7 @@ htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /Users/lemke/work/cego-2.19.12/install-sh +install_sh = ${SHELL} /Users/lemke/work/cego-2.20.1/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/bla ^ |
@@ -0,0 +1,2766 @@ +Table t1 does not exist +ok ( 0.000 s ) +Table t1 created +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) +1 tuples inserted +ok ( 0.000 s ) ++-----------+ +| AGGR | +| count(*) | ++-----------+ +| 639 | ++-----------+ +ok ( 0.002 s ) ++-----------+ +| AGGR | +| count(*) | ++-----------+ +| 522 | ++-----------+ +ok ( 0.000 s ) +B Setting up post node for node 52 107 to value 52 108 +A Setting up post node for node 52 107 to value 52 110 +A Setting up post node for node 52 110 to value 52 108 +A Setting up post node for node 52 107 to value 52 111 +A Setting up post node for node 52 111 to value 52 110 +A Setting up post node for node 52 107 to value 52 112 +A Setting up post node for node 52 112 to value 52 111 + Setting postnode for 113 to 0 because i=4 and ne=4 +A Setting up post node for node 52 108 to value 52 113 +A Setting up post node for node 52 113 to value 0 0 +A Setting up post node for node 52 107 to value 52 114 +A Setting up post node for node 52 114 to value 52 112 +A Setting up post node for node 52 107 to value 52 115 +A Setting up post node for node 52 115 to value 52 114 +A Setting up post node for node 52 107 to value 52 116 +A Setting up post node for node 52 116 to value 52 115 +A Setting up post node for node 52 107 to value 52 117 +A Setting up post node for node 52 117 to value 52 116 +A Setting up post node for node 52 107 to value 52 118 +A Setting up post node for node 52 118 to value 52 117 +A Setting up post node for node 52 107 to value 52 119 +A Setting up post node for node 52 119 to value 52 118 +A Setting up post node for node 52 107 to value 52 120 +A Setting up post node for node 52 120 to value 52 119 + Setting postnode for 121 to 0 because i=12 and ne=12 +A Setting up post node for node 52 113 to value 52 121 +A Setting up post node for node 52 121 to value 0 0 +A Setting up post node for node 52 107 to value 52 122 +A Setting up post node for node 52 122 to value 52 120 +A Setting up post node for node 52 122 to value 52 123 +A Setting up post node for node 52 123 to value 52 120 +A Setting up post node for node 52 122 to value 52 124 +A Setting up post node for node 52 124 to value 52 123 +A Setting up post node for node 52 122 to value 52 125 +A Setting up post node for node 52 125 to value 52 124 +A Setting up post node for node 52 122 to value 52 126 +A Setting up post node for node 52 126 to value 52 125 +A Setting up post node for node 52 122 to value 52 127 +A Setting up post node for node 52 127 to value 52 126 +A Setting up post node for node 52 122 to value 52 128 +A Setting up post node for node 52 128 to value 52 127 +A Setting up post node for node 52 122 to value 52 131 +A Setting up post node for node 52 131 to value 52 128 +A Setting up post node for node 52 122 to value 52 132 +A Setting up post node for node 52 132 to value 52 131 +A Setting up post node for node 52 113 to value 52 133 +A Setting up post node for node 52 133 to value 52 121 +A Setting up post node for node 52 108 to value 52 134 +A Setting up post node for node 52 134 to value 52 113 +A Setting up post node for node 52 122 to value 52 135 +A Setting up post node for node 52 135 to value 52 132 +A Setting up post node for node 52 107 to value 52 136 +A Setting up post node for node 52 136 to value 52 122 +A Setting up post node for node 52 122 to value 52 137 +A Setting up post node for node 52 137 to value 52 135 +A Setting up post node for node 52 122 to value 52 138 +A Setting up post node for node 52 138 to value 52 137 +A Setting up post node for node 52 122 to value 52 139 +A Setting up post node for node 52 139 to value 52 138 + Setting postnode for 140 to 0 because i=12 and ne=12 +A Setting up post node for node 52 121 to value 52 140 +A Setting up post node for node 52 140 to value 0 0 +A Setting up post node for node 52 122 to value 52 141 +A Setting up post node for node 52 141 to value 52 139 +A Setting up post node for node 52 122 to value 52 142 +A Setting up post node for node 52 142 to value 52 141 +A Setting up post node for node 52 122 to value 52 143 +A Setting up post node for node 52 143 to value 52 142 +A Setting up post node for node 52 122 to value 52 145 +A Setting up post node for node 52 145 to value 52 143 +A Setting up post node for node 52 122 to value 52 146 +A Setting up post node for node 52 146 to value 52 145 +A Setting up post node for node 52 122 to value 52 147 +A Setting up post node for node 52 147 to value 52 146 +A Setting up post node for node 52 122 to value 52 148 +A Setting up post node for node 52 148 to value 52 147 +A Setting up post node for node 52 108 to value 52 149 +A Setting up post node for node 52 149 to value 52 134 +A Setting up post node for node 52 122 to value 52 150 +A Setting up post node for node 52 150 to value 52 148 +A Setting up post node for node 52 122 to value 52 151 +A Setting up post node for node 52 151 to value 52 150 +A Setting up post node for node 52 121 to value 52 152 +A Setting up post node for node 52 152 to value 52 140 +A Setting up post node for node 52 133 to value 52 153 +A Setting up post node for node 52 153 to value 52 121 +A Setting up post node for node 52 113 to value 52 154 +A Setting up post node for node 52 154 to value 52 133 +A Setting up post node for node 52 122 to value 52 155 +A Setting up post node for node 52 155 to value 52 151 +A Setting up post node for node 52 122 to value 52 156 +A Setting up post node for node 52 156 to value 52 155 +A Setting up post node for node 52 107 to value 52 157 +A Setting up post node for node 52 157 to value 52 136 +A Setting up post node for node 52 122 to value 52 158 +A Setting up post node for node 52 158 to value 52 156 +A Setting up post node for node 52 108 to value 52 160 +A Setting up post node for node 52 160 to value 52 149 +A Setting up post node for node 52 122 to value 52 161 +A Setting up post node for node 52 161 to value 52 158 +A Setting up post node for node 52 122 to value 52 162 +A Setting up post node for node 52 162 to value 52 161 +A Setting up post node for node 52 122 to value 52 163 +A Setting up post node for node 52 163 to value 52 162 +A Setting up post node for node 52 136 to value 52 164 +A Setting up post node for node 52 164 to value 52 122 +A Setting up post node for node 52 122 to value 52 165 +A Setting up post node for node 52 165 to value 52 163 +A Setting up post node for node 52 108 to value 52 166 +A Setting up post node for node 52 166 to value 52 160 +A Setting up post node for node 52 122 to value 52 167 +A Setting up post node for node 52 167 to value 52 165 +A Setting up post node for node 52 122 to value 52 168 +A Setting up post node for node 52 168 to value 52 167 +A Setting up post node for node 52 121 to value 52 169 +A Setting up post node for node 52 169 to value 52 152 +A Setting up post node for node 52 133 to value 52 171 +A Setting up post node for node 52 171 to value 52 153 +A Setting up post node for node 52 152 to value 52 172 +A Setting up post node for node 52 172 to value 52 140 +A Setting up post node for node 52 113 to value 52 173 +A Setting up post node for node 52 173 to value 52 154 +A Setting up post node for node 52 122 to value 52 174 +A Setting up post node for node 52 174 to value 52 168 +A Setting up post node for node 52 122 to value 52 175 +A Setting up post node for node 52 175 to value 52 174 +A Setting up post node for node 52 107 to value 52 176 +A Setting up post node for node 52 176 to value 52 157 +A Setting up post node for node 52 108 to value 52 178 +A Setting up post node for node 52 178 to value 52 166 +A Setting up post node for node 52 122 to value 52 179 +A Setting up post node for node 52 179 to value 52 175 +A Setting up post node for node 52 122 to value 52 180 +A Setting up post node for node 52 180 to value 52 179 +A Setting up post node for node 52 136 to value 52 181 +A Setting up post node for node 52 181 to value 52 164 +A Setting up post node for node 52 133 to value 52 182 +A Setting up post node for node 52 182 to value 52 171 +A Setting up post node for node 52 152 to value 52 183 +A Setting up post node for node 52 183 to value 52 172 +A Setting up post node for node 52 122 to value 52 184 +A Setting up post node for node 52 184 to value 52 180 +A Setting up post node for node 52 108 to value 52 185 +A Setting up post node for node 52 185 to value 52 178 +A Setting up post node for node 52 122 to value 52 186 +A Setting up post node for node 52 186 to value 52 184 +A Setting up post node for node 52 121 to value 52 187 +A Setting up post node for node 52 187 to value 52 169 +A Setting up post node for node 52 113 to value 52 188 +A Setting up post node for node 52 188 to value 52 173 +A Setting up post node for node 52 152 to value 52 189 +A Setting up post node for node 52 189 to value 52 183 +A Setting up post node for node 52 133 to value 52 190 +A Setting up post node for node 52 190 to value 52 182 +A Setting up post node for node 52 122 to value 52 192 +A Setting up post node for node 52 192 to value 52 186 +A Setting up post node for node 52 107 to value 52 193 +A Setting up post node for node 52 193 to value 52 176 +A Setting up post node for node 52 108 to value 52 194 +A Setting up post node for node 52 194 to value 52 185 +A Setting up post node for node 52 122 to value 52 195 +A Setting up post node for node 52 195 to value 52 192 +A Setting up post node for node 52 122 to value 52 196 +A Setting up post node for node 52 196 to value 52 195 +A Setting up post node for node 52 136 to value 52 197 +A Setting up post node for node 52 197 to value 52 181 +A Setting up post node for node 52 152 to value 52 199 +A Setting up post node for node 52 199 to value 52 189 +A Setting up post node for node 52 122 to value 52 200 +A Setting up post node for node 52 200 to value 52 196 +A Setting up post node for node 52 108 to value 52 201 +A Setting up post node for node 52 201 to value 52 194 +Dumping btree ... +Root Page is 52 130 +####### NODE ####### +NumEntries=7 FileId=52 PageId=130 +Child : 52,109 +Key 0 : 56 +Child : 52,198 +Key 1 : 56 +Child : 52,177 +Key 2 : 56 +Child : 52,159 +Key 3 : 56 +Child : 52,144 +Key 4 : 56 +Child : 52,129 +Key 5 : 75 +Child : 52,170 +Key 6 : 156 +Child : 52,191 +################## + ####### NODE ####### + NumEntries=11 FileId=52 PageId=109 + Child : 52,107 + Key 0 : 15 + Child : 52,193 + Key 1 : 15 + Child : 52,176 + Key 2 : 15 + Child : 52,157 + Key 3 : 15 + Child : 52,136 + Key 4 : 19 + Child : 52,197 + Key 5 : 19 + Child : 52,181 + Key 6 : 19 + Child : 52,164 + Key 7 : 19 + Child : 52,122 + Key 8 : 56 + Child : 52,200 + Key 9 : 56 + Child : 52,196 + Key 10 : 56 + Child : 52,195 + ################## + ------- LEAF ------- + NumEntries=12 FileId=52 PageId=107 + Entry 0 : 15 [52,3,200] + Entry 1 : 15 [52,8,164] + Entry 2 : 15 [52,13,20] + Entry 3 : 15 [52,26,20] + Entry 4 : 15 [52,95,200] + Entry 5 : 15 [52,100,200] + Entry 6 : 15 [52,105,200] + Entry 7 : 15 [52,103,92] + Entry 8 : 15 [52,98,92] + Entry 9 : 15 [52,78,92] + Entry 10 : 15 [52,83,92] + Entry 11 : 15 [52,88,92] + Next Page : 52 193 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=193 + Entry 0 : 15 [52,93,92] + Entry 1 : 15 [52,90,200] + Entry 2 : 15 [52,85,200] + Entry 3 : 15 [52,80,200] + Entry 4 : 15 [52,58,128] + Entry 5 : 15 [52,64,56] + Entry 6 : 15 [52,69,200] + Next Page : 52 176 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=176 + Entry 0 : 15 [52,75,128] + Entry 1 : 15 [52,72,164] + Entry 2 : 15 [52,67,20] + Entry 3 : 15 [52,61,92] + Entry 4 : 15 [52,35,20] + Entry 5 : 15 [52,41,164] + Entry 6 : 15 [52,50,20] + Next Page : 52 157 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=157 + Entry 0 : 15 [52,55,164] + Entry 1 : 15 [52,52,200] + Entry 2 : 15 [52,45,164] + Entry 3 : 15 [52,39,92] + Entry 4 : 15 [52,21,164] + Entry 5 : 15 [52,17,92] + Entry 6 : 15 [52,28,92] + Next Page : 52 136 + -------------------- + ------- LEAF ------- + NumEntries=9 FileId=52 PageId=136 + Entry 0 : 15 [52,32,164] + Entry 1 : 19 [52,31,200] + Entry 2 : 19 [52,25,56] + Entry 3 : 19 [52,20,200] + Entry 4 : 19 [52,102,128] + Entry 5 : 19 [52,105,20] + Entry 6 : 19 [52,85,20] + Entry 7 : 19 [52,90,20] + Entry 8 : 19 [52,95,20] + Next Page : 52 197 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=197 + Entry 0 : 19 [52,100,20] + Entry 1 : 19 [52,97,128] + Entry 2 : 19 [52,92,128] + Entry 3 : 19 [52,87,128] + Entry 4 : 19 [52,66,56] + Entry 5 : 19 [52,71,200] + Entry 6 : 19 [52,77,128] + Next Page : 52 181 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=181 + Entry 0 : 19 [52,82,128] + Entry 1 : 19 [52,80,20] + Entry 2 : 19 [52,74,164] + Entry 3 : 19 [52,69,20] + Entry 4 : 19 [52,38,128] + Entry 5 : 19 [52,52,20] + Entry 6 : 19 [52,57,164] + Next Page : 52 164 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=164 + Entry 0 : 19 [52,63,92] + Entry 1 : 19 [52,60,128] + Entry 2 : 19 [52,54,200] + Entry 3 : 19 [52,49,56] + Entry 4 : 19 [52,3,20] + Entry 5 : 19 [52,7,200] + Entry 6 : 19 [52,16,128] + Next Page : 52 122 + -------------------- + ------- LEAF ------- + NumEntries=9 FileId=52 PageId=122 + Entry 0 : 19 [52,12,56] + Entry 1 : 19 [52,7,20] + Entry 2 : 56 [52,17,164] + Entry 3 : 56 [52,18,20] + Entry 4 : 56 [52,104,128] + Entry 5 : 56 [52,106,92] + Entry 6 : 56 [52,101,164] + Entry 7 : 56 [52,102,20] + Entry 8 : 56 [52,104,20] + Next Page : 52 200 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=200 + Entry 0 : 56 [52,104,92] + Entry 1 : 56 [52,104,56] + Entry 2 : 56 [52,103,200] + Entry 3 : 56 [52,101,200] + Entry 4 : 56 [52,98,200] + Entry 5 : 56 [52,99,56] + Entry 6 : 56 [52,99,128] + Next Page : 52 196 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=196 + Entry 0 : 56 [52,101,128] + Entry 1 : 56 [52,101,92] + Entry 2 : 56 [52,99,92] + Entry 3 : 56 [52,99,20] + Entry 4 : 56 [52,94,92] + Entry 5 : 56 [52,96,92] + Entry 6 : 56 [52,96,164] + Next Page : 52 195 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=195 + Entry 0 : 56 [52,97,20] + Entry 1 : 56 [52,96,200] + Entry 2 : 56 [52,96,128] + Entry 3 : 56 [52,94,128] + Entry 4 : 56 [52,91,128] + Entry 5 : 56 [52,91,200] + Entry 6 : 56 [52,93,200] + Next Page : 52 192 + -------------------- + ####### NODE ####### + NumEntries=10 FileId=52 PageId=198 + Child : 52,195 + Key 0 : 56 + Child : 52,192 + Key 1 : 56 + Child : 52,186 + Key 2 : 56 + Child : 52,184 + Key 3 : 56 + Child : 52,180 + Key 4 : 56 + Child : 52,179 + Key 5 : 56 + Child : 52,175 + Key 6 : 56 + Child : 52,174 + Key 7 : 56 + Child : 52,168 + Key 8 : 56 + Child : 52,167 + Key 9 : 56 + Child : 52,165 + ################## + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=195 + Entry 0 : 56 [52,97,20] + Entry 1 : 56 [52,96,200] + Entry 2 : 56 [52,96,128] + Entry 3 : 56 [52,94,128] + Entry 4 : 56 [52,91,128] + Entry 5 : 56 [52,91,200] + Entry 6 : 56 [52,93,200] + Next Page : 52 192 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=192 + Entry 0 : 56 [52,94,56] + Entry 1 : 56 [52,94,20] + Entry 2 : 56 [52,92,20] + Entry 3 : 56 [52,91,164] + Entry 4 : 56 [52,87,20] + Entry 5 : 56 [52,89,20] + Entry 6 : 56 [52,89,92] + Next Page : 52 186 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=186 + Entry 0 : 56 [52,91,92] + Entry 1 : 56 [52,89,128] + Entry 2 : 56 [52,89,56] + Entry 3 : 56 [52,88,200] + Entry 4 : 56 [52,84,56] + Entry 5 : 56 [52,84,128] + Entry 6 : 56 [52,86,128] + Next Page : 52 184 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=184 + Entry 0 : 56 [52,86,200] + Entry 1 : 56 [52,86,164] + Entry 2 : 56 [52,86,92] + Entry 3 : 56 [52,84,92] + Entry 4 : 56 [52,81,92] + Entry 5 : 56 [52,81,164] + Entry 6 : 56 [52,82,20] + Next Page : 52 180 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=180 + Entry 0 : 56 [52,84,20] + Entry 1 : 56 [52,83,200] + Entry 2 : 56 [52,81,200] + Entry 3 : 56 [52,81,128] + Entry 4 : 56 [52,76,200] + Entry 5 : 56 [52,78,200] + Entry 6 : 56 [52,79,56] + Next Page : 52 179 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=179 + Entry 0 : 56 [52,79,128] + Entry 1 : 56 [52,79,92] + Entry 2 : 56 [52,79,20] + Entry 3 : 56 [52,77,20] + Entry 4 : 56 [52,75,164] + Entry 5 : 56 [52,76,20] + Entry 6 : 56 [52,76,92] + Next Page : 52 175 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=175 + Entry 0 : 56 [52,76,164] + Entry 1 : 56 [52,76,128] + Entry 2 : 56 [52,76,56] + Entry 3 : 56 [52,75,200] + Entry 4 : 56 [52,73,56] + Entry 5 : 56 [52,73,128] + Entry 6 : 56 [52,73,200] + Next Page : 52 174 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=174 + Entry 0 : 56 [52,74,56] + Entry 1 : 56 [52,74,20] + Entry 2 : 56 [52,73,164] + Entry 3 : 56 [52,73,92] + Entry 4 : 56 [52,70,164] + Entry 5 : 56 [52,71,20] + Entry 6 : 56 [52,71,92] + Next Page : 52 168 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=168 + Entry 0 : 56 [52,73,20] + Entry 1 : 56 [52,72,200] + Entry 2 : 56 [52,71,56] + Entry 3 : 56 [52,70,200] + Entry 4 : 56 [52,68,56] + Entry 5 : 56 [52,68,128] + Entry 6 : 56 [52,70,56] + Next Page : 52 167 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=167 + Entry 0 : 56 [52,70,128] + Entry 1 : 56 [52,70,92] + Entry 2 : 56 [52,70,20] + Entry 3 : 56 [52,68,92] + Entry 4 : 56 [52,65,164] + Entry 5 : 56 [52,67,92] + Entry 6 : 56 [52,67,164] + Next Page : 52 165 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=165 + Entry 0 : 56 [52,68,20] + Entry 1 : 56 [52,67,200] + Entry 2 : 56 [52,67,128] + Entry 3 : 56 [52,67,56] + Entry 4 : 56 [52,64,128] + Entry 5 : 56 [52,64,200] + Entry 6 : 56 [52,65,56] + Next Page : 52 163 + -------------------- + ####### NODE ####### + NumEntries=10 FileId=52 PageId=177 + Child : 52,165 + Key 0 : 56 + Child : 52,163 + Key 1 : 56 + Child : 52,162 + Key 2 : 56 + Child : 52,161 + Key 3 : 56 + Child : 52,158 + Key 4 : 56 + Child : 52,156 + Key 5 : 56 + Child : 52,155 + Key 6 : 56 + Child : 52,151 + Key 7 : 56 + Child : 52,150 + Key 8 : 56 + Child : 52,148 + Key 9 : 56 + Child : 52,147 + ################## + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=165 + Entry 0 : 56 [52,68,20] + Entry 1 : 56 [52,67,200] + Entry 2 : 56 [52,67,128] + Entry 3 : 56 [52,67,56] + Entry 4 : 56 [52,64,128] + Entry 5 : 56 [52,64,200] + Entry 6 : 56 [52,65,56] + Next Page : 52 163 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=163 + Entry 0 : 56 [52,65,128] + Entry 1 : 56 [52,65,92] + Entry 2 : 56 [52,65,20] + Entry 3 : 56 [52,64,164] + Entry 4 : 56 [52,62,20] + Entry 5 : 56 [52,62,92] + Entry 6 : 56 [52,62,164] + Next Page : 52 162 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=162 + Entry 0 : 56 [52,64,92] + Entry 1 : 56 [52,62,200] + Entry 2 : 56 [52,62,128] + Entry 3 : 56 [52,62,56] + Entry 4 : 56 [52,59,128] + Entry 5 : 56 [52,59,200] + Entry 6 : 56 [52,61,128] + Next Page : 52 161 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=161 + Entry 0 : 56 [52,61,200] + Entry 1 : 56 [52,61,164] + Entry 2 : 56 [52,60,20] + Entry 3 : 56 [52,59,164] + Entry 4 : 56 [52,57,20] + Entry 5 : 56 [52,58,164] + Entry 6 : 56 [52,59,20] + Next Page : 52 158 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=158 + Entry 0 : 56 [52,59,92] + Entry 1 : 56 [52,59,56] + Entry 2 : 56 [52,58,200] + Entry 3 : 56 [52,57,56] + Entry 4 : 56 [52,55,200] + Entry 5 : 56 [52,56,56] + Entry 6 : 56 [52,56,128] + Next Page : 52 156 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=156 + Entry 0 : 56 [52,56,200] + Entry 1 : 56 [52,56,164] + Entry 2 : 56 [52,56,92] + Entry 3 : 56 [52,56,20] + Entry 4 : 56 [52,53,92] + Entry 5 : 56 [52,53,164] + Entry 6 : 56 [52,54,20] + Next Page : 52 155 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=155 + Entry 0 : 56 [52,54,92] + Entry 1 : 56 [52,54,56] + Entry 2 : 56 [52,53,200] + Entry 3 : 56 [52,53,128] + Entry 4 : 56 [52,50,200] + Entry 5 : 56 [52,51,56] + Entry 6 : 56 [52,51,128] + Next Page : 52 151 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=151 + Entry 0 : 56 [52,53,56] + Entry 1 : 56 [52,53,20] + Entry 2 : 56 [52,51,92] + Entry 3 : 56 [52,51,20] + Entry 4 : 56 [52,48,164] + Entry 5 : 56 [52,49,20] + Entry 6 : 56 [52,50,92] + Next Page : 52 150 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=150 + Entry 0 : 56 [52,50,164] + Entry 1 : 56 [52,50,128] + Entry 2 : 56 [52,50,56] + Entry 3 : 56 [52,48,200] + Entry 4 : 56 [52,47,128] + Entry 5 : 56 [52,47,200] + Entry 6 : 56 [52,48,56] + Next Page : 52 148 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=148 + Entry 0 : 56 [52,48,128] + Entry 1 : 56 [52,48,92] + Entry 2 : 56 [52,48,20] + Entry 3 : 56 [52,47,164] + Entry 4 : 56 [52,46,92] + Entry 5 : 56 [52,46,164] + Entry 6 : 56 [52,47,20] + Next Page : 52 147 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=147 + Entry 0 : 56 [52,47,92] + Entry 1 : 56 [52,47,56] + Entry 2 : 56 [52,46,200] + Entry 3 : 56 [52,46,128] + Entry 4 : 56 [52,44,92] + Entry 5 : 56 [52,44,164] + Entry 6 : 56 [52,45,200] + Next Page : 52 146 + -------------------- + ####### NODE ####### + NumEntries=10 FileId=52 PageId=159 + Child : 52,147 + Key 0 : 56 + Child : 52,146 + Key 1 : 56 + Child : 52,145 + Key 2 : 56 + Child : 52,143 + Key 3 : 56 + Child : 52,142 + Key 4 : 56 + Child : 52,141 + Key 5 : 56 + Child : 52,139 + Key 6 : 56 + Child : 52,138 + Key 7 : 56 + Child : 52,137 + Key 8 : 56 + Child : 52,135 + Key 9 : 56 + Child : 52,132 + ################## + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=147 + Entry 0 : 56 [52,47,92] + Entry 1 : 56 [52,47,56] + Entry 2 : 56 [52,46,200] + Entry 3 : 56 [52,46,128] + Entry 4 : 56 [52,44,92] + Entry 5 : 56 [52,44,164] + Entry 6 : 56 [52,45,200] + Next Page : 52 146 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=146 + Entry 0 : 56 [52,46,56] + Entry 1 : 56 [52,46,20] + Entry 2 : 56 [52,44,200] + Entry 3 : 56 [52,44,128] + Entry 4 : 56 [52,43,56] + Entry 5 : 56 [52,43,128] + Entry 6 : 56 [52,43,200] + Next Page : 52 145 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=145 + Entry 0 : 56 [52,44,56] + Entry 1 : 56 [52,44,20] + Entry 2 : 56 [52,43,164] + Entry 3 : 56 [52,43,92] + Entry 4 : 56 [52,42,20] + Entry 5 : 56 [52,42,92] + Entry 6 : 56 [52,42,164] + Next Page : 52 143 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=143 + Entry 0 : 56 [52,43,20] + Entry 1 : 56 [52,42,200] + Entry 2 : 56 [52,42,128] + Entry 3 : 56 [52,42,56] + Entry 4 : 56 [52,39,164] + Entry 5 : 56 [52,40,20] + Entry 6 : 56 [52,40,92] + Next Page : 52 142 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=142 + Entry 0 : 56 [52,41,200] + Entry 1 : 56 [52,40,128] + Entry 2 : 56 [52,40,56] + Entry 3 : 56 [52,39,200] + Entry 4 : 56 [52,37,128] + Entry 5 : 56 [52,37,200] + Entry 6 : 56 [52,38,56] + Next Page : 52 141 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=141 + Entry 0 : 56 [52,39,128] + Entry 1 : 56 [52,38,92] + Entry 2 : 56 [52,38,20] + Entry 3 : 56 [52,37,164] + Entry 4 : 56 [52,36,92] + Entry 5 : 56 [52,36,164] + Entry 6 : 56 [52,37,20] + Next Page : 52 139 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=139 + Entry 0 : 56 [52,37,92] + Entry 1 : 56 [52,37,56] + Entry 2 : 56 [52,36,200] + Entry 3 : 56 [52,36,128] + Entry 4 : 56 [52,35,56] + Entry 5 : 56 [52,35,128] + Entry 6 : 56 [52,35,200] + Next Page : 52 138 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=138 + Entry 0 : 56 [52,36,56] + Entry 1 : 56 [52,36,20] + Entry 2 : 56 [52,35,164] + Entry 3 : 56 [52,35,92] + Entry 4 : 56 [52,32,200] + Entry 5 : 56 [52,33,56] + Entry 6 : 56 [52,33,128] + Next Page : 52 137 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=137 + Entry 0 : 56 [52,33,200] + Entry 1 : 56 [52,33,164] + Entry 2 : 56 [52,33,92] + Entry 3 : 56 [52,33,20] + Entry 4 : 56 [52,30,164] + Entry 5 : 56 [52,31,20] + Entry 6 : 56 [52,31,92] + Next Page : 52 135 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=135 + Entry 0 : 56 [52,31,164] + Entry 1 : 56 [52,31,128] + Entry 2 : 56 [52,31,56] + Entry 3 : 56 [52,30,200] + Entry 4 : 56 [52,29,128] + Entry 5 : 56 [52,29,200] + Entry 6 : 56 [52,30,56] + Next Page : 52 132 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=132 + Entry 0 : 56 [52,30,128] + Entry 1 : 56 [52,30,92] + Entry 2 : 56 [52,30,20] + Entry 3 : 56 [52,29,164] + Entry 4 : 56 [52,27,56] + Entry 5 : 56 [52,28,164] + Entry 6 : 56 [52,29,20] + Next Page : 52 131 + -------------------- + ####### NODE ####### + NumEntries=10 FileId=52 PageId=144 + Child : 52,132 + Key 0 : 56 + Child : 52,131 + Key 1 : 56 + Child : 52,128 + Key 2 : 56 + Child : 52,127 + Key 3 : 56 + Child : 52,126 + Key 4 : 56 + Child : 52,125 + Key 5 : 56 + Child : 52,124 + Key 6 : 56 + Child : 52,123 + Key 7 : 56 + Child : 52,120 + Key 8 : 56 + Child : 52,119 + Key 9 : 56 + Child : 52,118 + ################## + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=132 + Entry 0 : 56 [52,30,128] + Entry 1 : 56 [52,30,92] + Entry 2 : 56 [52,30,20] + Entry 3 : 56 [52,29,164] + Entry 4 : 56 [52,27,56] + Entry 5 : 56 [52,28,164] + Entry 6 : 56 [52,29,20] + Next Page : 52 131 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=131 + Entry 0 : 56 [52,29,92] + Entry 1 : 56 [52,29,56] + Entry 2 : 56 [52,28,200] + Entry 3 : 56 [52,28,128] + Entry 4 : 56 [52,25,20] + Entry 5 : 56 [52,26,92] + Entry 6 : 56 [52,26,164] + Next Page : 52 128 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=128 + Entry 0 : 56 [52,27,20] + Entry 1 : 56 [52,26,200] + Entry 2 : 56 [52,26,128] + Entry 3 : 56 [52,26,56] + Entry 4 : 56 [52,23,200] + Entry 5 : 56 [52,24,56] + Entry 6 : 56 [52,24,128] + Next Page : 52 127 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=127 + Entry 0 : 56 [52,24,200] + Entry 1 : 56 [52,24,164] + Entry 2 : 56 [52,24,92] + Entry 3 : 56 [52,24,20] + Entry 4 : 56 [52,22,164] + Entry 5 : 56 [52,23,20] + Entry 6 : 56 [52,23,92] + Next Page : 52 126 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=126 + Entry 0 : 56 [52,23,164] + Entry 1 : 56 [52,23,128] + Entry 2 : 56 [52,23,56] + Entry 3 : 56 [52,22,200] + Entry 4 : 56 [52,20,128] + Entry 5 : 56 [52,21,200] + Entry 6 : 56 [52,22,56] + Next Page : 52 125 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=125 + Entry 0 : 56 [52,22,128] + Entry 1 : 56 [52,22,92] + Entry 2 : 56 [52,22,20] + Entry 3 : 56 [52,20,164] + Entry 4 : 56 [52,19,92] + Entry 5 : 56 [52,19,164] + Entry 6 : 56 [52,20,20] + Next Page : 52 124 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=124 + Entry 0 : 56 [52,20,92] + Entry 1 : 56 [52,20,56] + Entry 2 : 56 [52,19,200] + Entry 3 : 56 [52,19,128] + Entry 4 : 56 [52,18,56] + Entry 5 : 56 [52,18,128] + Entry 6 : 56 [52,18,200] + Next Page : 52 123 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=123 + Entry 0 : 56 [52,19,56] + Entry 1 : 56 [52,19,20] + Entry 2 : 56 [52,18,164] + Entry 3 : 56 [52,18,92] + Entry 4 : 56 [52,17,200] + Entry 5 : 56 [52,17,128] + Entry 6 : 56 [52,16,92] + Next Page : 52 120 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=120 + Entry 0 : 56 [52,16,56] + Entry 1 : 56 [52,16,20] + Entry 2 : 56 [52,15,128] + Entry 3 : 56 [52,15,164] + Entry 4 : 56 [52,15,200] + Entry 5 : 56 [52,15,92] + Entry 6 : 56 [52,15,56] + Next Page : 52 119 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=119 + Entry 0 : 56 [52,15,20] + Entry 1 : 56 [52,14,200] + Entry 2 : 56 [52,14,92] + Entry 3 : 56 [52,14,128] + Entry 4 : 56 [52,14,164] + Entry 5 : 56 [52,14,56] + Entry 6 : 56 [52,14,20] + Next Page : 52 118 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=118 + Entry 0 : 56 [52,13,200] + Entry 1 : 56 [52,13,164] + Entry 2 : 56 [52,13,56] + Entry 3 : 56 [52,13,92] + Entry 4 : 56 [52,13,128] + Entry 5 : 56 [52,11,92] + Entry 6 : 56 [52,11,164] + Next Page : 52 117 + -------------------- + ####### NODE ####### + NumEntries=13 FileId=52 PageId=129 + Child : 52,118 + Key 0 : 56 + Child : 52,117 + Key 1 : 56 + Child : 52,116 + Key 2 : 56 + Child : 52,115 + Key 3 : 56 + Child : 52,114 + Key 4 : 56 + Child : 52,112 + Key 5 : 56 + Child : 52,111 + Key 6 : 56 + Child : 52,110 + Key 7 : 56 + Child : 52,108 + Key 8 : 75 + Child : 52,201 + Key 9 : 75 + Child : 52,194 + Key 10 : 75 + Child : 52,185 + Key 11 : 75 + Child : 52,178 + Key 12 : 75 + Child : 52,166 + ################## + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=118 + Entry 0 : 56 [52,13,200] + Entry 1 : 56 [52,13,164] + Entry 2 : 56 [52,13,56] + Entry 3 : 56 [52,13,92] + Entry 4 : 56 [52,13,128] + Entry 5 : 56 [52,11,92] + Entry 6 : 56 [52,11,164] + Next Page : 52 117 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=117 + Entry 0 : 56 [52,12,20] + Entry 1 : 56 [52,11,200] + Entry 2 : 56 [52,11,128] + Entry 3 : 56 [52,11,56] + Entry 4 : 56 [52,10,56] + Entry 5 : 56 [52,11,20] + Entry 6 : 56 [52,10,128] + Next Page : 52 116 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=116 + Entry 0 : 56 [52,10,200] + Entry 1 : 56 [52,10,164] + Entry 2 : 56 [52,10,92] + Entry 3 : 56 [52,10,20] + Entry 4 : 56 [52,9,20] + Entry 5 : 56 [52,9,200] + Entry 6 : 56 [52,9,92] + Next Page : 52 115 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=115 + Entry 0 : 56 [52,9,164] + Entry 1 : 56 [52,9,128] + Entry 2 : 56 [52,9,56] + Entry 3 : 56 [52,8,200] + Entry 4 : 56 [52,0,20] + Entry 5 : 56 [52,0,56] + Entry 6 : 56 [52,6,128] + Next Page : 52 114 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=114 + Entry 0 : 56 [52,7,128] + Entry 1 : 56 [52,7,164] + Entry 2 : 56 [52,6,200] + Entry 3 : 56 [52,6,164] + Entry 4 : 56 [52,5,92] + Entry 5 : 56 [52,5,164] + Entry 6 : 56 [52,6,20] + Next Page : 52 112 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=112 + Entry 0 : 56 [52,6,92] + Entry 1 : 56 [52,6,56] + Entry 2 : 56 [52,5,200] + Entry 3 : 56 [52,5,128] + Entry 4 : 56 [52,4,56] + Entry 5 : 56 [52,4,128] + Entry 6 : 56 [52,4,200] + Next Page : 52 111 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=111 + Entry 0 : 56 [52,5,56] + Entry 1 : 56 [52,5,20] + Entry 2 : 56 [52,4,164] + Entry 3 : 56 [52,4,92] + Entry 4 : 56 [52,0,128] + Entry 5 : 56 [52,0,200] + Entry 6 : 56 [52,2,92] + Next Page : 52 110 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=110 + Entry 0 : 56 [52,4,20] + Entry 1 : 56 [52,2,164] + Entry 2 : 56 [52,2,200] + Entry 3 : 56 [52,2,128] + Entry 4 : 56 [52,1,56] + Entry 5 : 56 [52,1,128] + Entry 6 : 56 [52,1,200] + Next Page : 52 108 + -------------------- + ------- LEAF ------- + NumEntries=8 FileId=52 PageId=108 + Entry 0 : 56 [52,2,56] + Entry 1 : 56 [52,2,20] + Entry 2 : 56 [52,1,164] + Entry 3 : 56 [52,1,92] + Entry 4 : 56 [52,1,20] + Entry 5 : 56 [52,0,164] + Entry 6 : 56 [52,0,92] + Entry 7 : 75 [52,105,92] + Next Page : 52 201 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=201 + Entry 0 : 75 [52,104,164] + Entry 1 : 75 [52,102,200] + Entry 2 : 75 [52,99,164] + Entry 3 : 75 [52,100,92] + Entry 4 : 75 [52,102,56] + Entry 5 : 75 [52,97,200] + Entry 6 : 75 [52,97,56] + Next Page : 52 194 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=194 + Entry 0 : 75 [52,95,92] + Entry 1 : 75 [52,94,164] + Entry 2 : 75 [52,90,92] + Entry 3 : 75 [52,92,56] + Entry 4 : 75 [52,92,200] + Entry 5 : 75 [52,89,164] + Entry 6 : 75 [52,87,200] + Next Page : 52 185 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=185 + Entry 0 : 75 [52,87,56] + Entry 1 : 75 [52,85,92] + Entry 2 : 75 [52,82,56] + Entry 3 : 75 [52,82,200] + Entry 4 : 75 [52,84,164] + Entry 5 : 75 [52,80,92] + Entry 6 : 75 [52,79,164] + Next Page : 52 178 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=178 + Entry 0 : 75 [52,77,200] + Entry 1 : 75 [52,77,56] + Entry 2 : 75 [52,72,56] + Entry 3 : 75 [52,74,92] + Entry 4 : 75 [52,75,20] + Entry 5 : 75 [52,71,128] + Entry 6 : 75 [52,69,92] + Next Page : 52 166 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=166 + Entry 0 : 75 [52,68,164] + Entry 1 : 75 [52,66,128] + Entry 2 : 75 [52,63,20] + Entry 3 : 75 [52,63,164] + Entry 4 : 75 [52,65,200] + Entry 5 : 75 [52,60,200] + Entry 6 : 75 [52,60,56] + Next Page : 52 160 + -------------------- + ####### NODE ####### + NumEntries=10 FileId=52 PageId=170 + Child : 52,166 + Key 0 : 75 + Child : 52,160 + Key 1 : 75 + Child : 52,149 + Key 2 : 75 + Child : 52,134 + Key 3 : 75 + Child : 52,113 + Key 4 : 92 + Child : 52,188 + Key 5 : 92 + Child : 52,173 + Key 6 : 92 + Child : 52,154 + Key 7 : 92 + Child : 52,133 + Key 8 : 156 + Child : 52,190 + Key 9 : 672 + Child : 52,182 + ################## + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=166 + Entry 0 : 75 [52,68,164] + Entry 1 : 75 [52,66,128] + Entry 2 : 75 [52,63,20] + Entry 3 : 75 [52,63,164] + Entry 4 : 75 [52,65,200] + Entry 5 : 75 [52,60,200] + Entry 6 : 75 [52,60,56] + Next Page : 52 160 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=160 + Entry 0 : 75 [52,58,20] + Entry 1 : 75 [52,57,92] + Entry 2 : 75 [52,52,92] + Entry 3 : 75 [52,54,128] + Entry 4 : 75 [52,55,56] + Entry 5 : 75 [52,51,164] + Entry 6 : 75 [52,49,128] + Next Page : 52 149 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=149 + Entry 0 : 75 [52,45,56] + Entry 1 : 75 [52,41,56] + Entry 2 : 75 [52,34,128] + Entry 3 : 75 [52,38,200] + Entry 4 : 75 [52,40,164] + Entry 5 : 75 [52,34,20] + Entry 6 : 75 [52,32,56] + Next Page : 52 134 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=134 + Entry 0 : 75 [52,27,200] + Entry 1 : 75 [52,27,92] + Entry 2 : 75 [52,16,200] + Entry 3 : 75 [52,21,56] + Entry 4 : 75 [52,25,128] + Entry 5 : 75 [52,12,128] + Entry 6 : 75 [52,8,56] + Next Page : 52 113 + -------------------- + ------- LEAF ------- + NumEntries=13 FileId=52 PageId=113 + Entry 0 : 75 [52,7,92] + Entry 1 : 75 [52,3,92] + Entry 2 : 92 [52,3,164] + Entry 3 : 92 [52,12,200] + Entry 4 : 92 [52,93,56] + Entry 5 : 92 [52,98,56] + Entry 6 : 92 [52,103,56] + Entry 7 : 92 [52,105,164] + Entry 8 : 92 [52,100,164] + Entry 9 : 92 [52,95,164] + Entry 10 : 92 [52,75,92] + Entry 11 : 92 [52,80,164] + Entry 12 : 92 [52,85,164] + Next Page : 52 188 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=188 + Entry 0 : 92 [52,90,164] + Entry 1 : 92 [52,88,56] + Entry 2 : 92 [52,83,56] + Entry 3 : 92 [52,78,56] + Entry 4 : 92 [52,55,128] + Entry 5 : 92 [52,61,56] + Entry 6 : 92 [52,66,200] + Next Page : 52 173 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=173 + Entry 0 : 92 [52,72,128] + Entry 1 : 92 [52,69,164] + Entry 2 : 92 [52,64,20] + Entry 3 : 92 [52,58,92] + Entry 4 : 92 [52,32,128] + Entry 5 : 92 [52,39,56] + Entry 6 : 92 [52,45,128] + Next Page : 52 154 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=154 + Entry 0 : 92 [52,52,164] + Entry 1 : 92 [52,49,200] + Entry 2 : 92 [52,41,128] + Entry 3 : 92 [52,34,200] + Entry 4 : 92 [52,17,56] + Entry 5 : 92 [52,21,128] + Entry 6 : 92 [52,25,200] + Next Page : 52 133 + -------------------- + ------- LEAF ------- + NumEntries=13 FileId=52 PageId=133 + Entry 0 : 92 [52,28,56] + Entry 1 : 92 [52,8,128] + Entry 2 : 156 [52,78,164] + Entry 3 : 156 [52,81,56] + Entry 4 : 156 [52,93,164] + Entry 5 : 156 [52,98,164] + Entry 6 : 156 [52,103,164] + Entry 7 : 156 [52,106,56] + Entry 8 : 156 [52,101,56] + Entry 9 : 156 [52,96,56] + Entry 10 : 156 [52,83,164] + Entry 11 : 156 [52,86,56] + Entry 12 : 156 [52,88,164] + Next Page : 52 190 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=190 + Entry 0 : 156 [52,91,56] + Entry 1 : 672 [52,8,20] + Entry 2 : 672 [52,87,164] + Entry 3 : 672 [52,92,164] + Entry 4 : 672 [52,90,56] + Entry 5 : 672 [52,85,56] + Entry 6 : 672 [52,25,92] + Next Page : 52 182 + -------------------- + ------- LEAF ------- + NumEntries=12 FileId=52 PageId=182 + Entry 0 : 672 [52,74,200] + Entry 1 : 672 [52,82,164] + Entry 2 : 672 [52,80,56] + Entry 3 : 672 [52,77,164] + Entry 4 : 672 [52,95,56] + Entry 5 : 672 [52,100,56] + Entry 6 : 672 [52,105,56] + Entry 7 : 672 [52,102,164] + Entry 8 : 672 [52,97,164] + Entry 9 : 672 [52,55,20] + Entry 10 : 672 [52,60,164] + Entry 11 : 672 [52,66,92] + Next Page : 52 171 + -------------------- + ####### NODE ####### + NumEntries=11 FileId=52 PageId=191 + Child : 52,182 + Key 0 : 672 + Child : 52,171 + Key 1 : 672 + Child : 52,153 + Key 2 : 672 + Child : 52,121 + Key 3 : 1234 + Child : 52,187 + Key 4 : 1234 + Child : 52,169 + Key 5 : 1234 + Child : 52,152 + Key 6 : 4556 + Child : 52,199 + Key 7 : 9376 + Child : 52,189 + Key 8 : 9376 + Child : 52,183 + Key 9 : 9376 + Child : 52,172 + Key 10 : 9376 + Child : 52,140 + ################## + ------- LEAF ------- + NumEntries=12 FileId=52 PageId=182 + Entry 0 : 672 [52,74,200] + Entry 1 : 672 [52,82,164] + Entry 2 : 672 [52,80,56] + Entry 3 : 672 [52,77,164] + Entry 4 : 672 [52,95,56] + Entry 5 : 672 [52,100,56] + Entry 6 : 672 [52,105,56] + Entry 7 : 672 [52,102,164] + Entry 8 : 672 [52,97,164] + Entry 9 : 672 [52,55,20] + Entry 10 : 672 [52,60,164] + Entry 11 : 672 [52,66,92] + Next Page : 52 171 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=171 + Entry 0 : 672 [52,72,20] + Entry 1 : 672 [52,69,56] + Entry 2 : 672 [52,63,128] + Entry 3 : 672 [52,57,200] + Entry 4 : 672 [52,32,20] + Entry 5 : 672 [52,38,164] + Entry 6 : 672 [52,45,20] + Next Page : 52 153 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=153 + Entry 0 : 672 [52,52,56] + Entry 1 : 672 [52,49,92] + Entry 2 : 672 [52,41,20] + Entry 3 : 672 [52,34,92] + Entry 4 : 672 [52,27,164] + Entry 5 : 672 [52,21,20] + Entry 6 : 672 [52,12,92] + Next Page : 52 121 + -------------------- + ------- LEAF ------- + NumEntries=13 FileId=52 PageId=121 + Entry 0 : 672 [52,16,164] + Entry 1 : 672 [52,7,56] + Entry 2 : 672 [52,3,56] + Entry 3 : 1234 [52,27,128] + Entry 4 : 1234 [52,92,92] + Entry 5 : 1234 [52,97,92] + Entry 6 : 1234 [52,102,92] + Entry 7 : 1234 [52,104,200] + Entry 8 : 1234 [52,99,200] + Entry 9 : 1234 [52,94,200] + Entry 10 : 1234 [52,74,128] + Entry 11 : 1234 [52,79,200] + Entry 12 : 1234 [52,84,200] + Next Page : 52 187 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=187 + Entry 0 : 1234 [52,89,200] + Entry 1 : 1234 [52,87,92] + Entry 2 : 1234 [52,82,92] + Entry 3 : 1234 [52,77,92] + Entry 4 : 1234 [52,54,164] + Entry 5 : 1234 [52,60,92] + Entry 6 : 1234 [52,66,20] + Next Page : 52 169 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=169 + Entry 0 : 1234 [52,71,164] + Entry 1 : 1234 [52,68,200] + Entry 2 : 1234 [52,63,56] + Entry 3 : 1234 [52,57,128] + Entry 4 : 1234 [52,51,200] + Entry 5 : 1234 [52,34,56] + Entry 6 : 1234 [52,40,200] + Next Page : 52 152 + -------------------- + ------- LEAF ------- + NumEntries=9 FileId=52 PageId=152 + Entry 0 : 4556 [52,78,128] + Entry 1 : 4556 [52,81,20] + Entry 2 : 4556 [52,83,128] + Entry 3 : 4556 [52,88,128] + Entry 4 : 4556 [52,103,128] + Entry 5 : 4556 [52,106,20] + Entry 6 : 4556 [52,93,128] + Entry 7 : 4556 [52,96,20] + Entry 8 : 4556 [52,98,128] + Next Page : 52 199 + -------------------- + ------- LEAF ------- + NumEntries=9 FileId=52 PageId=199 + Entry 0 : 4556 [52,101,20] + Entry 1 : 4556 [52,91,20] + Entry 2 : 4556 [52,86,20] + Entry 3 : 9376 [52,98,20] + Entry 4 : 9376 [52,103,20] + Entry 5 : 9376 [52,105,128] + Entry 6 : 9376 [52,100,128] + Entry 7 : 9376 [52,95,128] + Entry 8 : 9376 [52,52,128] + Next Page : 52 189 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=189 + Entry 0 : 9376 [52,93,20] + Entry 1 : 9376 [52,90,128] + Entry 2 : 9376 [52,88,20] + Entry 3 : 9376 [52,85,128] + Entry 4 : 9376 [52,49,164] + Entry 5 : 9376 [52,45,92] + Entry 6 : 9376 [52,17,20] + Next Page : 52 183 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=183 + Entry 0 : 9376 [52,75,56] + Entry 1 : 9376 [52,83,20] + Entry 2 : 9376 [52,80,128] + Entry 3 : 9376 [52,78,20] + Entry 4 : 9376 [52,55,92] + Entry 5 : 9376 [52,61,20] + Entry 6 : 9376 [52,66,164] + Next Page : 52 172 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=172 + Entry 0 : 9376 [52,72,92] + Entry 1 : 9376 [52,69,128] + Entry 2 : 9376 [52,63,200] + Entry 3 : 9376 [52,58,56] + Entry 4 : 9376 [52,41,92] + Entry 5 : 9376 [52,39,20] + Entry 6 : 9376 [52,21,92] + Next Page : 52 140 + -------------------- + ------- LEAF ------- + NumEntries=7 FileId=52 PageId=140 + Entry 0 : 9376 [52,34,164] + Entry 1 : 9376 [52,32,92] + Entry 2 : 9376 [52,28,20] + Entry 3 : 9376 [52,25,164] + Entry 4 : 9376 [52,12,164] + Entry 5 : 9376 [52,8,92] + Entry 6 : 9376 [52,3,128] + Next Page : 0 0 + -------------------- ++++++++++++++++++++++++++++++++++++++++++++++ +BTree b1 created +ok ( 0.011 s ) ++-----------+ +| AGGR | +| count(*) | ++-----------+ +| 522 | ++-----------+ +ok ( 0.001 s ) +Batch done | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/bt1.sql ^ |
@@ -0,0 +1,8 @@ +drop if exists table sysmt_user; +create table sysmt_user(usrid int not null, + dbuser string(100) not null, + password string(100), + usermail string(100)); + +create primary btree on sysmt_user(usrid); +create unique btree sysmt_user_i1 on sysmt_user(dbuser); | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/bt2.sql ^ |
@@ -0,0 +1,3 @@ +insert into sysmt_user ( usrid, dbuser, password, usermail ) values ( 0, 'admin', '205qjDWdAOD5Q', 'nomail'); +insert into sysmt_user ( usrid, dbuser, password, usermail ) values ( 1, 'lemke', 'VxlvSgomYNe8s', 'nomail'); + | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/bt3.sql ^ |
@@ -0,0 +1 @@ +select dbuser from sysmt_user where usrid = 1; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/samples/chkdb/check026.sql ^ |
@@ -1,10 +1,21 @@ -- -- ### Check advanced aggregation -- + +drop if exists procedure mny2str; +@ +create procedure mny2str(m in fixed(2)) return string(50) +begin + return :m | ' Euro'; +end; +@ + drop if exists table t1; drop if exists table t2; +drop if exists table t3; create table t1 ( a datetime ); create table t2 ( a int, b int, c int ); +create table t3 ( a fixed(2) ); insert into t1 values ( sysdate ); select sum( date2int(a) ) from t1; @@ -12,7 +23,12 @@ insert into t2 values ( 1, 2, 3 ); insert into t2 values ( 100, 20, 77 ); + +insert into t3 values ( (fixed)1.23 ); +insert into t3 values ( (fixed)2.37 ); + select sum(a) + sum(b) + sum(c), sum(a) - sum(b), avg(a), avg(b) from t2; select count(a) + sum(b), avg(a) - sum(b) - sum(a) from t2; +select mny2str(sum(a)) from t3; | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/check038.sql ^ |
@@ -0,0 +1,928 @@ +-- +-- ### Advanced btree checks +-- + +drop if exists table t1; +create table t1 ( a int ); + +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); + +select count(*) from t1; +select count(*) from t1 where a < 100; +create btree b1 on t1(a); +select count(*) from t1 where a < 100; + +-- check fur any buffer fix leaks +show pool; + +select count(*) from t1; +select count(*) from t1 where a = 56; +delete from t1 where a = 56; +-- check for delete on non existing entries +delete from t1 where a = 56; + +select count(*) from t1; + +-- further btree checks + +drop if exists table t1; +create table t1 ( a int ); +create btree b1 on t1 ( a ); + + +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); +insert into t1 values ( 5 ); + +insert into t1 values ( 7 ); +insert into t1 values ( 7 ); +insert into t1 values ( 7 ); + +insert into t1 values ( 8 ); +insert into t1 values ( 8 ); +insert into t1 values ( 9 ); + +select * from t1 where a > 5; +delete from t1; +-- check for empty btree page trace for several cases +select * from t1 where a > 5; +select * from t1 where a < 20; + + + + | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/chkbtree ^ |
@@ -0,0 +1,16 @@ +#!/bin/sh + + +DBUSER=lemke +DBPWD=lemke + + +CEGO=../../src/cego +CGCLT=../../src/cgclt + +$CEGO --mode=batch --dbxml=./db/chkdb.xml --user=lemke/lemke --poolsize=1000 --batchfile=bt1.sql --tableset=TS1 + +$CEGO --mode=batch --dbxml=./db/chkdb.xml --user=lemke/lemke --poolsize=1000 --batchfile=bt2.sql --tableset=TS1 + +$CEGO --mode=batch --dbxml=./db/chkdb.xml --user=lemke/lemke --poolsize=1000 --batchfile=bt3.sql --tableset=TS1 + | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/samples/chkdb/mkdb ^ |
@@ -17,8 +17,8 @@ # PAGESIZE=16384 # PAGESIZE=131072 # PAGESIZE=32768 -PAGESIZE=8192 -# PAGESIZE=4096 +# PAGESIZE=8192 +PAGESIZE=4096 # PAGESIZE=2048 # PAGESIZE=1024 DBHOST=bigmac.local @@ -102,10 +102,10 @@ TSROOT=./db TSTICKET=$TSROOT/${TS}ticket.xml SYSSIZE=100 - TMPSIZE=3000 + TMPSIZE=30000 LOGFILESIZE=1000000 LOGFILENUM=3 - APPSIZE=3000 + APPSIZE=30000 SORTAREASIZE=10000000 DBUSER=lemke DBPWD=lemke | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/x.sql ^ |
@@ -0,0 +1,866 @@ +-- +-- ### Advanced btree checks +-- + +drop if exists table t1; +create table t1 ( a int ); + +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); +insert into t1 values ( 1256 ); +insert into t1 values ( 5631 ); +insert into t1 values ( 754 ); +insert into t1 values ( 1234 ); +insert into t1 values ( 1922 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 4556 ); +insert into t1 values ( 156 ); +insert into t1 values ( 56 ); + +select count(*) from t1; +select count(*) from t1 where a < 100; +create btree b1 on t1(a); +select count(*) from t1 where a < 100; + +-- check fur any buffer fix leaks +-- show pool; | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/x2.sql ^ |
@@ -0,0 +1,39 @@ +drop if exists table t1; +create table t1 ( a int ); + +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 75 ); +insert into t1 values ( 75 ); +insert into t1 values ( 1234 ); + + + +select count(*) from t1; +select count(*) from t1 where a < 100; +create btree b1 on t1(a); +select count(*) from t1 where a < 100; + +-- delete from t1 where a = 124; +-- delete from t1 where a = 570; +-- delete from t1 where a = 50; + + | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/samples/chkdb/x3.sql ^ |
@@ -0,0 +1,65 @@ +drop if exists table t1; +create table t1 ( a int ); + +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 9376 ); +insert into t1 values ( 92 ); +insert into t1 values ( 15 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); +insert into t1 values ( 672 ); +insert into t1 values ( 75 ); +insert into t1 values ( 56 ); +insert into t1 values ( 56 ); +insert into t1 values ( 19 ); + + + + +select count(*) from t1; +select count(*) from t1 where a < 100; +create btree b1 on t1(a); +select count(*) from t1 where a < 100; + +-- delete from t1 where a = 124; +-- delete from t1 where a = 570; +-- delete from t1 where a = 50; + + | ||
[-] [+] | Added | cego-2.20.1.tar.bz2/src/.#CegoAttrCond.h ^ |
+(symlink to lemke@bigmac.local.14450) | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoAction.cc ^ |
@@ -5414,6 +5414,7 @@ schema.Insert(CegoField(Chain("TABLEINFO"), Chain("TABLEINFO"), Chain("NAME"), VARCHAR_TYPE, 30)); schema.Insert(CegoField(Chain("TABLEINFO"), Chain("TABLEINFO"), Chain("TYPE"), VARCHAR_TYPE, 15)); schema.Insert(CegoField(Chain("TABLEINFO"), Chain("TABLEINFO"), Chain("PAGES"), VARCHAR_TYPE, 15)); + schema.Insert(CegoField(Chain("TABLEINFO"), Chain("TABLEINFO"), Chain("RELEVANCE"), VARCHAR_TYPE, 15)); oe = CegoTableObject(0, CegoObject::SYSTEM, Chain("SYSINFO"), schema, Chain("SYSINFO")); @@ -5425,6 +5426,7 @@ int pageCount = _pTabMng->getDistPageCount(tableSet, tableName, CegoObject::TABLE); fv.Insert(CegoFieldValue(INT_TYPE, Chain(pageCount))); + fv.Insert(CegoFieldValue(INT_TYPE, Chain(0))); fa.Insert(fv); CegoTableObject *pOE = idxList.First(); @@ -5461,6 +5463,9 @@ fv1.Insert(CegoFieldValue(VARCHAR_TYPE, Chain("INVALID"))); } + // relevance not supported + fv1.Insert(CegoFieldValue(INT_TYPE, Chain(0))); + fa.Insert(fv1); pOE = idxList.Next(); @@ -5501,6 +5506,9 @@ fv1.Insert(CegoFieldValue(VARCHAR_TYPE, Chain("INVALID"))); } + // relevance + fv1.Insert(CegoFieldValue(INT_TYPE, Chain(pBTO->getRelevance()))); + fa.Insert(fv1); pBTO = btreeList.Next(); @@ -5527,6 +5535,8 @@ } fv1.Insert(CegoFieldValue(INT_TYPE, Chain(0))); + fv1.Insert(CegoFieldValue(INT_TYPE, Chain(0))); + fa.Insert(fv1); pCE = checkList.Next(); } @@ -5550,6 +5560,8 @@ } fv1.Insert(CegoFieldValue(INT_TYPE, Chain(0))); + fv1.Insert(CegoFieldValue(INT_TYPE, Chain(0))); + fa.Insert(fv1); pKE = keyList.Next(); } | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoAttrCond.cc ^ |
@@ -234,7 +234,6 @@ bool hasLeak=false; CegoField *pF = schema.First(); - while ( pF && hasLeak == false ) { bool isFound=false; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeCursor.cc ^ |
@@ -117,7 +117,6 @@ { CegoBufferPage bp; - _pDBMng->bufferFix(bp, _tabSetId, _curFileId, _curPageId, CegoBufferPool::SYNC, _pTabMng->getLockHandler()); if ( bp.getType() == CegoBufferPage::BTREE_NODE ) @@ -133,6 +132,7 @@ traceNode.reset(); traceNode.nextChildPointer(_curFileId, _curPageId); + _parentPageStack.Push(bp); } else if ( bp.getType() == CegoBufferPage::BTREE_LEAF ) @@ -148,29 +148,69 @@ leafFound=true; _curLeaf.reset(); - bool hasValue = _curLeaf.nextValue(iv, dp); - } - } - - CegoComparison comp = compValue(iv); - - if ( comp == LESS_THAN - || ( comp == EQUAL && _pAttrCond->getPrimaryComparison() == LESS_EQUAL_THAN ) - || ( comp != EQUAL && _pAttrCond->getPrimaryComparison() == NOT_EQUAL ) ) - { - found = true; - } - else if ( _pAttrCond->getPrimaryComparison() == NOT_EQUAL ) - { - return getNext(fl, dp); + + bool goOn = true; + while ( goOn ) + { + CegoBTreeValue iv; + bool hasValue = _curLeaf.nextValue(iv, dp); + + if ( hasValue ) + { + + CegoComparison comp = compValue(iv); + + if ( comp == LESS_THAN + || ( comp == EQUAL && _pAttrCond->getPrimaryComparison() == LESS_EQUAL_THAN ) + || ( comp != EQUAL && _pAttrCond->getPrimaryComparison() == NOT_EQUAL ) ) + { + found = true; + goOn = false; + } + else if ( _pAttrCond->getPrimaryComparison() == NOT_EQUAL ) + { + return getNext(fl, dp); + } + } + else + { + + while ( hasValue == false && goOn ) + { + + int fileId = _curPage.getNextFileId(); + int pageId = _curPage.getNextPageId(); + + _pDBMng->bufferUnfix(_curPage, false, _pTabMng->getLockHandler()); + + if ( fileId && pageId ) + { + _pDBMng->bufferFix(_curPage, _tabSetId, fileId, pageId, CegoBufferPool::SYNC, _pTabMng->getLockHandler()); + + _curLeaf.setPtr(_curPage.getChunkEntry(), _curPage.getChunkLen()); + _curLeaf.setFileId(_curPage.getFileId()); + _curLeaf.setPageId(_curPage.getPageId()); + _curLeaf.setSchema(&_btreeSchema, _keyLen); + + _curLeaf.reset(); + hasValue = _curLeaf.numEntries() > 0 ; + + } + else + { + goOn = false;; + } + } + } + } + } } - break; } case EQUAL: case MORE_EQUAL_THAN: { - + bool leafFound = false; _curFileId = _rootFileId; @@ -231,25 +271,59 @@ _curLeaf.setSchema(&_btreeSchema, _keyLen); leafFound=true; - - CegoBTreeValue iv; _curLeaf.reset(); - bool goOn = _curLeaf.nextValue(iv, dp); + + bool goOn = true; while ( goOn ) { - CegoComparison comp = compValue(iv); - if ( comp == EQUAL || comp == MORE_THAN ) - { - goOn = false; - if ( comp == MORE_THAN && _pAttrCond->getPrimaryComparison() == EQUAL ) - found = false; - else - found = true; + + CegoBTreeValue iv; + bool hasValue = _curLeaf.nextValue(iv, dp); + + if ( hasValue ) + { + CegoComparison comp = compValue(iv); + if ( comp == EQUAL || comp == MORE_THAN ) + { + goOn = false; + if ( comp == MORE_THAN && _pAttrCond->getPrimaryComparison() == EQUAL ) + found = false; + else + found = true; + } } else { - goOn = _curLeaf.nextValue(iv, dp); + + while ( hasValue == false && goOn ) + { + + int fileId = _curPage.getNextFileId(); + int pageId = _curPage.getNextPageId(); + + // cout << "Skipping leave, going to next " << pageId << endl; + + _pDBMng->bufferUnfix(_curPage, false, _pTabMng->getLockHandler()); + + if ( fileId && pageId ) + { + _pDBMng->bufferFix(_curPage, _tabSetId, fileId, pageId, CegoBufferPool::SYNC, _pTabMng->getLockHandler()); + + _curLeaf.setPtr(_curPage.getChunkEntry(), _curPage.getChunkLen()); + _curLeaf.setFileId(_curPage.getFileId()); + _curLeaf.setPageId(_curPage.getPageId()); + _curLeaf.setSchema(&_btreeSchema, _keyLen); + + _curLeaf.reset(); + hasValue = _curLeaf.numEntries() > 0 ; + + } + else + { + goOn = false;; + } + } } } } @@ -317,25 +391,56 @@ _curLeaf.setSchema(&_btreeSchema, _keyLen); leafFound=true; - - CegoBTreeValue iv; _curLeaf.reset(); - bool goOn = _curLeaf.nextValue(iv, dp); + + bool goOn = true; while ( goOn ) { - CegoComparison comp = compValue(iv); - if ( comp == MORE_THAN ) - { - goOn = false; - if ( comp == MORE_THAN && _pAttrCond->getPrimaryComparison() == EQUAL ) - found = false; - else - found = true; + CegoBTreeValue iv; + bool hasValue = _curLeaf.nextValue(iv, dp); + if ( hasValue ) + { + + CegoComparison comp = compValue(iv); + if ( comp == MORE_THAN ) + { + goOn = false; + if ( comp == MORE_THAN && _pAttrCond->getPrimaryComparison() == EQUAL ) + found = false; + else + found = true; + } } else - { - goOn = _curLeaf.nextValue(iv, dp); + { + while ( hasValue == false && goOn ) + { + + + int fileId = _curPage.getNextFileId(); + int pageId = _curPage.getNextPageId(); + + _pDBMng->bufferUnfix(_curPage, false, _pTabMng->getLockHandler()); + + if ( fileId && pageId ) + { + _pDBMng->bufferFix(_curPage, _tabSetId, fileId, pageId, CegoBufferPool::SYNC, _pTabMng->getLockHandler()); + + _curLeaf.setPtr(_curPage.getChunkEntry(), _curPage.getChunkLen()); + _curLeaf.setFileId(_curPage.getFileId()); + _curLeaf.setPageId(_curPage.getPageId()); + _curLeaf.setSchema(&_btreeSchema, _keyLen); + + _curLeaf.reset(); + hasValue = _curLeaf.numEntries() > 0 ; + + } + else + { + goOn = false;; + } + } } } } @@ -501,7 +606,7 @@ int fileId = _curPage.getNextFileId(); int pageId = _curPage.getNextPageId(); - _pDBMng->bufferUnfix(_curPage, false, _pTabMng->getLockHandler()); + _pDBMng->bufferUnfix(_curPage, false, _pTabMng->getLockHandler()); if ( fileId && pageId ) { @@ -723,6 +828,10 @@ _dataLock = 0; } + + if ( _curPage.isFixed() ) + _pDBMng->bufferUnfix(_curPage, false, _pTabMng->getLockHandler()); + // unfix node pages on stack CegoBufferPage bp; while ( _parentPageStack.Pop(bp) ) @@ -731,11 +840,6 @@ _pDBMng->bufferUnfix(bp, false, _pTabMng->getLockHandler()); } - while ( _fixedPageStack.Pop(bp) ) - { - // cout << "Unfixing new page " << bp.getFileId() << " " << bp.getPageId() << endl; - _pDBMng->bufferUnfix(bp, false, _pTabMng->getLockHandler()); - } } void CegoBTreeCursor::reset() | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeCursor.h ^ |
@@ -85,7 +85,7 @@ ListT<CegoField> _btreeSchema; int _keyLen; StackT<CegoBufferPage> _parentPageStack; - StackT<CegoBufferPage> _fixedPageStack; + }; #endif | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeManager.cc ^ |
@@ -6,7 +6,7 @@ // // Design and Implementation by Bjoern Lemke // -// (C)opyright 2000-2013 Bjoern Lemke +// (C)opyright 2000-2014 Bjoern Lemke // // IMPLEMENTATION MODULE // @@ -14,7 +14,6 @@ // // Description: This class implements the btree algorithm to be used as an alternative index object. // -// Status: 2.16 // /////////////////////////////////////////////////////////////////////////////// @@ -123,6 +122,8 @@ StackT<CegoBufferPage> parentPageStack; StackT<CegoBufferPage> fixedPageStack; + StackT<CegoBTreeNode> modNodeStack; + try { @@ -158,13 +159,14 @@ CegoBTreeNode traceNode; traceNode.setType(CegoBTreeNode::NODE); - traceNode.setPtr(bp.getChunkEntry(), bp.getChunkLen()); + traceNode.setPtr(bp.getChunkEntry(), bp.getChunkLen()); traceNode.setSchema(&_btreeSchema, _keyLen); traceNode.setFileId(bp.getFileId()); traceNode.setPageId(bp.getPageId()); // traceNode.printNode(); + // cout << "Tracing node " << bp.getFileId() << " " << bp.getPageId() << endl; traceNode.getChildPage(iv, fileId, pageId); // cout << "Tracing to child page .." << fileId << " " << pageId << endl; @@ -173,69 +175,60 @@ else if ( bp.getType() == CegoBufferPage::BTREE_LEAF ) { - CegoBTreeNode propLeft; - propLeft.setType(CegoBTreeNode::LEAF); - propLeft.setPtr(bp.getChunkEntry(), bp.getChunkLen()); - propLeft.setFileId(bp.getFileId()); - propLeft.setPageId(bp.getPageId()); - propLeft.setSchema(&_btreeSchema, _keyLen); - propLeft.setNextFileId(bp.getNextFileId()); - propLeft.setNextPageId(bp.getNextPageId()); + CegoBTreeNode leafLeft; + leafLeft.setType(CegoBTreeNode::LEAF); + leafLeft.setPtr(bp.getChunkEntry(), bp.getChunkLen()); + leafLeft.setFileId(bp.getFileId()); + leafLeft.setPageId(bp.getPageId()); + leafLeft.setSchema(&_btreeSchema, _keyLen); + leafLeft.setNextFileId(bp.getNextFileId()); + leafLeft.setNextPageId(bp.getNextPageId()); - if ( propLeft.addValue(iv, dp, _btreeName, _btreeType == CegoObject::PBTREE || _btreeType == CegoObject::UBTREE, _pObjMng, _tabSetId, tid) == false ) + bool duplicateAdded; + if ( leafLeft.addValue(iv, dp, _btreeName, _btreeType == CegoObject::PBTREE || _btreeType == CegoObject::UBTREE, _pObjMng, _tabSetId, tid, duplicateAdded) == false ) { // cout << "Creating new leaf page .." << endl; - CegoBTreeNode propRight; + CegoBTreeNode leafRight; // create new CegoBufferPage newPage; - _pObjMng->getNewFilePage(newPage, _tabSetId, CegoObject::INDEX, true, doAppend); + _pObjMng->getNewFilePage(newPage, _tabSetId, CegoObject::BTREE, true, doAppend); newPage.initPage(CegoBufferPage::BTREE_LEAF); fixedPageStack.Push(newPage); - propRight.setType(CegoBTreeNode::LEAF); - propRight.setPtr(newPage.getChunkEntry(), newPage.getChunkLen()); - propRight.initNode(); - propRight.setFileId(newPage.getFileId()); - propRight.setPageId(newPage.getPageId()); - propRight.setSchema(&_btreeSchema, _keyLen); + leafRight.setType(CegoBTreeNode::LEAF); + leafRight.setPtr(newPage.getChunkEntry(), newPage.getChunkLen()); + leafRight.initNode(); + leafRight.setFileId(newPage.getFileId()); + leafRight.setPageId(newPage.getPageId()); + leafRight.setSchema(&_btreeSchema, _keyLen); // cout << "Splitting leaf page .." << endl; - propLeft.split(propRight); + leafLeft.split(leafRight); // cout << "Setting next page to " << newPage.getFileId() << " " << newPage.getPageId() << endl; + + if ( bp != _rootBP ) + fixedPageStack.Push(bp); - if ( propLeft.getNextFileId() && propLeft.getNextPageId() ) - { - propRight.setNextFileId(propLeft.getNextFileId()); - propRight.setNextPageId(propLeft.getNextPageId()); - newPage.setNextFileId(propLeft.getNextFileId()); - newPage.setNextPageId(propLeft.getNextPageId()); - } - - propLeft.setNextFileId(newPage.getFileId()); - propLeft.setNextPageId(newPage.getPageId()); - - bp.setNextFileId(newPage.getFileId()); - bp.setNextPageId(newPage.getPageId()); - - fixedPageStack.Push(bp); - - CegoBTreeValue ri = propRight.getMin(); + CegoBTreeValue ri = leafRight.getMin(); + bool dupAdded; if ( iv.isHigher(ri, &_btreeSchema) ) { - propRight.addValue(iv, dp, _btreeName, _btreeType == CegoObject::PBTREE || _btreeType == CegoObject::UBTREE, _pObjMng, _tabSetId, tid); + leafRight.addValue(iv, dp, _btreeName, _btreeType == CegoObject::PBTREE || _btreeType == CegoObject::UBTREE, _pObjMng, _tabSetId, tid, dupAdded); } else { - propLeft.addValue(iv, dp, _btreeName, _btreeType == CegoObject::PBTREE || _btreeType == CegoObject::UBTREE, _pObjMng, _tabSetId, tid); + leafLeft.addValue(iv, dp, _btreeName, _btreeType == CegoObject::PBTREE || _btreeType == CegoObject::UBTREE, _pObjMng, _tabSetId, tid, dupAdded); } - CegoBTreeValue propValue = propLeft.getMax(); - + CegoBTreeValue propValue = leafLeft.getMax(); + CegoBTreeNode propRight = leafRight; + CegoBTreeNode propLeft = leafLeft; + bool isPropagated = false; while ( ! isPropagated ) { @@ -244,27 +237,30 @@ if ( parentPageStack.Pop(propPage) ) { - + + // cout << "Adding propPage to stack" << propPage.getFileId() << " " << propPage.getPageId() << endl; fixedPageStack.Push(propPage); - CegoBTreeNode propNode; - propNode.setType(CegoBTreeNode::NODE); - propNode.setPtr(propPage.getChunkEntry(), propPage.getChunkLen()); - propNode.setFileId(propPage.getFileId()); - propNode.setPageId(propPage.getPageId()); - propNode.setSchema(&_btreeSchema, _keyLen); + CegoBTreeNode nodeLeft; + nodeLeft.setType(CegoBTreeNode::NODE); + nodeLeft.setPtr(propPage.getChunkEntry(), propPage.getChunkLen()); + nodeLeft.setFileId(propPage.getFileId()); + nodeLeft.setPageId(propPage.getPageId()); + nodeLeft.setSchema(&_btreeSchema, _keyLen); - if ( propNode.propagate(propValue, propLeft, propRight) == false ) + ListT<CegoBTreeNode> modNodeList; + + if ( nodeLeft.propagate(propValue, propLeft, propRight, modNodeList) == false ) { - - propLeft = propNode; + + propLeft = nodeLeft; // since we still have to add the right node, save it CegoBTreeNode addNode = propRight; - + // create new CegoBufferPage newPage; - _pObjMng->getNewFilePage(newPage, _tabSetId, CegoObject::INDEX, true, doAppend); + _pObjMng->getNewFilePage(newPage, _tabSetId, CegoObject::BTREE, true, doAppend); newPage.initPage(CegoBufferPage::BTREE_NODE); fixedPageStack.Push(newPage); @@ -278,7 +274,9 @@ propLeft.split(propRight); propValue = propLeft.getMax(); - propLeft.decEntries(); + // cout << "!!!!!!!!!!! Decrease entries for page " << nodeLeft.getPageId() << " !!!!!!!!!" << endl; + // propLeft.decEntries(); + // cout << "!!!!!!!!!!! New value is " << nodeLeft.numEntries() << " !!!!!!!!!" << endl; // add new node CegoBTreeValue iv1 = addNode.getMin(); @@ -286,11 +284,13 @@ if ( iv1.isHigher(iv2, &_btreeSchema) ) { - propRight.addNode(iv1, addNode); + // cout << "Adding new node on right !!!!" << endl; + propRight.addNode(iv1, addNode, modNodeList); } else { - propLeft.addNode(iv1, addNode); + // cout << "Adding new node on left !!!!" << endl; + propLeft.addNode(iv1, addNode, modNodeList); } } @@ -298,9 +298,47 @@ { // cout << "Node page after propagation " << endl; // propNode.printNode(); + + /* + + if ( leafLeft.getNextFileId() && leafLeft.getNextPageId() ) + { + leafRight.setNextFileId(leafLeft.getNextFileId()); + leafRight.setNextPageId(leafLeft.getNextPageId()); + newPage.setNextFileId(leafLeft.getNextFileId()); + newPage.setNextPageId(leafLeft.getNextPageId()); + } + + leafLeft.setNextFileId(newPage.getFileId()); + leafLeft.setNextPageId(newPage.getPageId()); + bp.setNextFileId(newPage.getFileId()); + bp.setNextPageId(newPage.getPageId()); + */ + isPropagated = true; } + + // set up next page information + + + CegoBTreeNode* pModNode = modNodeList.First(); + while ( pModNode ) + { + + // cout << "A Setting up post node for node " << pModNode->getFileId() << " " << pModNode->getPageId() + // << " to value " << pModNode->getNextFileId() << " " << pModNode->getNextPageId() << endl; + + CegoBufferPage modPage; + + _pDBMng->bufferFix(modPage, _tabSetId, pModNode->getFileId(), pModNode->getPageId(), CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); + modPage.setNextFileId(pModNode->getNextFileId()); + modPage.setNextPageId(pModNode->getNextPageId()); + _pDBMng->bufferUnfix(modPage, true, _pObjMng->getLockHandler()); + + pModNode = modNodeList.Next(); + } + } else // root node reached, adding new root @@ -309,11 +347,21 @@ // cout << "Adding new root page .." << endl; CegoBufferPage rootPage; - _pObjMng->getNewFilePage(rootPage, _tabSetId, CegoObject::INDEX, true, doAppend); + _pObjMng->getNewFilePage(rootPage, _tabSetId, CegoObject::BTREE, true, doAppend); rootPage.initPage(CegoBufferPage::BTREE_NODE); - if ( _rootFixed ) - _rootBP = rootPage; + if ( isFirst && _rootFixed ) + { + // cout << "Adding _rootBP to stack" << _rootBP.getFileId() << " " << _rootBP.getPageId() << endl; + fixedPageStack.Push(_rootBP); + } + else + { + // cout << "Adding rootPage to stack" << endl; + fixedPageStack.Push(rootPage); + } + + _rootBP = rootPage; CegoBTreeNode rootNode; rootNode.setType(CegoBTreeNode::NODE); @@ -322,9 +370,30 @@ rootNode.setFileId(rootPage.getFileId()); rootNode.setPageId(rootPage.getPageId()); rootNode.setSchema(&_btreeSchema, _keyLen); - - rootNode.propagate(propValue, propLeft, propRight); - + + ListT<CegoBTreeNode> modNodeList; + rootNode.propagate(propValue, propLeft, propRight, modNodeList); + + + CegoBTreeNode* pModNode = modNodeList.First(); + while ( pModNode ) + { + + // cout << "B Setting up post node for node " << pModNode->getFileId() << " " << pModNode->getPageId() + // << " to value " << pModNode->getNextFileId() << " " << pModNode->getNextPageId() << endl; + + CegoBufferPage modPage; + + _pDBMng->bufferFix(modPage, _tabSetId, pModNode->getFileId(), pModNode->getPageId(), CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); + modPage.setNextFileId(pModNode->getNextFileId()); + modPage.setNextPageId(pModNode->getNextPageId()); + _pDBMng->bufferUnfix(modPage, true, _pObjMng->getLockHandler()); + + pModNode = modNodeList.Next(); + } + + + // rootNode.printNode(); _pBTO->setDataFileId(rootPage.getFileId()); @@ -345,10 +414,25 @@ } else { - if ( isFirst == false ) + if ( bp != _rootBP || _rootFixed == false) _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); } + if ( duplicateAdded == false ) + { + _pBTO->increaseRelevance(); + + char *p; + int len; + unsigned long lockId = _pObjMng->claimDataPtr(_tabSetId, + CegoLockHandler::WRITE, + CegoBufferPool::NOSYNC, + sysEntry, p, len); + _pBTO->encode(p); + _pObjMng->releaseDataPtr(lockId, true); + + } + isInserted = true; } @@ -383,10 +467,11 @@ CegoBufferPage bp; while ( parentPageStack.Pop(bp) ) { - if ( bp != _rootBP || _rootFixed == false) + if ( bp != _rootBP || _rootFixed == false ) { // cout << "Unfixing parent page .." << bp.getFileId() << " " << bp.getPageId() << endl; _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + // cout << "Done" << endl; } } @@ -396,6 +481,7 @@ { // cout << "Unfixing fixed page .." << bp.getFileId() << " " << bp.getPageId() << endl; _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + // cout << "Done" << endl; } } } @@ -451,16 +537,40 @@ traceNode.printNode(level); } - _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + _pDBMng->bufferUnfix(bp, false, _pObjMng->getLockHandler()); } - void CegoBTreeManager::deleteBTree(const CegoBTreeValue &iv, const CegoDataPointer& dp) -{ +{ + + + // we have to keep the index object in buffer pool + CegoBufferPage bp; + _pObjMng->getObjectWithFix(_tabSetId, _btreeName, _btreeType, *_pBTO, bp); + + CegoDataPointer sysEntry(bp.getFileId(), bp.getPageId(), bp.getEntryPos()); + + try + { + deleteBTree(sysEntry, iv, dp); + } + catch ( Exception e ) + { + _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + throw e; + } + _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + +} +void CegoBTreeManager::deleteBTree(const CegoDataPointer& sysEntry, + const CegoBTreeValue &iv, + const CegoDataPointer& dp) +{ + int fileId = _pBTO->getDataFileId(); int pageId = _pBTO->getDataPageId(); @@ -472,50 +582,133 @@ bool isDeleted = false; StackT<CegoBufferPage> parentPageStack; - StackT<CegoBufferPage> fixedPageStack; - while ( ! isDeleted ) + + try { - - CegoBufferPage bp; - - _pDBMng->bufferFix(bp, _tabSetId, fileId, pageId, CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); - if ( bp.getType() == CegoBufferPage::BTREE_NODE ) + while ( ! isDeleted ) { - - CegoBTreeNode traceNode; - traceNode.setType(CegoBTreeNode::NODE); - traceNode.setPtr(bp.getChunkEntry(), bp.getChunkLen()); - traceNode.setSchema(&_btreeSchema, _keyLen); - traceNode.setFileId(bp.getFileId()); - traceNode.setPageId(bp.getPageId()); - - // traceNode.printNode(); - - traceNode.getChildPage(iv, fileId, pageId); - - // cout << "Tracing to child page .." << fileId << " " << pageId << endl; - - parentPageStack.Push(bp); + + CegoBufferPage bp; + + _pDBMng->bufferFix(bp, _tabSetId, fileId, pageId, CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); + + if ( bp.getType() == CegoBufferPage::BTREE_NODE ) + { + + CegoBTreeNode traceNode; + traceNode.setType(CegoBTreeNode::NODE); + traceNode.setPtr(bp.getChunkEntry(), bp.getChunkLen()); + traceNode.setSchema(&_btreeSchema, _keyLen); + traceNode.setFileId(bp.getFileId()); + traceNode.setPageId(bp.getPageId()); + + // traceNode.printNode(); + + traceNode.getChildPage(iv, fileId, pageId); + + // cout << "Tracing to child page .." << fileId << " " << pageId << endl; + + parentPageStack.Push(bp); + } + else if ( bp.getType() == CegoBufferPage::BTREE_LEAF ) + { + + CegoBTreeNode leaf; + leaf.setType(CegoBTreeNode::LEAF); + leaf.setPtr(bp.getChunkEntry(), bp.getChunkLen()); + leaf.setFileId(bp.getFileId()); + leaf.setPageId(bp.getPageId()); + leaf.setSchema(&_btreeSchema, _keyLen); + leaf.setNextFileId(bp.getNextFileId()); + leaf.setNextPageId(bp.getNextPageId()); + + int leafFileId = bp.getFileId(); + int leafPageId = bp.getPageId(); + int leafNextFileId = bp.getNextFileId(); + int leafNextPageId = bp.getNextPageId(); + + while ( isDeleted == false ) + { + isDeleted = leaf.deleteValue(iv, dp); + if ( isDeleted == false ) + { + if ( leafNextFileId != 0 && leafNextPageId != 0 ) + { + _pDBMng->bufferUnfix(bp, false, _pObjMng->getLockHandler()); + _pDBMng->bufferFix(bp, _tabSetId, leafNextFileId, leafNextPageId, CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); + leaf.setPtr(bp.getChunkEntry(), bp.getChunkLen()); + + leafFileId = bp.getFileId(); + leafPageId = bp.getPageId(); + leafNextFileId = bp.getNextFileId(); + leafNextPageId = bp.getNextPageId(); + + // leaf.setFileId(bp.getFileId()); + // leaf.setPageId(bp.getPageId()); + } + else + { + _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + throw Exception(EXLOC, Chain("Entry not found in btree")); + } + } + } + + _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); + + // check for duplicates + + bool hasDuplicate=false; + + CegoBufferPage cbp1; + _pDBMng->bufferFix(cbp1, _tabSetId, leafFileId, leafPageId, CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); + leaf.setPtr(cbp1.getChunkEntry(), cbp1.getChunkLen()); + if ( leaf.valueExists(iv) ) + { + hasDuplicate=true; + } + else if ( leafNextFileId != 0 && leafNextPageId != 0 ) + { + // now we still have to check the next following page for duplicates + CegoBufferPage cbp2; + _pDBMng->bufferFix(cbp2, _tabSetId, leafNextFileId, leafNextPageId, CegoBufferPool::NOSYNC, _pObjMng->getLockHandler()); + leaf.setPtr(bp.getChunkEntry(), bp.getChunkLen()); + if ( leaf.valueExists(iv) ) + { + hasDuplicate=true; + } + + _pDBMng->bufferUnfix(cbp2, false, _pObjMng->getLockHandler()); + } + + _pDBMng->bufferUnfix(cbp1, false, _pObjMng->getLockHandler()); + + if ( hasDuplicate == false ) + { + + _pBTO->decreaseRelevance(); + char *p; + int len; + unsigned long lockId = _pObjMng->claimDataPtr(_tabSetId, + CegoLockHandler::WRITE, + CegoBufferPool::NOSYNC, + sysEntry, p, len); + _pBTO->encode(p); + _pObjMng->releaseDataPtr(lockId, true); + + } + } } - else if ( bp.getType() == CegoBufferPage::BTREE_LEAF ) + } + catch ( Exception e ) + { + CegoBufferPage bp; + while ( parentPageStack.Pop(bp) ) { - - CegoBTreeNode leaf; - leaf.setType(CegoBTreeNode::LEAF); - leaf.setPtr(bp.getChunkEntry(), bp.getChunkLen()); - leaf.setFileId(bp.getFileId()); - leaf.setPageId(bp.getPageId()); - leaf.setSchema(&_btreeSchema, _keyLen); - leaf.setNextFileId(bp.getNextFileId()); - leaf.setNextPageId(bp.getNextPageId()); - - leaf.deleteValue(iv, dp); - - _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); - - isDeleted = true; + _pDBMng->bufferUnfix(bp, true, _pObjMng->getLockHandler()); } + throw e; } // unfix node pages on stack | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeManager.h ^ |
@@ -44,19 +44,26 @@ const CegoBTreeValue &iv, int tid); - void fixRoot(); - void unfixRoot(); + void deleteBTree(const CegoBTreeValue &iv, + const CegoDataPointer& ddp); void insertBTree(const CegoDataPointer& sysEntry, const CegoDataPointer& dp, const CegoBTreeValue &iv, int tid); + void deleteBTree(const CegoDataPointer& sysEntry, + const CegoBTreeValue &iv, + const CegoDataPointer& dp); + + void fixRoot(); + void unfixRoot(); + + void dumpBTree(); void dumpNode(int level, int fileId, int pageId); + - void deleteBTree(const CegoBTreeValue &iv, - const CegoDataPointer& ddp); int getNumPages(); void freeBTree(); | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeNode.cc ^ |
@@ -6,7 +6,7 @@ // // Design and Implementation by Bjoern Lemke // -// (C)opyright 2000-2013 Bjoern Lemke +// (C)opyright 2000-2014 Bjoern Lemke // // IMPLEMENTATION MODULE // @@ -15,7 +15,6 @@ // Description: This class handles operations on btree elements. // These elements either can be nodes or leafs and depending on the type, the corresponding methods are available. // -// Status: 2.16 // /////////////////////////////////////////////////////////////////////////////// @@ -30,7 +29,7 @@ #include <string.h> #include <stdlib.h> -// must match the value of method CegoDataPointer.getEncodingLenth +// must match the value of method CegoDataPointer.getEncodingLength #define DPENCODINGLENGTH 3*sizeof(int) CegoBTreeNode::CegoBTreeNode() @@ -54,7 +53,7 @@ _nt = nt; } -const CegoBTreeNode::NodeType CegoBTreeNode::getType() +const CegoBTreeNode::NodeType CegoBTreeNode::getType() const { return _nt; } @@ -126,7 +125,7 @@ throw Exception(EXLOC, Chain("BTree node not set up")); } -int CegoBTreeNode::numEntries() +int CegoBTreeNode::numEntries() const { if ( _pI ) { @@ -163,7 +162,7 @@ throw Exception(EXLOC, Chain("BTree node not set up")); } -int CegoBTreeNode::maxEntries() +int CegoBTreeNode::maxEntries() const { if ( _nt == LEAF ) { @@ -214,6 +213,8 @@ CegoBTreeValue nv; nv.setPtr(pKey); + // cout << "getChildPage : Comparing " << iv.toChain(_pSchema) << " and " << nv.toChain(_pSchema) << "i=" << i << "ne=" << ne << endl; + if ( iv.isHigher(nv, _pSchema) ) { i++; @@ -235,6 +236,9 @@ memcpy(&fileId, p, sizeof(int)); p+=sizeof(int); memcpy(&pageId, p, sizeof(int)); + + // cout << "Found child page " << pageId << endl; + return; } @@ -243,96 +247,30 @@ void CegoBTreeNode::setSchema(ListT<CegoField>* pSchema, int keyLen) { _pSchema = pSchema; - _keyLen = keyLen; - - /* - CegoField *pF = _schema.First(); - while ( pF ) - { - _keyLen += pF->getLength(); - pF = _schema.Next(); - } - */ -} - -/* addValue - old version */ - -/* -bool CegoBTreeNode::addValue(const CegoBTreeValue& iv, const CegoDataPointer& dp, const Chain& btreeName, bool isUnique) -{ - - if ( _nt == NODE ) - throw Exception(EXLOC, Chain("Invalid method for node type")); - - int ne = numEntries(); - - if ( ne == maxEntries() ) - return false; - - char* pKey = (char*)((long)_pI + sizeof(int)); - - CegoBTreeValue nv; - - bool isInserted = false; - - int i=0; - while ( i < ne ) - { - nv.setPtr(pKey); - - if ( isUnique ) - { - if ( nv.isEqual(iv, _pSchema)) - { - Chain msg = Chain("Duplicate key on unique btree ") + btreeName; - throw Exception(EXLOC, msg); - } - } - if ( nv.isHigher(iv, _pSchema) ) - { - shiftEntries(i, 1); - - // copy iv to free slot - memcpy(pKey, iv.getPtr(), _keyLen); - char* pDP = (char*)((long)pKey + _keyLen); - dp.encode(pDP); - - incEntries(); - - return true; - } - pKey += getEntrySize(); - i++; - } - - // adding value at the end - memcpy(pKey, iv.getPtr(), _keyLen); - char* pDP = (char*)((long)pKey + _keyLen); - dp.encode(pDP); - - incEntries(); - - return true; } -*/ - -/* add value - new version */ - -bool CegoBTreeNode::addValue(const CegoBTreeValue& iv, const CegoDataPointer& dp, const Chain& btreeName, bool isUnique, CegoObjectManager *pOM, int tabSetId, int tid) +bool CegoBTreeNode::addValue(const CegoBTreeValue& iv, const CegoDataPointer& dp, const Chain& btreeName, bool isUnique, CegoObjectManager *pOM, int tabSetId, int tid, bool& duplicateAdded) { // cout << "Adding value " << iv.toChain(_pSchema) << endl; + duplicateAdded = false; + if ( _nt == NODE ) throw Exception(EXLOC, Chain("Invalid method for node type")); int ne = numEntries(); if ( ne == maxEntries() ) + { + if ( valueExists(iv) ) + { + duplicateAdded=true; + } return false; - + } + if ( ne == 0 ) { @@ -394,23 +332,31 @@ // cout << "VC2=" << valueComp2 << endl; - if ( isUnique && ( valueComp1 == CegoBTreeValue::EQUAL || valueComp2 == CegoBTreeValue::EQUAL )) + if ( valueComp1 == CegoBTreeValue::EQUAL || valueComp2 == CegoBTreeValue::EQUAL ) { if ( valueComp1 == CegoBTreeValue::EQUAL ) { - if ( ! ( tid && checkForDeleted(pOM, dp1, tabSetId, tid) ) ) + if ( isUnique && ! ( tid && checkForDeleted(pOM, dp1, tabSetId, tid) ) ) { Chain msg = Chain("Duplicate key on unique btree ") + btreeName; throw Exception(EXLOC, msg); } + else + { + duplicateAdded = true; + } } if ( valueComp2 == CegoBTreeValue::EQUAL ) { - if ( ! ( tid && checkForDeleted(pOM, dp2, tabSetId, tid) ) ) + if ( isUnique && ! ( tid && checkForDeleted(pOM, dp2, tabSetId, tid) ) ) { Chain msg = Chain("Duplicate key on unique btree ") + btreeName; throw Exception(EXLOC, msg); } + else + { + duplicateAdded = true; + } } } @@ -495,8 +441,42 @@ return false; } +bool CegoBTreeNode::valueExists(const CegoBTreeValue& iv) +{ + + if ( _nt == NODE ) + throw Exception(EXLOC, Chain("Invalid method for node type")); + + int ne = numEntries(); + + if ( ne == 0 ) + return false; + + char* pKey = (char*)((long)_pI + sizeof(int)); + + CegoBTreeValue lv; + + int i=0; + while ( i < ne ) + { + lv.setPtr(pKey); + + CegoDataPointer ldp; + ldp.decode(pKey + _keyLen); + + if ( lv.isEqual(iv, _pSchema)) + { + return true; + } + pKey += getEntrySize(); + i++; + } + + return false; +} + -bool CegoBTreeNode::addNode(const CegoBTreeValue& iv, const CegoBTreeNode& node) +bool CegoBTreeNode::addNode(const CegoBTreeValue& iv, const CegoBTreeNode& node, ListT<CegoBTreeNode>& modNodeList) { if ( _nt == LEAF ) throw Exception(EXLOC, Chain("Invalid method for node type")); @@ -511,6 +491,7 @@ while ( i < ne && posFound == false) { + p = (char*)((long)_pI + sizeof(int) + 2 * sizeof(int) + i * getEntrySize()); CegoBTreeValue nv(p); if ( nv.isHigher(iv, _pSchema) ) @@ -518,12 +499,73 @@ shiftEntries(i, 1); posFound=true; } + else if ( iv.isEqual(nv, _pSchema) ) + { + // if equal, we also have to check the maximum value + if ( node.getMax().isHigher(nv, _pSchema) ) + { + i++; + } + else + { + shiftEntries(i, 1); + posFound=true; + } + } else { i++; } } + + + //////////////////////////////////////////////// + // setting up follow up pointer for leaf node // + //////////////////////////////////////////////// + if ( node.getType() == LEAF ) + { + + p = (char*)((long)_pI + sizeof(int) + 2 * sizeof(int) + i * getEntrySize()); + + int fileId, pageId; + + // Getting previous node + char* pp = p - getEntrySize(); + pp+=_keyLen; + memcpy(&fileId, pp, sizeof(int)); + pp+=sizeof(int); + memcpy(&pageId, pp, sizeof(int)); + + CegoBTreeNode preNode; + preNode.setFileId(fileId); + preNode.setPageId(pageId); + preNode.setNextFileId(node.getFileId()); + preNode.setNextPageId(node.getPageId()); + modNodeList.Insert(preNode); + + // Getting post node + CegoBTreeNode postNode; + postNode.setFileId(node.getFileId()); + postNode.setPageId(node.getPageId()); + + p+=_keyLen; + memcpy(&fileId, p, sizeof(int)); + p+=sizeof(int); + memcpy(&pageId, p, sizeof(int)); + + postNode.setNextFileId(fileId); + postNode.setNextPageId(pageId); + + modNodeList.Insert(postNode); + + } + + + //////////////////////////////////// + // Setting up new node information // + //////////////////////////////////// + p = (char*)((long)_pI + sizeof(int) + 2 * sizeof(int) + i * getEntrySize()); // put index value @@ -593,7 +635,7 @@ } -CegoBTreeValue CegoBTreeNode::getMin() +CegoBTreeValue CegoBTreeNode::getMin() const { if ( numEntries() == 0 ) @@ -617,7 +659,7 @@ } } -CegoBTreeValue CegoBTreeNode::getMax() +CegoBTreeValue CegoBTreeNode::getMax() const { int pos = numEntries() - 1; @@ -639,11 +681,9 @@ throw Exception(EXLOC, "No index values available in node"); } +/* propagate - proofed version */ - -/* propagate - old version */ - -bool CegoBTreeNode::propagate(const CegoBTreeValue& iv, const CegoBTreeNode& leftNode, const CegoBTreeNode& rightNode) +bool CegoBTreeNode::propagate(const CegoBTreeValue& iv, const CegoBTreeNode& leftNode, const CegoBTreeNode& rightNode, ListT<CegoBTreeNode>& modNodeList) { if ( _nt == LEAF ) @@ -658,7 +698,7 @@ // first entry char* p = (char*)((long)_pI + sizeof(int)); - int fileId, pageId; + int fileId, pageId, nextFileId, nextPageId; // put left child pointer fileId = leftNode.getFileId(); @@ -668,19 +708,30 @@ pageId = leftNode.getPageId(); memcpy(p, &pageId, sizeof(int)); p+=sizeof(int); - + // put index value memcpy(p, iv.getPtr(), _keyLen); p+=_keyLen; // put right child pointer - fileId = rightNode.getFileId(); - memcpy(p, &fileId, sizeof(int)); + nextFileId = rightNode.getFileId(); + memcpy(p, &nextFileId, sizeof(int)); p+=sizeof(int); - pageId = rightNode.getPageId(); - memcpy(p, &pageId, sizeof(int)); + nextPageId = rightNode.getPageId(); + memcpy(p, &nextPageId, sizeof(int)); p+=sizeof(int); + + + if ( leftNode.getType() == LEAF ) + { + CegoBTreeNode modNode; + modNode.setFileId(fileId); + modNode.setPageId(pageId); + modNode.setNextFileId(nextFileId); + modNode.setNextPageId(nextPageId); + modNodeList.Insert(modNode); + } incEntries(); return true; @@ -691,15 +742,31 @@ bool posFound=false; char* p = 0; int i=0; - + while ( i < ne && posFound == false) { p = (char*)((long)_pI + sizeof(int) + 2 * sizeof(int) + i * getEntrySize()); CegoBTreeValue nv(p); + + // cout << "Comparing " << iv.toChain(_pSchema) << " and " << nv.toChain(_pSchema) << "i=" << i << "ne=" << ne << endl; + if ( iv.isHigher(nv, _pSchema) ) - { + { i++; } + else if ( iv.isEqual(nv, _pSchema) ) + { + // if equal, we also have to check the maximum value + if ( rightNode.getMax().isHigher(nv, _pSchema) ) + { + i++; + } + else + { + shiftEntries(i, 1); + posFound=true; + } + } else { shiftEntries(i, 1); @@ -707,6 +774,60 @@ } } + ///////////////////////////////////////////////// + // setting up follow up pointer for leaf nodes // + ///////////////////////////////////////////////// + + if ( rightNode.getType() == LEAF ) + { + + p = (char*)((long)_pI + sizeof(int) + 2 * sizeof(int) + i * getEntrySize()); + + int fileId, pageId; + + // Getting previous node + char* pp = p - getEntrySize(); + pp+=_keyLen; + memcpy(&fileId, pp, sizeof(int)); + pp+=sizeof(int); + memcpy(&pageId, pp, sizeof(int)); + + CegoBTreeNode preNode; + preNode.setFileId(fileId); + preNode.setPageId(pageId); + preNode.setNextFileId(rightNode.getFileId()); + preNode.setNextPageId(rightNode.getPageId()); + modNodeList.Insert(preNode); + + CegoBTreeNode postNode; + postNode.setFileId(rightNode.getFileId()); + postNode.setPageId(rightNode.getPageId()); + + // Getting post node + if ( i < ne ) + { + p+=_keyLen; + memcpy(&fileId, p, sizeof(int)); + p+=sizeof(int); + memcpy(&pageId, p, sizeof(int)); + + postNode.setNextFileId(fileId); + postNode.setNextPageId(pageId); + + } + else + { + // cout << " Setting postnode for " << rightNode.getPageId() << " to 0 because i=" << i << " and ne=" << ne << endl; + postNode.setNextFileId(0); + postNode.setNextPageId(0); + } + modNodeList.Insert(postNode); + } + + //////////////////////////////////// + // Setting up new node information // + //////////////////////////////////// + p = (char*)((long)_pI + sizeof(int) + 2 * sizeof(int) + i * getEntrySize()); // put index value @@ -884,7 +1005,7 @@ { cout << levelIndent(level) << "------- LEAF -------" << endl; - cout << levelIndent(level) << "FileId=" << _fileId << " PageId=" << _pageId << endl; + cout << levelIndent(level) << "NumEntries=" << n << " FileId=" << _fileId << " PageId=" << _pageId << endl; int i = 0; while ( i < n ) @@ -907,7 +1028,7 @@ else if ( _nt == NODE ) { cout << levelIndent(level) << "####### NODE ####### " << endl; - cout << levelIndent(level) << "FileId=" << _fileId << " PageId=" << _pageId << endl; + cout << levelIndent(level) << "NumEntries=" << n << " FileId=" << _fileId << " PageId=" << _pageId << endl; int fileId, pageId; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeNode.h ^ |
@@ -41,7 +41,7 @@ ~CegoBTreeNode(); void setType(NodeType nt); - const NodeType getType(); + const NodeType getType() const; void setPtr(void* p, int len); void* getPtr(); @@ -61,26 +61,27 @@ void initNode(); - int maxEntries(); - int numEntries(); + int maxEntries() const; + int numEntries() const; void getChildPage(const CegoBTreeValue& iv, int& fileId, int& pageId); void setSchema(ListT<CegoField>* pSchema, int keyLen); - bool addValue(const CegoBTreeValue& iv, const CegoDataPointer& dp, const Chain& btreeName, bool isUnique, CegoObjectManager *pOM, int tabSetId, int tid); + bool addValue(const CegoBTreeValue& iv, const CegoDataPointer& dp, const Chain& btreeName, bool isUnique, CegoObjectManager *pOM, int tabSetId, int tid, bool& duplicateAdded); bool deleteValue(const CegoBTreeValue& iv, const CegoDataPointer& dp); - bool addNode(const CegoBTreeValue& iv, const CegoBTreeNode& node); + bool valueExists(const CegoBTreeValue& iv); + bool addNode(const CegoBTreeValue& iv, const CegoBTreeNode& node, ListT<CegoBTreeNode>& modNodeList); void split(CegoBTreeNode& n); - CegoBTreeValue getMin(); - CegoBTreeValue getMax(); + CegoBTreeValue getMin() const; + CegoBTreeValue getMax() const; void incEntries(); void decEntries(); - bool propagate(const CegoBTreeValue& iv, const CegoBTreeNode& leftNode, const CegoBTreeNode& rightNode); + bool propagate(const CegoBTreeValue& iv, const CegoBTreeNode& leftNode, const CegoBTreeNode& rightNode, ListT<CegoBTreeNode>& modNodeList); CegoBTreeNode& operator = (const CegoBTreeNode& n); | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeObject.cc ^ |
@@ -40,18 +40,21 @@ { _fileId = oe._fileId; _pageId = oe._pageId; + _relevance = oe._relevance; } CegoBTreeObject::CegoBTreeObject(int tabSetId, CegoObject::ObjectType type, const Chain& objName ) : CegoContentObject(tabSetId, type, objName) { _fileId = 0; _pageId = 0; + _relevance = 0; } CegoBTreeObject::CegoBTreeObject(int tabSetId, CegoObject::ObjectType type, const Chain& objName, const ListT<CegoField>& schema, const Chain& tabName) : CegoContentObject(tabSetId, type, objName, tabName, schema) { _fileId = 0; - _pageId = 0; + _pageId = 0; + _relevance=0; } CegoBTreeObject::~CegoBTreeObject() @@ -83,6 +86,20 @@ return _pageId; } +void CegoBTreeObject::increaseRelevance() +{ + _relevance++; +} + +void CegoBTreeObject::decreaseRelevance() +{ + _relevance--; +} + +int CegoBTreeObject::getRelevance() const +{ + return _relevance; +} int CegoBTreeObject::getEntrySize() const { @@ -91,6 +108,7 @@ entrySize = entrySize + sizeof(int); // fileId entrySize = entrySize + sizeof(int); // pageId + entrySize = entrySize + sizeof(int); // relevance return entrySize; } @@ -109,7 +127,10 @@ memcpy(bufPtr, &_pageId, sizeof(int)); bufPtr = bufPtr + sizeof(int); - + + memcpy(bufPtr, &_relevance, sizeof(int)); + bufPtr = bufPtr + sizeof(int); + } void CegoBTreeObject::decode(char *buf) @@ -126,6 +147,9 @@ memcpy(&_pageId, bufPtr, sizeof(int)); bufPtr = bufPtr + sizeof(int); + + memcpy(&_relevance, bufPtr, sizeof(int)); + bufPtr = bufPtr + sizeof(int); } @@ -141,6 +165,7 @@ _fileId = oe._fileId; _pageId = oe._pageId; + _relevance = oe._relevance; return (*this); } @@ -280,20 +305,14 @@ s += Chain("| ObjectType : "); switch ( getType() ) { - case CegoObject::TABLE: - s += Chain("table "); - break; - case CegoObject::INDEX: - s += Chain("index "); - break; - case CegoObject::UINDEX: - s += Chain("unique index "); + case CegoObject::BTREE: + s += Chain("btree "); break; - case CegoObject::PINDEX: - s += Chain("primary index "); + case CegoObject::UBTREE: + s += Chain("unique btree "); break; - case CegoObject::VIEW: - s += Chain("view "); + case CegoObject::PBTREE: + s += Chain("primary btree "); break; default: break; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBTreeObject.h ^ |
@@ -46,6 +46,11 @@ void setDataPageId(int pageId); int getDataPageId() const; + + void increaseRelevance(); + void decreaseRelevance(); + int getRelevance() const; + void setMaxFid(int maxFid); int getMaxFid() const; @@ -74,8 +79,7 @@ int _fileId; int _pageId; - - int _maxFid; + int _relevance; }; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBufferPage.cc ^ |
@@ -36,6 +36,8 @@ CegoBufferPage::CegoBufferPage() { _isFixed = false; + _pageId = 0; + _fileId = 0; } CegoBufferPage::CegoBufferPage(const CegoBufferPage &bp) @@ -117,7 +119,6 @@ _pageSize = pageSize; } - void CegoBufferPage::setFileId(int fileId) { _fileId = fileId; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoBufferPool.cc ^ |
@@ -456,7 +456,7 @@ void CegoBufferPool::bufferUnfix(CegoBufferPage &bp, bool isDirty, CegoLockHandler *pLockHandle) { - + // cout << "BufferUnfix of page " << bp.getFileId() << "," << bp.getPageId() << endl; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoDatabaseManager.cc ^ |
@@ -499,10 +499,9 @@ void CegoDatabaseManager::useObject(int tabSetId, const Chain& objName, CegoObject::ObjectType type, ObjectUseMode mode, long tid) { - if ( mode == SHARED ) { - // cout << "Using object " << objName << " " << type << " shared" << endl; + PW(); ObjectRecord *pOR = _objList.Find(ObjectRecord(tabSetId, objName, type)); if ( pOR == 0 ) @@ -520,6 +519,7 @@ else { int numTries=0; + while ( pOR && ( pOR->getMode() == EXCLUSIVE || pOR->getMode() == EXCLUSIVE_WRITE ) && numTries < DBM_MAXLOCKTRIES ) { V(); @@ -529,10 +529,8 @@ log(_modId, Logger::NOTICE, Chain("Shared lock delay on ") + objName + Chain(" ( ") + Chain(numTries) + Chain(" tries )")); Sleeper ns; ns.milliSleep(DBM_LOCKDELAY); - - numTries++; - } + PW(); pOR = _objList.Find(ObjectRecord(tabSetId, objName, type)); @@ -543,6 +541,7 @@ Chain msg = Chain("Cannot access object ") + objName; throw Exception(EXLOC, msg); } + numTries++; } if ( numTries == DBM_MAXLOCKTRIES ) @@ -582,9 +581,7 @@ log(_modId, Logger::NOTICE, Chain("Exclusive lock delay on ") + objName + Chain(" ( ") + Chain(numTries) + Chain(" tries )")); Sleeper ns; ns.milliSleep(DBM_LOCKDELAY); - - numTries++; - + } PW(); @@ -597,12 +594,15 @@ throw Exception(EXLOC, msg); } - if ( numTries == DBM_MAXLOCKTRIES ) - { - V(); - Chain msg = Chain("Access timeout on object ") + objName; - throw Exception(EXLOC, msg); - } + numTries++; + + } + + if ( numTries == DBM_MAXLOCKTRIES ) + { + V(); + Chain msg = Chain("Access timeout on object ") + objName; + throw Exception(EXLOC, msg); } pOR->incUsed(); @@ -638,9 +638,7 @@ log(_modId, Logger::NOTICE, Chain("Exclusive write lock delay on ") + objName + Chain(" ( ") + Chain(numTries) + Chain(" tries )")); Sleeper ns; ns.milliSleep(DBM_LOCKDELAY); - - numTries++; - + } PW(); @@ -653,14 +651,17 @@ throw Exception(EXLOC, msg); } - if ( numTries == DBM_MAXLOCKTRIES ) - { - V(); - Chain msg = Chain("Access timeout on object ") + objName; - throw Exception(EXLOC, msg); - } + numTries++; + } + if ( numTries == DBM_MAXLOCKTRIES ) + { + V(); + Chain msg = Chain("Access timeout on object ") + objName; + throw Exception(EXLOC, msg); + } + pOR->setMode(mode); } | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoDefs.h ^ |
@@ -8,7 +8,7 @@ // // Design and Implementation by Bjoern Lemke // -// (C)opyright 2000-2013 Bjoern Lemke +// (C)opyright 2000-2014 Bjoern Lemke // // INTERFACE MODULE // @@ -28,7 +28,7 @@ #define CEGO_PRODUCT PACKAGE_NAME #define CEGO_VERSION PACKAGE_VERSION -#define CEGO_COPYRIGHT "Copyright (C) 2000-2013 by Bjoern Lemke. All rights reserved" +#define CEGO_COPYRIGHT "Copyright (C) 2000-2014 by Bjoern Lemke. All rights reserved" #define CGEXESHELLVARNAME "CGEXESHELL" #define CGSTDEXESHELL "/bin/sh" @@ -134,7 +134,7 @@ Value is valid per file-, bufferpool-, record-, system page- and data page locks */ #define LCKMNG_NUMLOCKS 50 -/* the interval in usec a thread goes asleep waiting to achieve a lock. +/* the interval in msec a thread goes asleep waiting to achieve a lock. Setting this value higher decreases CPU load but delays thread synchronization */ #define LCKMNG_LOCKWAITDELAY 10 @@ -145,7 +145,9 @@ /* FileHandler lock timeout in msec */ #define FH_LOCKTIMEOUT 10000 + /* BufferPool lock timeout in msec */ + /* this was increased becasue for large bufferpool configurations, timeouts may occur during checkpoint writes */ #define BP_LOCKTIMEOUT 300000 @@ -165,8 +167,8 @@ /* Database Manager lock timeout in msec */ #define DBM_LOCKTIMEOUT 10000 #define DBM_MAXLOCKTRIES 30 -/* Database manager lock delay timeout in msec */ -#define DBM_LOCKDELAY 500 +/* Database manager lock delay timeout in msec, must be less 1000 ! */ +#define DBM_LOCKDELAY 800 #define RECLOCKGROUP "RECLOCK" #define RBRECLOCKGROUP "RBRECLOCK" | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoDistCursor.cc ^ |
@@ -1132,7 +1132,7 @@ } else if( _idxMatch == CegoAttrCond::PART ) { - pCursorPlan->setAttribute(XML_JOINSTRAT_ATTR, Chain("index support on ") + _cursorCond.toChain()); + pCursorPlan->setAttribute(XML_JOINSTRAT_ATTR, Chain("index support on ") + _cursorCond.toChain() + Chain(" using index ") + _pTC->getIndexName()); } else { | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoFactor.cc ^ |
@@ -828,6 +828,52 @@ } } +ListT<CegoAggregation*> CegoFactor::getAggregationList() +{ + + ListT<CegoAggregation*> aggList; + + switch ( _type ) + { + case CegoFactor::ATTR: + case CegoFactor::CONSTVAL: + case CegoFactor::VAR: + { + // nothing to add + break; + } + case CegoFactor::EXPR: + { + aggList = _pExpr->getAggregationList(); + break; + } + case CegoFactor::FUNCTION: + { + aggList = _pFunction->getAggregationList(); + break; + } + case CegoFactor::QUERY: + { + throw Exception(EXLOC, "Query not supported in aggregation"); + } + case CegoFactor::CASECOND: + { + throw Exception(EXLOC, "Case condition not supported in aggregation"); + } + case CegoFactor::FETCH: + { + throw Exception(EXLOC, "Fetch not supported in aggregation"); + } + case AGGREGATION: + { + aggList.Insert ( _pAggr ); + break; + } + } + + return aggList; +} + CegoExpr* CegoFactor::getExpr() const { return _pExpr; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoFactor.h ^ |
@@ -104,6 +104,8 @@ void decode(char *buf, CegoDistManager* pGTM); int getEncodingLength() const; + ListT<CegoAggregation*> getAggregationList(); + void getPlanList(ListT<Element*>& planList); friend ostream& operator << (ostream& s, const CegoFactor& pf); | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoFunction.cc ^ |
@@ -353,6 +353,20 @@ } +ListT<CegoAggregation*> CegoFunction::getAggregationList() +{ + ListT<CegoAggregation*> aggList; + + CegoExpr **pExpr = _exprList.First(); + while ( pExpr ) + { + aggList = aggList + (*pExpr)->getAggregationList(); + pExpr = _exprList.Next(); + + } + return aggList; +} + CegoFieldValue CegoFunction::evalFieldValue() const { | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoFunction.h ^ |
@@ -28,9 +28,10 @@ #include "CegoFieldValue.h" #include "CegoProcBlock.h" + class CegoDistManager; class CegoTableManager; - +class CegoAggregation; class CegoExpr; class CegoFunction { @@ -98,6 +99,8 @@ void setCounterId(const Chain& counterId); void setCounterExpr(CegoExpr* pCounterExpr); + + ListT<CegoAggregation*> getAggregationList(); CegoFieldValue evalFieldValue() const; Chain toChain(const Chain& indent = Chain("")) const; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoSelect.cc ^ |
@@ -2093,7 +2093,7 @@ { Chain msg = Chain("Invalid expression ") + (*pExpr)->toChain() + Chain(" for aggregation"); throw Exception(EXLOC, msg); - } + } pExpr = _exprList.Next(); } } | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoTableCursor.cc ^ |
@@ -41,8 +41,6 @@ _tabSetId = tabSetId; _ignoreTouched = ignoreTouched; _idxSetup = false; - _pOE = 0; - _pBTO = 0; _pLogger = _pTM->getDBMng(); _modId = _pTM->getDBMng()->getModId("CegoTableCursor"); @@ -71,6 +69,11 @@ CegoAttrCond::IndexMatch CegoTableCursor::setup( const CegoAttrCond& attrCond ) { + ListT<CegoTableObject> idxList; + ListT<CegoBTreeObject> btreeList; + ListT<CegoKeyObject> keyList; + ListT<CegoCheckObject> checkList; + if ( _idxSetup == false || attrCond.diff(_attrCond) == false ) { #ifdef CGDEBUG @@ -79,33 +82,35 @@ _idxSetup = true; - _pTM->getObjectListByTable(_tabSetId, _tableName, _idxList, _btreeList, _keyList, _checkList, false); + _pTM->getObjectListByTable(_tabSetId, _tableName, idxList, btreeList, keyList, checkList, false); - _pOE = _idxList.First(); + + CegoTableObject *pIOE = idxList.First(); _idxMatch = CegoAttrCond::INAPP; - int strength = 0; - // first check for AVL index objects - while ( _pOE && _idxMatch != CegoAttrCond::FULL ) + int strength = 0; + int relevance = 0; + + while ( pIOE && _idxMatch != CegoAttrCond::FULL ) { - if (_pOE->getType() == CegoObject::PINDEX - || _pOE->getType() == CegoObject::INDEX - || _pOE->getType() == CegoObject::UINDEX ) + if ( pIOE->getType() == CegoObject::PINDEX + || pIOE->getType() == CegoObject::INDEX + || pIOE->getType() == CegoObject::UINDEX ) { #ifdef CGDEBUG - _pLogger->log(_modId, Logger::DEBUG, Chain("Checking index ") + _pOE->getName()); + _pLogger->log(_modId, Logger::DEBUG, Chain("Checking index ") + pIOE->getName()); #endif - CegoAttrCond::IndexMatch indexMatch = attrCond.checkIndex(_pOE->getSchema()); + CegoAttrCond::IndexMatch indexMatch = attrCond.checkIndex(pIOE->getSchema()); if ( indexMatch == CegoAttrCond::FULL || indexMatch == CegoAttrCond::PART ) { - CegoAttrCond checkCond = attrCond.getIndexCond(_pOE->getSchema()); + CegoAttrCond checkCond = attrCond.getIndexCond(pIOE->getSchema()); if ( checkCond.getStrength() > strength ) { @@ -116,15 +121,15 @@ #endif _attrCond = checkCond; - _attrCond.setIdxSchema(_pOE->getSchema()); + _attrCond.setIdxSchema(pIOE->getSchema()); - _idxName = _pOE->getName(); + _idxName = pIOE->getName(); #ifdef CGDEBUG _pLogger->log(_modId, Logger::DEBUG, Chain("Using index ") + _idxName ); #endif - _idxSchema = _pOE->getSchema(); - _type = _pOE->getType(); + _idxSchema = pIOE->getSchema(); + _type = pIOE->getType(); _idxMatch = indexMatch; } else @@ -135,64 +140,84 @@ } } } - _pOE = _idxList.Next(); + pIOE = idxList.Next(); } if ( _idxMatch == CegoAttrCond::INAPP ) { // now check for btree index objects - - _pBTO = _btreeList.First(); - - strength = 0; - - while ( _pBTO && _idxMatch != CegoAttrCond::FULL ) + + CegoBTreeObject *pBTO = btreeList.First(); + + while ( pBTO ) { - if (_pBTO->getType() == CegoObject::PBTREE - || _pBTO->getType() == CegoObject::BTREE - || _pBTO->getType() == CegoObject::UBTREE ) - { - + #ifdef CGDEBUG - _pLogger->log(_modId, Logger::DEBUG, Chain("Checking btree ") + _pBTO->getName()); + _pLogger->log(_modId, Logger::DEBUG, Chain("Checking btree ") + pBTO->getName()); #endif - - CegoAttrCond::IndexMatch indexMatch = attrCond.checkIndex(_pBTO->getSchema()); + + CegoAttrCond::IndexMatch indexMatch = attrCond.checkIndex(pBTO->getSchema()); + + if ( indexMatch == CegoAttrCond::FULL || indexMatch == CegoAttrCond::PART ) + { + + CegoAttrCond checkCond = attrCond.getIndexCond(pBTO->getSchema()); - if ( indexMatch == CegoAttrCond::FULL || indexMatch == CegoAttrCond::PART ) + if ( checkCond.getStrength() > strength ) { - CegoAttrCond checkCond = attrCond.getIndexCond(_pBTO->getSchema()); + strength = checkCond.getStrength(); + relevance = pBTO->getRelevance(); +#ifdef CGDEBUG + _pLogger->log(_modId, Logger::DEBUG, Chain("Strength ") + Chain(strength) + Chain(" tops for ") + checkCond.toChain()); +#endif + + _attrCond = checkCond; + _attrCond.setIdxSchema(pBTO->getSchema()); + + _idxName = pBTO->getName(); +#ifdef CGDEBUG + _pLogger->log(_modId, Logger::DEBUG, Chain("Using btree ") + _idxName ); +#endif + + _idxSchema = pBTO->getSchema(); + _type = pBTO->getType(); + _idxMatch = indexMatch; + } + else if ( checkCond.getStrength() == strength ) + { +#ifdef CGDEBUG + _pLogger->log(_modId, Logger::DEBUG, Chain("Strength ") + Chain(strength) + Chain(" equals, checking for btree relevance ") + checkCond.toChain()); +#endif - if ( checkCond.getStrength() > strength ) + if ( relevance < pBTO->getRelevance() ) { - - strength = checkCond.getStrength(); #ifdef CGDEBUG - _pLogger->log(_modId, Logger::DEBUG, Chain("Strength ") + Chain(strength) + Chain(" tops for ") + checkCond.toChain()); + _pLogger->log(_modId, Logger::DEBUG, Chain("Relevance ") + Chain(pBTO->getRelevance()) + Chain(" tops ") + Chain(relevance)); #endif _attrCond = checkCond; - _attrCond.setIdxSchema(_pBTO->getSchema()); - - _idxName = _pBTO->getName(); + _attrCond.setIdxSchema(pBTO->getSchema()); + + _idxName = pBTO->getName(); #ifdef CGDEBUG _pLogger->log(_modId, Logger::DEBUG, Chain("Using btree ") + _idxName ); #endif - - _idxSchema = _pBTO->getSchema(); - _type = _pBTO->getType(); + + _idxSchema = pBTO->getSchema(); + _type = pBTO->getType(); _idxMatch = indexMatch; + } - else - { + } + else + { #ifdef CGDEBUG - _pLogger->log(_modId, Logger::DEBUG, Chain("Strength ") + Chain(strength) + Chain(" to weak for ") + checkCond.toChain()); + _pLogger->log(_modId, Logger::DEBUG, Chain("Strength ") + Chain(strength) + Chain(" to weak for ") + checkCond.toChain()); #endif - } } } - _pBTO = _btreeList.Next(); + pBTO = btreeList.Next(); } } } | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoTableCursor.h ^ |
@@ -70,13 +70,6 @@ CegoObjectCursor* _pC; CegoAttrCond _attrCond; - CegoTableObject *_pOE; - CegoBTreeObject *_pBTO; - - ListT<CegoTableObject> _idxList; - ListT<CegoBTreeObject> _btreeList; - ListT<CegoKeyObject> _keyList; - ListT<CegoCheckObject> _checkList; ListT<CegoField> _idxSchema; Chain _idxAttrName; | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoTableManager.cc ^ |
@@ -1989,11 +1989,15 @@ CegoBTreeValue iv; iv.valueFromSchema(fvl, pBTO->getSchema()); + CegoBTreeManager btreeMng(this, pBTO); btreeMng.insertBTree(dp, iv, getTID(oe.getTabSetId())); + + // btreeMng.dumpBTree(); + idxInsertCount++; } @@ -3016,16 +3020,19 @@ CegoAttrCond ac; CegoQueryHelper::AttrCondMatch m = _qh.checkAttrCond(ac, pPred, fl, &fl, 1, pBlock); + + CegoTableCursor *pTC = new CegoTableCursor(this, oe.getTabSetId(), oe.getTabName(), true); + + try + { - if ( m == CegoQueryHelper::INAPP ) - { - - CegoTableCursor* pTC = new CegoTableCursor(this, oe.getTabSetId(), oe.getTabName(), true); + CegoAttrCond::IndexMatch idxMatch = pTC->setup(ac); - try - { + if ( idxMatch == CegoAttrCond::INAPP ) + { + ListT<CegoField> fl = (ListT<CegoField>)oe.getSchema(); - + CegoDataPointer dp; bool moreTuple; moreTuple = pTC->getFirst(fl, dp); @@ -3042,7 +3049,7 @@ ListT<CegoField> nfl = oe.getSchema(); CegoDataPointer ndp; moreTuple = pTC->getNext(nfl, ndp); - + deleteDataTable(oe.getTabSetId(), oe.getTabName(), CegoObject::TABLE, dp, fl, idxList, btreeList, keyList); delCount++; @@ -3063,32 +3070,17 @@ { moreTuple = pTC->getNext(fl, dp); } - } - - delete pTC; - } - catch ( Exception e ) - { - delete pTC; - throw e; + } } - } - else - { - - CegoTableCursor *pTC = new CegoTableCursor(this, oe.getTabSetId(), oe.getTabName(), true); - - try - { - - pTC->setup(ac); - + else + { + ListT<CegoField> fl = (ListT<CegoField>)oe.getSchema(); - + bool moreTuple; CegoDataPointer dp; - + moreTuple = pTC->getFirst(fl, dp); while (moreTuple && _isAborted == false) @@ -3099,15 +3091,21 @@ if ( tid == 0 ) { + + /* if we are not inside a transaction, the index or btree object for the delete condition + was modified and we have to reset the cursor */ + pTC->abort(); - + + // cout << "Deleting data table with index cursor ..." << dp << endl; deleteDataTable(oe.getTabSetId(), oe.getTabName(), CegoObject::TABLE, dp, fl, idxList, btreeList, keyList); delCount++; moreTuple = pTC->getFirst(fl, dp); } else - { + { + deleteDataTable(oe.getTabSetId(), oe.getTabName(), CegoObject::TABLE, dp, fl, idxList, btreeList, keyList); delCount++; moreTuple = pTC->getNext(fl, dp); @@ -3119,21 +3117,22 @@ } } - delete pTC; } - catch ( Exception e ) - { - delete pTC; - throw e; - } } - } - - if ( _isAborted ) - { - throw Exception(EXLOC, Chain("Delete aborted by user")); + catch ( Exception e ) + { + delete pTC; + throw e; + } + + delete pTC; + + if ( _isAborted ) + { + throw Exception(EXLOC, Chain("Delete aborted by user")); + } } - + #ifdef CGDEBUG _pDBMng->log(_modId, Logger::DEBUG, Chain("Delete finished, delCount = ") + Chain(delCount)); #endif @@ -3224,7 +3223,10 @@ try { CegoBTreeManager btreeMng(this, pBTO); + + btreeMng.fixRoot(); btreeMng.deleteBTree(btv, dp); + btreeMng.unfixRoot(); } catch ( Exception e ) { @@ -3235,8 +3237,6 @@ pBTO = btreeList.Next(); } - - // delete blob entries CegoField *pF = fvl.First(); while ( pF ) @@ -3812,20 +3812,22 @@ btreeMng.insertBTree(sysEntry, dp, iv, tid); - /* - cout << "Dumping btree ..." << endl; - cout << "+++++++++++++++++++++++++++++++++++++++++++++" << endl; - btreeMng.dumpBTree(); - cout << "+++++++++++++++++++++++++++++++++++++++++++++" << endl; - */ + // cout << "Dumping btree ..." << endl; + // btreeMng.dumpBTree(); + // cout << "+++++++++++++++++++++++++++++++++++++++++++++" << endl; + moreTuple = getNextTuple(pC, schema, dp); } btreeMng.unfixRoot(); + + // cout << "Dumping btree ..." << endl; + // btreeMng.dumpBTree(); + // cout << "+++++++++++++++++++++++++++++++++++++++++++++" << endl; + - if ( _isAborted ) { throw Exception(EXLOC, Chain("Btree creation aborted by user")); | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/CegoTerm.cc ^ |
@@ -248,26 +248,14 @@ ListT<CegoAggregation*> CegoTerm::getAggregationList() { - ListT<CegoAggregation*> aggList; switch ( _termType ) { case MUL: case DIV: - { - aggList = _pTerm->getAggregationList(); - if ( _pFactor->getType() == CegoFactor::AGGREGATION ) - aggList.Insert ( _pFactor->getAggregation() ); - break; - } + return ( _pTerm->getAggregationList() + _pFactor->getAggregationList() ); case FACTOR: - { - if ( _pFactor->getType() == CegoFactor::AGGREGATION ) - aggList.Insert ( _pFactor->getAggregation() ); - break; - } + return ( _pFactor->getAggregationList() ); } - - return aggList; } CegoTerm& CegoTerm::operator = ( const CegoTerm& e) | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/Makefile.am ^ |
@@ -123,11 +123,11 @@ bin_PROGRAMS = cego cgclt cgadm cgblow cglog -cego_LDADD = $(LFC_LIBS) libcego.la -cgclt_LDADD = $(LFC_LIBS) libcego.la -cgadm_LDADD = $(LFC_LIBS) libcego.la -cgblow_LDADD = $(LFC_LIBS) libcego.la -cglog_LDADD = $(LFC_LIBS) libcego.la +cego_LDADD = libcego.la $(LFC_LIBS) +cgclt_LDADD = libcego.la $(LFC_LIBS) +cgadm_LDADD = libcego.la $(LFC_LIBS) +cgblow_LDADD = libcego.la $(LFC_LIBS) +cglog_LDADD = libcego.la $(LFC_LIBS) cego_SOURCES = CegoMain.cc CegoMain.h cgclt_SOURCES = CegoClient.cc CegoClient.h | ||
[-] [+] | Changed | cego-2.20.1.tar.bz2/src/Makefile.in ^ |
@@ -183,19 +183,19 @@ am_cego_OBJECTS = CegoMain.$(OBJEXT) cego_OBJECTS = $(am_cego_OBJECTS) am__DEPENDENCIES_1 = -cego_DEPENDENCIES = $(am__DEPENDENCIES_1) libcego.la +cego_DEPENDENCIES = libcego.la $(am__DEPENDENCIES_1) am_cgadm_OBJECTS = CegoAdmin.$(OBJEXT) CegoAdmMon.$(OBJEXT) cgadm_OBJECTS = $(am_cgadm_OBJECTS) -cgadm_DEPENDENCIES = $(am__DEPENDENCIES_1) libcego.la +cgadm_DEPENDENCIES = libcego.la $(am__DEPENDENCIES_1) am_cgblow_OBJECTS = CegoBlowTab.$(OBJEXT) cgblow_OBJECTS = $(am_cgblow_OBJECTS) -cgblow_DEPENDENCIES = $(am__DEPENDENCIES_1) libcego.la +cgblow_DEPENDENCIES = libcego.la $(am__DEPENDENCIES_1) am_cgclt_OBJECTS = CegoClient.$(OBJEXT) cgclt_OBJECTS = $(am_cgclt_OBJECTS) -cgclt_DEPENDENCIES = $(am__DEPENDENCIES_1) libcego.la +cgclt_DEPENDENCIES = libcego.la $(am__DEPENDENCIES_1) am_cglog_OBJECTS = CegoLogReader.$(OBJEXT) cglog_OBJECTS = $(am_cglog_OBJECTS) -cglog_DEPENDENCIES = $(am__DEPENDENCIES_1) libcego.la +cglog_DEPENDENCIES = libcego.la $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -522,11 +522,11 @@ CegoXPorter.cc CegoXPorter.h libcgwrap_la_SOURCES = cgwrap.cc cgwrap.h -cego_LDADD = $(LFC_LIBS) libcego.la -cgclt_LDADD = $(LFC_LIBS) libcego.la -cgadm_LDADD = $(LFC_LIBS) libcego.la -cgblow_LDADD = $(LFC_LIBS) libcego.la -cglog_LDADD = $(LFC_LIBS) libcego.la +cego_LDADD = libcego.la $(LFC_LIBS) +cgclt_LDADD = libcego.la $(LFC_LIBS) +cgadm_LDADD = libcego.la $(LFC_LIBS) +cgblow_LDADD = libcego.la $(LFC_LIBS) +cglog_LDADD = libcego.la $(LFC_LIBS) cego_SOURCES = CegoMain.cc CegoMain.h cgclt_SOURCES = CegoClient.cc CegoClient.h cgadm_SOURCES = CegoAdmin.cc CegoAdmin.h CegoAdmMon.cc CegoAdmMon.h |