mariadb/isam/pack_isam.c
unknown 84626f52fb Import changeset
Docs/Flags/australia.eps:
  First import - 3.23.10
Docs/Flags/australia.gif:
  First import - 3.23.10
Docs/Flags/australia.txt:
  First import - 3.23.10
Docs/Flags/austria.eps:
  First import - 3.23.10
Docs/Flags/austria.gif:
  First import - 3.23.10
Docs/Flags/austria.txt:
  First import - 3.23.10
Docs/Flags/brazil.eps:
  First import - 3.23.10
Docs/Flags/brazil.gif:
  First import - 3.23.10
Docs/Flags/brazil.txt:
  First import - 3.23.10
Docs/Flags/bulgaria.eps:
  First import - 3.23.10
Docs/Flags/bulgaria.gif:
  First import - 3.23.10
Docs/Flags/bulgaria.txt:
  First import - 3.23.10
Docs/Flags/canada.eps:
  First import - 3.23.10
Docs/Flags/canada.gif:
  First import - 3.23.10
Docs/Flags/canada.txt:
  First import - 3.23.10
Docs/Flags/chile.eps:
  First import - 3.23.10
Docs/Flags/chile.gif:
  First import - 3.23.10
Docs/Flags/chile.txt:
  First import - 3.23.10
Docs/Flags/china.eps:
  First import - 3.23.10
Docs/Flags/china.gif:
  First import - 3.23.10
Docs/Flags/china.txt:
  First import - 3.23.10
Docs/Flags/croatia.eps:
  First import - 3.23.10
Docs/Flags/croatia.gif:
  First import - 3.23.10
Docs/Flags/croatia.txt:
  First import - 3.23.10
Docs/Flags/czech-republic.eps:
  First import - 3.23.10
Docs/Flags/czech-republic.gif:
  First import - 3.23.10
Docs/Flags/czech-republic.txt:
  First import - 3.23.10
Docs/Flags/denmark.eps:
  First import - 3.23.10
Docs/Flags/denmark.gif:
  First import - 3.23.10
Docs/Flags/denmark.txt:
  First import - 3.23.10
Docs/Flags/estonia.eps:
  First import - 3.23.10
Docs/Flags/estonia.gif:
  First import - 3.23.10
Docs/Flags/estonia.txt:
  First import - 3.23.10
Docs/Flags/finland.eps:
  First import - 3.23.10
Docs/Flags/finland.gif:
  First import - 3.23.10
Docs/Flags/finland.txt:
  First import - 3.23.10
Docs/Flags/france.eps:
  First import - 3.23.10
Docs/Flags/france.gif:
  First import - 3.23.10
Docs/Flags/france.txt:
  First import - 3.23.10
Docs/Flags/germany.eps:
  First import - 3.23.10
Docs/Flags/germany.gif:
  First import - 3.23.10
Docs/Flags/germany.txt:
  First import - 3.23.10
Docs/Flags/great-britain.eps:
  First import - 3.23.10
Docs/Flags/great-britain.gif:
  First import - 3.23.10
Docs/Flags/great-britain.txt:
  First import - 3.23.10
Docs/Flags/greece.eps:
  First import - 3.23.10
Docs/Flags/greece.gif:
  First import - 3.23.10
Docs/Flags/greece.txt:
  First import - 3.23.10
Docs/Flags/hungary.eps:
  First import - 3.23.10
Docs/Flags/hungary.gif:
  First import - 3.23.10
Docs/Flags/hungary.txt:
  First import - 3.23.10
Docs/Flags/iceland.eps:
  First import - 3.23.10
Docs/Flags/iceland.gif:
  First import - 3.23.10
Docs/Flags/iceland.txt:
  First import - 3.23.10
Docs/Flags/ireland.eps:
  First import - 3.23.10
Docs/Flags/ireland.gif:
  First import - 3.23.10
Docs/Flags/ireland.txt:
  First import - 3.23.10
Docs/Flags/island.eps:
  First import - 3.23.10
Docs/Flags/island.gif:
  First import - 3.23.10
Docs/Flags/island.txt:
  First import - 3.23.10
Docs/Flags/israel.eps:
  First import - 3.23.10
Docs/Flags/israel.gif:
  First import - 3.23.10
Docs/Flags/israel.txt:
  First import - 3.23.10
Docs/Flags/italy.eps:
  First import - 3.23.10
Docs/Flags/italy.gif:
  First import - 3.23.10
Docs/Flags/italy.txt:
  First import - 3.23.10
Docs/Flags/japan.eps:
  First import - 3.23.10
Docs/Flags/japan.gif:
  First import - 3.23.10
Docs/Flags/japan.txt:
  First import - 3.23.10
Docs/Flags/kroatia.eps:
  First import - 3.23.10
Docs/Flags/kroatia.gif:
  First import - 3.23.10
Docs/Flags/kroatia.txt:
  First import - 3.23.10
Docs/Flags/netherlands.eps:
  First import - 3.23.10
Docs/Flags/netherlands.gif:
  First import - 3.23.10
Docs/Flags/netherlands.txt:
  First import - 3.23.10
Docs/Flags/poland.eps:
  First import - 3.23.10
Docs/Flags/poland.gif:
  First import - 3.23.10
Docs/Flags/poland.txt:
  First import - 3.23.10
Docs/Flags/portugal.eps:
  First import - 3.23.10
Docs/Flags/portugal.gif:
  First import - 3.23.10
Docs/Flags/portugal.txt:
  First import - 3.23.10
Docs/Flags/romania.eps:
  First import - 3.23.10
Docs/Flags/romania.gif:
  First import - 3.23.10
Docs/Flags/romania.txt:
  First import - 3.23.10
Docs/Flags/russia.eps:
  First import - 3.23.10
Docs/Flags/russia.gif:
  First import - 3.23.10
Docs/Flags/russia.txt:
  First import - 3.23.10
Docs/Flags/singapore.eps:
  First import - 3.23.10
Docs/Flags/singapore.gif:
  First import - 3.23.10
Docs/Flags/singapore.txt:
  First import - 3.23.10
Docs/Flags/south-africa.eps:
  First import - 3.23.10
Docs/Flags/south-africa.gif:
  First import - 3.23.10
Docs/Flags/south-africa.txt:
  First import - 3.23.10
Docs/Flags/south-africa1.eps:
  First import - 3.23.10
Docs/Flags/south-africa1.gif:
  First import - 3.23.10
Docs/Flags/south-africa1.txt:
  First import - 3.23.10
Docs/Flags/south-korea.eps:
  First import - 3.23.10
Docs/Flags/south-korea.gif:
  First import - 3.23.10
Docs/Flags/south-korea.txt:
  First import - 3.23.10
Docs/Flags/spain.eps:
  First import - 3.23.10
Docs/Flags/spain.gif:
  First import - 3.23.10
Docs/Flags/spain.txt:
  First import - 3.23.10
Docs/Flags/sweden.eps:
  First import - 3.23.10
Docs/Flags/sweden.gif:
  First import - 3.23.10
Docs/Flags/sweden.txt:
  First import - 3.23.10
Docs/Flags/switzerland.eps:
  First import - 3.23.10
Docs/Flags/switzerland.gif:
  First import - 3.23.10
Docs/Flags/switzerland.txt:
  First import - 3.23.10
Docs/Flags/taiwan.eps:
  First import - 3.23.10
Docs/Flags/taiwan.gif:
  First import - 3.23.10
Docs/Flags/taiwan.txt:
  First import - 3.23.10
Docs/Flags/ukraine.eps:
  First import - 3.23.10
Docs/Flags/ukraine.gif:
  First import - 3.23.10
Docs/Flags/ukraine.txt:
  First import - 3.23.10
Docs/Flags/usa.eps:
  First import - 3.23.10
Docs/Flags/usa.gif:
  First import - 3.23.10
Docs/Flags/usa.txt:
  First import - 3.23.10
Docs/Images/mysql-logo.gif:
  First import - 3.23.10
Docs/To-be-included-in-the-manual/MySQL-for-dummies:
  First import - 3.23.10
README:
  First import - 3.23.10
config.guess:
  First import - 3.23.10
dbug/dbug_long.h:
  First import - 3.23.10
dbug/example1.c:
  First import - 3.23.10
dbug/example2.c:
  First import - 3.23.10
dbug/example3.c:
  First import - 3.23.10
dbug/factorial.c:
  First import - 3.23.10
dbug/main.c:
  First import - 3.23.10
dbug/monty.doc:
  First import - 3.23.10
dbug/readme.prof:
  First import - 3.23.10
dbug/sanity.c:
  First import - 3.23.10
dbug/user.r:
  First import - 3.23.10
heap/ChangeLog:
  First import - 3.23.10
install-sh:
  First import - 3.23.10
ltconfig:
  First import - 3.23.10
ltmain.sh:
  First import - 3.23.10
missing:
  First import - 3.23.10
mit-pthreads/COPYRIGHT:
  First import - 3.23.10
mit-pthreads/FAQ:
  First import - 3.23.10
mit-pthreads/NOTES_OSR5_BUILD_SKUNKWARE97:
  First import - 3.23.10
mit-pthreads/NOTES:
  First import - 3.23.10
mit-pthreads/README:
  First import - 3.23.10
mit-pthreads/TODO-mysql:
  First import - 3.23.10
mit-pthreads/Whats_New:
  First import - 3.23.10
mit-pthreads/bin/Makefile.in:
  First import - 3.23.10
mit-pthreads/bin/finger/Makefile.in:
  First import - 3.23.10
mit-pthreads/bin/finger/finger.c:
  First import - 3.23.10
mit-pthreads/bin/finger/net.c:
  First import - 3.23.10
mit-pthreads/config/COPYING.GNU:
  First import - 3.23.10
mit-pthreads/config/COPYRIGHT:
  First import - 3.23.10
mit-pthreads/config/GNUmakefile.in:
  First import - 3.23.10
mit-pthreads/config/Makefile.in:
  First import - 3.23.10
mit-pthreads/config/acconfig.h:
  First import - 3.23.10
mit-pthreads/config/aclocal.m4:
  First import - 3.23.10
mit-pthreads/config/config.flags.in:
  First import - 3.23.10
mit-pthreads/config/config.guess:
  First import - 3.23.10
mit-pthreads/config/config.sub:
  First import - 3.23.10
mit-pthreads/config/configure.org:
  First import - 3.23.10
mit-pthreads/config/install-sh:
  First import - 3.23.10
mit-pthreads/configure:
  First import - 3.23.10
mit-pthreads/gen/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/gen/Makefile.inc:
  First import - 3.23.10
mit-pthreads/gen/ctime.c:
  First import - 3.23.10
mit-pthreads/gen/difftime.c:
  First import - 3.23.10
mit-pthreads/gen/directory.c:
  First import - 3.23.10
mit-pthreads/gen/eprintf.c:
  First import - 3.23.10
mit-pthreads/gen/getcwd.c:
  First import - 3.23.10
mit-pthreads/gen/getpwent.c:
  First import - 3.23.10
mit-pthreads/gen/getpwnamuid.c:
  First import - 3.23.10
mit-pthreads/gen/getwd.c:
  First import - 3.23.10
mit-pthreads/gen/isatty.c:
  First import - 3.23.10
mit-pthreads/gen/popen.c:
  First import - 3.23.10
mit-pthreads/gen/pwd_internal.c:
  First import - 3.23.10
mit-pthreads/gen/pwd_internal.h:
  First import - 3.23.10
mit-pthreads/gen/syslog.c:
  First import - 3.23.10
mit-pthreads/gen/time.c:
  First import - 3.23.10
mit-pthreads/include/Makefile.inc:
  First import - 3.23.10
mit-pthreads/include/arpa/inet.h:
  First import - 3.23.10
mit-pthreads/include/arpa/nameser.h:
  First import - 3.23.10
mit-pthreads/include/dirent.h:
  First import - 3.23.10
mit-pthreads/include/endian.h:
  First import - 3.23.10
mit-pthreads/include/errno.h:
  First import - 3.23.10
mit-pthreads/include/math.h:
  First import - 3.23.10
mit-pthreads/include/netdb.h:
  First import - 3.23.10
mit-pthreads/include/pthread.h:
  First import - 3.23.10
mit-pthreads/include/pthread/cleanup.h:
  First import - 3.23.10
mit-pthreads/include/pthread/debug_out.h:
  First import - 3.23.10
mit-pthreads/include/pthread/fd.h:
  First import - 3.23.10
mit-pthreads/include/pthread/fd_pipe.h:
  First import - 3.23.10
mit-pthreads/include/pthread/kernel.h:
  First import - 3.23.10
mit-pthreads/include/pthread/kthread.h:
  First import - 3.23.10
mit-pthreads/include/pthread/mutex.h:
  First import - 3.23.10
mit-pthreads/include/pthread/prio_queue.h:
  First import - 3.23.10
mit-pthreads/include/pthread/pthread_attr.h:
  First import - 3.23.10
mit-pthreads/include/pthread/pthread_once.h:
  First import - 3.23.10
mit-pthreads/include/pthread/queue.h:
  First import - 3.23.10
mit-pthreads/include/pthread/sleep.h:
  First import - 3.23.10
mit-pthreads/include/pthread/specific.h:
  First import - 3.23.10
mit-pthreads/include/pthread/state.def:
  First import - 3.23.10
mit-pthreads/include/pthread/types.h:
  First import - 3.23.10
mit-pthreads/include/pthread/unistd.h:
  First import - 3.23.10
mit-pthreads/include/pthread/util.h:
  First import - 3.23.10
mit-pthreads/include/pthread/version.h:
  First import - 3.23.10
mit-pthreads/include/pthread/xtypes.h:
  First import - 3.23.10
mit-pthreads/include/pwd.h:
  First import - 3.23.10
mit-pthreads/include/resolv.h:
  First import - 3.23.10
mit-pthreads/include/sched.h:
  First import - 3.23.10
mit-pthreads/include/signal.h:
  First import - 3.23.10
mit-pthreads/include/stdio.h:
  First import - 3.23.10
mit-pthreads/include/stdlib.h:
  First import - 3.23.10
mit-pthreads/include/string.h:
  First import - 3.23.10
mit-pthreads/include/syslog.h:
  First import - 3.23.10
mit-pthreads/include/time.h:
  First import - 3.23.10
mit-pthreads/include/timers.h:
  First import - 3.23.10
mit-pthreads/include/tzfile.h:
  First import - 3.23.10
mit-pthreads/include/unistd.h:
  First import - 3.23.10
mit-pthreads/lib/Makefile.in:
  First import - 3.23.10
mit-pthreads/lib/libpthreadutil/Makefile.in:
  First import - 3.23.10
mit-pthreads/lib/libpthreadutil/pthread_atexit.c:
  First import - 3.23.10
mit-pthreads/lib/libpthreadutil/pthread_tad.c:
  First import - 3.23.10
mit-pthreads/lib/libpthreadutil/pthreadutil.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/signal.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/alpha-osf1/uio.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-1.1/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-1.1/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-1.1/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-1.1/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-1.1/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/time.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/bsdi-2.0/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-alpha-netbsd-1.1.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-alpha-netbsd-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-alpha-netbsd-1.3.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-alpha-netbsd-1.3.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-alpha-osf1.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-alpha-osf1.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-arm32-netbsd-1.3.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-arm32-netbsd-1.3.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-hppa-hpux-10.20.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-hppa-hpux-10.20.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-hppa-hpux-9.03.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-hppa-hpux-9.03.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-bsdi-1.1.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-bsdi-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-bsdi-2.0.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-bsdi-2.0.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-freebsd-1.1.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-freebsd-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-freebsd-2.0.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-freebsd-2.0.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-linux-1.0.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-linux-1.0.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-netbsd-0.9.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-netbsd-0.9.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-netbsd-1.0.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-netbsd-1.0.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-netbsd-1.3.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-netbsd-1.3.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-openbsd-2.0.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-openbsd-2.0.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-sco-3.2v5.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-i386-sco-3.2v5.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-ip22-irix-5.2.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-ip22-irix-5.2.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-m68000-netbsd.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-m68000-netbsd.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-r2000-ultrix-4.2.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-r2000-ultrix-4.2.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-romp-bsd.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-romp-bsd.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-sparc-netbsd-1.3.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-sparc-netbsd-1.3.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-sparc-sunos-4.1.3.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-sparc-sunos-4.1.3.h:
  First import - 3.23.10
mit-pthreads/machdep/engine-sparc-sunos-5.3.c:
  First import - 3.23.10
mit-pthreads/machdep/engine-sparc-sunos-5.3.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-1.1/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-1.1/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-1.1/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-1.1/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/freebsd-2.0/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/stdtypes.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/time.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/uio.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-10.20/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/stdtypes.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/time.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/uio.h:
  First import - 3.23.10
mit-pthreads/machdep/hpux-9.03/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/syscall.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/i386-sco-3.2v5/trash.can:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/irix-5.2/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/uio.h:
  First import - 3.23.10
mit-pthreads/machdep/linux-1.0/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-0.9/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/time.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.0/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/time.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/netbsd-1.1/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/openbsd-2.0/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-alpha-osf1.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-bsdi-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-bsdi-2.0.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-freebsd-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-freebsd-2.0.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-hpux-10.20.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-hpux-9.03.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-i386-sco-3.2v5.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-irix-5.2.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-linux-1.0.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-netbsd-0.9.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-netbsd-1.0.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-netbsd-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-openbsd-2.0.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-romp-bsd.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-sco-3.2v5.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-sunos-4.1.3.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-sunos-5.3.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-sunos-5.5.h:
  First import - 3.23.10
mit-pthreads/machdep/posix-ultrix-4.2.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/posix/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/syscall.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/sco-3.2v5/trash.can:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__path.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/fcntlcom.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/signal.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/stat.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/time.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-4.1.3/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.3/uio.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/socket.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/sunos-5.5/uio.h:
  First import - 3.23.10
mit-pthreads/machdep/syscall-alpha-netbsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-alpha-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-alpha-osf1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-arm32-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-hppa-hpux-10.20.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-hppa-hpux-9.03.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-bsdi-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-bsdi-2.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-freebsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-freebsd-2.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-linux-1.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-netbsd-0.9.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-netbsd-1.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-netbsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-openbsd-2.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-i386-sco-3.2v5.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-ip22-irix-5.2.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-m68000-netbsd.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-r2000-ultrix-4.2.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-romp-bsd.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-sparc-netbsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-sparc-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-sparc-sunos-4.1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-sparc-sunos-5.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-sparc-sunos4.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-alpha-netbsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-alpha-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-alpha-osf1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-arm32-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-hppa-hpux-10.20.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-hppa-hpux-9.03.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-bsdi-2.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-freebsd-2.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-netbsd1.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-openbsd-2.0.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-i386-sco-3.2v5.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-ip22-irix-5.2.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-m68000-netbsd.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-r2000-ultrix-4.2.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-sparc-netbsd-1.1.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-sparc-netbsd-1.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-sparc-sunos-5.3.S:
  First import - 3.23.10
mit-pthreads/machdep/syscall-template-sparc-sunos4.S:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__math.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__signal.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__stdio.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__stdlib.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__string.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__time.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/__unistd.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/cdefs.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/compat.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/dirent.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/errno.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/time.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/timers.h:
  First import - 3.23.10
mit-pthreads/machdep/ultrix-4.2/wait.h:
  First import - 3.23.10
mit-pthreads/machdep/unistd-i386-freebsd-1.1.h:
  First import - 3.23.10
mit-pthreads/machdep/unistd-i386-linux-1.0.h:
  First import - 3.23.10
mit-pthreads/machdep/unistd-sparc-sunos-4.1.3.h:
  First import - 3.23.10
mit-pthreads/net/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/net/gethostbyaddr.c:
  First import - 3.23.10
mit-pthreads/net/gethostbyname.c:
  First import - 3.23.10
mit-pthreads/net/gethostent.c:
  First import - 3.23.10
mit-pthreads/net/getnetbyaddr.c:
  First import - 3.23.10
mit-pthreads/net/getnetbyname.c:
  First import - 3.23.10
mit-pthreads/net/getnetent.c:
  First import - 3.23.10
mit-pthreads/net/getproto.c:
  First import - 3.23.10
mit-pthreads/net/getprotoent.c:
  First import - 3.23.10
mit-pthreads/net/getprotoname.c:
  First import - 3.23.10
mit-pthreads/net/getservbyname.c:
  First import - 3.23.10
mit-pthreads/net/getservbyport.c:
  First import - 3.23.10
mit-pthreads/net/getservent.c:
  First import - 3.23.10
mit-pthreads/net/herror.c:
  First import - 3.23.10
mit-pthreads/net/inet_addr.c:
  First import - 3.23.10
mit-pthreads/net/inet_lnaof.c:
  First import - 3.23.10
mit-pthreads/net/inet_makeaddr.c:
  First import - 3.23.10
mit-pthreads/net/inet_netof.c:
  First import - 3.23.10
mit-pthreads/net/inet_network.c:
  First import - 3.23.10
mit-pthreads/net/inet_ntoa.c:
  First import - 3.23.10
mit-pthreads/net/net_internal.c:
  First import - 3.23.10
mit-pthreads/net/net_internal.h:
  First import - 3.23.10
mit-pthreads/net/proto_internal.c:
  First import - 3.23.10
mit-pthreads/net/proto_internal.h:
  First import - 3.23.10
mit-pthreads/net/res_comp.c:
  First import - 3.23.10
mit-pthreads/net/res_debug.c:
  First import - 3.23.10
mit-pthreads/net/res_init.c:
  First import - 3.23.10
mit-pthreads/net/res_internal.c:
  First import - 3.23.10
mit-pthreads/net/res_internal.h:
  First import - 3.23.10
mit-pthreads/net/res_mkquery.c:
  First import - 3.23.10
mit-pthreads/net/res_query.c:
  First import - 3.23.10
mit-pthreads/net/res_querydomain.c:
  First import - 3.23.10
mit-pthreads/net/res_search.c:
  First import - 3.23.10
mit-pthreads/net/res_send.c:
  First import - 3.23.10
mit-pthreads/net/serv_internal.c:
  First import - 3.23.10
mit-pthreads/net/serv_internal.h:
  First import - 3.23.10
mit-pthreads/patches/Streepy.html:
  First import - 3.23.10
mit-pthreads/patches/Streepy2.html:
  First import - 3.23.10
mit-pthreads/patches/bill_lear:
  First import - 3.23.10
mit-pthreads/patches/chris_demetriou:
  First import - 3.23.10
mit-pthreads/patches/mevans:
  First import - 3.23.10
mit-pthreads/patches/p153:
  First import - 3.23.10
mit-pthreads/patches/p155:
  First import - 3.23.10
mit-pthreads/pg++:
  First import - 3.23.10
mit-pthreads/pgcc:
  First import - 3.23.10
mit-pthreads/pthreads/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/pthreads/Makefile.inc:
  First import - 3.23.10
mit-pthreads/pthreads/_exit.c:
  First import - 3.23.10
mit-pthreads/pthreads/cleanup.c:
  First import - 3.23.10
mit-pthreads/pthreads/cond.c:
  First import - 3.23.10
mit-pthreads/pthreads/condattr.c:
  First import - 3.23.10
mit-pthreads/pthreads/dump_state.c:
  First import - 3.23.10
mit-pthreads/pthreads/errno.c:
  First import - 3.23.10
mit-pthreads/pthreads/fd_pipe.c:
  First import - 3.23.10
mit-pthreads/pthreads/file.c:
  First import - 3.23.10
mit-pthreads/pthreads/globals.c:
  First import - 3.23.10
mit-pthreads/pthreads/info.c:
  First import - 3.23.10
mit-pthreads/pthreads/init.cc:
  First import - 3.23.10
mit-pthreads/pthreads/malloc.c:
  First import - 3.23.10
mit-pthreads/pthreads/mutex.c:
  First import - 3.23.10
mit-pthreads/pthreads/mutexattr.c:
  First import - 3.23.10
mit-pthreads/pthreads/panic.c:
  First import - 3.23.10
mit-pthreads/pthreads/prio_queue.c:
  First import - 3.23.10
mit-pthreads/pthreads/process.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_attr.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_cancel.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_detach.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_init.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_join.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_kill.c:
  First import - 3.23.10
mit-pthreads/pthreads/pthread_once.c:
  First import - 3.23.10
mit-pthreads/pthreads/queue.c:
  First import - 3.23.10
mit-pthreads/pthreads/readv.c:
  First import - 3.23.10
mit-pthreads/pthreads/schedparam.c:
  First import - 3.23.10
mit-pthreads/pthreads/select.c:
  First import - 3.23.10
mit-pthreads/pthreads/sig.c:
  First import - 3.23.10
mit-pthreads/pthreads/sleep.c:
  First import - 3.23.10
mit-pthreads/pthreads/specific.c:
  First import - 3.23.10
mit-pthreads/pthreads/stat.c:
  First import - 3.23.10
mit-pthreads/pthreads/wait.c:
  First import - 3.23.10
mit-pthreads/pthreads/writev.c:
  First import - 3.23.10
mit-pthreads/scripts/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/scripts/Makefile.inc:
  First import - 3.23.10
mit-pthreads/scripts/pgcc.sh:
  First import - 3.23.10
mit-pthreads/stdio/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/stdio/Makefile.inc:
  First import - 3.23.10
mit-pthreads/stdio/README:
  First import - 3.23.10
mit-pthreads/stdio/clrerr.c:
  First import - 3.23.10
mit-pthreads/stdio/fclose.c:
  First import - 3.23.10
mit-pthreads/stdio/fdopen.c:
  First import - 3.23.10
mit-pthreads/stdio/feof.c:
  First import - 3.23.10
mit-pthreads/stdio/ferror.c:
  First import - 3.23.10
mit-pthreads/stdio/fflush.c:
  First import - 3.23.10
mit-pthreads/stdio/fgetc.c:
  First import - 3.23.10
mit-pthreads/stdio/fgetline.c:
  First import - 3.23.10
mit-pthreads/stdio/fgetpos.c:
  First import - 3.23.10
mit-pthreads/stdio/fgets.c:
  First import - 3.23.10
mit-pthreads/stdio/fileno.c:
  First import - 3.23.10
mit-pthreads/stdio/findfp.c:
  First import - 3.23.10
mit-pthreads/stdio/flags.c:
  First import - 3.23.10
mit-pthreads/stdio/floatio.h:
  First import - 3.23.10
mit-pthreads/stdio/fopen.c:
  First import - 3.23.10
mit-pthreads/stdio/fprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/fpurge.c:
  First import - 3.23.10
mit-pthreads/stdio/fputc.c:
  First import - 3.23.10
mit-pthreads/stdio/fputs.c:
  First import - 3.23.10
mit-pthreads/stdio/fread.c:
  First import - 3.23.10
mit-pthreads/stdio/freopen.c:
  First import - 3.23.10
mit-pthreads/stdio/fscanf.c:
  First import - 3.23.10
mit-pthreads/stdio/fseek.c:
  First import - 3.23.10
mit-pthreads/stdio/fsetpos.c:
  First import - 3.23.10
mit-pthreads/stdio/ftell.c:
  First import - 3.23.10
mit-pthreads/stdio/funopen.c:
  First import - 3.23.10
mit-pthreads/stdio/fvwrite.c:
  First import - 3.23.10
mit-pthreads/stdio/fvwrite.h:
  First import - 3.23.10
mit-pthreads/stdio/fwalk.c:
  First import - 3.23.10
mit-pthreads/stdio/fwrite.c:
  First import - 3.23.10
mit-pthreads/stdio/getc.c:
  First import - 3.23.10
mit-pthreads/stdio/getc_unlocked.c:
  First import - 3.23.10
mit-pthreads/stdio/getchar.c:
  First import - 3.23.10
mit-pthreads/stdio/getchar_unlocked.c:
  First import - 3.23.10
mit-pthreads/stdio/gets.c:
  First import - 3.23.10
mit-pthreads/stdio/getw.c:
  First import - 3.23.10
mit-pthreads/stdio/glue.h:
  First import - 3.23.10
mit-pthreads/stdio/local.h:
  First import - 3.23.10
mit-pthreads/stdio/makebuf.c:
  First import - 3.23.10
mit-pthreads/stdio/mktemp.c:
  First import - 3.23.10
mit-pthreads/stdio/perror.c:
  First import - 3.23.10
mit-pthreads/stdio/printf.c:
  First import - 3.23.10
mit-pthreads/stdio/putc.c:
  First import - 3.23.10
mit-pthreads/stdio/putc_unlocked.c:
  First import - 3.23.10
mit-pthreads/stdio/putchar.c:
  First import - 3.23.10
mit-pthreads/stdio/putchar_unlocked.c:
  First import - 3.23.10
mit-pthreads/stdio/puts.c:
  First import - 3.23.10
mit-pthreads/stdio/putw.c:
  First import - 3.23.10
mit-pthreads/stdio/refill.c:
  First import - 3.23.10
mit-pthreads/stdio/remove.c:
  First import - 3.23.10
mit-pthreads/stdio/rewind.c:
  First import - 3.23.10
mit-pthreads/stdio/rget.c:
  First import - 3.23.10
mit-pthreads/stdio/scanf.c:
  First import - 3.23.10
mit-pthreads/stdio/setbuf.c:
  First import - 3.23.10
mit-pthreads/stdio/setbuffer.c:
  First import - 3.23.10
mit-pthreads/stdio/setvbuf.c:
  First import - 3.23.10
mit-pthreads/stdio/snprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/sprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/sscanf.c:
  First import - 3.23.10
mit-pthreads/stdio/stdio.c:
  First import - 3.23.10
mit-pthreads/stdio/strerror.c:
  First import - 3.23.10
mit-pthreads/stdio/tempnam.c:
  First import - 3.23.10
mit-pthreads/stdio/tmpfile.c:
  First import - 3.23.10
mit-pthreads/stdio/tmpnam.c:
  First import - 3.23.10
mit-pthreads/stdio/ungetc.c:
  First import - 3.23.10
mit-pthreads/stdio/vfprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/vfscanf.c:
  First import - 3.23.10
mit-pthreads/stdio/vprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/vscanf.c:
  First import - 3.23.10
mit-pthreads/stdio/vsnprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/vsprintf.c:
  First import - 3.23.10
mit-pthreads/stdio/vsscanf.c:
  First import - 3.23.10
mit-pthreads/stdio/wbuf.c:
  First import - 3.23.10
mit-pthreads/stdio/wsetup.c:
  First import - 3.23.10
mit-pthreads/stdio/xprintf.c:
  First import - 3.23.10
mit-pthreads/stdlib/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/stdlib/Makefile.inc:
  First import - 3.23.10
mit-pthreads/stdlib/abort.c:
  First import - 3.23.10
mit-pthreads/stdlib/atexit.h:
  First import - 3.23.10
mit-pthreads/stdlib/exit.c:
  First import - 3.23.10
mit-pthreads/stdlib/rand.c:
  First import - 3.23.10
mit-pthreads/stdlib/random.c:
  First import - 3.23.10
mit-pthreads/stdlib/strtod.c:
  First import - 3.23.10
mit-pthreads/stdlib/strtol.c:
  First import - 3.23.10
mit-pthreads/stdlib/strtoul.c:
  First import - 3.23.10
mit-pthreads/stdlib/system.c:
  First import - 3.23.10
mit-pthreads/string/GNUmakefile.inc:
  First import - 3.23.10
mit-pthreads/string/Makefile.inc:
  First import - 3.23.10
mit-pthreads/string/strtok.c:
  First import - 3.23.10
mit-pthreads/tests/Makefile.in:
  First import - 3.23.10
mit-pthreads/tests/README:
  First import - 3.23.10
mit-pthreads/tests/bench_fcntl.c:
  First import - 3.23.10
mit-pthreads/tests/bench_pipe.c:
  First import - 3.23.10
mit-pthreads/tests/bench_read.c:
  First import - 3.23.10
mit-pthreads/tests/p_bench_getpid.c:
  First import - 3.23.10
mit-pthreads/tests/p_bench_mutex.c:
  First import - 3.23.10
mit-pthreads/tests/p_bench_pthread_create.c:
  First import - 3.23.10
mit-pthreads/tests/p_bench_read.c:
  First import - 3.23.10
mit-pthreads/tests/p_bench_semaphore.c:
  First import - 3.23.10
mit-pthreads/tests/p_bench_yield.c:
  First import - 3.23.10
mit-pthreads/tests/test_create.c:
  First import - 3.23.10
mit-pthreads/tests/test_cwd.c:
  First import - 3.23.10
mit-pthreads/tests/test_execve.c:
  First import - 3.23.10
mit-pthreads/tests/test_fcntl.c:
  First import - 3.23.10
mit-pthreads/tests/test_fork.c:
  First import - 3.23.10
mit-pthreads/tests/test_netdb.c:
  First import - 3.23.10
mit-pthreads/tests/test_pause.c:
  First import - 3.23.10
mit-pthreads/tests/test_preemption.c:
  First import - 3.23.10
mit-pthreads/tests/test_preemption_float.c:
  First import - 3.23.10
mit-pthreads/tests/test_pthread_cond_timedwait.c:
  First import - 3.23.10
mit-pthreads/tests/test_pthread_join.c:
  First import - 3.23.10
mit-pthreads/tests/test_pthread_mutex.c:
  First import - 3.23.10
mit-pthreads/tests/test_pw.c:
  First import - 3.23.10
mit-pthreads/tests/test_readdir.c:
  First import - 3.23.10
mit-pthreads/tests/test_select.c:
  First import - 3.23.10
mit-pthreads/tests/test_setjmp.c:
  First import - 3.23.10
mit-pthreads/tests/test_sleep.c:
  First import - 3.23.10
mit-pthreads/tests/test_sock_1.c:
  First import - 3.23.10
mit-pthreads/tests/test_sock_2.c:
  First import - 3.23.10
mit-pthreads/tests/test_sock_2a.c:
  First import - 3.23.10
mit-pthreads/tests/test_stdio_1.c:
  First import - 3.23.10
mit-pthreads/tests/test_switch.c:
  First import - 3.23.10
mysys/COPYING.LIB:
  First import - 3.23.10
mysys/getopt.c:
  First import - 3.23.10
readline/COPYING:
  First import - 3.23.10
readline/INSTALL:
  First import - 3.23.10
readline/Makefile.am:
  First import - 3.23.10
readline/README:
  First import - 3.23.10
readline/ansi_stdlib.h:
  First import - 3.23.10
readline/bind.c:
  First import - 3.23.10
readline/callback.c:
  First import - 3.23.10
readline/chardefs.h:
  First import - 3.23.10
readline/configure.in:
  First import - 3.23.10
readline/configure:
  First import - 3.23.10
readline/display.c:
  First import - 3.23.10
readline/emacs_keymap.c:
  First import - 3.23.10
readline/funmap.c:
  First import - 3.23.10
readline/histexpand.c:
  First import - 3.23.10
readline/histfile.c:
  First import - 3.23.10
readline/histlib.h:
  First import - 3.23.10
readline/history.c:
  First import - 3.23.10
readline/history.h:
  First import - 3.23.10
readline/histsearch.c:
  First import - 3.23.10
readline/input.c:
  First import - 3.23.10
readline/isearch.c:
  First import - 3.23.10
readline/keymaps.c:
  First import - 3.23.10
readline/keymaps.h:
  First import - 3.23.10
readline/kill.c:
  First import - 3.23.10
readline/macro.c:
  First import - 3.23.10
readline/nls.c:
  First import - 3.23.10
readline/parens.c:
  First import - 3.23.10
readline/posixdir.h:
  First import - 3.23.10
readline/posixjmp.h:
  First import - 3.23.10
readline/posixstat.h:
  First import - 3.23.10
readline/readline.c:
  First import - 3.23.10
readline/readline.h:
  First import - 3.23.10
readline/rlconf.h:
  First import - 3.23.10
readline/rldefs.h:
  First import - 3.23.10
readline/rltty.c:
  First import - 3.23.10
readline/rltty.h:
  First import - 3.23.10
readline/rlwinsize.h:
  First import - 3.23.10
readline/search.c:
  First import - 3.23.10
readline/shell.c:
  First import - 3.23.10
readline/signals.c:
  First import - 3.23.10
readline/tcap.h:
  First import - 3.23.10
readline/terminal.c:
  First import - 3.23.10
readline/tilde.c:
  First import - 3.23.10
readline/tilde.h:
  First import - 3.23.10
readline/undo.c:
  First import - 3.23.10
readline/util.c:
  First import - 3.23.10
readline/vi_keymap.c:
  First import - 3.23.10
readline/vi_mode.c:
  First import - 3.23.10
readline/xmalloc.c:
  First import - 3.23.10
regex/CHANGES:
  First import - 3.23.10
regex/COPYRIGHT:
  First import - 3.23.10
regex/README:
  First import - 3.23.10
regex/WHATSNEW:
  First import - 3.23.10
regex/cclass.h:
  First import - 3.23.10
regex/cname.h:
  First import - 3.23.10
regex/debug.c:
  First import - 3.23.10
regex/debug.ih:
  First import - 3.23.10
regex/engine.c:
  First import - 3.23.10
regex/engine.ih:
  First import - 3.23.10
regex/main.ih:
  First import - 3.23.10
regex/regcomp.ih:
  First import - 3.23.10
regex/regerror.c:
  First import - 3.23.10
regex/regerror.ih:
  First import - 3.23.10
regex/regex.3:
  First import - 3.23.10
regex/regex.7:
  First import - 3.23.10
regex/regex.h:
  First import - 3.23.10
regex/regfree.c:
  First import - 3.23.10
regex/reginit.c:
  First import - 3.23.10
regex/split.c:
  First import - 3.23.10
regex/tests:
  First import - 3.23.10
scripts/msql2mysql.sh:
  First import - 3.23.10
scripts/mysql_fix_privilege_tables.sh:
  First import - 3.23.10
scripts/mysql_setpermission.sh:
  First import - 3.23.10
scripts/mysqlaccess.conf:
  First import - 3.23.10
scripts/mysqlbug.sh:
  First import - 3.23.10
sql-bench/Data/ATIS/aircraft.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/airline.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/airport.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/airport_service.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/city.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/class_of_service.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/code_description.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/compound_class.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/connect_leg.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/connection.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/date_day.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/day_name.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/dual_carrier.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/fare.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/flight.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/flight_class.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/flight_day.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/flight_fare.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/food_service.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/ground_service.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/month_name.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/restrict_carrier.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/restrict_class.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/restriction.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/state.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/stop.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/stop1.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/time_interval.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/time_zone.txt:
  First import - 3.23.10
sql-bench/Data/ATIS/transport.txt:
  First import - 3.23.10
sql-bench/Data/Wisconsin/onek.data:
  First import - 3.23.10
sql-bench/Data/Wisconsin/tenk.data:
  First import - 3.23.10
sql-bench/README:
  First import - 3.23.10
sql-bench/Results/ATIS-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-AdabasD-Linux_2.0.35_i686-cmp-adabasd,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/ATIS-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/ATIS-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/ATIS-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/ATIS-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/ATIS-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/ATIS-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/ATIS-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/RUN-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/RUN-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/RUN-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/RUN-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/RUN-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/RUN-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/RUN-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/RUN-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/RUN-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/RUN-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/RUN-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/RUN-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/alter-table-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-AdabasD-Linux_2.0.35_i686-cmp-adabasd,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/alter-table-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/alter-table-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/alter-table-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/alter-table-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/alter-table-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/alter-table-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/alter-table-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/big-tables-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/big-tables-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/big-tables-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/big-tables-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/big-tables-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/big-tables-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/big-tables-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/big-tables-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/big-tables-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/connect-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/connect-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/connect-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/connect-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/connect-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/connect-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/connect-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/connect-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/connect-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/connect-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/connect-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/connect-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/connect-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/connect-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/connect-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/connect-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/connect-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/connect-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/connect-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/connect-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/create-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/create-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/create-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/create-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/create-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/create-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/create-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/create-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/create-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/create-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/create-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/create-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/create-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/create-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/create-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/create-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/create-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/create-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/create-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/create-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/insert-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/select-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-HP_UX_B.10.20_9000_778:
  First import - 3.23.10
sql/md5.c:
  First import - 3.23.10
sql/share/norwegian-ny/.cvsignore:
  First import - 3.23.10
sql/share/norwegian/.cvsignore:
  First import - 3.23.10
stamp-h.in:
  First import - 3.23.10
strings/ChangeLog:
  First import - 3.23.10
strings/bfill.c:
  First import - 3.23.10
strings/bmove.c:
  First import - 3.23.10
strings/strend.c:
  First import - 3.23.10
strings/strstr.c:
  First import - 3.23.10
strings/strxnmov.c:
  First import - 3.23.10
tests/auto_increment.res:
  First import - 3.23.10
tests/auto_increment.tst:
  First import - 3.23.10
tests/function.res:
  First import - 3.23.10
tests/function.tst:
  First import - 3.23.10
tests/grant.res:
  First import - 3.23.10
tests/lock_test.res:
  First import - 3.23.10
tests/table_types.pl:
  First import - 3.23.10
tests/udf_test.res:
  First import - 3.23.10
tests/udf_test:
  First import - 3.23.10
sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-access,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase:
  ***MISSING WEAVE***
sql-bench/Results-win32/ATIS-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/ATIS-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/RUN-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/alter-table-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/big-tables-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/connect-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/create-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/insert-sybase_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/select-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-db2_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-informix_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-ms-sql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-mysql-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-oracle_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results-win32/wisconsin-solid_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase:
  First import - 3.23.10
sql-bench/Results/create-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/insert-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/insert-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/insert-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/insert-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/insert-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/insert-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/insert-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/insert-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/insert-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/insert-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/insert-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/insert-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/insert-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/insert-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/insert-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/insert-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/insert-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/insert-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/insert-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/insert-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/select-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/select-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/select-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/select-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/select-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/select-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/select-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/select-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/select-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/select-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/select-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/select-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/select-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/select-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/select-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/select-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/select-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/select-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/select-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/select-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/wisconsin-Adabas-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/wisconsin-msql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-3.21-Linux_2.2.1_i686:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-Linux_2.0.35_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-Linux_2.2.10_i686:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-Linux_2.2.1_i686-cmp-adabas,mysql:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-SunOS_5.5.1_sun4u:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-SunOS_5.6_sun4m:
  ***MISSING WEAVE***
sql-bench/Results/wisconsin-mysql-SunOS_5.7_sun4m:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql-SunOS_5.7_sun4u:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql_3.21-Linux_2.0.35_i686:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-msql,mysql:
  First import - 3.23.10
sql-bench/Results/wisconsin-mysql_odbc-win98:
  First import - 3.23.10
sql-bench/Results/wisconsin-oracle-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/wisconsin-oracle_fast-Linux_2.0.36_i686-cmp-mysql,oracle:
  First import - 3.23.10
sql-bench/Results/wisconsin-pg-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/wisconsin-pg_fast-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/Results/wisconsin-solid-Linux_2.0.36_i686-cmp-mysql,pg,solid:
  First import - 3.23.10
sql-bench/limits/Adabas.cfg:
  First import - 3.23.10
sql-bench/limits/Adabas.comment:
  First import - 3.23.10
sql-bench/limits/Informix.cfg:
  First import - 3.23.10
sql-bench/limits/Informix.comment:
  First import - 3.23.10
sql-bench/limits/access.comment:
  First import - 3.23.10
sql-bench/limits/access_odbc.cfg:
  First import - 3.23.10
sql-bench/limits/db2.cfg:
  First import - 3.23.10
sql-bench/limits/empress.cfg:
  First import - 3.23.10
sql-bench/limits/empress.comment:
  First import - 3.23.10
sql-bench/limits/ms-sql65.cfg:
  First import - 3.23.10
sql-bench/limits/msql.cfg:
  First import - 3.23.10
sql-bench/limits/mysql-3.22.cfg:
  First import - 3.23.10
sql-bench/limits/pg.comment:
  First import - 3.23.10
sql-bench/limits/solid-nt4.cfg:
  First import - 3.23.10
sql-bench/limits/solid.cfg:
  First import - 3.23.10
sql-bench/limits/sybase.cfg:
  First import - 3.23.10
support-files/binary-configure.sh:
  First import - 3.23.10
support-files/mysql-log-rotate.sh:
  First import - 3.23.10
mkinstalldirs:
  Update to 3.23.11
Docs/mysqld_error.txt:
  Update to 3.23.11
man/mysql.1:
  Update to 3.23.11
mysys/ChangeLog:
  Update to 3.23.11
scripts/mysqlaccess.sh:
  Update to 3.23.11
strings/Attic/ptr_cmp.c:
  Update to 3.23.11
dbug/dbug_analyze.c:
  Update for 3.23.12
dbug/doinstall.sh:
  Update for 3.23.12
dbug/install.sh:
  Update for 3.23.12
dbug/mklintlib.sh:
  Update for 3.23.12
dbug/qmake.cmd:
  Update for 3.23.12
dbug/vargs.h:
  Update for 3.23.12
isam/test_all.res:
  Update for 3.23.12
isam/test_all:
  Update for 3.23.12
myisam/NEWS:
  Update for 3.23.12
myisam/common_words:
  ***MISSING WEAVE***
myisam/mi_test_all.res:
  Update for 3.23.12
myisam/test_pack:
  Update for 3.23.12
scripts/safe_mysqld-watch.sh:
  Update for 3.23.12
sql/ha_hash.h:
  Update for 3.23.12
sql/nt_servc.h:
  Update for 3.23.12
strings/READ-ME:
  Update for 3.23.12
strings/bzero.c:
  Update for 3.23.12
strings/latin2.def:
  Update for 3.23.12
strings/memset.c:
  Update for 3.23.12
strings/strcat.c:
  Update for 3.23.12
strings/strchr.c:
  Update for 3.23.12
strings/strcmp.c:
  Update for 3.23.12
strings/string.doc:
  Update for 3.23.12
strings/strings-not-used.h:
  Update for 3.23.12
strings/strlen.c:
  Update for 3.23.12
strings/strrchr.c:
  Update for 3.23.12
strings/t_ctype.h:
  Update for 3.23.12
Build-tools/Do-create-perl-rpms:
  Initial checkin of MySQL build environment.
Build-tools/Do-local-patch-file:
  Initial checkin of MySQL build environment.
Build-tools/newest:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-01.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-02.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-03.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-04.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-05.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-06.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-07.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-08.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-09.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-10.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-11.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-12.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-13.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-14.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-15.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-16.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-17.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql-compatible.jpg:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql_anim-01.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql_anim-02.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql_anim-03.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql_anim-04.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql_anim-05.gif:
  Initial checkin of MySQL build environment.
Docs/MySQL-logos/mysql_anim-06.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/afghanistan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/albania.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/algeria.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/andorra.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/angola.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/antartica.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/antigua-and-barbuda.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/argentina.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/armenia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/australia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/austria.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/azerbaijan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bahamas.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bahrein.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bangladesh.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/barbados.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/belarus.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/belgium.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/belize.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/benin.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bermuda.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bhutan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bolivia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bosnia-and-herzegovina.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/botswana.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/brazil.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/brunei.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/bulgaria.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/burkina-faso.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/burma.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/burundi.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/cambodia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/cameroon.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/canada.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/cape-verde.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/central-african-republic.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/chad.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/chile.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/china.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/colombia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/comoros.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/congo.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/costa-rica.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/cote-d-ivoire.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/croatia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/cuba.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/cyprus.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/czech-republic.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/denmark-original-incorrect.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/denmark.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/djibouti.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/dominica.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/dominican-republic.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/ecuador.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/egypt.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/el-salvador.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/equatorial-guinea.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/eritrea.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/estonia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/ethiopia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/fiji.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/finland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/france.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/gabon.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/gambia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/georgia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/germany.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/ghana.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/great-britain.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/greece.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/greenland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/grenada.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/guatemala.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/guinea-bissau.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/guinea.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/guyana.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/haiti.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/honduras.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/hungary.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/iceland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/india.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/indonesia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/iran.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/iraq.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/ireland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/israel.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/italy.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/jamaica.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/japan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/jordan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/kazakhstan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/kenya.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/kiribati.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/kuwait.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/kyrgyzstan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/laos.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/latvia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/lebanon.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/lesotho.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/liberia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/libya.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/liechtenstein.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/lithuania.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/luxembourg.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/macedonia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/madagascar.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/malawi.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/malaysia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/maldives.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/mali.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/malta.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/marshall.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/mauritania.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/mauritius.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/mexico.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/micronesia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/moldova.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/monaco.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/mongolia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/morocco.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/mozambique.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/namibia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/nauru.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/nepal.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/netherlands.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/new-zealand.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/nicaragua.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/niger.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/nigeria.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/north-korea.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/norway.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/oman.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/pakistan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/panama.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/papua-new-guinea.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/paraguay.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/peru.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/philippines.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/poland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/portugal.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/qatar.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/romania.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/russia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/rwanda.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/saint-kitts-and-nevis.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/saint-lucia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/samoa.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/sao-tome-and-principe.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/saudi-arabia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/senegal.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/seychelles.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/sierra-leone.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/singapore.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/slovakia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/slovenia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/solomon-islands.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/somalia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/south-africa.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/south-korea.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/spain.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/sri-lanka.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/sudan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/suriname.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/swaziland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/sweden.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/sweden2.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/switzerland.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/syria.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/taiwan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/tajikistan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/tanzania.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/thailand.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/togo.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/tonga.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/trinidad-and-tobago.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/tunisia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/turkey.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/turkmenistan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/tuvalu.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/uganda.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/ukraine.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/united-arab-emirates.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/united-states-of-america.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/uruguay.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/usa.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/uzbekistan.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/vanuatu.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/venezuela.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/vietnam.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/vincent-and-grenadines.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/yemen.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/yugoslavia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/zaire.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/zambia.gif:
  Initial checkin of MySQL build environment.
Docs/Raw-Flags/zimbabwe.gif:
  Initial checkin of MySQL build environment.
Docs/Support/generate-flag-images:
  Initial checkin of MySQL build environment.
Docs/Support/generate-mirror-listing.pl:
  Initial checkin of MySQL build environment.
Docs/Support/generate-text-files.pl:
  Initial checkin of MySQL build environment.
Docs/Support/make-makefile:
  Initial checkin of MySQL build environment.
Docs/Support/texinfo.tex:
  Initial checkin of MySQL build environment.
Docs/Translations/myodbc-br.texi:
  Initial checkin of MySQL build environment.
man/.cvsignore:
  Initial checkin of MySQL build environment.
mit-pthreads/include/pthread/config.h:
  Initial checkin of MySQL build environment.
readline/.cvsignore:
  Initial checkin of MySQL build environment.
sql/share/.cvsignore:
  Initial checkin of MySQL build environment.
tests/.cvsignore:
  Initial checkin of MySQL build environment.
libmysql/acconfig.h:
  ***MISSING WEAVE***
libmysql/acinclude.m4:
  Configure stuff for libmysql.
libmysql/configure.in:
  Configure stuff for libmysql.
mit-pthreads/.cvsignore:
  More work on initial build
mit-pthreads/include/pthread/cond.h:
  Update to 3.23.12
mit-pthreads/machdep/engine-i386-linux-2.0.c:
  Update to 3.23.12
mit-pthreads/machdep/engine-i386-linux-2.0.h:
  Update to 3.23.12
mit-pthreads/machdep/posix-linux-2.0.h:
  Update to 3.23.12
mit-pthreads/machdep/unistd-i386-linux-2.0.h:
  Update to 3.23.12
sql/add_errmsg:
  Update to 3.23.12
sql/watchdog_mysqld:
  Update to 3.23.12
strings/Attic/memory.h:
  Update to 3.23.12
dbug/.cvsignore:
  Update to 3.23.12
heap/.cvsignore:
  Update to 3.23.12
merge/.cvsignore:
  Update to 3.23.12
mit-pthreads/bin/.cvsignore:
  Update to 3.23.12
mit-pthreads/bin/finger/.cvsignore:
  Update to 3.23.12
mit-pthreads/lib/.cvsignore:
  Update to 3.23.12
mit-pthreads/lib/libpthreadutil/.cvsignore:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__math.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__path.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__signal.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__stdio.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__stdlib.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__string.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/__time.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/cdefs.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/compat.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/dirent.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/errno.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/socket.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/socketcall.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/timers.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/uio.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/wait.h:
  Update to 3.23.12
mit-pthreads/tests/.cvsignore:
  Update to 3.23.12
myisammrg/.cvsignore:
  Update to 3.23.12
regex/.cvsignore:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/extra/bits/local_lim.h:
  Update to 3.23.12
mit-pthreads/machdep/linux-2.0/extra/bits/socket.h:
  Update to 3.23.12
vio/.cvsignore:
  Update for 3.23.12
vio/Vio.cc:
  Update for 3.23.12
vio/VioAcceptorFd.cc:
  Update for 3.23.12
vio/VioAcceptorFd.h:
  Update for 3.23.12
vio/VioConnectorFd.cc:
  Update for 3.23.12
vio/VioConnectorFd.h:
  Update for 3.23.12
vio/VioFd.cc:
  Update for 3.23.12
vio/VioFd.h:
  Update for 3.23.12
vio/VioPipe.cc:
  Update for 3.23.12
vio/VioSSL.cc:
  Update for 3.23.12
vio/VioSSL.h:
  Update for 3.23.12
vio/VioSSLAcceptorFd.cc:
  Update for 3.23.12
vio/VioSSLFactoriesFd.cc:
  Update for 3.23.12
vio/VioSSLFactoriesFd.h:
  Update for 3.23.12
vio/VioSocket.cc:
  Update for 3.23.12
vio/VioSocket.h:
  Update for 3.23.12
vio/version.cc:
  Update for 3.23.12
vio/vio-global.h:
  Update for 3.23.12
vio/vioelitexx.cc:
  Update for 3.23.12
vio/viotest-ssl.cc:
  Update for 3.23.12
vio/viotest-sslconnect.cc:
  Update for 3.23.12
vio/viotest.cc:
  Update for 3.23.12
vio/viotypes.h:
  Update for 3.23.12
strings/strxmov.c:
  Update to 3.23.12a
sql/md5.h:
  Lots of patches for Alpha-Linux
Docs/Images/empty.png:
  *** empty log message ***
Docs/Images/flag-background.pnm:
  *** empty log message ***
NEW-RPMS/.cvsignore:
  Changes for new build environment
sql-bench/example.bat:
  Update for 3.23.12a
sql-bench/pwd.bat:
  Update for 3.23.12a
sql-bench/uname.bat:
  Update for 3.23.12a
sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/RUN-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/connect-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/create-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/insert-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/select-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/ATIS-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/ATIS-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/RUN-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/big-tables-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/connect-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/create-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/insert-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/select-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_dynamic:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_pgcc:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_static:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql_fast-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql_local_tcp-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/Attic/wisconsin-mysql_new-Linux_2.0.33_i586:
  ***MISSING WEAVE***
sql-bench/Results-linux/alter-table-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/.cvsignore:
  Update of benchmarks
sql-bench/Results-win32/ATIS-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/ATIS-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/RUN-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/RUN-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/alter-table-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/alter-table-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/big-tables-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/big-tables-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/connect-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/connect-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/create-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/create-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/insert-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/insert-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/select-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/select-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/wisconsin-access_odbc-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-win32/wisconsin-mysql-win98-cmp-access,mysql:
  Update of benchmarks
sql-bench/Results-linux/RUN-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-mysql-Linux_2.2.12_20smp_i686:
  ***MISSING WEAVE***
Docs/Images/Attic/mysql5.gif:
  Second copy
Docs/Images/Attic/html-fs.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-01.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-02.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-03.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-04.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-05.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-06.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-07.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-08.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-09.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-10.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-11.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-12.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-13.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-14.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-15.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-16.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-17.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-18.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-19.gif:
  Moved to web...icons
Docs/Images/Attic/mysql-compatible.jpg:
  Moved to web...icons
Docs/Images/Attic/mysql_anim-01.gif:
  Moved to web...icons
Docs/Images/Attic/mysql_anim-02.gif:
  Moved to web...icons
Docs/Images/Attic/mysql_anim-03.gif:
  Moved to web...icons
Docs/Images/Attic/mysql_anim-04.gif:
  Moved to web...icons
Docs/Images/Attic/mysql_anim-05.gif:
  Moved to web...icons
Docs/Images/Attic/mysql_anim-06.gif:
  Moved to web...icons
Docs/Images/Attic/powered-by-MySQL-transparent.gif:
  Moved to web...icons
scripts/mysql_zap.sh:
  Fixes from the Debian maintainer
Build-tools/Do-patch-file:
  Update at work
myisam/TODO:
  Fixes for raid + other things
regex/utils.h:
  Renamed some portability defines
heap/make-ccc:
  First version
isam/make-ccc:
  First version
merge/make-ccc:
  First version
myisam/make-ccc:
  First version
myisammrg/make-ccc:
  First version
mysys/make-ccc:
  First version
regex/make-ccc:
  First version
strings/make-ccc:
  First version
sql/share/romanian/errmsg.sys:
  ***MISSING WEAVE***
Docs/manual-license-spanish.texi:
  Update to 3.23.13
BUILD/test-alpha-ccc:
  Bug patches from mailing list
sql-bench/Results-win32/ATIS-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/RUN-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/alter-table-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/big-tables-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/connect-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/create-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/insert-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/select-mysql-win98:
  Bug patches from mailing list
sql-bench/Results-win32/wisconsin-mysql-win98:
  Bug patches from mailing list
mit-pthreads/Changes-mysql:
  Updated for Linux
mit-pthreads/config/config.h.in:
  Updated for Linux
mit-pthreads/config/configure.in:
  Updated for Linux
mit-pthreads/config/configure:
  Updated for Linux
mit-pthreads/gen/ttyname.c:
  Updated for Linux
mit-pthreads/machdep/syscall-i386-linux-2.0.S:
  Updated for Linux
mit-pthreads/machdep/linux-2.0/__unistd.h:
  Updated for Linux
mit-pthreads/net/Makefile.inc:
  Updated for Linux
mit-pthreads/pthreads/fd.c:
  Updated for Linux
mit-pthreads/pthreads/fd_kern.c:
  Updated for Linux
mit-pthreads/pthreads/fd_sysv.c:
  Updated for Linux
mit-pthreads/pthreads/signal.c:
  Updated for Linux
mit-pthreads/pthreads/wrapper.c:
  Updated for Linux
mit-pthreads/stdlib/getopt.c:
  Updated for Linux
sql/share/charsets/cp1251.conf:
  Updates for 3.23.14
sql/share/charsets/croat.conf:
  Updates for 3.23.14
sql/share/charsets/danish.conf:
  Updates for 3.23.14
sql/share/charsets/dec8.conf:
  Updates for 3.23.14
sql/share/charsets/dos.conf:
  Updates for 3.23.14
sql/share/charsets/german1.conf:
  Updates for 3.23.14
sql/share/charsets/greek.conf:
  Updates for 3.23.14
sql/share/charsets/hebrew.conf:
  Updates for 3.23.14
sql/share/charsets/hp8.conf:
  Updates for 3.23.14
sql/share/charsets/hungarian.conf:
  Updates for 3.23.14
sql/share/charsets/koi8_ru.conf:
  Updates for 3.23.14
sql/share/charsets/koi8_ukr.conf:
  Updates for 3.23.14
sql/share/charsets/latin1.conf:
  Updates for 3.23.14
sql/share/charsets/latin2.conf:
  Updates for 3.23.14
sql/share/charsets/swe7.conf:
  Updates for 3.23.14
sql/share/charsets/usa7.conf:
  Updates for 3.23.14
sql/share/charsets/win1251.conf:
  Updates for 3.23.14
sql/share/charsets/win1251ukr.conf:
  Updates for 3.23.14
sql/Attic/mybinlogdump.cc:
  Fix for binary log
include/Attic/m_ctype.h.in:
  Update for dynamic character sets
strings/Attic/ct_init.c:
  Update for dynamic character sets
strings/Attic/ctype-cp1251.c:
  Update for dynamic character sets
strings/Attic/ctype-cp1257.c:
  Update for dynamic character sets
strings/Attic/ctype-croat.c:
  Update for dynamic character sets
strings/Attic/ctype-danish.c:
  Update for dynamic character sets
strings/Attic/ctype-dec8.c:
  Update for dynamic character sets
strings/Attic/ctype-dos.c:
  Update for dynamic character sets
strings/Attic/ctype-estonia.c:
  Update for dynamic character sets
strings/Attic/ctype-german1.c:
  Update for dynamic character sets
strings/Attic/ctype-greek.c:
  Update for dynamic character sets
strings/Attic/ctype-hebrew.c:
  Update for dynamic character sets
strings/Attic/ctype-hp8.c:
  Update for dynamic character sets
strings/Attic/ctype-hungarian.c:
  Update for dynamic character sets
strings/Attic/ctype-koi8_ru.c:
  Update for dynamic character sets
strings/Attic/ctype-koi8_ukr.c:
  Update for dynamic character sets
strings/Attic/ctype-latin1.c:
  Update for dynamic character sets
strings/Attic/ctype-latin2.c:
  Update for dynamic character sets
strings/Attic/ctype-swe7.c:
  Update for dynamic character sets
strings/Attic/ctype-usa7.c:
  Update for dynamic character sets
strings/Attic/ctype-win1250.c:
  Update for dynamic character sets
strings/Attic/ctype-win1251.c:
  Update for dynamic character sets
strings/Attic/ctype-win1251ukr.c:
  Update for dynamic character sets
mysys/.cvsignore:
  Update for dynamic character set handling
client/Attic/libmysql.c:
  Update of new character sets.
sql/share/charsets/Index:
  Update to 3.23.14
sql/share/charsets/README:
  Update to 3.23.14
sql/share/charsets/cp1257.conf:
  Update to 3.23.14
sql/share/charsets/estonia.conf:
  Update to 3.23.14
sql/share/charsets/win1250.conf:
  Update to 3.23.14
strings/.cvsignore:
  Update to 3.23.14
strings/Attic/bootstrap-ctype.c:
  Update to 3.23.14
strings/Attic/ctype.c.in:
  Update to 3.23.14
strings/ctype-ujis.c:
  Update to 3.23.14
BUILD/.cvsignore:
  Portability changes
libmysql/.cvsignore:
  Portability changes
mit-pthreads/GNUmakefile:
  Modifications to get MySQL 3.23.14 to build
mit-pthreads/config.flags:
  ***MISSING WEAVE***
mit-pthreads/include/pthread/ac-types.h:
  Modifications to get MySQL 3.23.14 to build
mit-pthreads/include/pthread/paths.h:
  Modifications to get MySQL 3.23.14 to build
regex/main.c:
  Portability fixes
sql/Attic/mini_client_errors.c:
  fixed up dependencies and symlinking in mini_client
Build-tools/cvs-sanity-check:
  added a script to do a build from fresh CVS for sanity checking - make Tim, Tonu, and everybody else who has had problems with the stuff out of CVS not compiling happy
include/t_ctype.h:
  Small updates by monty
include/.cvsignore:
  Update to 3.23.15
include/mysql_version.h.in:
  Update to 3.23.15
isam/ChangeLog:
  Update to 3.23.15
sql-bench/limits/interbase.cfg:
  character sets patches + fix of order by
sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
Docs/net_doc.txt:
  Fixes for Win32
sql/share/Makefile.am:
  Update at work to get MySQL to configure
include/Attic/mysql_com.h.in:
  Update of benchmarks and other small stuff
sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql:
  ***MISSING WEAVE***
sql-bench/limits/mimer.cfg:
  Update of benchmarks and other small stuff
sql/Attic/mini_client.c:
  Update to get Berkeley db to work.
sql/Attic/net_serv.c:
  Update to get Berkeley db to work.
sql/Attic/lex_hash.h:
  lex_hash.h is a pain in the neck for cvs diff
scripts/mysql_convert_table_format.sh:
  Update for 3.23.16
include/getopt.h:
  Update for 3.23.16
Docs/Support/.cvsignore:
  Update for build
scripts/mysqlhotcopy.sh:
  Update for 3.23.16
Docs/Attic/myisam.doc:
  Mirror addition, Broken Image fix, renamed myisam.doc -> myisam.txt (because it's really text. :).
Docs/myisam.txt:
  Mirror addition, Broken Image fix, renamed myisam.doc -> myisam.txt (because it's really text. :).
sql-bench/ChangeLog:
  Updates for 3.23.17
tests/big_record.pl:
  Updates for 3.23.17
tests/export.pl:
  Updates for 3.23.17
tests/fork2_test.pl:
  Updates for 3.23.17
tests/fork3_test.pl:
  Updates for 3.23.17
tests/fork_test.pl:
  Updates for 3.23.17
tests/grant.pl:
  Updates for 3.23.17
tests/insert_and_repair.pl:
  Updates for 3.23.17
tests/lock_test.pl:
  Updates for 3.23.17
tests/pmail.pl:
  Updates for 3.23.17
sql/.cvsignore:
  Update for 3.23.17
sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/ATIS-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/ATIS-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/ATIS-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/RUN-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/RUN-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/RUN-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/RUN-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/RUN-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/alter-table-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/alter-table-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/alter-table-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/big-tables-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/big-tables-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/big-tables-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/connect-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/connect-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/connect-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/connect-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/connect-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/create-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/create-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/create-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/create-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/create-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/insert-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/insert-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/insert-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/insert-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/insert-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/select-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/select-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/select-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/select-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/select-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.1_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/wisconsin-pg-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/Attic/wisconsin-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/ATIS-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/RUN-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/alter-table-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/big-tables-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/connect-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/create-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/insert-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/select-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/wisconsin-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
support-files/Attic/my-example.cnf.sh:
  Updates to 3.23.17
support-files/Attic/my-huge.cfg.sh:
  Update for 3.23.17
support-files/Attic/my-large.cfg.sh:
  Update for 3.23.17
support-files/Attic/my-medium.cfg.sh:
  Update for 3.23.17
support-files/Attic/my-small.cfg.sh:
  Update for 3.23.17
sql-bench/limits/pg.cfg:
  Updates to 3.23.17
support-files/my-small.cnf.sh:
  Updates to 3.23.17
dbug/dbug.c:
  update 3.23.17 for Monty
mysys/getopt1.c:
  update 3.23.17 for Monty
readline/complete.c:
  update 3.23.17 for Monty
regex/regcomp.c:
  update 3.23.17 for Monty
regex/regex2.h:
  update 3.23.17 for Monty
regex/regexec.c:
  update 3.23.17 for Monty
regex/regexp.c:
  update 3.23.17 for Monty
sql-bench/Results/ATIS-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/RUN-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/alter-table-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/big-tables-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/connect-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/create-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/insert-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/select-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results/wisconsin-mysql-win98:
  update 3.23.17 for Monty
sql-bench/Results-linux/ATIS-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/alter-table-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
tests/test_delayed_insert.pl:
  update 3.23.17 for Monty
vio/Vio.h:
  update 3.23.17 for Monty
vio/VioPipe.h:
  update 3.23.17 for Monty
vio/violite.h:
  update 3.23.17 for Monty
sql-bench/limits/access.cfg:
  Update for 3.23.17
sql-bench/limits/ms-sql.cfg:
  Update for 3.23.17
sql-bench/limits/oracle.cfg:
  Update for 3.23.17
BUILD/compile-alpha-ccc:
  Update to 3.23.18
BUILD/compile-alpha-debug:
  Update to 3.23.18
BUILD/compile-alpha:
  Update to 3.23.18
BUILD/compile-pentium-gcov:
  Update to 3.23.18
BUILD/compile-pentium-myodbc:
  Update to 3.23.18
BUILD/compile-pentium:
  Update to 3.23.18
BUILD/compile-solaris-sparc-purify:
  Update to 3.23.18
BUILD/compile-solaris-sparc:
  Update to 3.23.18
client/Attic/net.c:
  Update to 3.23.18
sql-bench/Results/ATIS-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/RUN-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/alter-table-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/big-tables-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/connect-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/create-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/insert-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/select-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results/wisconsin-mysql-Linux_2.2.14_i686_xeon:
  Update to 3.23.18
sql-bench/Results-linux/RUN-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-mysql_fast-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
mysql-test/mybin/mysql-test_install_db:
  Initial checkin of mysql-test subdir.
mysql-test/mysql-test-run:
  Quick commit before I checkout a new tree.
Docs/Tutorial-MySQL-final.txt:
  Update for 3.23.19-beta
Build-tools/Do-rpm:
  Fix of wrong CVS update
sql-bench/Results/ATIS-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/RUN-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/alter-table-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/big-tables-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/connect-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/create-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/insert-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/select-mysql-NT_4.0:
  Fix of wrong CVS update
sql-bench/Results/wisconsin-mysql-NT_4.0:
  Fix of wrong CVS update
acconfig.h:
  Change of copyright to GPL/LGPL
client/.cvsignore:
  Change of copyright to GPL/LGPL
client/completion_hash.h:
  Change of copyright to GPL/LGPL
client/connect_test.c:
  Change of copyright to GPL/LGPL
client/errmsg.c:
  Change of copyright to GPL/LGPL
client/insert_test.c:
  Change of copyright to GPL/LGPL
client/list_test.c:
  Change of copyright to GPL/LGPL
client/my_readline.h:
  Change of copyright to GPL/LGPL
client/password.c:
  Change of copyright to GPL/LGPL
client/readline.cc:
  Change of copyright to GPL/LGPL
client/select_test.c:
  Change of copyright to GPL/LGPL
client/showdb_test.c:
  Change of copyright to GPL/LGPL
client/sql_string.cc:
  Change of copyright to GPL/LGPL
client/sql_string.h:
  Change of copyright to GPL/LGPL
client/ssl_test.c:
  Change of copyright to GPL/LGPL
client/thread_test.c:
  Change of copyright to GPL/LGPL
client/violite.c:
  Change of copyright to GPL/LGPL
dbug/Makefile.am:
  Change of copyright to GPL/LGPL
extra/comp_err.c:
  Change of copyright to GPL/LGPL
extra/perror.c:
  Change of copyright to GPL/LGPL
extra/replace.c:
  Change of copyright to GPL/LGPL
extra/resolveip.c:
  Change of copyright to GPL/LGPL
heap/Makefile.am:
  Change of copyright to GPL/LGPL
heap/_check.c:
  Change of copyright to GPL/LGPL
heap/_rectest.c:
  Change of copyright to GPL/LGPL
heap/heapdef.h:
  Change of copyright to GPL/LGPL
heap/hp_block.c:
  Change of copyright to GPL/LGPL
heap/hp_clear.c:
  Change of copyright to GPL/LGPL
heap/hp_close.c:
  Change of copyright to GPL/LGPL
heap/hp_create.c:
  Change of copyright to GPL/LGPL
heap/hp_delete.c:
  Change of copyright to GPL/LGPL
heap/hp_extra.c:
  Change of copyright to GPL/LGPL
heap/hp_hash.c:
  Change of copyright to GPL/LGPL
heap/hp_info.c:
  Change of copyright to GPL/LGPL
heap/hp_open.c:
  Change of copyright to GPL/LGPL
heap/hp_panic.c:
  Change of copyright to GPL/LGPL
heap/hp_rename.c:
  Change of copyright to GPL/LGPL
heap/hp_rfirst.c:
  Change of copyright to GPL/LGPL
heap/hp_rlast.c:
  Change of copyright to GPL/LGPL
heap/hp_rnext.c:
  Change of copyright to GPL/LGPL
heap/hp_rprev.c:
  Change of copyright to GPL/LGPL
heap/hp_rrnd.c:
  Change of copyright to GPL/LGPL
heap/hp_rsame.c:
  Change of copyright to GPL/LGPL
heap/hp_scan.c:
  Change of copyright to GPL/LGPL
heap/hp_static.c:
  Change of copyright to GPL/LGPL
heap/hp_test1.c:
  Change of copyright to GPL/LGPL
heap/hp_test2.c:
  Change of copyright to GPL/LGPL
heap/hp_update.c:
  Change of copyright to GPL/LGPL
heap/hp_write.c:
  Change of copyright to GPL/LGPL
include/dbug.h:
  Change of copyright to GPL/LGPL
include/hash.h:
  Change of copyright to GPL/LGPL
include/heap.h:
  Change of copyright to GPL/LGPL
include/m_ctype.h:
  Change of copyright to GPL/LGPL
include/m_string.h:
  Change of copyright to GPL/LGPL
include/merge.h:
  Change of copyright to GPL/LGPL
include/my_alarm.h:
  Change of copyright to GPL/LGPL
include/my_dir.h:
  Change of copyright to GPL/LGPL
include/my_list.h:
  Change of copyright to GPL/LGPL
include/my_net.h:
  Change of copyright to GPL/LGPL
include/my_no_pthread.h:
  Change of copyright to GPL/LGPL
include/my_nosys.h:
  Change of copyright to GPL/LGPL
include/my_pthread.h:
  Change of copyright to GPL/LGPL
include/my_sys.h:
  Change of copyright to GPL/LGPL
include/my_tree.h:
  Change of copyright to GPL/LGPL
include/myisammrg.h:
  Change of copyright to GPL/LGPL
include/myisampack.h:
  Change of copyright to GPL/LGPL
include/mysys_err.h:
  Change of copyright to GPL/LGPL
include/nisam.h:
  Change of copyright to GPL/LGPL
include/queues.h:
  Change of copyright to GPL/LGPL
include/raid.h:
  Change of copyright to GPL/LGPL
include/sslopt-case.h:
  Change of copyright to GPL/LGPL
include/sslopt-longopts.h:
  Change of copyright to GPL/LGPL
include/sslopt-usage.h:
  Change of copyright to GPL/LGPL
include/sslopt-vars.h:
  Change of copyright to GPL/LGPL
include/thr_alarm.h:
  Change of copyright to GPL/LGPL
include/thr_lock.h:
  Change of copyright to GPL/LGPL
include/violite.h:
  Change of copyright to GPL/LGPL
isam/Makefile.am:
  Change of copyright to GPL/LGPL
isam/_cache.c:
  Change of copyright to GPL/LGPL
isam/_dynrec.c:
  Change of copyright to GPL/LGPL
isam/_key.c:
  Change of copyright to GPL/LGPL
isam/_locking.c:
  Change of copyright to GPL/LGPL
isam/_packrec.c:
  Change of copyright to GPL/LGPL
isam/_page.c:
  Change of copyright to GPL/LGPL
isam/_search.c:
  Change of copyright to GPL/LGPL
isam/_statrec.c:
  Change of copyright to GPL/LGPL
isam/changed.c:
  Change of copyright to GPL/LGPL
isam/close.c:
  Change of copyright to GPL/LGPL
isam/create.c:
  Change of copyright to GPL/LGPL
isam/delete.c:
  Change of copyright to GPL/LGPL
isam/extra.c:
  Change of copyright to GPL/LGPL
isam/isamchk.c:
  Change of copyright to GPL/LGPL
isam/isamlog.c:
  Change of copyright to GPL/LGPL
isam/log.c:
  Change of copyright to GPL/LGPL
isam/open.c:
  Change of copyright to GPL/LGPL
isam/pack_isam.c:
  Change of copyright to GPL/LGPL
isam/panic.c:
  Change of copyright to GPL/LGPL
isam/range.c:
  Change of copyright to GPL/LGPL
isam/rfirst.c:
  Change of copyright to GPL/LGPL
isam/rkey.c:
  Change of copyright to GPL/LGPL
isam/rlast.c:
  Change of copyright to GPL/LGPL
isam/rnext.c:
  Change of copyright to GPL/LGPL
isam/rprev.c:
  Change of copyright to GPL/LGPL
isam/rrnd.c:
  Change of copyright to GPL/LGPL
isam/rsame.c:
  Change of copyright to GPL/LGPL
isam/rsamepos.c:
  Change of copyright to GPL/LGPL
isam/sort.c:
  Change of copyright to GPL/LGPL
isam/static.c:
  Change of copyright to GPL/LGPL
isam/test1.c:
  Change of copyright to GPL/LGPL
isam/test3.c:
  Change of copyright to GPL/LGPL
libmysql/Makefile.am:
  Change of copyright to GPL/LGPL
libmysql/conf_to_src.c:
  Change of copyright to GPL/LGPL
libmysql/dll.c:
  Change of copyright to GPL/LGPL
libmysql/get_password.c:
  Change of copyright to GPL/LGPL
libmysql/password.c:
  Change of copyright to GPL/LGPL
libmysql/violite.c:
  Change of copyright to GPL/LGPL
man/Makefile.am:
  Change of copyright to GPL/LGPL
merge/Makefile.am:
  Change of copyright to GPL/LGPL
merge/_locking.c:
  Change of copyright to GPL/LGPL
merge/close.c:
  Change of copyright to GPL/LGPL
merge/create.c:
  Change of copyright to GPL/LGPL
merge/delete.c:
  Change of copyright to GPL/LGPL
merge/extra.c:
  Change of copyright to GPL/LGPL
merge/info.c:
  Change of copyright to GPL/LGPL
merge/mrgdef.h:
  Change of copyright to GPL/LGPL
merge/open.c:
  Change of copyright to GPL/LGPL
merge/panic.c:
  Change of copyright to GPL/LGPL
merge/rrnd.c:
  Change of copyright to GPL/LGPL
merge/rsame.c:
  Change of copyright to GPL/LGPL
merge/static.c:
  Change of copyright to GPL/LGPL
merge/update.c:
  Change of copyright to GPL/LGPL
myisam/ft_eval.c:
  Change of copyright to GPL/LGPL
myisam/ft_eval.h:
  Change of copyright to GPL/LGPL
myisam/ft_parser.c:
  Change of copyright to GPL/LGPL
myisam/ft_static.c:
  Change of copyright to GPL/LGPL
myisam/ft_stem.c:
  Change of copyright to GPL/LGPL
myisam/ft_stopwords.c:
  Change of copyright to GPL/LGPL
myisam/ft_test1.c:
  Change of copyright to GPL/LGPL
myisam/ft_test1.h:
  Change of copyright to GPL/LGPL
myisam/ftdefs.h:
  Change of copyright to GPL/LGPL
myisam/fulltext.h:
  Change of copyright to GPL/LGPL
myisam/mi_cache.c:
  Change of copyright to GPL/LGPL
myisam/mi_changed.c:
  Change of copyright to GPL/LGPL
myisam/mi_checksum.c:
  Change of copyright to GPL/LGPL
myisam/mi_dbug.c:
  Change of copyright to GPL/LGPL
myisam/mi_delete_all.c:
  Change of copyright to GPL/LGPL
myisam/mi_delete_table.c:
  Change of copyright to GPL/LGPL
myisam/mi_dynrec.c:
  Change of copyright to GPL/LGPL
myisam/mi_info.c:
  Change of copyright to GPL/LGPL
myisam/mi_key.c:
  Change of copyright to GPL/LGPL
myisam/mi_packrec.c:
  Change of copyright to GPL/LGPL
myisam/mi_page.c:
  Change of copyright to GPL/LGPL
myisam/mi_range.c:
  Change of copyright to GPL/LGPL
myisam/mi_rename.c:
  Change of copyright to GPL/LGPL
myisam/mi_rfirst.c:
  Change of copyright to GPL/LGPL
myisam/mi_rkey.c:
  Change of copyright to GPL/LGPL
myisam/mi_rlast.c:
  Change of copyright to GPL/LGPL
myisam/mi_rnext.c:
  Change of copyright to GPL/LGPL
myisam/mi_rprev.c:
  Change of copyright to GPL/LGPL
myisam/mi_rrnd.c:
  Change of copyright to GPL/LGPL
myisam/mi_rsame.c:
  Change of copyright to GPL/LGPL
myisam/mi_rsamepos.c:
  Change of copyright to GPL/LGPL
myisam/mi_scan.c:
  Change of copyright to GPL/LGPL
myisam/mi_static.c:
  Change of copyright to GPL/LGPL
myisam/mi_statrec.c:
  Change of copyright to GPL/LGPL
myisam/mi_test1.c:
  Change of copyright to GPL/LGPL
myisam/mi_test2.c:
  Change of copyright to GPL/LGPL
myisam/mi_test3.c:
  Change of copyright to GPL/LGPL
myisam/mi_unique.c:
  Change of copyright to GPL/LGPL
myisam/myisamlog.c:
  Change of copyright to GPL/LGPL
myisam/sort.c:
  Change of copyright to GPL/LGPL
myisammrg/Makefile.am:
  Change of copyright to GPL/LGPL
myisammrg/mymrgdef.h:
  Change of copyright to GPL/LGPL
myisammrg/myrg_close.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_create.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_delete.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_extra.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_info.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_locking.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_open.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_panic.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_rrnd.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_rsame.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_static.c:
  Change of copyright to GPL/LGPL
myisammrg/myrg_update.c:
  Change of copyright to GPL/LGPL
mysys/Makefile.am:
  Change of copyright to GPL/LGPL
mysys/array.c:
  Change of copyright to GPL/LGPL
mysys/charset.c:
  Change of copyright to GPL/LGPL
mysys/checksum.c:
  Change of copyright to GPL/LGPL
mysys/default.c:
  Change of copyright to GPL/LGPL
mysys/errors.c:
  Change of copyright to GPL/LGPL
mysys/getvar.c:
  Change of copyright to GPL/LGPL
mysys/hash.c:
  Change of copyright to GPL/LGPL
mysys/list.c:
  Change of copyright to GPL/LGPL
mysys/make-conf.c:
  Change of copyright to GPL/LGPL
mysys/mf_brkhant.c:
  Change of copyright to GPL/LGPL
mysys/mf_cache.c:
  Change of copyright to GPL/LGPL
mysys/mf_casecnv.c:
  Change of copyright to GPL/LGPL
mysys/mf_dirname.c:
  Change of copyright to GPL/LGPL
mysys/mf_fn_ext.c:
  Change of copyright to GPL/LGPL
mysys/mf_format.c:
  Change of copyright to GPL/LGPL
mysys/mf_getdate.c:
  Change of copyright to GPL/LGPL
mysys/mf_iocache.c:
  Change of copyright to GPL/LGPL
mysys/mf_keycache.c:
  Change of copyright to GPL/LGPL
mysys/mf_loadpath.c:
  Change of copyright to GPL/LGPL
mysys/mf_pack2.c:
  Change of copyright to GPL/LGPL
mysys/mf_path.c:
  Change of copyright to GPL/LGPL
mysys/mf_qsort.c:
  Change of copyright to GPL/LGPL
mysys/mf_qsort2.c:
  Change of copyright to GPL/LGPL
mysys/mf_radix.c:
  Change of copyright to GPL/LGPL
mysys/mf_reccache.c:
  ***MISSING WEAVE***
mysys/mf_same.c:
  Change of copyright to GPL/LGPL
mysys/mf_sleep.c:
  Change of copyright to GPL/LGPL
mysys/mf_sort.c:
  Change of copyright to GPL/LGPL
mysys/mf_soundex.c:
  Change of copyright to GPL/LGPL
mysys/mf_stripp.c:
  Change of copyright to GPL/LGPL
mysys/mf_unixpath.c:
  Change of copyright to GPL/LGPL
mysys/mf_util.c:
  Change of copyright to GPL/LGPL
mysys/mf_wcomp.c:
  Change of copyright to GPL/LGPL
mysys/mf_wfile.c:
  Change of copyright to GPL/LGPL
mysys/mulalloc.c:
  Change of copyright to GPL/LGPL
mysys/my_alarm.c:
  Change of copyright to GPL/LGPL
mysys/my_alloc.c:
  Change of copyright to GPL/LGPL
mysys/my_append.c:
  Change of copyright to GPL/LGPL
mysys/my_chsize.c:
  Change of copyright to GPL/LGPL
mysys/my_clock.c:
  Change of copyright to GPL/LGPL
mysys/my_compress.c:
  Change of copyright to GPL/LGPL
mysys/my_copy.c:
  Change of copyright to GPL/LGPL
mysys/my_create.c:
  Change of copyright to GPL/LGPL
mysys/my_delete.c:
  Change of copyright to GPL/LGPL
mysys/my_div.c:
  Change of copyright to GPL/LGPL
mysys/my_error.c:
  Change of copyright to GPL/LGPL
mysys/my_fopen.c:
  Change of copyright to GPL/LGPL
mysys/my_fstream.c:
  Change of copyright to GPL/LGPL
mysys/my_getwd.c:
  Change of copyright to GPL/LGPL
mysys/my_init.c:
  Change of copyright to GPL/LGPL
mysys/my_lib.c:
  Change of copyright to GPL/LGPL
mysys/my_lock.c:
  Change of copyright to GPL/LGPL
mysys/my_lockmem.c:
  Change of copyright to GPL/LGPL
mysys/my_lread.c:
  Change of copyright to GPL/LGPL
mysys/my_lwrite.c:
  Change of copyright to GPL/LGPL
mysys/my_malloc.c:
  Change of copyright to GPL/LGPL
mysys/my_messnc.c:
  Change of copyright to GPL/LGPL
mysys/my_mkdir.c:
  Change of copyright to GPL/LGPL
mysys/my_net.c:
  Change of copyright to GPL/LGPL
mysys/my_once.c:
  Change of copyright to GPL/LGPL
mysys/my_open.c:
  Change of copyright to GPL/LGPL
mysys/my_pread.c:
  Change of copyright to GPL/LGPL
mysys/my_pthread.c:
  Change of copyright to GPL/LGPL
mysys/my_quick.c:
  Change of copyright to GPL/LGPL
mysys/my_read.c:
  Change of copyright to GPL/LGPL
mysys/my_realloc.c:
  Change of copyright to GPL/LGPL
mysys/my_redel.c:
  Change of copyright to GPL/LGPL
mysys/my_rename.c:
  Change of copyright to GPL/LGPL
mysys/my_seek.c:
  Change of copyright to GPL/LGPL
mysys/my_static.c:
  Change of copyright to GPL/LGPL
mysys/my_static.h:
  Change of copyright to GPL/LGPL
mysys/my_tempnam.c:
  Change of copyright to GPL/LGPL
mysys/my_vsnprintf.c:
  Change of copyright to GPL/LGPL
mysys/my_wincond.c:
  Change of copyright to GPL/LGPL
mysys/my_winthread.c:
  Change of copyright to GPL/LGPL
mysys/my_write.c:
  Change of copyright to GPL/LGPL
mysys/mysys_priv.h:
  Change of copyright to GPL/LGPL
mysys/ptr_cmp.c:
  Change of copyright to GPL/LGPL
mysys/queues.c:
  Change of copyright to GPL/LGPL
mysys/raid.cc:
  Change of copyright to GPL/LGPL
mysys/safemalloc.c:
  Change of copyright to GPL/LGPL
mysys/string.c:
  Change of copyright to GPL/LGPL
mysys/test_charset.c:
  Change of copyright to GPL/LGPL
mysys/test_dir.c:
  Change of copyright to GPL/LGPL
mysys/test_fn.c:
  Change of copyright to GPL/LGPL
mysys/test_vsnprintf.c:
  Change of copyright to GPL/LGPL
mysys/testhash.c:
  Change of copyright to GPL/LGPL
mysys/thr_alarm.c:
  Change of copyright to GPL/LGPL
mysys/thr_lock.c:
  Change of copyright to GPL/LGPL
mysys/thr_mutex.c:
  Change of copyright to GPL/LGPL
mysys/thr_rwlock.c:
  Change of copyright to GPL/LGPL
mysys/tree.c:
  Change of copyright to GPL/LGPL
mysys/typelib.c:
  Change of copyright to GPL/LGPL
regex/Makefile.am:
  Change of copyright to GPL/LGPL
sql/cache_manager.cc:
  Change of copyright to GPL/LGPL
sql/cache_manager.h:
  Change of copyright to GPL/LGPL
sql/convert.cc:
  Change of copyright to GPL/LGPL
sql/custom_conf.h:
  Change of copyright to GPL/LGPL
sql/derror.cc:
  Change of copyright to GPL/LGPL
sql/field_conv.cc:
  Change of copyright to GPL/LGPL
sql/frm_crypt.cc:
  Change of copyright to GPL/LGPL
sql/ha_heap.cc:
  Change of copyright to GPL/LGPL
sql/ha_heap.h:
  Change of copyright to GPL/LGPL
sql/ha_isam.cc:
  Change of copyright to GPL/LGPL
sql/ha_isammrg.cc:
  Change of copyright to GPL/LGPL
sql/hash_filo.cc:
  Change of copyright to GPL/LGPL
sql/hash_filo.h:
  Change of copyright to GPL/LGPL
sql/hostname.cc:
  Change of copyright to GPL/LGPL
sql/init.cc:
  Change of copyright to GPL/LGPL
sql/item_buff.cc:
  Change of copyright to GPL/LGPL
sql/item_cmpfunc.h:
  Change of copyright to GPL/LGPL
sql/item_create.cc:
  Change of copyright to GPL/LGPL
sql/item_create.h:
  Change of copyright to GPL/LGPL
sql/item_strfunc.cc:
  Change of copyright to GPL/LGPL
sql/item_strfunc.h:
  Change of copyright to GPL/LGPL
sql/item_sum.cc:
  Change of copyright to GPL/LGPL
sql/item_sum.h:
  Change of copyright to GPL/LGPL
sql/item_uniq.cc:
  Change of copyright to GPL/LGPL
sql/item_uniq.h:
  Change of copyright to GPL/LGPL
sql/key.cc:
  Change of copyright to GPL/LGPL
sql/lex_symbol.h:
  Change of copyright to GPL/LGPL
sql/lock.cc:
  Change of copyright to GPL/LGPL
sql/matherr.c:
  Change of copyright to GPL/LGPL
sql/mf_iocache.cc:
  Change of copyright to GPL/LGPL
sql/mini_client.h:
  Change of copyright to GPL/LGPL
sql/my_lock.c:
  Change of copyright to GPL/LGPL
sql/opt_sum.cc:
  Change of copyright to GPL/LGPL
sql/password.c:
  Change of copyright to GPL/LGPL
sql/procedure.cc:
  Change of copyright to GPL/LGPL
sql/procedure.h:
  Change of copyright to GPL/LGPL
sql/sql_acl.h:
  Change of copyright to GPL/LGPL
sql/sql_analyse.cc:
  Change of copyright to GPL/LGPL
sql/sql_cache.cc:
  Change of copyright to GPL/LGPL
sql/sql_crypt.cc:
  Change of copyright to GPL/LGPL
sql/sql_crypt.h:
  Change of copyright to GPL/LGPL
sql/sql_list.cc:
  Change of copyright to GPL/LGPL
sql/sql_list.h:
  Change of copyright to GPL/LGPL
sql/sql_map.cc:
  Change of copyright to GPL/LGPL
sql/sql_map.h:
  Change of copyright to GPL/LGPL
sql/sql_string.h:
  Change of copyright to GPL/LGPL
sql/sql_test.cc:
  Change of copyright to GPL/LGPL
sql/sql_udf.cc:
  Change of copyright to GPL/LGPL
sql/sql_udf.h:
  Change of copyright to GPL/LGPL
sql/thr_malloc.cc:
  Change of copyright to GPL/LGPL
sql/udf_example.cc:
  Change of copyright to GPL/LGPL
sql/unireg.cc:
  Change of copyright to GPL/LGPL
sql/unireg.h:
  Change of copyright to GPL/LGPL
sql/violite.c:
  Change of copyright to GPL/LGPL
sql-bench/Makefile.am:
  Change of copyright to GPL/LGPL
sql-bench/bench-init.pl.sh:
  Change of copyright to GPL/LGPL
sql-bench/copy-db.sh:
  Change of copyright to GPL/LGPL
sql-bench/run-all-tests.sh:
  Change of copyright to GPL/LGPL
sql-bench/server-cfg.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-ATIS.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-alter-table.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-big-tables.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-connect.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-create.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-insert.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-select.sh:
  Change of copyright to GPL/LGPL
sql-bench/test-wisconsin.sh:
  Change of copyright to GPL/LGPL
sql-bench/Results/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/ATIS-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/RUN-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/alter-table-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/big-tables-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/connect-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/connect-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/create-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/create-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/insert-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/insert-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/insert-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/select-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/select-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/wisconsin-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg:
  ***MISSING WEAVE***
strings/Makefile.am:
  Change of copyright to GPL/LGPL
strings/README:
  Change of copyright to GPL/LGPL
strings/atof.c:
  Change of copyright to GPL/LGPL
strings/bchange.c:
  Change of copyright to GPL/LGPL
strings/bcmp.c:
  Change of copyright to GPL/LGPL
strings/bcopy-duff.c:
  Change of copyright to GPL/LGPL
strings/bmove512.c:
  Change of copyright to GPL/LGPL
strings/bmove_upp-sparc.s:
  Change of copyright to GPL/LGPL
strings/bmove_upp.c:
  Change of copyright to GPL/LGPL
strings/conf_to_src.c:
  Change of copyright to GPL/LGPL
strings/ctype-big5.c:
  Change of copyright to GPL/LGPL
strings/ctype-euc_kr.c:
  Change of copyright to GPL/LGPL
strings/ctype-gb2312.c:
  Change of copyright to GPL/LGPL
strings/ctype-sjis.c:
  Change of copyright to GPL/LGPL
strings/ctype.c:
  Change of copyright to GPL/LGPL
strings/do_ctype.c:
  Change of copyright to GPL/LGPL
strings/int2str.c:
  Change of copyright to GPL/LGPL
strings/is_prefix.c:
  Change of copyright to GPL/LGPL
strings/llstr.c:
  Change of copyright to GPL/LGPL
strings/longlong2str-x86.s:
  Change of copyright to GPL/LGPL
strings/longlong2str.c:
  Change of copyright to GPL/LGPL
strings/macros.asm:
  Change of copyright to GPL/LGPL
strings/memcmp.c:
  Change of copyright to GPL/LGPL
strings/memcpy.c:
  Change of copyright to GPL/LGPL
strings/ptr_cmp.asm:
  Change of copyright to GPL/LGPL
strings/str2int.c:
  Change of copyright to GPL/LGPL
strings/str_test.c:
  Change of copyright to GPL/LGPL
strings/strappend-sparc.s:
  Change of copyright to GPL/LGPL
strings/strappend.c:
  Change of copyright to GPL/LGPL
strings/strcend.c:
  Change of copyright to GPL/LGPL
strings/strcont.c:
  Change of copyright to GPL/LGPL
strings/strend-sparc.s:
  Change of copyright to GPL/LGPL
strings/strfill.c:
  Change of copyright to GPL/LGPL
strings/strings-x86.s:
  Change of copyright to GPL/LGPL
strings/strings.asm:
  Change of copyright to GPL/LGPL
strings/strinstr-sparc.s:
  Change of copyright to GPL/LGPL
strings/strinstr.c:
  Change of copyright to GPL/LGPL
strings/strmake-sparc.s:
  Change of copyright to GPL/LGPL
strings/strmake.c:
  Change of copyright to GPL/LGPL
strings/strmov-sparc.s:
  Change of copyright to GPL/LGPL
strings/strmov.c:
  Change of copyright to GPL/LGPL
strings/strnmov-sparc.s:
  Change of copyright to GPL/LGPL
strings/strnmov.c:
  Change of copyright to GPL/LGPL
strings/strstr-sparc.s:
  Change of copyright to GPL/LGPL
strings/strto.c:
  Change of copyright to GPL/LGPL
strings/strtol.c:
  Change of copyright to GPL/LGPL
strings/strtoll.c:
  Change of copyright to GPL/LGPL
strings/strtoul.c:
  Change of copyright to GPL/LGPL
strings/strtoull.c:
  Change of copyright to GPL/LGPL
strings/strxmov-sparc.s:
  Change of copyright to GPL/LGPL
strings/strxmov.asm:
  Change of copyright to GPL/LGPL
strings/udiv.c:
  Change of copyright to GPL/LGPL
support-files/Makefile.am:
  Change of copyright to GPL/LGPL
tests/Makefile.am:
  Change of copyright to GPL/LGPL
vio/Makefile.am:
  Change of copyright to GPL/LGPL
isam/.cvsignore:
  Updates for 3.23.19
myisam/.cvsignore:
  Updates for 3.23.19
sql-bench/Results/insert-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686:
  ***MISSING WEAVE***
sql/sql_analyse.h:
  Fix bug when memory wasn't freed
sql/mysqlbinlog.cc:
  Small fixes
sql/share/romanian/errmsg.txt:
  ***MISSING WEAVE***
include/mysql_com.h:
  Replication update/LOAD TABLE FROM MASTER + other fixes
client/mysql-test.c:
  ***MISSING WEAVE***
myisam/Attic/ft_global.h:
  This file is now in include/
extra/Attic/print_defaults.c:
  Updates for text search + ORDER BY
extra/Makefile.am:
  Updates for text search + ORDER BY
extra/my_print_defaults.c:
  Updates for text search + ORDER BY
include/mysqld_error.h:
  Updates for text search + ORDER BY
sql/item_cmpfunc.cc:
  Updates for text search + ORDER BY
sql/opt_range.h:
  Updates for text search + ORDER BY
sql/sql_lex.cc:
  Updates for text search + ORDER BY
sql-bench/crash-me.sh:
  Updates for text search + ORDER BY
sql-bench/limits/mysql.cfg:
  Updates for text search + ORDER BY
sql/share/czech/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/czech/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/danish/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/danish/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/dutch/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/dutch/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/english/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/english/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/estonia/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/estonia/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/french/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/french/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/german/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/german/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/greek/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/greek/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/hungarian/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/hungarian/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/japanese/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/japanese/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/korean/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/korean/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/norwegian/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/norwegian-ny/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/polish/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/polish/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/portuguese/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/portuguese/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/romania/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/romania/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/russian/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/russian/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/slovak/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/slovak/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/spanish/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/spanish/errmsg.txt:
  Updates for text search + ORDER BY
sql/share/swedish/errmsg.OLD:
  Updates for text search + ORDER BY
sql/share/swedish/errmsg.sys:
  Updates for text search + ORDER BY
sql/share/swedish/errmsg.txt:
  Updates for text search + ORDER BY
support-files/mysql.server-sys5.sh:
  Updates for text search + ORDER BY
extra/.cvsignore:
  Fix for update + BDB tables
isam/_dbug.c:
  Fix for update + BDB tables
myisam/mi_delete.c:
  Fix for update + BDB tables
myisam/mi_rnext_same.c:
  Fix for update + BDB tables
myisam/mi_search.c:
  Fix for update + BDB tables
sql/table.cc:
  Fix of core dump bugs
myisam/Makefile.am:
  Aded missing file
sql/ha_berkeley.h:
  Fix DELETE FROM table_name problem
Build-tools/Do-all-build-steps:
  Update to final 3.23.20
Build-tools/mysql-copyright-2:
  Update to final 3.23.20
Build-tools/mysql-copyright:
  Update to final 3.23.20
Docs/.cvsignore:
  Update to final 3.23.20
scripts/make_binary_distribution.sh:
  Update to final 3.23.20
Docs/internals.texi:
  Fix of licenses issues.
sql/ha_isam.h:
  Added patch by Sergei for MATCH + some bug fixes.
sql/ha_isammrg.h:
  Added patch by Sergei for MATCH + some bug fixes.
sql/ha_myisammrg.h:
  Added patch by Sergei for MATCH + some bug fixes.
myisam/ft_search.c:
  Fix of portability bug
include/ft_global.h:
  Fix of portability bug
sql/log_event.cc:
  One more safety fix
sql/log_event.h:
  One more safety fix
isam/test2.c:
  Update to 3.23.21
isam/update.c:
  Update to 3.23.21
myisam/ChangeLog:
  Update to 3.23.21
myisam/mi_test_all.sh:
  Update to 3.23.21
myisam/mi_update.c:
  Update to 3.23.21
myisam/mi_write.c:
  Update to 3.23.21
scripts/.cvsignore:
  Update to 3.23.21
scripts/mysql_config.sh:
  Update to 3.23.21
sql/filesort.cc:
  Update to 3.23.21
Docs/Support/texi2html:
  removed NOSAVE attrib from TABLE tags, non-standard HTML.
include/Attic/config-win32.h:
  Made update log ASCII 0 safe
myisam/mi_test_all:
  ***MISSING WEAVE***
sql/sql_acl.cc:
  Made update log ASCII 0 safe
sql/sql_db.cc:
  Made update log ASCII 0 safe
sql/sql_delete.cc:
  Made update log ASCII 0 safe
sql/sql_insert.cc:
  Made update log ASCII 0 safe
sql/sql_load.cc:
  Made update log ASCII 0 safe
sql/sql_select.h:
  Made update log ASCII 0 safe
sql/sql_update.cc:
  Made update log ASCII 0 safe
sql/table.h:
  Made update log ASCII 0 safe
strings/ctype-czech.c:
  Made update log ASCII 0 safe
support-files/maxsql.spec.sh:
  Made update log ASCII 0 safe
client/mysqlimport.c:
  Update to 3.23.21
client/mysqlshow.c:
  Update to 3.23.21
include/mysql.h:
  Added mysql_character_set_name()
mit-pthreads/net/gethostname.c:
  Added mysql_character_set_name()
scripts/Makefile.am:
  Added mysql_character_set_name()
client/Makefile.am:
  portability fixes
scripts/mysql_install_db.sh:
  portability fixes
support-files/mysql.spec.sh:
  Added mysql_config
config.h.in:
  ***MISSING WEAVE***
client/mysqldump.c:
  Small fixes
heap/hp_rkey.c:
  Small fixes
sql-bench/compare-results.sh:
  Small fixes
tests/mail_to_db.pl:
  Small fixes
acinclude.m4:
  Configure updates for 3.23.22
BUILD/compile-pentium-debug:
  Configure updates for 3.23.22
Docs/Makefile.am:
  Configure updates for 3.23.22
client/get_password.c:
  Configure updates for 3.23.22
client/mysqladmin.c:
  Configure updates for 3.23.22
include/Makefile.am:
  Configure updates for 3.23.22
include/my_global.h:
  ***MISSING WEAVE***
isam/info.c:
  Configure updates for 3.23.22
isam/isamdef.h:
  Configure updates for 3.23.22
isam/write.c:
  Configure updates for 3.23.22
sql/records.cc:
  Configure updates for 3.23.22
sql-bench/print-limit-table:
  Configure updates for 3.23.22
sql-bench/limits/mysql-3.23.cfg:
  Configure updates for 3.23.22
support-files/my-huge.cnf.sh:
  Configure updates for 3.23.22
support-files/my-large.cnf.sh:
  Configure updates for 3.23.22
support-files/my-medium.cnf.sh:
  Configure updates for 3.23.22
myisam/ft_update.c:
  This is to make ft-code to ignore keyseg.length at all
  and to index the whole VARCHAR/BLOB instead...
Makefile.am:
  Fixed gen_lex_hash recursion
myisam/myisampack.c:
  Fixes for 3.23.22
sql/ChangeLog:
  Fixes for 3.23.22
sql/nt_servc.cc:
  Fixes for 3.23.22
sql/sql_class.cc:
  Fixes for 3.23.22
include/my_base.h:
  Fix for BDB and MERGE tables
sql/ha_myisammrg.cc:
  Fix for BDB and MERGE tables
Docs/LICENSE:
  Update for 3.23.22
config.sub:
  Update for ia64
Build-tools/Do-compile-all:
  ***MISSING WEAVE***
scripts/safe_mysqld.sh:
  Small bug fixes for 3.23.22
support-files/.cvsignore:
  Small bug fixes for 3.23.22
scripts/mysql_find_rows.sh:
  Critical bug fixes
sql/sql_class.h:
  SHOW SLAVE STATUS, change in SHOW MASTER STATUS
repl-tests/include/master-slave.inc:
  Replication test cases
repl-tests/test-dump/run.test:
  Replication test cases
repl-tests/test-dump/table-dump-check.master:
  Replication test cases
repl-tests/test-dump/table-dump-select.master:
  Replication test cases
repl-tests/test-repl-ts/repl-timestamp.master:
  Replication test cases
repl-tests/test-repl-ts/run.test:
  Replication test cases
repl-tests/test-repl/foo-dump-master.master:
  Replication test cases
repl-tests/test-repl/foo-dump-slave.master:
  Replication test cases
repl-tests/test-repl/run.test:
  Replication test cases
repl-tests/test-repl/sum-wlen-master.master:
  Replication test cases
repl-tests/test-repl/sum-wlen-slave.master:
  Replication test cases
Images/.cvsignore:
  Update of div reported bugs
include/config-win.h:
  Update of div reported bugs
mysys/mf_pack.c:
  Update of div reported bugs
sql/field.cc:
  Update of div reported bugs
sql/field.h:
  Update of div reported bugs
sql/ha_myisam.h:
  Update of div reported bugs
sql/handler.h:
  Update of div reported bugs
sql/item.cc:
  Update of div reported bugs
sql/item_func.h:
  Update of div reported bugs
sql/item_timefunc.cc:
  Update of div reported bugs
sql/item_timefunc.h:
  Update of div reported bugs
sql/sql_string.cc:
  Update of div reported bugs
sql/sql_table.cc:
  Update of div reported bugs
sql/structs.h:
  Update of div reported bugs
sql/time.cc:
  Update of div reported bugs
strings/ctype-gbk.c:
  Update of div reported bugs
strings/ctype-tis620.c:
  Update of div reported bugs
strings/r_strinstr.c:
  Update of div reported bugs
strings/strnlen.c:
  Update of div reported bugs
support-files/mysql.server.sh:
  Update of div reported bugs
myisam/mi_locking.c:
  Small bug fixes
myisam/myisamdef.h:
  Small bug fixes
mysys/my_thr_init.c:
  Small bug fixes
myisam/mi_close.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
myisam/mi_create.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
myisam/mi_extra.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
myisam/mi_log.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
myisam/mi_open.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
myisam/mi_panic.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
myisam/myisamchk.c:
  Changed mutex THR_lock_isam -> THR_lock_myisam
sql/item_func.cc:
  
  Don't let MySQL use ft-keys in non-ft way
sql/opt_range.cc:
  
  Don't let MySQL use ft-keys in non-ft way
sql-bench/Results-linux/ATIS-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/RUN-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/alter-table-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/create-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/select-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.13_SMP_alpha:
  ***MISSING WEAVE***
sql/share/italian/errmsg.sys:
  new translated error messages
sql/share/italian/errmsg.txt:
  new translated error messages
libmysql/errmsg.c:
  Fix to get 'Too big packet' error + fixes for Ia64
libmysql/libmysql.c:
  Fix to get 'Too big packet' error + fixes for Ia64
libmysql/net.c:
  Fix to get 'Too big packet' error + fixes for Ia64
include/errmsg.h:
  Fix to get 'Too big packet'
mysql.proj:
  Update for 3.23.22
client/mysql.cc:
  Fix for rehash on reconnect (By Jeremey)
readline/rlstdc.h:
  portability fixes
sql/Makefile.am:
  Hack to force lex_hash.h to be generated
sql/ha_berkeley.cc:
  Fixes for Berekely DB
sql/handler.cc:
  Fixes for Berekely DB
sql/item.h:
  Small fixes for 3.23.22
sql/net_serv.cc:
  Small fixes for 3.23.22
client/completion_hash.cc:
  Fixes for Ia64
sql/mini_client.cc:
  Fixes for Ia64
sql/sql_select.cc:
  Fixes for Ia64
.cvsignore:
  Update at work for release
myisam/mi_check.c:
  Fix bug in ANALYZE TABLE
sql/ha_myisam.cc:
  Fix bug in ANALYZE TABLE
include/myisam.h:
  Fix bug in ANALYZE TABLE
configure.in:
  Fix for AIX 4.3
Build-tools/Do-compile:
  Fix for local perl libraries
sql/sql_show.cc:
  Fix for show processlist on SCO
include/global.h:
  Fix for AIX 4.3
BUILD/compile-ia64-O0-sgicc:
  Last minute updates for 3.23.22
BUILD/compile-ia64-O0:
  Last minute updates for 3.23.22
BUILD/compile-ia64-O2-sgicc:
  Last minute updates for 3.23.22
BUILD/compile-ia64-O2:
  Last minute updates for 3.23.22
BUILD/compile-ia64-O6:
  Last minute updates for 3.23.22
Docs/manual.texi:
  Added paragraph in introduction pointing to SQL and MySQL books, for newbies.
sql/gen_lex_hash.cc:
  CHANGE MASTER TO and other fixes
sql/lex.h:
  CHANGE MASTER TO and other fixes
sql/log.cc:
  CHANGE MASTER TO and other fixes
sql/mysql_priv.h:
  CHANGE MASTER TO and other fixes
sql/mysqld.cc:
  CHANGE MASTER TO and other fixes
sql/net_pkg.cc:
  CHANGE MASTER TO and other fixes
sql/slave.cc:
  CHANGE MASTER TO and other fixes
sql/sql_base.cc:
  CHANGE MASTER TO and other fixes
sql/sql_lex.h:
  CHANGE MASTER TO and other fixes
sql/sql_parse.cc:
  CHANGE MASTER TO and other fixes
sql/sql_yacc.yy:
  CHANGE MASTER TO and other fixes
2000-07-31 21:29:14 +02:00

2051 lines
56 KiB
C

/* Copyright (C) 1979-1999 TcX AB & Monty Program KB & Detron HB
This software is distributed with NO WARRANTY OF ANY KIND. No author or
distributor accepts any responsibility for the consequences of using it, or
for whether it serves any particular purpose or works at all, unless he or
she says so in writing. Refer to the Free Public License (the "License")
for full details.
Every copy of this file must include a copy of the License, normally in a
plain ASCII text file named PUBLIC. The License grants you the right to
copy, modify and redistribute this file, but only under certain conditions
described in the License. Among other things, the License requires that
the copyright notice and this notice be preserved on all copies. */
/* Pack isam file*/
#ifndef USE_MY_FUNC
#define USE_MY_FUNC /* We nead at least my_malloc */
#endif
#include "isamdef.h"
#include <queues.h>
#include <my_tree.h>
#include "mysys_err.h"
#ifdef MSDOS
#include <io.h>
#endif
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ /* Skipp warnings in getopt.h */
#endif
#include <getopt.h>
#if INT_MAX > 32767
#define BITS_SAVED 32
#else
#define BITS_SAVED 16
#endif
#define IS_OFFSET ((uint) 32768) /* Bit if offset or char in tree */
#define HEAD_LENGTH 32
#define ALLOWED_JOIN_DIFF 256 /* Diff allowed to join trees */
#define DATA_TMP_EXT ".TMD"
#define OLD_EXT ".OLD"
#define WRITE_COUNT MY_HOW_OFTEN_TO_WRITE
#ifdef __WIN__
static double ulonglong2double(ulonglong value)
{
longlong nr=(longlong) value;
if (nr >= 0)
return (double) nr;
return (18446744073709551616.0 + (double) nr);
}
#if SIZEOF_OFF_T > 4
#define my_off_t2double(A) ulonglong2double(A)
#else
#define my_off_t2double(A) ((double) (A))
#endif /* SIZEOF_OFF_T > 4 */
#endif
struct st_file_buffer {
File file;
char *buffer,*pos,*end;
my_off_t pos_in_file;
int bits;
uint byte;
};
struct st_huff_tree;
struct st_huff_element;
typedef struct st_huff_counts {
uint field_length,max_zero_fill;
uint pack_type;
uint max_end_space,max_pre_space,length_bits,min_space;
enum en_fieldtype field_type;
struct st_huff_tree *tree; /* Tree for field */
my_off_t counts[256];
my_off_t end_space[8];
my_off_t pre_space[8];
my_off_t tot_end_space,tot_pre_space,zero_fields,empty_fields,bytes_packed;
TREE int_tree;
byte *tree_buff;
byte *tree_pos;
} HUFF_COUNTS;
typedef struct st_huff_element HUFF_ELEMENT;
struct st_huff_element {
my_off_t count;
union un_element {
struct st_nod {
HUFF_ELEMENT *left,*right;
} nod;
struct st_leaf {
HUFF_ELEMENT *null;
uint element_nr; /* Number of element */
} leaf;
} a;
};
typedef struct st_huff_tree {
HUFF_ELEMENT *root,*element_buffer;
HUFF_COUNTS *counts;
uint tree_number;
uint elements;
my_off_t bytes_packed;
uint tree_pack_length;
uint min_chr,max_chr,char_bits,offset_bits,max_offset,height;
ulong *code;
uchar *code_len;
} HUFF_TREE;
typedef struct st_isam_mrg {
N_INFO **file,**current,**end;
uint count;
uint min_pack_length; /* Theese is used by packed data */
uint max_pack_length;
uint ref_length;
my_off_t records;
} MRG_INFO;
extern int main(int argc,char * *argv);
static void get_options(int *argc,char ***argv);
static N_INFO *open_isam_file(char *name,int mode);
static bool open_isam_files(MRG_INFO *mrg,char **names,uint count);
static int compress(MRG_INFO *file,char *join_name);
static HUFF_COUNTS *init_huff_count(N_INFO *info,my_off_t records);
static void free_counts_and_tree_and_queue(HUFF_TREE *huff_trees,
uint trees,
HUFF_COUNTS *huff_counts,
uint fields);
static int compare_tree(const uchar *s,const uchar *t);
static int get_statistic(MRG_INFO *mrg,HUFF_COUNTS *huff_counts);
static void check_counts(HUFF_COUNTS *huff_counts,uint trees,
my_off_t records);
static int test_space_compress(HUFF_COUNTS *huff_counts,my_off_t records,
uint max_space_length,my_off_t *space_counts,
my_off_t tot_space_count,
enum en_fieldtype field_type);
static HUFF_TREE* make_huff_trees(HUFF_COUNTS *huff_counts,uint trees);
static int make_huff_tree(HUFF_TREE *tree,HUFF_COUNTS *huff_counts);
static int compare_huff_elements(void *not_used, byte *a,byte *b);
static int save_counts_in_queue(byte *key,element_count count,
HUFF_TREE *tree);
static my_off_t calc_packed_length(HUFF_COUNTS *huff_counts,uint flag);
static uint join_same_trees(HUFF_COUNTS *huff_counts,uint trees);
static int make_huff_decode_table(HUFF_TREE *huff_tree,uint trees);
static void make_traverse_code_tree(HUFF_TREE *huff_tree,
HUFF_ELEMENT *element,uint size,
ulong code);
static int write_header(MRG_INFO *isam_file, uint header_length,uint trees,
my_off_t tot_elements,my_off_t filelength);
static void write_field_info(HUFF_COUNTS *counts, uint fields,uint trees);
static my_off_t write_huff_tree(HUFF_TREE *huff_tree,uint trees);
static uint *make_offset_code_tree(HUFF_TREE *huff_tree,
HUFF_ELEMENT *element,
uint *offset);
static uint max_bit(uint value);
static int compress_isam_file(MRG_INFO *file,HUFF_COUNTS *huff_counts);
static char *make_new_name(char *new_name,char *old_name);
static char *make_old_name(char *new_name,char *old_name);
static void init_file_buffer(File file,pbool read_buffer);
static int flush_buffer(uint neaded_length);
static void end_file_buffer(void);
static void write_bits(ulong value,uint bits);
static void flush_bits(void);
static void save_integer(byte *pos,uint pack_length,my_off_t value);
static void save_state(N_INFO *isam_file,MRG_INFO *mrg,my_off_t new_length,
ulong crc);
static int save_state_mrg(File file,MRG_INFO *isam_file,my_off_t new_length,
ulong crc);
static int mrg_close(MRG_INFO *mrg);
static int mrg_rrnd(MRG_INFO *info,byte *buf);
static void mrg_reset(MRG_INFO *mrg);
static int backup=0,error_on_write=0,test_only=0,verbose=0,silent=0,
write_loop=0,force_pack=0,opt_wait=0,isamchk_neaded=0;
static int tmpfile_createflag=O_RDWR | O_TRUNC | O_EXCL;
static uint tree_buff_length=8196-MALLOC_OVERHEAD,force_pack_ref_length;
static char tmp_dir[FN_REFLEN]={0},*join_table;
static my_off_t intervall_length;
static ulong crc;
static struct st_file_buffer file_buffer;
static QUEUE queue;
static HUFF_COUNTS *global_count;
static char zero_string[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
static const char *load_default_groups[]= { "pack_isam",0 };
/* The main program */
int main(int argc, char **argv)
{
int error,ok;
MRG_INFO merge;
MY_INIT(argv[0]);
load_defaults("my",load_default_groups,&argc,&argv);
get_options(&argc,&argv);
error=ok=isamchk_neaded=0;
if (join_table)
{ /* Join files into one */
if (open_isam_files(&merge,argv,(uint) argc) ||
compress(&merge,join_table))
error=1;
}
else while (argc--)
{
N_INFO *isam_file;
if (!(isam_file=open_isam_file(*argv++,O_RDWR)))
error=1;
else
{
merge.file= &isam_file;
merge.current=0;
merge.count=1;
if (compress(&merge,0))
error=1;
else
ok=1;
}
}
if (ok && isamchk_neaded && !silent)
puts("Remember to run isamchk -rq on compressed databases");
VOID(fflush(stdout)); VOID(fflush(stderr));
my_end(verbose ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
exit(error ? 2 : 0);
#ifndef _lint
return 0; /* No compiler warning */
#endif
}
static struct option long_options[] =
{
{"backup", no_argument, 0, 'b'},
{"debug", optional_argument, 0, '#'},
{"force", no_argument, 0, 'f'},
{"join", required_argument, 0, 'j'},
{"help", no_argument, 0, '?'},
{"packlength",required_argument, 0, 'p'},
{"silent", no_argument, 0, 's'},
{"tmpdir", required_argument, 0, 'T'},
{"test", no_argument, 0, 't'},
{"verbose", no_argument, 0, 'v'},
{"version", no_argument, 0, 'V'},
{"wait", no_argument, 0, 'w'},
{0, 0, 0, 0}
};
static void print_version(void)
{
printf("%s Ver 5.8 for %s on %s\n",my_progname,SYSTEM_TYPE,MACHINE_TYPE);
}
static void usage(void)
{
print_version();
puts("Copyright (C) 1994-2000 TcX AB & Monty Program KB & Detron HB.");
puts("This is not free software. You must have a licence to use this program");
puts("This software comes with ABSOLUTELY NO WARRANTY\n");
puts("Pack a ISAM-table to take much smaller space");
puts("Keys are not updated, so you must run isamchk -rq on any table");
puts("that has keys after you have compressed it");
puts("You should give the .ISM file as the filename argument");
printf("\nUsage: %s [OPTIONS] filename...\n", my_progname);
puts("\n\
-b, --backup Make a backup of the table as table_name.OLD\n\
-f, --force Force packing of table even if it's gets bigger or\n\
tempfile exists.\n\
-j, --join='new_table_name'\n\
Join all given tables into 'new_table_name'.\n\
All tables MUST have the identical layout.\n\
-p, --packlength=# Force storage size of recordlength (1,2 or 3)\n\
-s, --silent Be more silent.\n\
-t, --test Don't pack table, only test packing it\n\
-v, --verbose Write info about progress and packing result\n\
-w, --wait Wait and retry if table is in use\n\
-T, --tmpdir=# Use temporary directory to store temporary table\n\
-#, --debug=... output debug log. Often this is 'd:t:o,filename`\n\
-?, --help display this help and exit\n\
-V, --version output version information and exit\n");
print_defaults("my",load_default_groups);
};
/* reads options */
/* Initiates DEBUG - but no debugging here ! */
static void get_options(int *argc,char ***argv)
{
int c,option_index=0;
uint length;
my_progname= argv[0][0];
if (isatty(fileno(stdout)))
write_loop=1;
while ((c=getopt_long(*argc,*argv,"bfj:p:stvwT:#::?V",long_options,
&option_index)) != EOF)
{
switch(c) {
case 'b':
backup=1;
break;
case 'f':
force_pack=1;
tmpfile_createflag=O_RDWR | O_TRUNC;
break;
case 'j':
join_table=optarg;
break;
case 'p':
force_pack_ref_length=(uint) atoi(optarg);
if (force_pack_ref_length > 3)
force_pack_ref_length=0;
break;
case 's':
write_loop=verbose=0; silent=1;
break;
case 't':
test_only=verbose=1;
break;
case 'T':
length=(uint) (strmov(tmp_dir,optarg)-tmp_dir);
if (length != dirname_length(tmp_dir))
{
tmp_dir[length]=FN_LIBCHAR;
tmp_dir[length+1]=0;
}
break;
case 'v':
verbose=1; silent=0;
break;
case 'w':
opt_wait=1;
break;
case '#':
DBUG_PUSH(optarg ? optarg : "d:t:o");
break;
case 'V': print_version(); exit(0);
case 'I':
case '?':
usage();
exit(0);
default:
fprintf(stderr,"%s: Illegal option: -%c\n",my_progname,opterr);
usage();
exit(1);
}
}
(*argc)-=optind;
(*argv)+=optind;
if (!*argc)
{
usage();
exit(1);
}
if (join_table)
{
backup=0; /* Not needed */
tmp_dir[0]=0;
}
return;
}
static N_INFO *open_isam_file(char *name,int mode)
{
N_INFO *isam_file;
ISAM_SHARE *share;
DBUG_ENTER("open_isam_file");
if (!(isam_file=nisam_open(name,mode,(opt_wait ? HA_OPEN_WAIT_IF_LOCKED :
HA_OPEN_ABORT_IF_LOCKED))))
{
VOID(fprintf(stderr,"%s gave error %d on open\n",name,my_errno));
DBUG_RETURN(0);
}
share=isam_file->s;
if (share->base.blobs)
{
VOID(fprintf(stderr,"%s has blobs, can't pack it\n",name));
VOID(nisam_close(isam_file));
DBUG_RETURN(0);
}
if (share->base.options & HA_OPTION_COMPRESS_RECORD && !join_table)
{
if (!force_pack)
{
VOID(fprintf(stderr,"%s is already compressed\n",name));
VOID(nisam_close(isam_file));
DBUG_RETURN(0);
}
if (verbose)
puts("Recompressing already compressed table");
share->base.options&= ~HA_OPTION_READ_ONLY_DATA; /* We are modifing it */
}
if (! force_pack && share->state.records != 0 &&
(share->state.records <= 1 ||
share->state.data_file_length < 1024) && ! join_table)
{
VOID(fprintf(stderr,"%s is too small to compress\n",name));
VOID(nisam_close(isam_file));
DBUG_RETURN(0);
}
VOID(nisam_lock_database(isam_file,F_WRLCK));
DBUG_RETURN(isam_file);
}
static bool open_isam_files(MRG_INFO *mrg,char **names,uint count)
{
uint i,j;
mrg->count=0;
mrg->current=0;
mrg->file=(N_INFO**) my_malloc(sizeof(N_INFO*)*count,MYF(MY_FAE));
for (i=0; i < count ; i++)
{
if (!(mrg->file[i]=open_isam_file(names[i],O_RDONLY)))
goto error;
}
/* Check that files are identical */
for (j=0 ; j < count-1 ; j++)
{
N_RECINFO *m1,*m2,*end;
if (mrg->file[j]->s->base.reclength != mrg->file[j+1]->s->base.reclength ||
mrg->file[j]->s->base.fields != mrg->file[j+1]->s->base.fields)
goto diff_file;
m1=mrg->file[j]->s->rec;
end=m1+mrg->file[j]->s->base.fields;
m2=mrg->file[j+1]->s->rec;
for ( ; m1 != end ; m1++,m2++)
{
if ((m1->base.type != m2->base.type && ! force_pack) ||
m1->base.length != m2->base.length)
goto diff_file;
}
}
mrg->count=count;
return 0;
diff_file:
fprintf(stderr,"%s: Tables '%s' and '%s' are not identical\n",
my_progname,names[j],names[j+1]);
error:
while (i--)
nisam_close(mrg->file[i]);
return 1;
}
static int compress(MRG_INFO *mrg,char *result_table)
{
int error;
File new_file,join_isam_file;
N_INFO *isam_file;
ISAM_SHARE *share;
char org_name[FN_REFLEN],new_name[FN_REFLEN],temp_name[FN_REFLEN];
uint i,header_length,fields,trees,used_trees;
my_off_t old_length,new_length,tot_elements;
HUFF_COUNTS *huff_counts;
HUFF_TREE *huff_trees;
DBUG_ENTER("compress");
isam_file=mrg->file[0]; /* Take this as an example */
share=isam_file->s;
new_file=join_isam_file= -1;
trees=fields=0;
huff_trees=0;
huff_counts=0;
/* Create temporary or join file */
if (backup)
VOID(fn_format(org_name,isam_file->filename,"",N_NAME_DEXT,2));
else
VOID(fn_format(org_name,isam_file->filename,"",N_NAME_DEXT,2+4+16));
if (!test_only && result_table)
{
/* Make a new indexfile based on first file in list */
uint length;
char *buff;
strmov(org_name,result_table); /* Fix error messages */
VOID(fn_format(new_name,result_table,"",N_NAME_IEXT,2));
if ((join_isam_file=my_create(new_name,0,tmpfile_createflag,MYF(MY_WME)))
< 0)
goto err;
length=share->base.keystart;
if (!(buff=my_malloc(length,MYF(MY_WME))))
goto err;
if (my_pread(share->kfile,buff,length,0L,MYF(MY_WME | MY_NABP)) ||
my_write(join_isam_file,buff,length,
MYF(MY_WME | MY_NABP | MY_WAIT_IF_FULL)))
{
my_free(buff,MYF(0));
goto err;
}
my_free(buff,MYF(0));
VOID(fn_format(new_name,result_table,"",N_NAME_DEXT,2));
}
else if (!tmp_dir[0])
VOID(make_new_name(new_name,org_name));
else
VOID(fn_format(new_name,org_name,tmp_dir,DATA_TMP_EXT,1+2+4));
if (!test_only &&
(new_file=my_create(new_name,0,tmpfile_createflag,MYF(MY_WME))) < 0)
goto err;
/* Start calculating statistics */
mrg->records=0;
for (i=0 ; i < mrg->count ; i++)
mrg->records+=mrg->file[i]->s->state.records;
if (write_loop || verbose)
{
printf("Compressing %s: (%lu records)\n",
result_table ? new_name : org_name,(ulong) mrg->records);
}
trees=fields=share->base.fields;
huff_counts=init_huff_count(isam_file,mrg->records);
QUICK_SAFEMALLOC;
if (write_loop || verbose)
printf("- Calculating statistics\n");
if (get_statistic(mrg,huff_counts))
goto err;
NORMAL_SAFEMALLOC;
old_length=0;
for (i=0; i < mrg->count ; i++)
old_length+= (mrg->file[i]->s->state.data_file_length -
mrg->file[i]->s->state.empty);
if (init_queue(&queue,256,0,0,compare_huff_elements,0))
goto err;
check_counts(huff_counts,fields,mrg->records);
huff_trees=make_huff_trees(huff_counts,trees);
if ((int) (used_trees=join_same_trees(huff_counts,trees)) < 0)
goto err;
if (make_huff_decode_table(huff_trees,fields))
goto err;
init_file_buffer(new_file,0);
file_buffer.pos_in_file=HEAD_LENGTH;
if (! test_only)
VOID(my_seek(new_file,file_buffer.pos_in_file,MY_SEEK_SET,MYF(0)));
write_field_info(huff_counts,fields,used_trees);
if (!(tot_elements=write_huff_tree(huff_trees,trees)))
goto err;
header_length=(uint) file_buffer.pos_in_file+
(uint) (file_buffer.pos-file_buffer.buffer);
/* Compress file */
if (write_loop || verbose)
printf("- Compressing file\n");
error=compress_isam_file(mrg,huff_counts);
new_length=file_buffer.pos_in_file;
if (!error && !test_only)
{
char buff[MEMMAP_EXTRA_MARGIN]; /* End marginal for memmap */
bzero(buff,sizeof(buff));
error=my_write(file_buffer.file,buff,sizeof(buff),
MYF(MY_WME | MY_NABP | MY_WAIT_IF_FULL)) != 0;
}
if (!error)
error=write_header(mrg,header_length,used_trees,tot_elements,
new_length);
end_file_buffer();
if (verbose && mrg->records)
printf("Min record length: %6d Max length: %6d Mean total length: %6d\n",
mrg->min_pack_length,mrg->max_pack_length,
(long) new_length/mrg->records);
if (!test_only)
{
error|=my_close(new_file,MYF(MY_WME));
if (!result_table)
{
error|=my_close(isam_file->dfile,MYF(MY_WME));
isam_file->dfile= -1; /* Tell nisam_close file is closed */
}
}
free_counts_and_tree_and_queue(huff_trees,trees,huff_counts,fields);
if (! test_only && ! error)
{
if (result_table)
{
error=save_state_mrg(join_isam_file,mrg,new_length,crc);
}
else
{
if (backup)
{
if (my_rename(org_name,make_old_name(temp_name,isam_file->filename),
MYF(MY_WME)))
error=1;
else
{
if (tmp_dir[0])
{
if (!(error=my_copy(new_name,org_name,MYF(MY_WME))))
VOID(my_delete(new_name,MYF(MY_WME)));
}
else
error=my_rename(new_name,org_name,MYF(MY_WME));
if (!error)
VOID(my_copystat(temp_name,org_name,MYF(MY_COPYTIME)));
}
}
else
{
if (tmp_dir[0])
{
if (!(error=my_copy(new_name,org_name,
MYF(MY_WME | MY_HOLD_ORIGINAL_MODES
| MY_COPYTIME))))
VOID(my_delete(new_name,MYF(MY_WME)));
}
else
error=my_redel(org_name,new_name,MYF(MY_WME | MY_COPYTIME));
}
if (! error)
save_state(isam_file,mrg,new_length,crc);
}
}
error|=mrg_close(mrg);
if (join_isam_file >= 0)
error|=my_close(join_isam_file,MYF(MY_WME));
if (error)
{
VOID(fprintf(stderr,"Aborting: %s is not compressed\n",org_name));
DBUG_RETURN(-1);
}
if (write_loop || verbose)
{
if (old_length)
printf("%.4g%% \n",
my_off_t2double(old_length-new_length)*100.0/
my_off_t2double(old_length));
else
puts("Empty file saved in compressed format");
}
DBUG_RETURN(0);
err:
free_counts_and_tree_and_queue(huff_trees,trees,huff_counts,fields);
if (new_file >= 0)
VOID(my_close(new_file,MYF(0)));
if (join_isam_file >= 0)
VOID(my_close(join_isam_file,MYF(0)));
mrg_close(mrg);
VOID(fprintf(stderr,"Aborted: %s is not compressed\n",org_name));
DBUG_RETURN(-1);
}
/* Init a huff_count-struct for each field and init it */
static HUFF_COUNTS *init_huff_count(N_INFO *info,my_off_t records)
{
reg2 uint i;
reg1 HUFF_COUNTS *count;
if ((count = (HUFF_COUNTS*) my_malloc(info->s->base.fields*sizeof(HUFF_COUNTS),
MYF(MY_ZEROFILL | MY_WME))))
{
for (i=0 ; i < info->s->base.fields ; i++)
{
enum en_fieldtype type;
count[i].field_length=info->s->rec[i].base.length;
type= count[i].field_type= (enum en_fieldtype) info->s->rec[i].base.type;
if (type == FIELD_INTERVALL ||
type == FIELD_CONSTANT ||
type == FIELD_ZERO)
type = FIELD_NORMAL;
if (count[i].field_length <= 8 &&
(type == FIELD_NORMAL ||
type == FIELD_SKIPP_ZERO))
count[i].max_zero_fill= count[i].field_length;
init_tree(&count[i].int_tree,0,-1,(qsort_cmp) compare_tree,0,NULL);
if (records)
count[i].tree_pos=count[i].tree_buff =
my_malloc(count[i].field_length > 1 ? tree_buff_length : 2,
MYF(MY_WME));
}
}
return count;
}
/* Free memory used by counts and trees */
static void free_counts_and_tree_and_queue(HUFF_TREE *huff_trees, uint trees, HUFF_COUNTS *huff_counts, uint fields)
{
register uint i;
if (huff_trees)
{
for (i=0 ; i < trees ; i++)
{
if (huff_trees[i].element_buffer)
my_free((gptr) huff_trees[i].element_buffer,MYF(0));
if (huff_trees[i].code)
my_free((gptr) huff_trees[i].code,MYF(0));
}
my_free((gptr) huff_trees,MYF(0));
}
if (huff_counts)
{
for (i=0 ; i < fields ; i++)
{
if (huff_counts[i].tree_buff)
{
my_free((gptr) huff_counts[i].tree_buff,MYF(0));
delete_tree(&huff_counts[i].int_tree);
}
}
my_free((gptr) huff_counts,MYF(0));
}
delete_queue(&queue); /* This is safe to free */
return;
}
/* Read through old file and gather some statistics */
static int get_statistic(MRG_INFO *mrg,HUFF_COUNTS *huff_counts)
{
int error;
uint length,reclength;
byte *record,*pos,*next_pos,*end_pos,*start_pos;
my_off_t record_count;
HUFF_COUNTS *count,*end_count;
TREE_ELEMENT *element;
DBUG_ENTER("get_statistic");
reclength=mrg->file[0]->s->base.reclength;
record=(byte*) my_alloca(reclength);
end_count=huff_counts+mrg->file[0]->s->base.fields;
record_count=crc=0;
mrg_reset(mrg);
while ((error=mrg_rrnd(mrg,record)) >= 0)
{
if (! error)
{
crc^=checksum(record,reclength);
for (pos=record,count=huff_counts ;
count < end_count ;
count++,
pos=next_pos)
{
next_pos=end_pos=(start_pos=pos)+count->field_length;
/* Put value in tree if there is room for it */
if (count->tree_buff)
{
global_count=count;
if (!(element=tree_insert(&count->int_tree,pos,0)) ||
element->count == 1 &&
count->tree_buff + tree_buff_length <
count->tree_pos + count->field_length ||
count->field_length == 1 &&
count->int_tree.elements_in_tree > 1)
{
delete_tree(&count->int_tree);
my_free(count->tree_buff,MYF(0));
count->tree_buff=0;
}
else
{
if (element->count == 1)
{ /* New element */
memcpy(count->tree_pos,pos,(size_t) count->field_length);
tree_set_pointer(element,count->tree_pos);
count->tree_pos+=count->field_length;
}
}
}
/* Save character counters and space-counts and zero-field-counts */
if (count->field_type == FIELD_NORMAL ||
count->field_type == FIELD_SKIPP_ENDSPACE)
{
for ( ; end_pos > pos ; end_pos--)
if (end_pos[-1] != ' ')
break;
if (end_pos == pos)
{
count->empty_fields++;
count->max_zero_fill=0;
continue;
}
length= (uint) (next_pos-end_pos);
count->tot_end_space+=length;
if (length < 8)
count->end_space[length]++;
if (count->max_end_space < length)
count->max_end_space = length;
}
if (count->field_type == FIELD_NORMAL ||
count->field_type == FIELD_SKIPP_PRESPACE)
{
for (pos=start_pos; pos < end_pos ; pos++)
if (pos[0] != ' ')
break;
if (end_pos == pos)
{
count->empty_fields++;
count->max_zero_fill=0;
continue;
}
length= (uint) (pos-start_pos);
count->tot_pre_space+=length;
if (length < 8)
count->pre_space[length]++;
if (count->max_pre_space < length)
count->max_pre_space = length;
}
if (count->field_length <= 8 &&
(count->field_type == FIELD_NORMAL ||
count->field_type == FIELD_SKIPP_ZERO))
{
uint i;
if (!memcmp((byte*) start_pos,zero_string,count->field_length))
{
count->zero_fields++;
continue;
}
#ifdef BYTE_ORDER_HIGH_FIRST
for (i =0 ; i < count->max_zero_fill && ! start_pos[i] ; i++) ;
if (i < count->max_zero_fill)
count->max_zero_fill=i;
#else
for (i =0 ; i < count->max_zero_fill && ! end_pos[-1 - (int) i] ; i++) ;
if (i < count->max_zero_fill)
count->max_zero_fill=i;
#endif
}
for (pos=start_pos ; pos < end_pos ; pos++)
count->counts[(uchar) *pos]++;
}
record_count++;
if (write_loop && record_count % WRITE_COUNT == 0)
{
printf("%lu\r",(ulong) record_count); VOID(fflush(stdout));
}
}
}
if (write_loop)
{
printf(" \r"); VOID(fflush(stdout));
}
mrg->records=record_count;
my_afree((gptr) record);
DBUG_RETURN(0);
}
static int compare_huff_elements(void *not_used, byte *a, byte *b)
{
return *((my_off_t*) a) < *((my_off_t*) b) ? -1 :
(*((my_off_t*) a) == *((my_off_t*) b) ? 0 : 1);
}
/* Check each tree if we should use pre-space-compress, end-space-
compress, empty-field-compress or zero-field-compress */
static void check_counts(HUFF_COUNTS *huff_counts, uint trees, my_off_t records)
{
uint space_fields,fill_zero_fields,field_count[(int) FIELD_ZERO+1];
my_off_t old_length,new_length,length;
DBUG_ENTER("check_counts");
bzero((gptr) field_count,sizeof(field_count));
space_fields=fill_zero_fields=0;
for (; trees-- ; huff_counts++)
{
huff_counts->field_type=FIELD_NORMAL;
huff_counts->pack_type=0;
if (huff_counts->zero_fields || ! records)
{
my_off_t old_space_count;
if (huff_counts->zero_fields == records)
{
huff_counts->field_type= FIELD_ZERO;
huff_counts->bytes_packed=0;
huff_counts->counts[0]=0;
goto found_pack;
}
old_space_count=huff_counts->counts[' '];
huff_counts->counts[' ']+=huff_counts->tot_end_space+
huff_counts->tot_pre_space +
huff_counts->empty_fields * huff_counts->field_length;
old_length=calc_packed_length(huff_counts,0)+records/8;
length=huff_counts->zero_fields*huff_counts->field_length;
huff_counts->counts[0]+=length;
new_length=calc_packed_length(huff_counts,0);
if (old_length < new_length && huff_counts->field_length > 1)
{
huff_counts->field_type=FIELD_SKIPP_ZERO;
huff_counts->counts[0]-=length;
huff_counts->bytes_packed=old_length- records/8;
goto found_pack;
}
huff_counts->counts[' ']=old_space_count;
}
huff_counts->bytes_packed=calc_packed_length(huff_counts,0);
if (huff_counts->empty_fields)
{
if (huff_counts->field_length > 2 &&
huff_counts->empty_fields + (records - huff_counts->empty_fields)*
(1+max_bit(max(huff_counts->max_pre_space,
huff_counts->max_end_space))) <
records * max_bit(huff_counts->field_length))
{
huff_counts->pack_type |= PACK_TYPE_SPACE_FIELDS;
}
else
{
length=huff_counts->empty_fields*huff_counts->field_length;
if (huff_counts->tot_end_space || ! huff_counts->tot_pre_space)
{
huff_counts->tot_end_space+=length;
huff_counts->max_end_space=huff_counts->field_length;
if (huff_counts->field_length < 8)
huff_counts->end_space[huff_counts->field_length]+=
huff_counts->empty_fields;
}
else
{
huff_counts->tot_pre_space+=length;
huff_counts->max_pre_space=huff_counts->field_length;
if (huff_counts->field_length < 8)
huff_counts->pre_space[huff_counts->field_length]+=
huff_counts->empty_fields;
}
}
}
if (huff_counts->tot_end_space)
{
huff_counts->counts[' ']+=huff_counts->tot_pre_space;
if (test_space_compress(huff_counts,records,huff_counts->max_end_space,
huff_counts->end_space,
huff_counts->tot_end_space,FIELD_SKIPP_ENDSPACE))
goto found_pack;
huff_counts->counts[' ']-=huff_counts->tot_pre_space;
}
if (huff_counts->tot_pre_space)
{
if (test_space_compress(huff_counts,records,huff_counts->max_pre_space,
huff_counts->pre_space,
huff_counts->tot_pre_space,FIELD_SKIPP_PRESPACE))
goto found_pack;
}
found_pack: /* Found field-packing */
/* Test if we can use zero-fill */
if (huff_counts->max_zero_fill &&
(huff_counts->field_type == FIELD_NORMAL ||
huff_counts->field_type == FIELD_SKIPP_ZERO))
{
huff_counts->counts[0]-=huff_counts->max_zero_fill*
(huff_counts->field_type == FIELD_SKIPP_ZERO ?
records - huff_counts->zero_fields : records);
huff_counts->pack_type|=PACK_TYPE_ZERO_FILL;
huff_counts->bytes_packed=calc_packed_length(huff_counts,0);
}
/* Test if intervall-field is better */
if (huff_counts->tree_buff)
{
HUFF_TREE tree;
tree.element_buffer=0;
if (!make_huff_tree(&tree,huff_counts) &&
tree.bytes_packed+tree.tree_pack_length < huff_counts->bytes_packed)
{
if (tree.elements == 1)
huff_counts->field_type=FIELD_CONSTANT;
else
huff_counts->field_type=FIELD_INTERVALL;
huff_counts->pack_type=0;
}
else
{
my_free((gptr) huff_counts->tree_buff,MYF(0));
delete_tree(&huff_counts->int_tree);
huff_counts->tree_buff=0;
}
if (tree.element_buffer)
my_free((gptr) tree.element_buffer,MYF(0));
}
if (huff_counts->pack_type & PACK_TYPE_SPACE_FIELDS)
space_fields++;
if (huff_counts->pack_type & PACK_TYPE_ZERO_FILL)
fill_zero_fields++;
field_count[huff_counts->field_type]++;
}
if (verbose)
printf("\nnormal: %3d empty-space: %3d empty-zero: %3d empty-fill: %3d\npre-space: %3d end-space: %3d table-lookup: %3d zero: %3d\n",
field_count[FIELD_NORMAL],space_fields,
field_count[FIELD_SKIPP_ZERO],fill_zero_fields,
field_count[FIELD_SKIPP_PRESPACE],
field_count[FIELD_SKIPP_ENDSPACE],
field_count[FIELD_INTERVALL],
field_count[FIELD_ZERO]);
DBUG_VOID_RETURN;
}
/* Test if we can use space-compression and empty-field-compression */
static int
test_space_compress(HUFF_COUNTS *huff_counts, my_off_t records,
uint max_space_length, my_off_t *space_counts,
my_off_t tot_space_count, enum en_fieldtype field_type)
{
int min_pos;
uint length_bits,i;
my_off_t space_count,min_space_count,min_pack,new_length,skipp;
length_bits=max_bit(max_space_length);
/* Default no end_space-packing */
space_count=huff_counts->counts[(uint) ' '];
min_space_count= (huff_counts->counts[(uint) ' ']+= tot_space_count);
min_pack=calc_packed_length(huff_counts,0);
min_pos= -2;
huff_counts->counts[(uint) ' ']=space_count;
/* Test with allways space-count */
new_length=huff_counts->bytes_packed+length_bits*records/8;
if (new_length+1 < min_pack)
{
min_pos= -1;
min_pack=new_length;
min_space_count=space_count;
}
/* Test with length-flag */
for (skipp=0L, i=0 ; i < 8 ; i++)
{
if (space_counts[i])
{
if (i)
huff_counts->counts[(uint) ' ']+=space_counts[i];
skipp+=huff_counts->pre_space[i];
new_length=calc_packed_length(huff_counts,0)+
(records+(records-skipp)*(1+length_bits))/8;
if (new_length < min_pack)
{
min_pos=(int) i;
min_pack=new_length;
min_space_count=huff_counts->counts[(uint) ' '];
}
}
}
huff_counts->counts[(uint) ' ']=min_space_count;
huff_counts->bytes_packed=min_pack;
switch (min_pos) {
case -2:
return(0); /* No space-compress */
case -1: /* Always space-count */
huff_counts->field_type=field_type;
huff_counts->min_space=0;
huff_counts->length_bits=max_bit(max_space_length);
break;
default:
huff_counts->field_type=field_type;
huff_counts->min_space=(uint) min_pos;
huff_counts->pack_type|=PACK_TYPE_SELECTED;
huff_counts->length_bits=max_bit(max_space_length);
break;
}
return(1); /* Using space-compress */
}
/* Make a huff_tree of each huff_count */
static HUFF_TREE* make_huff_trees(HUFF_COUNTS *huff_counts, uint trees)
{
uint tree;
HUFF_TREE *huff_tree;
DBUG_ENTER("make_huff_trees");
if (!(huff_tree=(HUFF_TREE*) my_malloc(trees*sizeof(HUFF_TREE),
MYF(MY_WME | MY_ZEROFILL))))
DBUG_RETURN(0);
for (tree=0 ; tree < trees ; tree++)
{
if (make_huff_tree(huff_tree+tree,huff_counts+tree))
{
while (tree--)
my_free((gptr) huff_tree[tree].element_buffer,MYF(0));
my_free((gptr) huff_tree,MYF(0));
DBUG_RETURN(0);
}
}
DBUG_RETURN(huff_tree);
}
/* Update huff_tree according to huff_counts->counts or
huff_counts->tree_buff */
static int make_huff_tree(HUFF_TREE *huff_tree, HUFF_COUNTS *huff_counts)
{
uint i,found,bits_packed,first,last;
my_off_t bytes_packed;
HUFF_ELEMENT *a,*b,*new;
first=last=0;
if (huff_counts->tree_buff)
{
found= (uint) (huff_counts->tree_pos - huff_counts->tree_buff) /
huff_counts->field_length;
first=0; last=found-1;
}
else
{
for (i=found=0 ; i < 256 ; i++)
{
if (huff_counts->counts[i])
{
if (! found++)
first=i;
last=i;
}
}
if (found < 2)
found=2;
}
if (queue.max_elements < found)
{
delete_queue(&queue);
if (init_queue(&queue,found,0,0,compare_huff_elements,0))
return -1;
}
if (!huff_tree->element_buffer)
{
if (!(huff_tree->element_buffer=
(HUFF_ELEMENT*) my_malloc(found*2*sizeof(HUFF_ELEMENT),MYF(MY_WME))))
return 1;
}
else
{
HUFF_ELEMENT *temp;
if (!(temp=
(HUFF_ELEMENT*) my_realloc((gptr) huff_tree->element_buffer,
found*2*sizeof(HUFF_ELEMENT),
MYF(MY_WME))))
return 1;
huff_tree->element_buffer=temp;
}
huff_counts->tree=huff_tree;
huff_tree->counts=huff_counts;
huff_tree->min_chr=first;
huff_tree->max_chr=last;
huff_tree->char_bits=max_bit(last-first);
huff_tree->offset_bits=max_bit(found-1)+1;
if (huff_counts->tree_buff)
{
huff_tree->elements=0;
tree_walk(&huff_counts->int_tree,
(int (*)(void*, element_count,void*)) save_counts_in_queue,
(gptr) huff_tree, left_root_right);
huff_tree->tree_pack_length=(1+15+16+5+5+
(huff_tree->char_bits+1)*found+
(huff_tree->offset_bits+1)*
(found-2)+7)/8 +
(uint) (huff_tree->counts->tree_pos-
huff_tree->counts->tree_buff);
}
else
{
huff_tree->elements=found;
huff_tree->tree_pack_length=(9+9+5+5+
(huff_tree->char_bits+1)*found+
(huff_tree->offset_bits+1)*
(found-2)+7)/8;
for (i=first, found=0 ; i <= last ; i++)
{
if (huff_counts->counts[i])
{
new=huff_tree->element_buffer+(found++);
new->count=huff_counts->counts[i];
new->a.leaf.null=0;
new->a.leaf.element_nr=i;
queue.root[found]=(byte*) new;
}
}
while (found < 2)
{ /* Our huff_trees request at least 2 elements */
new=huff_tree->element_buffer+(found++);
new->count=0;
new->a.leaf.null=0;
if (last)
new->a.leaf.element_nr=huff_tree->min_chr=last-1;
else
new->a.leaf.element_nr=huff_tree->max_chr=last+1;
queue.root[found]=(byte*) new;
}
}
queue.elements=found;
for (i=found/2 ; i > 0 ; i--)
_downheap(&queue,i);
bytes_packed=0; bits_packed=0;
for (i=1 ; i < found ; i++)
{
a=(HUFF_ELEMENT*) queue_remove(&queue,0);
b=(HUFF_ELEMENT*) queue.root[1];
new=huff_tree->element_buffer+found+i;
new->count=a->count+b->count;
bits_packed+=(uint) (new->count & 7);
bytes_packed+=new->count/8;
new->a.nod.left=a; /* lesser in left */
new->a.nod.right=b;
queue.root[1]=(byte*) new;
queue_replaced(&queue);
}
huff_tree->root=(HUFF_ELEMENT*) queue.root[1];
huff_tree->bytes_packed=bytes_packed+(bits_packed+7)/8;
return 0;
}
static int compare_tree(register const uchar *s, register const uchar *t)
{
uint length;
for (length=global_count->field_length; length-- ;)
if (*s++ != *t++)
return (int) s[-1] - (int) t[-1];
return 0;
}
/* Used by make_huff_tree to save intervall-counts in queue */
static int save_counts_in_queue(byte *key, element_count count, HUFF_TREE *tree)
{
HUFF_ELEMENT *new;
new=tree->element_buffer+(tree->elements++);
new->count=count;
new->a.leaf.null=0;
new->a.leaf.element_nr= (uint) (key- tree->counts->tree_buff) /
tree->counts->field_length;
queue.root[tree->elements]=(byte*) new;
return 0;
}
/* Calculate length of file if given counts should be used */
/* Its actually a faster version of make_huff_tree */
static my_off_t calc_packed_length(HUFF_COUNTS *huff_counts, uint add_tree_lenght)
{
uint i,found,bits_packed,first,last;
my_off_t bytes_packed;
HUFF_ELEMENT element_buffer[256];
DBUG_ENTER("calc_packed_length");
first=last=0;
for (i=found=0 ; i < 256 ; i++)
{
if (huff_counts->counts[i])
{
if (! found++)
first=i;
last=i;
queue.root[found]=(byte*) &huff_counts->counts[i];
}
}
if (!found)
DBUG_RETURN(0); /* Empty tree */
if (found < 2)
queue.root[++found]=(byte*) &huff_counts->counts[last ? 0 : 1];
queue.elements=found;
bytes_packed=0; bits_packed=0;
if (add_tree_lenght)
bytes_packed=(8+9+5+5+(max_bit(last-first)+1)*found+
(max_bit(found-1)+1+1)*(found-2) +7)/8;
for (i=(found+1)/2 ; i > 0 ; i--)
_downheap(&queue,i);
for (i=0 ; i < found-1 ; i++)
{
HUFF_ELEMENT *a,*b,*new;
a=(HUFF_ELEMENT*) queue_remove(&queue,0);
b=(HUFF_ELEMENT*) queue.root[1];
new=element_buffer+i;
new->count=a->count+b->count;
bits_packed+=(uint) (new->count & 7);
bytes_packed+=new->count/8;
queue.root[1]=(byte*) new;
queue_replaced(&queue);
}
DBUG_RETURN(bytes_packed+(bits_packed+7)/8);
}
/* Remove trees that don't give any compression */
static uint join_same_trees(HUFF_COUNTS *huff_counts, uint trees)
{
uint k,tree_number;
HUFF_COUNTS count,*i,*j,*last_count;
last_count=huff_counts+trees;
for (tree_number=0, i=huff_counts ; i < last_count ; i++)
{
if (!i->tree->tree_number)
{
i->tree->tree_number= ++tree_number;
if (i->tree_buff)
continue; /* Don't join intervall */
for (j=i+1 ; j < last_count ; j++)
{
if (! j->tree->tree_number && ! j->tree_buff)
{
for (k=0 ; k < 256 ; k++)
count.counts[k]=i->counts[k]+j->counts[k];
if (calc_packed_length(&count,1) <=
i->tree->bytes_packed + j->tree->bytes_packed+
i->tree->tree_pack_length+j->tree->tree_pack_length+
ALLOWED_JOIN_DIFF)
{
memcpy((byte*) i->counts,(byte*) count.counts,
sizeof(count.counts[0])*256);
my_free((gptr) j->tree->element_buffer,MYF(0));
j->tree->element_buffer=0;
j->tree=i->tree;
bmove((byte*) i->counts,(byte*) count.counts,
sizeof(count.counts[0])*256);
if (make_huff_tree(i->tree,i))
return (uint) -1;
}
}
}
}
}
if (verbose)
printf("Original trees: %d After join: %d\n",trees,tree_number);
return tree_number; /* Return trees left */
}
/* Fill in huff_tree decode tables */
static int make_huff_decode_table(HUFF_TREE *huff_tree, uint trees)
{
uint elements;
for ( ; trees-- ; huff_tree++)
{
if (huff_tree->tree_number > 0)
{
elements=huff_tree->counts->tree_buff ? huff_tree->elements : 256;
if (!(huff_tree->code =
(ulong*) my_malloc(elements*
(sizeof(ulong)+sizeof(uchar)),
MYF(MY_WME | MY_ZEROFILL))))
return 1;
huff_tree->code_len=(uchar*) (huff_tree->code+elements);
make_traverse_code_tree(huff_tree,huff_tree->root,32,0);
}
}
return 0;
}
static void make_traverse_code_tree(HUFF_TREE *huff_tree, HUFF_ELEMENT *element,
uint size, ulong code)
{
uint chr;
if (!element->a.leaf.null)
{
chr=element->a.leaf.element_nr;
huff_tree->code_len[chr]=(uchar) (32-size);
huff_tree->code[chr]= (code >> size);
if (huff_tree->height < 32-size)
huff_tree->height= 32-size;
}
else
{
size--;
make_traverse_code_tree(huff_tree,element->a.nod.left,size,code);
make_traverse_code_tree(huff_tree,element->a.nod.right,size,
code+((ulong) 1L << size));
}
return;
}
/* Write header to new packed data file */
static int write_header(MRG_INFO *mrg,uint head_length,uint trees,
my_off_t tot_elements,my_off_t filelength)
{
byte *buff=file_buffer.pos;
bzero(buff,HEAD_LENGTH);
memcpy(buff,nisam_pack_file_magic,4);
int4store(buff+4,head_length);
int4store(buff+8, mrg->min_pack_length);
int4store(buff+12,mrg->max_pack_length);
int4store(buff+16,tot_elements);
int4store(buff+20,intervall_length);
int2store(buff+24,trees);
buff[26]=(char) mrg->ref_length;
/* Save record pointer length */
buff[27]= (uchar) (filelength >= (1L << 24) ? 4 :
filelength >= (1L << 16) ? 3 : 2);
if (test_only)
return 0;
VOID(my_seek(file_buffer.file,0L,MY_SEEK_SET,MYF(0)));
return my_write(file_buffer.file,file_buffer.pos,HEAD_LENGTH,
MYF(MY_WME | MY_NABP | MY_WAIT_IF_FULL)) != 0;
}
/* Write fieldinfo to new packed file */
static void write_field_info(HUFF_COUNTS *counts, uint fields, uint trees)
{
reg1 uint i;
uint huff_tree_bits;
huff_tree_bits=max_bit(trees ? trees-1 : 0);
for (i=0 ; i++ < fields ; counts++)
{
write_bits((ulong) (int) counts->field_type,4);
write_bits(counts->pack_type,4);
if (counts->pack_type & PACK_TYPE_ZERO_FILL)
write_bits(counts->max_zero_fill,4);
else
write_bits(counts->length_bits,4);
write_bits((ulong) counts->tree->tree_number-1,huff_tree_bits);
}
flush_bits();
return;
}
/* Write all huff_trees to new datafile. Return tot count of
elements in all trees
Returns 0 on error */
static my_off_t write_huff_tree(HUFF_TREE *huff_tree, uint trees)
{
uint i,int_length;
uint *packed_tree,*offset,length;
my_off_t elements;
for (i=length=0 ; i < trees ; i++)
if (huff_tree[i].tree_number > 0 && huff_tree[i].elements > length)
length=huff_tree[i].elements;
if (!(packed_tree=(uint*) my_alloca(sizeof(uint)*length*2)))
{
my_error(EE_OUTOFMEMORY,MYF(ME_BELL),sizeof(uint)*length*2);
return 0;
}
intervall_length=0;
for (elements=0; trees-- ; huff_tree++)
{
if (huff_tree->tree_number == 0)
continue; /* Deleted tree */
elements+=huff_tree->elements;
huff_tree->max_offset=2;
if (huff_tree->elements <= 1)
offset=packed_tree;
else
offset=make_offset_code_tree(huff_tree,huff_tree->root,packed_tree);
huff_tree->offset_bits=max_bit(huff_tree->max_offset);
if (huff_tree->max_offset >= IS_OFFSET)
{ /* This should be impossible */
VOID(fprintf(stderr,"Tree offset got too big: %d, aborted\n",
huff_tree->max_offset));
my_afree((gptr) packed_tree);
return 0;
}
#ifdef EXTRA_DBUG
printf("pos: %d elements: %d tree-elements: %d char_bits: %d\n",
(uint) (file_buffer.pos-file_buffer.buffer),
huff_tree->elements, (offset-packed_tree),huff_tree->char_bits);
#endif
if (!huff_tree->counts->tree_buff)
{
write_bits(0,1);
write_bits(huff_tree->min_chr,8);
write_bits(huff_tree->elements,9);
write_bits(huff_tree->char_bits,5);
write_bits(huff_tree->offset_bits,5);
int_length=0;
}
else
{
int_length=(uint) (huff_tree->counts->tree_pos -
huff_tree->counts->tree_buff);
write_bits(1,1);
write_bits(huff_tree->elements,15);
write_bits(int_length,16);
write_bits(huff_tree->char_bits,5);
write_bits(huff_tree->offset_bits,5);
intervall_length+=int_length;
}
length=(uint) (offset-packed_tree);
if (length != huff_tree->elements*2-2)
printf("error: Huff-tree-length: %d != calc_length: %d\n",
length,huff_tree->elements*2-2);
for (i=0 ; i < length ; i++)
{
if (packed_tree[i] & IS_OFFSET)
write_bits(packed_tree[i] - IS_OFFSET+ ((ulong) 1L << huff_tree->offset_bits),
huff_tree->offset_bits+1);
else
write_bits(packed_tree[i]-huff_tree->min_chr,huff_tree->char_bits+1);
}
flush_bits();
if (huff_tree->counts->tree_buff)
{
for (i=0 ; i < int_length ; i++)
write_bits((uint) (uchar) huff_tree->counts->tree_buff[i],8);
}
flush_bits();
}
my_afree((gptr) packed_tree);
return elements;
}
static uint *make_offset_code_tree(HUFF_TREE *huff_tree, HUFF_ELEMENT *element,
uint *offset)
{
uint *prev_offset;
prev_offset= offset;
if (!element->a.nod.left->a.leaf.null)
{
offset[0] =(uint) element->a.nod.left->a.leaf.element_nr;
offset+=2;
}
else
{
prev_offset[0]= IS_OFFSET+2;
offset=make_offset_code_tree(huff_tree,element->a.nod.left,offset+2);
}
if (!element->a.nod.right->a.leaf.null)
{
prev_offset[1]=element->a.nod.right->a.leaf.element_nr;
return offset;
}
else
{
uint temp=(uint) (offset-prev_offset-1);
prev_offset[1]= IS_OFFSET+ temp;
if (huff_tree->max_offset < temp)
huff_tree->max_offset = temp;
return make_offset_code_tree(huff_tree,element->a.nod.right,offset);
}
}
/* Get number of bits neaded to represent value */
static uint max_bit(register uint value)
{
reg2 uint power=1;
while ((value>>=1))
power++;
return (power);
}
static int compress_isam_file(MRG_INFO *mrg, HUFF_COUNTS *huff_counts)
{
int error;
uint i,max_calc_length,pack_ref_length,min_record_length,max_record_length,
intervall,field_length;
my_off_t record_count,max_allowed_length;
ulong length;
byte *record,*pos,*end_pos,*record_pos,*start_pos;
HUFF_COUNTS *count,*end_count;
HUFF_TREE *tree;
N_INFO *isam_file=mrg->file[0];
DBUG_ENTER("compress_isam_file");
if (!(record=(byte*) my_alloca(isam_file->s->base.reclength)))
return -1;
end_count=huff_counts+isam_file->s->base.fields;
min_record_length= (uint) ~0;
max_record_length=0;
for (i=max_calc_length=0 ; i < isam_file->s->base.fields ; i++)
{
if (!(huff_counts[i].pack_type & PACK_TYPE_ZERO_FILL))
huff_counts[i].max_zero_fill=0;
if (huff_counts[i].field_type == FIELD_CONSTANT ||
huff_counts[i].field_type == FIELD_ZERO)
continue;
if (huff_counts[i].field_type == FIELD_INTERVALL)
max_calc_length+=huff_counts[i].tree->height;
else
max_calc_length+=
(huff_counts[i].field_length - huff_counts[i].max_zero_fill)*
huff_counts[i].tree->height+huff_counts[i].length_bits;
}
max_calc_length/=8;
if (max_calc_length <= 255)
pack_ref_length=1;
else if (max_calc_length <= 65535)
pack_ref_length=2;
else
pack_ref_length=3;
if (force_pack_ref_length)
pack_ref_length=force_pack_ref_length;
max_allowed_length= 1L << (pack_ref_length*8);
record_count=0;
mrg_reset(mrg);
while ((error=mrg_rrnd(mrg,record)) >= 0)
{
if (! error)
{
if (flush_buffer(max_calc_length+pack_ref_length))
break;
record_pos=file_buffer.pos;
file_buffer.pos+=pack_ref_length;
for (start_pos=record, count= huff_counts; count < end_count ; count++)
{
end_pos=start_pos+(field_length=count->field_length);
tree=count->tree;
if (count->pack_type & PACK_TYPE_SPACE_FIELDS)
{
for (pos=start_pos ; *pos == ' ' && pos < end_pos; pos++) ;
if (pos == end_pos)
{
write_bits(1,1);
start_pos=end_pos;
continue;
}
write_bits(0,1);
}
#ifdef BYTE_ORDER_HIGH_FIRST
start_pos+=count->max_zero_fill;
#else
end_pos-=count->max_zero_fill;
#endif
field_length-=count->max_zero_fill;
switch(count->field_type) {
case FIELD_SKIPP_ZERO:
if (!memcmp((byte*) start_pos,zero_string,field_length))
{
write_bits(1,1);
start_pos=end_pos;
break;
}
write_bits(0,1);
/* Fall through */
case FIELD_NORMAL:
for ( ; start_pos < end_pos ; start_pos++)
write_bits(tree->code[(uchar) *start_pos],
(uint) tree->code_len[(uchar) *start_pos]);
break;
case FIELD_SKIPP_ENDSPACE:
for (pos=end_pos ; pos > start_pos && pos[-1] == ' ' ; pos--) ;
length=(uint) (end_pos-pos);
if (count->pack_type & PACK_TYPE_SELECTED)
{
if (length > count->min_space)
{
write_bits(1,1);
write_bits(length,count->length_bits);
}
else
{
write_bits(0,1);
pos=end_pos;
}
}
else
write_bits(length,count->length_bits);
for ( ; start_pos < pos ; start_pos++)
write_bits(tree->code[(uchar) *start_pos],
(uint) tree->code_len[(uchar) *start_pos]);
start_pos=end_pos;
break;
case FIELD_SKIPP_PRESPACE:
for (pos=start_pos ; pos < end_pos && pos[0] == ' ' ; pos++) ;
length=(uint) (pos-start_pos);
if (count->pack_type & PACK_TYPE_SELECTED)
{
if (length > count->min_space)
{
write_bits(1,1);
write_bits(length,count->length_bits);
}
else
{
pos=start_pos;
write_bits(0,1);
}
}
else
write_bits(length,count->length_bits);
for (start_pos=pos ; start_pos < end_pos ; start_pos++)
write_bits(tree->code[(uchar) *start_pos],
(uint) tree->code_len[(uchar) *start_pos]);
break;
case FIELD_CONSTANT:
case FIELD_ZERO:
start_pos=end_pos;
break;
case FIELD_INTERVALL:
global_count=count;
pos=(byte*) tree_search(&count->int_tree,start_pos);
intervall=(uint) (pos - count->tree_buff)/field_length;
write_bits(tree->code[intervall],(uint) tree->code_len[intervall]);
start_pos=end_pos;
break;
case FIELD_BLOB:
VOID(fprintf(stderr,"Can't pack files with blobs. Aborting\n"));
DBUG_RETURN(1);
case FIELD_LAST:
case FIELD_VARCHAR:
case FIELD_CHECK:
abort(); /* Impossible */
}
#ifndef BYTE_ORDER_HIGH_FIRST
start_pos+=count->max_zero_fill;
#endif
}
flush_bits();
length=(ulong) (file_buffer.pos-record_pos)-pack_ref_length;
save_integer(record_pos,pack_ref_length,length);
if (length < (ulong) min_record_length)
min_record_length=(uint) length;
if (length > (ulong) max_record_length)
{
max_record_length=(uint) length;
if (max_record_length >= max_allowed_length)
{
fprintf(stderr,
"Error: Found record with packed-length: %d, max is: %d\n",
max_record_length,max_allowed_length);
error=1;
break;
}
}
if (write_loop && ++record_count % WRITE_COUNT == 0)
{
printf("%lu\r",(ulong) record_count); VOID(fflush(stdout));
}
}
else if (my_errno != HA_ERR_RECORD_DELETED)
break;
}
if (error < 0)
{
error=0;
if (my_errno != HA_ERR_END_OF_FILE)
{
fprintf(stderr,"%s: Got error %d reading records\n",my_progname,my_errno);
error= 1;
}
}
my_afree((gptr) record);
mrg->ref_length=pack_ref_length;
mrg->min_pack_length=max_record_length ? min_record_length : 0;
mrg->max_pack_length=max_record_length;
if (verbose && max_record_length &&
max_record_length < max_allowed_length/256)
printf("Record-length is %d bytes, could have been %d bytes\nYou can change this by using -p=%d next time you pack this file\n",
pack_ref_length,
max_record_length/256+1,
max_record_length/256+1);
DBUG_RETURN(error || error_on_write || flush_buffer((uint) ~0));
}
static char *make_new_name(char *new_name, char *old_name)
{
return fn_format(new_name,old_name,"",DATA_TMP_EXT,2+4);
}
static char *make_old_name(char *new_name, char *old_name)
{
return fn_format(new_name,old_name,"",OLD_EXT,2+4);
}
/* rutines for bit writing buffer */
static void init_file_buffer(File file, pbool read_buffer)
{
file_buffer.file=file;
file_buffer.buffer=my_malloc(ALIGN_SIZE(RECORD_CACHE_SIZE),MYF(MY_WME));
file_buffer.end=file_buffer.buffer+ALIGN_SIZE(RECORD_CACHE_SIZE)-4;
file_buffer.pos_in_file=0;
error_on_write=0;
if (read_buffer)
{
file_buffer.pos=file_buffer.end;
file_buffer.bits=0;
}
else
{
file_buffer.pos=file_buffer.buffer;
file_buffer.bits=BITS_SAVED;
}
file_buffer.byte=0;
}
static int flush_buffer(uint neaded_length)
{
uint length;
if ((uint) (file_buffer.end - file_buffer.pos) > neaded_length)
return 0;
length=(uint) (file_buffer.pos-file_buffer.buffer);
file_buffer.pos=file_buffer.buffer;
file_buffer.pos_in_file+=length;
if (test_only)
return 0;
return (error_on_write|=test(my_write(file_buffer.file,file_buffer.buffer,
length,
MYF(MY_WME | MY_NABP |
MY_WAIT_IF_FULL))));
}
static void end_file_buffer(void)
{
my_free((gptr) file_buffer.buffer,MYF(0));
}
/* output `bits` low bits of `value' */
static void write_bits (register ulong value, register uint bits)
{
if ((file_buffer.bits-=(int) bits) >= 0)
{
file_buffer.byte|=value << file_buffer.bits;
}
else
{
reg3 uint byte_buff;
bits= (uint) -file_buffer.bits;
byte_buff=file_buffer.byte | (uint) (value >> bits);
#if BITS_SAVED == 32
*file_buffer.pos++= (byte) (byte_buff >> 24) ;
*file_buffer.pos++= (byte) (byte_buff >> 16) ;
#endif
*file_buffer.pos++= (byte) (byte_buff >> 8) ;
*file_buffer.pos++= (byte) byte_buff;
value&=((ulong) 1L << bits)-1;
#if BITS_SAVED == 16
if (bits >= sizeof(uint))
{
bits-=8;
*file_buffer.pos++= (uchar) (value >> bits);
value&= ((ulong) 1L << bits)-1;
if (bits >= sizeof(uint))
{
bits-=8;
*file_buffer.pos++= (uchar) (value >> bits);
value&= ((ulong) 1L << bits)-1;
}
}
#endif
if (file_buffer.pos >= file_buffer.end)
VOID(flush_buffer((uint) ~0));
file_buffer.bits=(int) (BITS_SAVED - bits);
file_buffer.byte=(uint) (value << (BITS_SAVED - bits));
}
return;
}
/* Flush bits in bit_buffer to buffer */
static void flush_bits (void)
{
uint bits,byte_buff;
bits=(file_buffer.bits) & ~7;
byte_buff = file_buffer.byte >> bits;
bits=BITS_SAVED - bits;
while (bits > 0)
{
bits-=8;
*file_buffer.pos++= (byte) (uchar) (byte_buff >> bits) ;
}
file_buffer.bits=BITS_SAVED;
file_buffer.byte=0;
return;
}
/* Store long in 1,2,3,4 or 5 bytes */
static void save_integer(byte *pos, uint pack_length, my_off_t value)
{
switch (pack_length) {
case 5: int5store(pos,(ulonglong) value); break;
default: int4store(pos,(ulong) value); break;
case 3: int3store(pos,(ulong) value); break;
case 2: int2store(pos,(uint) value); break;
case 1: pos[0]= (byte) (uchar) value; break;
}
return;
}
/****************************************************************************
** functions to handle the joined files
****************************************************************************/
static void save_state(N_INFO *isam_file,MRG_INFO *mrg,my_off_t new_length,
ulong crc)
{
ISAM_SHARE *share=isam_file->s;
uint options=uint2korr(share->state.header.options);
DBUG_ENTER("save_state");
options|= HA_OPTION_COMPRESS_RECORD | HA_OPTION_READ_ONLY_DATA;
int2store(share->state.header.options,options);
share->state.data_file_length=(ulong) new_length;
share->state.del=share->state.empty=0;
share->state.dellink= (ulong) NI_POS_ERROR;
share->state.splitt=(ulong) mrg->records;
share->state.version=(ulong) time((time_t*) 0);
share->state.keys=0;
share->state.key_file_length=share->base.keystart;
isam_file->update|=(HA_STATE_CHANGED | HA_STATE_ROW_CHANGED);
isam_file->this_uniq=crc; /* Save crc here */
share->changed=1; /* Force write of header */
VOID(my_chsize(share->kfile,share->state.key_file_length,
MYF(0)));
if (share->state.keys != share->base.keys)
isamchk_neaded=1;
DBUG_VOID_RETURN;
}
static int save_state_mrg(File file,MRG_INFO *mrg,my_off_t new_length,
ulong crc)
{
N_STATE_INFO state;
N_INFO *isam_file=mrg->file[0];
uint options;
DBUG_ENTER("save_state_mrg");
memcpy(&state,&isam_file->s->state,sizeof(state));
options= (uint2korr(state.header.options) | HA_OPTION_COMPRESS_RECORD |
HA_OPTION_READ_ONLY_DATA);
int2store(state.header.options,options);
state.data_file_length=(ulong) new_length;
state.del=state.empty=0;
state.dellink= (ulong) NI_POS_ERROR;
state.records=state.splitt=(ulong) mrg->records;
state.version=(ulong) time((time_t*) 0);
state.keys=0;
state.key_file_length=isam_file->s->base.keystart;
state.uniq=crc;
if (state.keys != isam_file->s->base.keys)
isamchk_neaded=1;
DBUG_RETURN (my_pwrite(file,(char*) &state.header,
isam_file->s->state_length,0L,
MYF(MY_NABP | MY_WME)) != 0);
}
/* reset for mrg_rrnd */
static void mrg_reset(MRG_INFO *mrg)
{
if (mrg->current)
{
nisam_extra(*mrg->current,HA_EXTRA_NO_CACHE);
mrg->current=0;
}
}
static int mrg_rrnd(MRG_INFO *info,byte *buf)
{
int error;
N_INFO *isam_info;
my_off_t filepos;
if (!info->current)
{
isam_info= *(info->current=info->file);
info->end=info->current+info->count;
nisam_extra(isam_info,HA_EXTRA_CACHE);
nisam_extra(isam_info,HA_EXTRA_RESET);
filepos=isam_info->s->pack.header_length;
}
else
{
isam_info= *info->current;
filepos= isam_info->nextpos;
}
for (;;)
{
isam_info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED);
if ((error=(*isam_info->s->read_rnd)(isam_info,(byte*) buf,
(ulong) filepos, 1)) >= 0 ||
my_errno != HA_ERR_END_OF_FILE)
return (error);
nisam_extra(isam_info,HA_EXTRA_NO_CACHE);
if (info->current+1 == info->end)
return(-1);
info->current++;
isam_info= *info->current;
filepos=isam_info->s->pack.header_length;
nisam_extra(isam_info,HA_EXTRA_CACHE);
nisam_extra(isam_info,HA_EXTRA_RESET);
}
}
static int mrg_close(MRG_INFO *mrg)
{
uint i;
int error=0;
for (i=0 ; i < mrg->count ; i++)
error|=nisam_close(mrg->file[i]);
return error;
}