mariadb/libmysql/libmysql.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

2533 lines
68 KiB
C

/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
#define DONT_USE_RAID
#if defined(__WIN__) || defined(_WIN32) || defined(_WIN64)
#include <winsock.h>
#include <odbcinst.h>
#endif
#include <global.h>
#include <my_sys.h>
#include <mysys_err.h>
#include <m_string.h>
#include <m_ctype.h>
#include "mysql.h"
#include "mysql_version.h"
#include "mysqld_error.h"
#include "errmsg.h"
#include <violite.h>
#include <sys/stat.h>
#include <signal.h>
#include <time.h>
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#if !defined(MSDOS) && !defined(__WIN__)
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#ifdef HAVE_SELECT_H
# include <select.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif
#if defined(THREAD) && !defined(__WIN__)
#include <my_pthread.h> /* because of signal() */
#endif
#ifndef INADDR_NONE
#define INADDR_NONE -1
#endif
static my_bool mysql_client_init=0;
uint mysql_port=0;
my_string mysql_unix_port=0;
#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_LOCAL_FILES | CLIENT_TRANSACTIONS)
#if defined(MSDOS) || defined(__WIN__)
#define ERRNO WSAGetLastError()
#define perror(A)
#else
#include <errno.h>
#define ERRNO errno
#define SOCKET_ERROR -1
#define closesocket(A) close(A)
#endif
static void mysql_once_init(void);
static MYSQL_DATA *read_rows (MYSQL *mysql,MYSQL_FIELD *fields,
uint field_count);
static int read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row,
ulong *lengths);
static void end_server(MYSQL *mysql);
static void read_user_name(char *name);
static void append_wild(char *to,char *end,const char *wild);
static my_bool mysql_reconnect(MYSQL *mysql);
static int send_file_to_server(MYSQL *mysql,const char *filename);
static sig_handler pipe_sig_handler(int sig);
static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
const char *from, ulong length);
/*
Let the user specify that we don't want SIGPIPE; This doesn't however work
with threaded applications as we can have multiple read in progress.
*/
#if !defined(__WIN__) && defined(SIGPIPE) && !defined(THREAD)
#define init_sigpipe_variables sig_return old_signal_handler=(sig_return) 0;
#define set_sigpipe(mysql) if ((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE) old_signal_handler=signal(SIGPIPE,pipe_sig_handler)
#define reset_sigpipe(mysql) if ((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE) signal(SIGPIPE,old_signal_handler);
#else
#define init_sigpipe_variables
#define set_sigpipe(mysql)
#define reset_sigpipe(mysql)
#endif
/****************************************************************************
* A modified version of connect(). connect2() allows you to specify
* a timeout value, in seconds, that we should wait until we
* derermine we can't connect to a particular host. If timeout is 0,
* connect2() will behave exactly like connect().
*
* Base version coded by Steve Bernacki, Jr. <steve@navinet.net>
*****************************************************************************/
static int connect2(File s, const struct sockaddr *name, uint namelen, uint to)
{
#if defined(__WIN__)
return connect(s, (struct sockaddr*) name, namelen);
#else
int flags, res, s_err;
size_socket s_err_size = sizeof(uint);
fd_set sfds;
struct timeval tv;
time_t start_time, now_time;
/* If they passed us a timeout of zero, we should behave
* exactly like the normal connect() call does.
*/
if (to == 0)
return connect(s, (struct sockaddr*) name, namelen);
flags = fcntl(s, F_GETFL, 0); /* Set socket to not block */
#ifdef O_NONBLOCK
fcntl(s, F_SETFL, flags | O_NONBLOCK); /* and save the flags.. */
#endif
res = connect(s, (struct sockaddr*) name, namelen);
s_err = errno; /* Save the error... */
fcntl(s, F_SETFL, flags);
if ((res != 0) && (s_err != EINPROGRESS))
{
errno = s_err; /* Restore it */
return(-1);
}
if (res == 0) /* Connected quickly! */
return(0);
/* Otherwise, our connection is "in progress." We can use
* the select() call to wait up to a specified period of time
* for the connection to suceed. If select() returns 0
* (after waiting howevermany seconds), our socket never became
* writable (host is probably unreachable.) Otherwise, if
* select() returns 1, then one of two conditions exist:
*
* 1. An error occured. We use getsockopt() to check for this.
* 2. The connection was set up sucessfully: getsockopt() will
* return 0 as an error.
*
* Thanks goes to Andrew Gierth <andrew@erlenstar.demon.co.uk>
* who posted this method of timing out a connect() in
* comp.unix.programmer on August 15th, 1997.
*/
FD_ZERO(&sfds);
FD_SET(s, &sfds);
/*
* select could be interrupted by a signal, and if it is,
* the timeout should be adjusted and the select restarted
* to work around OSes that don't restart select and
* implementations of select that don't adjust tv upon
* failure to reflect the time remaining
*/
start_time = time(NULL);
for (;;)
{
tv.tv_sec = (long) to;
tv.tv_usec = 0;
if ((res = select(s+1, NULL, &sfds, NULL, &tv)) >= 0)
break;
now_time=time(NULL);
to-= (uint) (now_time - start_time);
if (errno != EINTR || (int) to <= 0)
return -1;
}
/* select() returned something more interesting than zero, let's
* see if we have any errors. If the next two statements pass,
* we've got an open socket!
*/
s_err=0;
if (getsockopt(s, SOL_SOCKET, SO_ERROR, (char*) &s_err, &s_err_size) != 0)
return(-1);
if (s_err)
{ /* getsockopt() could suceed */
errno = s_err;
return(-1); /* but return an error... */
}
return(0); /* It's all good! */
#endif
}
/*
** Create a named pipe connection
*/
#ifdef __WIN__
HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
char **arg_unix_socket)
{
HANDLE hPipe=INVALID_HANDLE_VALUE;
char szPipeName [ 257 ];
DWORD dwMode;
int i;
my_bool testing_named_pipes=0;
char *host= *arg_host, *unix_socket= *arg_unix_socket;
if ( ! unix_socket || (unix_socket)[0] == 0x00)
unix_socket = mysql_unix_port;
if (!host || !strcmp(host,LOCAL_HOST))
host=LOCAL_HOST_NAMEDPIPE;
sprintf( szPipeName, "\\\\%s\\pipe\\%s", host, unix_socket);
DBUG_PRINT("info",("Server name: '%s'. Named Pipe: %s",
host, unix_socket));
for (i=0 ; i < 100 ; i++) /* Don't retry forever */
{
if ((hPipe = CreateFile(szPipeName,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL )) != INVALID_HANDLE_VALUE)
break;
if (GetLastError() != ERROR_PIPE_BUSY)
{
net->last_errno=CR_NAMEDPIPEOPEN_ERROR;
sprintf(net->last_error,ER(net->last_errno),host, unix_socket,
(ulong) GetLastError());
return INVALID_HANDLE_VALUE;
}
/* wait for for an other instance */
if (! WaitNamedPipe(szPipeName, connect_timeout*1000) )
{
net->last_errno=CR_NAMEDPIPEWAIT_ERROR;
sprintf(net->last_error,ER(net->last_errno),host, unix_socket,
(ulong) GetLastError());
return INVALID_HANDLE_VALUE;
}
}
if (hPipe == INVALID_HANDLE_VALUE)
{
net->last_errno=CR_NAMEDPIPEOPEN_ERROR;
sprintf(net->last_error,ER(net->last_errno),host, unix_socket,
(ulong) GetLastError());
return INVALID_HANDLE_VALUE;
}
dwMode = PIPE_READMODE_BYTE | PIPE_WAIT;
if ( !SetNamedPipeHandleState(hPipe, &dwMode, NULL, NULL) )
{
CloseHandle( hPipe );
net->last_errno=CR_NAMEDPIPESETSTATE_ERROR;
sprintf(net->last_error,ER(net->last_errno),host, unix_socket,
(ulong) GetLastError());
return INVALID_HANDLE_VALUE;
}
*arg_host=host ; *arg_unix_socket=unix_socket; /* connect arg */
return (hPipe);
}
#endif
/*****************************************************************************
** read a packet from server. Give error message if socket was down
** or packet is an error message
*****************************************************************************/
static uint
net_safe_read(MYSQL *mysql)
{
NET *net= &mysql->net;
uint len=0;
init_sigpipe_variables
/* Don't give sigpipe errors if the client doesn't want them */
set_sigpipe(mysql);
if (net->vio != 0)
len=my_net_read(net);
reset_sigpipe(mysql);
if (len == packet_error || len == 0)
{
DBUG_PRINT("error",("Wrong connection or packet. fd: %s len: %d",
vio_description(net->vio),len));
end_server(mysql);
net->last_errno=(net->last_errno == ER_NET_PACKET_TOO_LARGE ?
CR_NET_PACKET_TOO_LARGE:
CR_SERVER_LOST);
strmov(net->last_error,ER(net->last_errno));
return(packet_error);
}
if (net->read_pos[0] == 255)
{
if (len > 3)
{
char *pos=(char*) net->read_pos+1;
if (mysql->protocol_version > 9)
{ /* New client protocol */
net->last_errno=uint2korr(pos);
pos+=2;
len-=2;
}
else
{
net->last_errno=CR_UNKNOWN_ERROR;
len--;
}
(void) strmake(net->last_error,(char*) pos,
min(len,sizeof(net->last_error)-1));
}
else
{
net->last_errno=CR_UNKNOWN_ERROR;
(void) strmov(net->last_error,ER(net->last_errno));
}
DBUG_PRINT("error",("Got error: %d (%s)", net->last_errno,
net->last_error));
return(packet_error);
}
return len;
}
/* Get the length of next field. Change parameter to point at fieldstart */
static ulong
net_field_length(uchar **packet)
{
reg1 uchar *pos= *packet;
if (*pos < 251)
{
(*packet)++;
return (ulong) *pos;
}
if (*pos == 251)
{
(*packet)++;
return NULL_LENGTH;
}
if (*pos == 252)
{
(*packet)+=3;
return (ulong) uint2korr(pos+1);
}
if (*pos == 253)
{
(*packet)+=4;
return (ulong) uint3korr(pos+1);
}
(*packet)+=9; /* Must be 254 when here */
return (ulong) uint4korr(pos+1);
}
/* Same as above, but returns ulonglong values */
static my_ulonglong
net_field_length_ll(uchar **packet)
{
reg1 uchar *pos= *packet;
if (*pos < 251)
{
(*packet)++;
return (my_ulonglong) *pos;
}
if (*pos == 251)
{
(*packet)++;
return (my_ulonglong) NULL_LENGTH;
}
if (*pos == 252)
{
(*packet)+=3;
return (my_ulonglong) uint2korr(pos+1);
}
if (*pos == 253)
{
(*packet)+=4;
return (my_ulonglong) uint3korr(pos+1);
}
(*packet)+=9; /* Must be 254 when here */
#ifdef NO_CLIENT_LONGLONG
return (my_ulonglong) uint4korr(pos+1);
#else
return (my_ulonglong) uint8korr(pos+1);
#endif
}
static void free_rows(MYSQL_DATA *cur)
{
if (cur)
{
free_root(&cur->alloc);
my_free((gptr) cur,MYF(0));
}
}
static int
simple_command(MYSQL *mysql,enum enum_server_command command, const char *arg,
uint length, my_bool skipp_check)
{
NET *net= &mysql->net;
int result= -1;
init_sigpipe_variables
/* Don't give sigpipe errors if the client doesn't want them */
set_sigpipe(mysql);
if (mysql->net.vio == 0)
{ /* Do reconnect if possible */
if (mysql_reconnect(mysql))
{
net->last_errno=CR_SERVER_GONE_ERROR;
strmov(net->last_error,ER(net->last_errno));
goto end;
}
}
if (mysql->status != MYSQL_STATUS_READY)
{
strmov(net->last_error,ER(mysql->net.last_errno=CR_COMMANDS_OUT_OF_SYNC));
goto end;
}
mysql->net.last_error[0]=0;
mysql->net.last_errno=0;
mysql->info=0;
mysql->affected_rows= ~(my_ulonglong) 0;
net_clear(net); /* Clear receive buffer */
if (!arg)
arg="";
if (net_write_command(net,(uchar) command,arg,
length ? length : (ulong) strlen(arg)))
{
DBUG_PRINT("error",("Can't send command to server. Error: %d",errno));
end_server(mysql);
if (mysql_reconnect(mysql) ||
net_write_command(net,(uchar) command,arg,
length ? length : (ulong) strlen(arg)))
{
net->last_errno=CR_SERVER_GONE_ERROR;
strmov(net->last_error,ER(net->last_errno));
goto end;
}
}
result=0;
if (!skipp_check)
result= ((mysql->packet_length=net_safe_read(mysql)) == packet_error ?
-1 : 0);
end:
reset_sigpipe(mysql);
return result;
}
static void free_old_query(MYSQL *mysql)
{
DBUG_ENTER("free_old_query");
if (mysql->fields)
free_root(&mysql->field_alloc);
init_alloc_root(&mysql->field_alloc,8192); /* Assume rowlength < 8192 */
mysql->fields=0;
mysql->field_count=0; /* For API */
DBUG_VOID_RETURN;
}
#ifdef HAVE_GETPWUID
struct passwd *getpwuid(uid_t);
char* getlogin(void);
#endif
#if !defined(MSDOS) && ! defined(VMS) && !defined(__WIN__)
static void read_user_name(char *name)
{
DBUG_ENTER("read_user_name");
if (geteuid() == 0)
(void) strmov(name,"root"); /* allow use of surun */
else
{
#ifdef HAVE_GETPWUID
struct passwd *skr;
const char *str;
/*#ifdef __cplusplus
extern "C" struct passwd *getpwuid(uid_t);
extern "C" { char* getlogin(void); }
#else
char * getlogin();
struct passwd *getpwuid(uid_t);
#endif
*/
if ((str=getlogin()) == NULL)
{
if ((skr=getpwuid(geteuid())) != NULL)
str=skr->pw_name;
else if (!(str=getenv("USER")) && !(str=getenv("LOGNAME")) &&
!(str=getenv("LOGIN")))
str="UNKNOWN_USER";
}
(void) strmake(name,str,USERNAME_LENGTH);
#elif HAVE_CUSERID
(void) cuserid(name);
#else
strmov(name,"UNKNOWN_USER");
#endif
}
DBUG_VOID_RETURN;
}
#else /* If MSDOS || VMS */
static void read_user_name(char *name)
{
char *str=getenv("USER");
strmov(name,str ? str : "ODBC"); /* ODBC will send user variable */
}
#endif
#ifdef __WIN__
static my_bool is_NT(void)
{
char *os=getenv("OS");
return (os && !strcmp(os, "Windows_NT")) ? 1 : 0;
}
#endif
/*
** Expand wildcard to a sql string
*/
static void
append_wild(char *to, char *end, const char *wild)
{
end-=5; /* Some extra */
if (wild && wild[0])
{
to=strmov(to," like '");
while (*wild && to < end)
{
if (*wild == '\\' || *wild == '\'')
*to++='\\';
*to++= *wild++;
}
if (*wild) /* Too small buffer */
*to++='%'; /* Nicer this way */
to[0]='\'';
to[1]=0;
}
}
/**************************************************************************
** Init debugging if MYSQL_DEBUG environment variable is found
**************************************************************************/
void STDCALL
mysql_debug(const char *debug)
{
#ifndef DBUG_OFF
char *env;
if (_db_on_)
return; /* Already using debugging */
if (debug)
{
DEBUGGER_ON;
DBUG_PUSH(debug);
}
else if ((env = getenv("MYSQL_DEBUG")))
{
DEBUGGER_ON;
DBUG_PUSH(env);
#if !defined(_WINVER) && !defined(WINVER)
puts("\n-------------------------------------------------------");
puts("MYSQL_DEBUG found. libmysql started with the following:");
puts(env);
puts("-------------------------------------------------------\n");
#else
{
char buff[80];
strmov(strmov(buff,"libmysql: "),env);
MessageBox((HWND) 0,"Debugging variable MYSQL_DEBUG used",buff,MB_OK);
}
#endif
}
#endif
}
/**************************************************************************
** Close the server connection if we get a SIGPIPE
ARGSUSED
**************************************************************************/
static sig_handler
pipe_sig_handler(int sig __attribute__((unused)))
{
DBUG_PRINT("info",("Hit by signal %d",sig));
#ifdef DONT_REMEMBER_SIGNAL
(void) signal(SIGPIPE,pipe_sig_handler);
#endif
}
/**************************************************************************
** Shut down connection
**************************************************************************/
static void
end_server(MYSQL *mysql)
{
DBUG_ENTER("end_server");
if (mysql->net.vio != 0)
{
init_sigpipe_variables
DBUG_PRINT("info",("Net: %s", vio_description(mysql->net.vio)));
set_sigpipe(mysql);
vio_delete(mysql->net.vio);
reset_sigpipe(mysql);
mysql->net.vio= 0; /* Marker */
}
net_end(&mysql->net);
free_old_query(mysql);
DBUG_VOID_RETURN;
}
void STDCALL
mysql_free_result(MYSQL_RES *result)
{
DBUG_ENTER("mysql_free_result");
DBUG_PRINT("enter",("mysql_res: %lx",result));
if (result)
{
if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT)
{
DBUG_PRINT("warning",("Not all rows in set were read; Ignoring rows"));
for (;;)
{
uint pkt_len;
if ((pkt_len=(uint) net_safe_read(result->handle)) == packet_error)
break;
if (pkt_len == 1 && result->handle->net.read_pos[0] == 254)
break; /* End of data */
}
result->handle->status=MYSQL_STATUS_READY;
}
free_rows(result->data);
if (result->fields)
free_root(&result->field_alloc);
if (result->row)
my_free((gptr) result->row,MYF(0));
my_free((gptr) result,MYF(0));
}
DBUG_VOID_RETURN;
}
/****************************************************************************
** Get options from my.cnf
****************************************************************************/
static const char *default_options[]=
{"port","socket","compress","password","pipe", "timeout", "user",
"init-command", "host", "database", "debug", "return-found-rows",
"ssl_key" ,"ssl_cert" ,"ssl_ca" ,"ssl_capath",
"character-set-dir", "default-character-set",
NullS
};
static TYPELIB option_types={array_elements(default_options)-1,
"options",default_options};
static void mysql_read_default_options(struct st_mysql_options *options,
const char *filename,const char *group)
{
int argc;
char *argv_buff[1],**argv;
const char *groups[3];
DBUG_ENTER("mysql_read_default_options");
DBUG_PRINT("enter",("file: %s group: %s",filename,group ? group :"NULL"));
argc=1; argv=argv_buff; argv_buff[0]= (char*) "client";
groups[0]= (char*) "client"; groups[1]= (char*) group; groups[2]=0;
load_defaults(filename, groups, &argc, &argv);
if (argc != 1) /* If some default option */
{
char **option=argv;
while (*++option)
{
/* DBUG_PRINT("info",("option: %s",option[0])); */
if (option[0][0] == '-' && option[0][1] == '-')
{
char *end=strcend(*option,'=');
char *opt_arg=0;
if (*end)
{
opt_arg=end+1;
*end=0; /* Remove '=' */
}
switch (find_type(*option+2,&option_types,2)) {
case 1: /* port */
if (opt_arg)
options->port=atoi(opt_arg);
break;
case 2: /* socket */
if (opt_arg)
{
my_free(options->unix_socket,MYF(MY_ALLOW_ZERO_PTR));
options->unix_socket=my_strdup(opt_arg,MYF(MY_WME));
}
break;
case 3: /* compress */
options->compress=1;
break;
case 4: /* password */
if (opt_arg)
{
my_free(options->password,MYF(MY_ALLOW_ZERO_PTR));
options->password=my_strdup(opt_arg,MYF(MY_WME));
}
break;
case 5: /* pipe */
options->named_pipe=1; /* Force named pipe */
break;
case 6: /* timeout */
if (opt_arg)
options->connect_timeout=atoi(opt_arg);
break;
case 7: /* user */
if (opt_arg)
{
my_free(options->user,MYF(MY_ALLOW_ZERO_PTR));
options->user=my_strdup(opt_arg,MYF(MY_WME));
}
break;
case 8: /* init-command */
if (opt_arg)
{
my_free(options->init_command,MYF(MY_ALLOW_ZERO_PTR));
options->init_command=my_strdup(opt_arg,MYF(MY_WME));
}
break;
case 9: /* host */
if (opt_arg)
{
my_free(options->host,MYF(MY_ALLOW_ZERO_PTR));
options->host=my_strdup(opt_arg,MYF(MY_WME));
}
break;
case 10: /* database */
if (opt_arg)
{
my_free(options->db,MYF(MY_ALLOW_ZERO_PTR));
options->db=my_strdup(opt_arg,MYF(MY_WME));
}
break;
case 11: /* debug */
mysql_debug(opt_arg ? opt_arg : "d:t:o,/tmp/client.trace");
break;
case 12: /* return-found-rows */
options->client_flag|=CLIENT_FOUND_ROWS;
break;
#ifdef HAVE_OPENSSL
case 13: /* ssl_key */
my_free(options->ssl_key, MYF(MY_ALLOW_ZERO_PTR));
options->ssl_key = my_strdup(opt_arg, MYF(MY_WME));
break;
case 14: /* ssl_cert */
my_free(options->ssl_cert, MYF(MY_ALLOW_ZERO_PTR));
options->ssl_cert = my_strdup(opt_arg, MYF(MY_WME));
break;
case 15: /* ssl_ca */
my_free(options->ssl_ca, MYF(MY_ALLOW_ZERO_PTR));
options->ssl_ca = my_strdup(opt_arg, MYF(MY_WME));
break;
case 16: /* ssl_capath */
my_free(options->ssl_capath, MYF(MY_ALLOW_ZERO_PTR));
options->ssl_capath = my_strdup(opt_arg, MYF(MY_WME));
break;
#else
case 13: /* Ignore SSL options */
case 14:
case 15:
case 16:
break;
#endif /* HAVE_OPENSSL */
case 17: /* charset-lib */
my_free(options->charset_dir,MYF(MY_ALLOW_ZERO_PTR));
options->charset_dir = my_strdup(opt_arg, MYF(MY_WME));
break;
case 18:
my_free(options->charset_name,MYF(MY_ALLOW_ZERO_PTR));
options->charset_name = my_strdup(opt_arg, MYF(MY_WME));
break;
default:
DBUG_PRINT("warning",("unknown option: %s",option[0]));
}
}
}
}
free_defaults(argv);
DBUG_VOID_RETURN;
}
/***************************************************************************
** Change field rows to field structs
***************************************************************************/
static MYSQL_FIELD *
unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields,
my_bool default_value, my_bool long_flag_protocol)
{
MYSQL_ROWS *row;
MYSQL_FIELD *field,*result;
DBUG_ENTER("unpack_fields");
field=result=(MYSQL_FIELD*) alloc_root(alloc,sizeof(MYSQL_FIELD)*fields);
if (!result)
DBUG_RETURN(0);
for (row=data->data; row ; row = row->next,field++)
{
field->table= strdup_root(alloc,(char*) row->data[0]);
field->name= strdup_root(alloc,(char*) row->data[1]);
field->length= (uint) uint3korr(row->data[2]);
field->type= (enum enum_field_types) (uchar) row->data[3][0];
if (long_flag_protocol)
{
field->flags= uint2korr(row->data[4]);
field->decimals=(uint) (uchar) row->data[4][2];
}
else
{
field->flags= (uint) (uchar) row->data[4][0];
field->decimals=(uint) (uchar) row->data[4][1];
}
if (default_value && row->data[5])
field->def=strdup_root(alloc,(char*) row->data[5]);
else
field->def=0;
field->max_length= 0;
}
free_rows(data); /* Free old data */
DBUG_RETURN(result);
}
/* Read all rows (fields or data) from server */
static MYSQL_DATA *read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields,
uint fields)
{
uint field,pkt_len;
ulong len;
uchar *cp;
char *to;
MYSQL_DATA *result;
MYSQL_ROWS **prev_ptr,*cur;
NET *net = &mysql->net;
DBUG_ENTER("read_rows");
if ((pkt_len=(uint) net_safe_read(mysql)) == packet_error)
DBUG_RETURN(0);
if (!(result=(MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
MYF(MY_WME | MY_ZEROFILL))))
{
net->last_errno=CR_OUT_OF_MEMORY;
strmov(net->last_error,ER(net->last_errno));
DBUG_RETURN(0);
}
init_alloc_root(&result->alloc,8192); /* Assume rowlength < 8192 */
result->alloc.min_malloc=sizeof(MYSQL_ROWS);
prev_ptr= &result->data;
result->rows=0;
result->fields=fields;
while (*(cp=net->read_pos) != 254 || pkt_len != 1)
{
result->rows++;
if (!(cur= (MYSQL_ROWS*) alloc_root(&result->alloc,
sizeof(MYSQL_ROWS))) ||
!(cur->data= ((MYSQL_ROW)
alloc_root(&result->alloc,
(fields+1)*sizeof(char *)+pkt_len))))
{
free_rows(result);
net->last_errno=CR_OUT_OF_MEMORY;
strmov(net->last_error,ER(net->last_errno));
DBUG_RETURN(0);
}
*prev_ptr=cur;
prev_ptr= &cur->next;
to= (char*) (cur->data+fields+1);
for (field=0 ; field < fields ; field++)
{
if ((len=(ulong) net_field_length(&cp)) == NULL_LENGTH)
{ /* null field */
cur->data[field] = 0;
}
else
{
cur->data[field] = to;
memcpy(to,(char*) cp,len); to[len]=0;
to+=len+1;
cp+=len;
if (mysql_fields)
{
if (mysql_fields[field].max_length < len)
mysql_fields[field].max_length=len;
}
}
}
cur->data[field]=to; /* End of last field */
if ((pkt_len=net_safe_read(mysql)) == packet_error)
{
free_rows(result);
DBUG_RETURN(0);
}
}
*prev_ptr=0; /* last pointer is null */
DBUG_PRINT("exit",("Got %d rows",result->rows));
DBUG_RETURN(result);
}
/*
** Read one row. Uses packet buffer as storage for fields.
** When next packet is read, the previous field values are destroyed
*/
static int
read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths)
{
uint field;
ulong pkt_len,len;
uchar *pos,*prev_pos;
if ((pkt_len=(uint) net_safe_read(mysql)) == packet_error)
return -1;
if (pkt_len == 1 && mysql->net.read_pos[0] == 254)
return 1; /* End of data */
prev_pos= 0; /* allowed to write at packet[-1] */
pos=mysql->net.read_pos;
for (field=0 ; field < fields ; field++)
{
if ((len=(ulong) net_field_length(&pos)) == NULL_LENGTH)
{ /* null field */
row[field] = 0;
*lengths++=0;
}
else
{
row[field] = (char*) pos;
pos+=len;
*lengths++=len;
}
if (prev_pos)
*prev_pos=0; /* Terminate prev field */
prev_pos=pos;
}
row[field]=(char*) prev_pos+1; /* End of last field */
*prev_pos=0; /* Terminate last field */
return 0;
}
/****************************************************************************
** Init MySQL structure or allocate one
****************************************************************************/
MYSQL * STDCALL
mysql_init(MYSQL *mysql)
{
mysql_once_init();
if (!mysql)
{
if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL))))
return 0;
mysql->free_me=1;
mysql->net.vio = 0;
}
else
bzero((char*) (mysql),sizeof(*(mysql)));
#ifdef __WIN__
mysql->options.connect_timeout=20;
#endif
#if defined(SIGPIPE) && defined(THREAD)
if (!((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE))
(void) signal(SIGPIPE,pipe_sig_handler);
#endif
return mysql;
}
static void mysql_once_init()
{
if (!mysql_client_init)
{
mysql_client_init=1;
my_init(); /* Will init threads */
init_client_errs();
if (!mysql_port)
{
mysql_port = MYSQL_PORT;
#ifndef MSDOS
{
struct servent *serv_ptr;
char *env;
if ((serv_ptr = getservbyname("mysql", "tcp")))
mysql_port = (uint) ntohs((ushort) serv_ptr->s_port);
if ((env = getenv("MYSQL_TCP_PORT")))
mysql_port =(uint) atoi(env);
}
#endif
}
if (!mysql_unix_port)
{
char *env;
#ifdef __WIN__
mysql_unix_port = (char*) MYSQL_NAMEDPIPE;
#else
mysql_unix_port = (char*) MYSQL_UNIX_ADDR;
#endif
if ((env = getenv("MYSQL_UNIX_PORT")))
mysql_unix_port = env;
}
mysql_debug(NullS);
#if defined(SIGPIPE) && !defined(THREAD)
(void) signal(SIGPIPE,SIG_IGN);
#endif
}
#ifdef THREAD
else
my_thread_init(); /* Init if new thread */
#endif
}
#ifdef HAVE_OPENSSL
/**************************************************************************
** Fill in SSL part of MYSQL structure and set 'use_ssl' flag.
** NB! Errors are not reported until you do mysql_real_connect.
**************************************************************************/
int STDCALL
mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert,
const char *ca, const char *capath)
{
mysql->options.ssl_key = key==0 ? 0 : my_strdup(key,MYF(0));
mysql->options.ssl_cert = cert==0 ? 0 : my_strdup(cert,MYF(0));
mysql->options.ssl_ca = ca==0 ? 0 : my_strdup(ca,MYF(0));
mysql->options.ssl_capath = capath==0 ? 0 : my_strdup(capath,MYF(0));
mysql->options.use_ssl = true;
mysql->connector_fd = new_VioSSLConnectorFd(key, cert, ca, capath);
return 0;
}
/**************************************************************************
**************************************************************************/
char * STDCALL
mysql_ssl_cipher(MYSQL *mysql)
{
return (char *)mysql->net.vio->cipher_description();
}
/**************************************************************************
** Free strings in the SSL structure and clear 'use_ssl' flag.
** NB! Errors are not reported until you do mysql_real_connect.
**************************************************************************/
int STDCALL
mysql_ssl_clear(MYSQL *mysql)
{
my_free(mysql->options.ssl_key, MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.ssl_cert, MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.ssl_ca, MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.ssl_capath, MYF(MY_ALLOW_ZERO_PTR));
mysql->options.ssl_key = 0;
mysql->options.ssl_cert = 0;
mysql->options.ssl_ca = 0;
mysql->options.ssl_capath = 0;
mysql->options.use_ssl = false;
mysql->connector_fd->delete();
mysql->connector_fd = 0;
return 0;
}
#endif /* HAVE_OPENSSL */
/**************************************************************************
** Connect to sql server
** If host == 0 then use localhost
**************************************************************************/
MYSQL * STDCALL
mysql_connect(MYSQL *mysql,const char *host,
const char *user, const char *passwd)
{
MYSQL *res;
mysql=mysql_init(mysql); /* Make it thread safe */
{
DBUG_ENTER("mysql_connect");
if (!(res=mysql_real_connect(mysql,host,user,passwd,NullS,0,NullS,0)))
{
if (mysql->free_me)
my_free((gptr) mysql,MYF(0));
}
DBUG_RETURN(res);
}
}
/*
** Note that the mysql argument must be initialized with mysql_init()
** before calling mysql_real_connect !
*/
MYSQL * STDCALL
mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
const char *passwd, const char *db,
uint port, const char *unix_socket,uint client_flag)
{
char buff[100],charset_name_buff[16],*end,*host_info, *charset_name;
int sock;
uint32 ip_addr;
struct sockaddr_in sock_addr;
uint pkt_length;
NET *net= &mysql->net;
#ifdef __WIN__
HANDLE hPipe=INVALID_HANDLE_VALUE;
#endif
#ifdef HAVE_SYS_UN_H
struct sockaddr_un UNIXaddr;
#endif
init_sigpipe_variables
DBUG_ENTER("mysql_real_connect");
DBUG_PRINT("enter",("host: %s db: %s user: %s",
host ? host : "(Null)",
db ? db : "(Null)",
user ? user : "(Null)"));
/* Don't give sigpipe errors if the client doesn't want them */
set_sigpipe(mysql);
net->vio = 0; /* If something goes wrong */
/* use default options */
if (mysql->options.my_cnf_file || mysql->options.my_cnf_group)
{
mysql_read_default_options(&mysql->options,
(mysql->options.my_cnf_file ?
mysql->options.my_cnf_file : "my"),
mysql->options.my_cnf_group);
my_free(mysql->options.my_cnf_file,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.my_cnf_group,MYF(MY_ALLOW_ZERO_PTR));
mysql->options.my_cnf_file=mysql->options.my_cnf_group=0;
}
/* Some empty-string-tests are done because of ODBC */
if (!host || !host[0])
host=mysql->options.host;
if (!user || !user[0])
user=mysql->options.user;
if (!passwd)
{
passwd=mysql->options.password;
#ifndef DONT_USE_MYSQL_PWD
if (!passwd)
passwd=getenv("MYSQL_PWD"); /* get it from environment (haneke) */
#endif
}
if (!db || !db[0])
db=mysql->options.db;
if (!port)
port=mysql->options.port;
if (!unix_socket)
unix_socket=mysql->options.unix_socket;
mysql->reconnect=1; /* Reconnect as default */
mysql->server_status=SERVER_STATUS_AUTOCOMMIT;
/*
** Grab a socket and connect it to the server
*/
#if defined(HAVE_SYS_UN_H)
if ((!host || !strcmp(host,LOCAL_HOST)) && (unix_socket || mysql_unix_port))
{
host=LOCAL_HOST;
if (!unix_socket)
unix_socket=mysql_unix_port;
host_info=(char*) ER(CR_LOCALHOST_CONNECTION);
DBUG_PRINT("info",("Using UNIX sock '%s'",unix_socket));
if ((sock = socket(AF_UNIX,SOCK_STREAM,0)) == SOCKET_ERROR)
{
net->last_errno=CR_SOCKET_CREATE_ERROR;
sprintf(net->last_error,ER(net->last_errno),ERRNO);
goto error;
}
net->vio = vio_new(sock, VIO_TYPE_SOCKET, TRUE);
bzero((char*) &UNIXaddr,sizeof(UNIXaddr));
UNIXaddr.sun_family = AF_UNIX;
strmov(UNIXaddr.sun_path, unix_socket);
if (connect2(sock,(struct sockaddr *) &UNIXaddr, sizeof(UNIXaddr),
mysql->options.connect_timeout) <0)
{
DBUG_PRINT("error",("Got error %d on connect to local server",ERRNO));
net->last_errno=CR_CONNECTION_ERROR;
sprintf(net->last_error,ER(net->last_errno),unix_socket,ERRNO);
goto error;
}
}
else
#elif defined(__WIN__)
{
if ((unix_socket ||
!host && is_NT() ||
host && !strcmp(host,LOCAL_HOST_NAMEDPIPE) ||
mysql->options.named_pipe || !have_tcpip))
{
sock=0;
if ((hPipe=create_named_pipe(net, mysql->options.connect_timeout,
(char**) &host, (char**) &unix_socket)) ==
INVALID_HANDLE_VALUE)
{
DBUG_PRINT("error",
("host: '%s' socket: '%s' named_pipe: %d have_tcpip: %d",
host ? host : "<null>",
unix_socket ? unix_socket : "<null>",
(int) mysql->options.named_pipe,
(int) have_tcpip));
if (mysql->options.named_pipe ||
(host && !strcmp(host,LOCAL_HOST_NAMEDPIPE)) ||
(unix_socket && !strcmp(unix_socket,MYSQL_NAMEDPIPE)))
goto error; /* User only requested named pipes */
/* Try also with TCP/IP */
}
else
{
net->vio=vio_new_win32pipe(hPipe);
sprintf(host_info=buff, ER(CR_NAMEDPIPE_CONNECTION), host,
unix_socket);
}
}
}
if (hPipe == INVALID_HANDLE_VALUE)
#endif
{
unix_socket=0; /* This is not used */
if (!port)
port=mysql_port;
if (!host)
host=LOCAL_HOST;
sprintf(host_info=buff,ER(CR_TCP_CONNECTION),host);
DBUG_PRINT("info",("Server name: '%s'. TCP sock: %d", host,port));
if ((sock = socket(AF_INET,SOCK_STREAM,0)) == SOCKET_ERROR)
{
net->last_errno=CR_IPSOCK_ERROR;
sprintf(net->last_error,ER(net->last_errno),ERRNO);
goto error;
}
net->vio = vio_new(sock,VIO_TYPE_TCPIP,FALSE);
bzero((char*) &sock_addr,sizeof(sock_addr));
sock_addr.sin_family = AF_INET;
/*
** The server name may be a host name or IP address
*/
if ((int) (ip_addr = inet_addr(host)) != (int) INADDR_NONE)
{
memcpy_fixed(&sock_addr.sin_addr,&ip_addr,sizeof(ip_addr));
}
else
#if defined(HAVE_GETHOSTBYNAME_R) && defined(_REENTRANT) && defined(THREAD)
{
int tmp_errno;
struct hostent tmp_hostent,*hp;
char buff2[GETHOSTBYNAME_BUFF_SIZE];
hp = my_gethostbyname_r(host,&tmp_hostent,buff2,sizeof(buff2),
&tmp_errno);
if (!hp)
{
net->last_errno=CR_UNKNOWN_HOST;
sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, tmp_errno);
goto error;
}
memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
}
#else
{
struct hostent *hp;
if (!(hp=gethostbyname(host)))
{
net->last_errno=CR_UNKNOWN_HOST;
sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, errno);
goto error;
}
memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
}
#endif
sock_addr.sin_port = (ushort) htons((ushort) port);
if (connect2(sock,(struct sockaddr *) &sock_addr, sizeof(sock_addr),
mysql->options.connect_timeout) <0)
{
DBUG_PRINT("error",("Got error %d on connect to '%s'",ERRNO,host));
net->last_errno= CR_CONN_HOST_ERROR;
sprintf(net->last_error ,ER(CR_CONN_HOST_ERROR), host, ERRNO);
goto error;
}
}
if (!net->vio || my_net_init(net, net->vio))
{
vio_delete(net->vio);
net->last_errno=CR_OUT_OF_MEMORY;
strmov(net->last_error,ER(net->last_errno));
goto error;
}
vio_keepalive(net->vio,TRUE);
/* Get version info */
mysql->protocol_version= PROTOCOL_VERSION; /* Assume this */
if ((pkt_length=net_safe_read(mysql)) == packet_error)
goto error;
/* Check if version of protocoll matches current one */
mysql->protocol_version= net->read_pos[0];
DBUG_DUMP("packet",(char*) net->read_pos,10);
DBUG_PRINT("info",("mysql protocol version %d, server=%d",
PROTOCOL_VERSION, mysql->protocol_version));
if (mysql->protocol_version != PROTOCOL_VERSION &&
mysql->protocol_version != PROTOCOL_VERSION-1)
{
net->last_errno= CR_VERSION_ERROR;
sprintf(net->last_error, ER(CR_VERSION_ERROR), mysql->protocol_version,
PROTOCOL_VERSION);
goto error;
}
end=strend((char*) net->read_pos+1);
mysql->thread_id=uint4korr(end+1);
end+=5;
strmake(mysql->scramble_buff,end,8);
end+=9;
if (pkt_length >= (uint) (end+1 - (char*) net->read_pos))
mysql->server_capabilities=uint2korr(end);
if (pkt_length >= (uint) (end+18 - (char*) net->read_pos))
{
/* New protocol with 16 bytes to describe server characteristics */
mysql->server_language=end[2];
mysql->server_status=uint2korr(end+3);
}
/* Set character set */
if ((charset_name=mysql->options.charset_name))
{
const char *save=charsets_dir;
if (mysql->options.charset_dir)
charsets_dir=mysql->options.charset_dir;
mysql->charset=get_charset_by_name(mysql->options.charset_name,
MYF(MY_WME));
charsets_dir=save;
}
else if (mysql->server_language)
{
charset_name=charset_name_buff;
sprintf(charset_name,"%d",mysql->server_language); /* In case of errors */
mysql->charset=get_charset((uint8) mysql->server_language, MYF(MY_WME));
}
else
mysql->charset=default_charset_info;
if (!mysql->charset)
{
net->last_errno=CR_CANT_READ_CHARSET;
sprintf(net->last_error,ER(net->last_errno),
charset_name ? charset_name : "unknown",
mysql->options.charset_dir ? mysql->options.charset_dir :
"default");
goto error;
}
/* Save connection information */
if (!user) user="";
if (!passwd) passwd="";
if (!my_multi_malloc(MYF(0),
&mysql->host_info, (uint) strlen(host_info)+1,
&mysql->host, (uint) strlen(host)+1,
&mysql->unix_socket,unix_socket ?
(uint) strlen(unix_socket)+1 : (uint) 1,
&mysql->server_version,
(uint) (end - (char*) net->read_pos),
NullS) ||
!(mysql->user=my_strdup(user,MYF(0))) ||
!(mysql->passwd=my_strdup(passwd,MYF(0))))
{
strmov(net->last_error, ER(net->last_errno=CR_OUT_OF_MEMORY));
goto error;
}
strmov(mysql->host_info,host_info);
strmov(mysql->host,host);
if (unix_socket)
strmov(mysql->unix_socket,unix_socket);
else
mysql->unix_socket=0;
strmov(mysql->server_version,(char*) net->read_pos+1);
mysql->port=port;
mysql->client_flag=client_flag | mysql->options.client_flag;
DBUG_PRINT("info",("Server version = '%s' capabilites: %ld status: %d",
mysql->server_version,mysql->server_capabilities,
mysql->server_status));
/* Send client information for access check */
client_flag|=CLIENT_CAPABILITIES;
#ifdef HAVE_OPENSSL
if (mysql->options.use_ssl)
client_flag|=CLIENT_SSL;
#endif /* HAVE_OPENSSL */
if (db)
client_flag|=CLIENT_CONNECT_WITH_DB;
#ifdef HAVE_COMPRESS
if (mysql->server_capabilities & CLIENT_COMPRESS &&
(mysql->options.compress || client_flag & CLIENT_COMPRESS))
client_flag|=CLIENT_COMPRESS; /* We will use compression */
else
#endif
client_flag&= ~CLIENT_COMPRESS;
#ifdef HAVE_OPENSSL
if ((mysql->server_capabilities & CLIENT_SSL) &&
(mysql->options.use_ssl || (client_flag & CLIENT_SSL)))
{
DBUG_PRINT("info", ("Changing IO layer to SSL"));
client_flag |= CLIENT_SSL;
}
else
{
if (client_flag & CLIENT_SSL)
{
DBUG_PRINT("info", ("Leaving IO layer intact because server doesn't support SSL"));
}
client_flag &= ~CLIENT_SSL;
}
#endif /* HAVE_OPENSSL */
int2store(buff,client_flag);
mysql->client_flag=client_flag;
#ifdef HAVE_OPENSSL
/* Oops.. are we careful enough to not send ANY information */
/* without encryption? */
if (client_flag & CLIENT_SSL)
{
if (my_net_write(net,buff,(uint) (2)) || net_flush(net))
goto error;
/* Do the SSL layering. */
DBUG_PRINT("info", ("IO layer change in progress..."));
VioSSLConnectorFd* connector_fd = (VioSSLConnectorFd*)
(mysql->connector_fd);
VioSocket* vio_socket = (VioSocket*)(mysql->net.vio);
VioSSL* vio_ssl = connector_fd->connect(vio_socket);
mysql->net.vio = (NetVio*)(vio_ssl);
}
#endif /* HAVE_OPENSSL */
int3store(buff+2,max_allowed_packet);
if (user && user[0])
strmake(buff+5,user,32);
else
read_user_name((char*) buff+5);
#ifdef _CUSTOMCONFIG_
#include "_cust_libmysql.h";
#endif
DBUG_PRINT("info",("user: %s",buff+5));
end=scramble(strend(buff+5)+1, mysql->scramble_buff, passwd,
(my_bool) (mysql->protocol_version == 9));
if (db && (mysql->server_capabilities & CLIENT_CONNECT_WITH_DB))
{
end=strmov(end+1,db);
mysql->db=my_strdup(db,MYF(MY_WME));
db=0;
}
if (my_net_write(net,buff,(uint) (end-buff)) || net_flush(net) ||
net_safe_read(mysql) == packet_error)
goto error;
if (client_flag & CLIENT_COMPRESS) /* We will use compression */
net->compress=1;
if (db && mysql_select_db(mysql,db))
goto error;
if (mysql->options.init_command)
{
my_bool reconnect=mysql->reconnect;
mysql->reconnect=0;
if (mysql_query(mysql,mysql->options.init_command))
goto error;
mysql_free_result(mysql_use_result(mysql));
mysql->reconnect=reconnect;
}
DBUG_PRINT("exit",("Mysql handler: %lx",mysql));
reset_sigpipe(mysql);
DBUG_RETURN(mysql);
error:
reset_sigpipe(mysql);
DBUG_PRINT("error",("message: %u (%s)",net->last_errno,net->last_error));
{
/* Free alloced memory */
my_bool free_me=mysql->free_me;
end_server(mysql);
mysql->free_me=0;
mysql_close(mysql);
mysql->free_me=free_me;
}
DBUG_RETURN(0);
}
static my_bool mysql_reconnect(MYSQL *mysql)
{
MYSQL tmp_mysql;
DBUG_ENTER("mysql_reconnect");
if (!mysql->reconnect ||
(mysql->server_status & SERVER_STATUS_IN_TRANS) || !mysql->host_info)
{
/* Allov reconnect next time */
mysql->server_status&= ~SERVER_STATUS_IN_TRANS;
DBUG_RETURN(1);
}
mysql_init(&tmp_mysql);
tmp_mysql.options=mysql->options;
if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd,
mysql->db, mysql->port, mysql->unix_socket,
mysql->client_flag))
DBUG_RETURN(1);
tmp_mysql.free_me=mysql->free_me;
mysql->free_me=0;
bzero((char*) &mysql->options,sizeof(mysql->options));
mysql_close(mysql);
*mysql=tmp_mysql;
net_clear(&mysql->net);
mysql->affected_rows= ~(my_ulonglong) 0;
DBUG_RETURN(0);
}
/**************************************************************************
** Change user and database
**************************************************************************/
my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
const char *passwd, const char *db)
{
char buff[512],*pos=buff;
DBUG_ENTER("mysql_change_user");
if (!user)
user="";
if (!passwd)
passwd="";
pos=strmov(pos,user)+1;
pos=scramble(pos, mysql->scramble_buff, passwd,
(my_bool) (mysql->protocol_version == 9));
pos=strmov(pos+1,db ? db : "");
if (simple_command(mysql,COM_CHANGE_USER, buff,(uint) (pos-buff),0))
DBUG_RETURN(1);
my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR));
mysql->user= my_strdup(user,MYF(MY_WME));
mysql->passwd=my_strdup(passwd,MYF(MY_WME));
mysql->db= db ? my_strdup(db,MYF(MY_WME)) : 0;
DBUG_RETURN(0);
}
/**************************************************************************
** Set current database
**************************************************************************/
int STDCALL
mysql_select_db(MYSQL *mysql, const char *db)
{
int error;
DBUG_ENTER("mysql_select_db");
DBUG_PRINT("enter",("db: '%s'",db));
if ((error=simple_command(mysql,COM_INIT_DB,db,(uint) strlen(db),0)))
DBUG_RETURN(error);
my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR));
mysql->db=my_strdup(db,MYF(MY_WME));
DBUG_RETURN(0);
}
/*************************************************************************
** Send a QUIT to the server and close the connection
** If handle is alloced by mysql connect free it.
*************************************************************************/
void STDCALL
mysql_close(MYSQL *mysql)
{
DBUG_ENTER("mysql_close");
if (mysql) /* Some simple safety */
{
if (mysql->net.vio != 0)
{
free_old_query(mysql);
mysql->status=MYSQL_STATUS_READY; /* Force command */
simple_command(mysql,COM_QUIT,NullS,0,1);
end_server(mysql);
}
my_free((gptr) mysql->host_info,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.init_command,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.user,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.host,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.password,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.unix_socket,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.db,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.my_cnf_file,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.my_cnf_group,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.charset_dir,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.charset_name,MYF(MY_ALLOW_ZERO_PTR));
/* Clear pointers for better safety */
mysql->host_info=mysql->user=mysql->passwd=mysql->db=0;
bzero((char*) &mysql->options,sizeof(mysql->options));
mysql->net.vio = 0;
#ifdef HAVE_OPENSSL
((VioConnectorFd*)(mysql->connector_fd))->delete();
mysql->connector_fd = 0;
#endif /* HAVE_OPENSSL */
if (mysql->free_me)
my_free((gptr) mysql,MYF(0));
}
DBUG_VOID_RETURN;
}
/**************************************************************************
** Do a query. If query returned rows, free old rows.
** Read data by mysql_store_result or by repeat call of mysql_fetch_row
**************************************************************************/
int STDCALL
mysql_query(MYSQL *mysql, const char *query)
{
return mysql_real_query(mysql,query, (uint) strlen(query));
}
int STDCALL
mysql_real_query(MYSQL *mysql, const char *query, uint length)
{
uchar *pos;
ulong field_count;
MYSQL_DATA *fields;
DBUG_ENTER("mysql_real_query");
DBUG_PRINT("enter",("handle: %lx",mysql));
DBUG_PRINT("query",("Query = \"%s\"",query));
if (simple_command(mysql,COM_QUERY,query,length,1) ||
(length=net_safe_read(mysql)) == packet_error)
DBUG_RETURN(-1);
free_old_query(mysql); /* Free old result */
get_info:
pos=(uchar*) mysql->net.read_pos;
if ((field_count= net_field_length(&pos)) == 0)
{
mysql->affected_rows= net_field_length_ll(&pos);
mysql->insert_id= net_field_length_ll(&pos);
if (mysql->server_capabilities & CLIENT_TRANSACTIONS)
{
mysql->server_status=uint2korr(pos); pos+=2;
}
if (pos < mysql->net.read_pos+length && net_field_length(&pos))
mysql->info=(char*) pos;
DBUG_RETURN(0);
}
if (field_count == NULL_LENGTH) /* LOAD DATA LOCAL INFILE */
{
int error=send_file_to_server(mysql,(char*) pos);
if ((length=net_safe_read(mysql)) == packet_error || error)
DBUG_RETURN(-1);
goto get_info; /* Get info packet */
}
if (!(mysql->server_status & SERVER_STATUS_AUTOCOMMIT))
mysql->server_status|= SERVER_STATUS_IN_TRANS;
mysql->extra_info= net_field_length_ll(&pos); /* Maybe number of rec */
if (!(fields=read_rows(mysql,(MYSQL_FIELD*) 0,5)))
DBUG_RETURN(-1);
if (!(mysql->fields=unpack_fields(fields,&mysql->field_alloc,
(uint) field_count,0,
(my_bool) test(mysql->server_capabilities &
CLIENT_LONG_FLAG))))
DBUG_RETURN(-1);
mysql->status=MYSQL_STATUS_GET_RESULT;
mysql->field_count=field_count;
DBUG_RETURN(0);
}
static int
send_file_to_server(MYSQL *mysql, const char *filename)
{
int fd, readcount;
char buf[IO_SIZE*15],*tmp_name;
DBUG_ENTER("send_file_to_server");
fn_format(buf,filename,"","",4); /* Convert to client format */
if (!(tmp_name=my_strdup(buf,MYF(0))))
{
strmov(mysql->net.last_error, ER(mysql->net.last_errno=CR_OUT_OF_MEMORY));
DBUG_RETURN(-1);
}
if ((fd = my_open(tmp_name,O_RDONLY, MYF(0))) < 0)
{
mysql->net.last_errno=EE_FILENOTFOUND;
sprintf(buf,EE(mysql->net.last_errno),tmp_name,errno);
strmake(mysql->net.last_error,buf,sizeof(mysql->net.last_error)-1);
my_net_write(&mysql->net,"",0); net_flush(&mysql->net);
my_free(tmp_name,MYF(0));
DBUG_RETURN(-1);
}
while ((readcount = (int) my_read(fd,buf,sizeof(buf),MYF(0))) > 0)
{
if (my_net_write(&mysql->net,buf,readcount))
{
mysql->net.last_errno=CR_SERVER_LOST;
strmov(mysql->net.last_error,ER(mysql->net.last_errno));
DBUG_PRINT("error",("Lost connection to MySQL server during LOAD DATA of local file"));
(void) my_close(fd,MYF(0));
my_free(tmp_name,MYF(0));
DBUG_RETURN(-1);
}
}
(void) my_close(fd,MYF(0));
/* Send empty packet to mark end of file */
if (my_net_write(&mysql->net,"",0) || net_flush(&mysql->net))
{
mysql->net.last_errno=CR_SERVER_LOST;
sprintf(mysql->net.last_error,ER(mysql->net.last_errno),errno);
my_free(tmp_name,MYF(0));
DBUG_RETURN(-1);
}
if (readcount < 0)
{
mysql->net.last_errno=EE_READ; /* the errmsg for not entire file read */
sprintf(buf,EE(mysql->net.last_errno),tmp_name,errno);
strmake(mysql->net.last_error,buf,sizeof(mysql->net.last_error)-1);
my_free(tmp_name,MYF(0));
DBUG_RETURN(-1);
}
DBUG_RETURN(0);
}
/**************************************************************************
** Alloc result struct for buffered results. All rows are read to buffer.
** mysql_data_seek may be used.
**************************************************************************/
MYSQL_RES * STDCALL
mysql_store_result(MYSQL *mysql)
{
MYSQL_RES *result;
DBUG_ENTER("mysql_store_result");
if (!mysql->fields)
DBUG_RETURN(0);
if (mysql->status != MYSQL_STATUS_GET_RESULT)
{
strmov(mysql->net.last_error,
ER(mysql->net.last_errno=CR_COMMANDS_OUT_OF_SYNC));
DBUG_RETURN(0);
}
mysql->status=MYSQL_STATUS_READY; /* server is ready */
if (!(result=(MYSQL_RES*) my_malloc(sizeof(MYSQL_RES)+
sizeof(ulong)*mysql->field_count,
MYF(MY_WME | MY_ZEROFILL))))
{
mysql->net.last_errno=CR_OUT_OF_MEMORY;
strmov(mysql->net.last_error, ER(mysql->net.last_errno));
DBUG_RETURN(0);
}
result->eof=1; /* Marker for buffered */
result->lengths=(ulong*) (result+1);
if (!(result->data=read_rows(mysql,mysql->fields,mysql->field_count)))
{
my_free((gptr) result,MYF(0));
DBUG_RETURN(0);
}
mysql->affected_rows= result->row_count= result->data->rows;
result->data_cursor= result->data->data;
result->fields= mysql->fields;
result->field_alloc= mysql->field_alloc;
result->field_count= mysql->field_count;
result->current_field=0;
result->current_row=0; /* Must do a fetch first */
mysql->fields=0; /* fields is now in result */
DBUG_RETURN(result); /* Data fetched */
}
/**************************************************************************
** Alloc struct for use with unbuffered reads. Data is fetched by domand
** when calling to mysql_fetch_row.
** mysql_data_seek is a noop.
**
** No other queries may be specified with the same MYSQL handle.
** There shouldn't be much processing per row because mysql server shouldn't
** have to wait for the client (and will not wait more than 30 sec/packet).
**************************************************************************/
MYSQL_RES * STDCALL
mysql_use_result(MYSQL *mysql)
{
MYSQL_RES *result;
DBUG_ENTER("mysql_use_result");
if (!mysql->fields)
DBUG_RETURN(0);
if (mysql->status != MYSQL_STATUS_GET_RESULT)
{
strmov(mysql->net.last_error,
ER(mysql->net.last_errno=CR_COMMANDS_OUT_OF_SYNC));
DBUG_RETURN(0);
}
if (!(result=(MYSQL_RES*) my_malloc(sizeof(*result)+
sizeof(ulong)*mysql->field_count,
MYF(MY_WME | MY_ZEROFILL))))
DBUG_RETURN(0);
result->lengths=(ulong*) (result+1);
if (!(result->row=(MYSQL_ROW)
my_malloc(sizeof(result->row[0])*(mysql->field_count+1), MYF(MY_WME))))
{ /* Ptrs: to one row */
my_free((gptr) result,MYF(0));
DBUG_RETURN(0);
}
result->fields= mysql->fields;
result->field_alloc= mysql->field_alloc;
result->field_count= mysql->field_count;
result->current_field=0;
result->handle= mysql;
result->current_row= 0;
mysql->fields=0; /* fields is now in result */
mysql->status=MYSQL_STATUS_USE_RESULT;
DBUG_RETURN(result); /* Data is read to be fetched */
}
/**************************************************************************
** Return next field of the query results
**************************************************************************/
MYSQL_FIELD * STDCALL
mysql_fetch_field(MYSQL_RES *result)
{
if (result->current_field >= result->field_count)
return(NULL);
return &result->fields[result->current_field++];
}
/**************************************************************************
** Return next row of the query results
**************************************************************************/
MYSQL_ROW STDCALL
mysql_fetch_row(MYSQL_RES *res)
{
DBUG_ENTER("mysql_fetch_row");
if (!res->data)
{ /* Unbufferred fetch */
if (!res->eof)
{
if (!(read_one_row(res->handle,res->field_count,res->row, res->lengths)))
{
res->row_count++;
DBUG_RETURN(res->current_row=res->row);
}
else
{
DBUG_PRINT("info",("end of data"));
res->eof=1;
res->handle->status=MYSQL_STATUS_READY;
}
}
DBUG_RETURN((MYSQL_ROW) NULL);
}
{
MYSQL_ROW tmp;
if (!res->data_cursor)
{
DBUG_PRINT("info",("end of data"));
DBUG_RETURN(res->current_row=(MYSQL_ROW) NULL);
}
tmp = res->data_cursor->data;
res->data_cursor = res->data_cursor->next;
DBUG_RETURN(res->current_row=tmp);
}
}
/**************************************************************************
** Get column lengths of the current row
** If one uses mysql_use_result, res->lengths contains the length information,
** else the lengths are calculated from the offset between pointers.
**************************************************************************/
ulong * STDCALL
mysql_fetch_lengths(MYSQL_RES *res)
{
ulong *lengths,*prev_length;
byte *start;
MYSQL_ROW column,end;
if (!(column=res->current_row))
return 0; /* Something is wrong */
if (res->data)
{
start=0;
prev_length=0; /* Keep gcc happy */
lengths=res->lengths;
for (end=column+res->field_count+1 ; column != end ; column++,lengths++)
{
if (!*column)
{
*lengths=0; /* Null */
continue;
}
if (start) /* Found end of prev string */
*prev_length= (uint) (*column-start-1);
start= *column;
prev_length=lengths;
}
}
return res->lengths;
}
/**************************************************************************
** Move to a specific row and column
**************************************************************************/
void STDCALL
mysql_data_seek(MYSQL_RES *result, my_ulonglong row)
{
MYSQL_ROWS *tmp=0;
DBUG_PRINT("info",("mysql_data_seek(%ld)",(long) row));
if (result->data)
for (tmp=result->data->data; row-- && tmp ; tmp = tmp->next) ;
result->current_row=0;
result->data_cursor = tmp;
}
/*************************************************************************
** put the row or field cursor one a position one got from mysql_row_tell()
** This dosen't restore any data. The next mysql_fetch_row or
** mysql_fetch_field will return the next row or field after the last used
*************************************************************************/
MYSQL_ROW_OFFSET STDCALL
mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET row)
{
MYSQL_ROW_OFFSET return_value=result->data_cursor;
result->current_row= 0;
result->data_cursor= row;
return return_value;
}
MYSQL_FIELD_OFFSET STDCALL
mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET field_offset)
{
MYSQL_FIELD_OFFSET return_value=result->current_field;
result->current_field=field_offset;
return return_value;
}
/*****************************************************************************
** List all databases
*****************************************************************************/
MYSQL_RES * STDCALL
mysql_list_dbs(MYSQL *mysql, const char *wild)
{
char buff[255];
DBUG_ENTER("mysql_list_dbs");
append_wild(strmov(buff,"show databases"),buff+sizeof(buff),wild);
if (mysql_query(mysql,buff))
DBUG_RETURN(0);
DBUG_RETURN (mysql_store_result(mysql));
}
/*****************************************************************************
** List all tables in a database
** If wild is given then only the tables matching wild is returned
*****************************************************************************/
MYSQL_RES * STDCALL
mysql_list_tables(MYSQL *mysql, const char *wild)
{
char buff[255];
DBUG_ENTER("mysql_list_tables");
append_wild(strmov(buff,"show tables"),buff+sizeof(buff),wild);
if (mysql_query(mysql,buff))
DBUG_RETURN(0);
DBUG_RETURN (mysql_store_result(mysql));
}
/**************************************************************************
** List all fields in a table
** If wild is given then only the fields matching wild is returned
** Instead of this use query:
** show fields in 'table' like "wild"
**************************************************************************/
MYSQL_RES * STDCALL
mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
{
MYSQL_RES *result;
MYSQL_DATA *query;
char buff[257],*end;
DBUG_ENTER("mysql_list_fields");
DBUG_PRINT("enter",("table: '%s' wild: '%s'",table,wild ? wild : ""));
LINT_INIT(query);
end=strmake(strmake(buff, table,128)+1,wild ? wild : "",128);
if (simple_command(mysql,COM_FIELD_LIST,buff,(uint) (end-buff),1) ||
!(query = read_rows(mysql,(MYSQL_FIELD*) 0,6)))
DBUG_RETURN(NULL);
free_old_query(mysql);
if (!(result = (MYSQL_RES *) my_malloc(sizeof(MYSQL_RES),
MYF(MY_WME | MY_ZEROFILL))))
{
free_rows(query);
DBUG_RETURN(NULL);
}
result->field_alloc=mysql->field_alloc;
mysql->fields=0;
result->field_count = (uint) query->rows;
result->fields= unpack_fields(query,&result->field_alloc,
result->field_count,1,
(my_bool) test(mysql->server_capabilities &
CLIENT_LONG_FLAG));
result->eof=1;
DBUG_RETURN(result);
}
/* List all running processes (threads) in server */
MYSQL_RES * STDCALL
mysql_list_processes(MYSQL *mysql)
{
MYSQL_DATA *fields;
uint field_count;
uchar *pos;
DBUG_ENTER("mysql_list_processes");
LINT_INIT(fields);
if (simple_command(mysql,COM_PROCESS_INFO,0,0,0))
DBUG_RETURN(0);
free_old_query(mysql);
pos=(uchar*) mysql->net.read_pos;
field_count=(uint) net_field_length(&pos);
if (!(fields = read_rows(mysql,(MYSQL_FIELD*) 0,5)))
DBUG_RETURN(NULL);
if (!(mysql->fields=unpack_fields(fields,&mysql->field_alloc,field_count,0,
(my_bool) test(mysql->server_capabilities &
CLIENT_LONG_FLAG))))
DBUG_RETURN(0);
mysql->status=MYSQL_STATUS_GET_RESULT;
mysql->field_count=field_count;
DBUG_RETURN(mysql_store_result(mysql));
}
int STDCALL
mysql_create_db(MYSQL *mysql, const char *db)
{
DBUG_ENTER("mysql_createdb");
DBUG_PRINT("enter",("db: %s",db));
DBUG_RETURN(simple_command(mysql,COM_CREATE_DB,db, (uint) strlen(db),0));
}
int STDCALL
mysql_drop_db(MYSQL *mysql, const char *db)
{
DBUG_ENTER("mysql_drop_db");
DBUG_PRINT("enter",("db: %s",db));
DBUG_RETURN(simple_command(mysql,COM_DROP_DB,db,(uint) strlen(db),0));
}
int STDCALL
mysql_shutdown(MYSQL *mysql)
{
DBUG_ENTER("mysql_shutdown");
DBUG_RETURN(simple_command(mysql,COM_SHUTDOWN,0,0,0));
}
int STDCALL
mysql_refresh(MYSQL *mysql,uint options)
{
uchar bits[1];
DBUG_ENTER("mysql_refresh");
bits[0]= (uchar) options;
DBUG_RETURN(simple_command(mysql,COM_REFRESH,(char*) bits,1,0));
}
int STDCALL
mysql_kill(MYSQL *mysql,ulong pid)
{
char buff[12];
DBUG_ENTER("mysql_kill");
int4store(buff,pid);
DBUG_RETURN(simple_command(mysql,COM_PROCESS_KILL,buff,4,0));
}
int STDCALL
mysql_dump_debug_info(MYSQL *mysql)
{
DBUG_ENTER("mysql_dump_debug_info");
DBUG_RETURN(simple_command(mysql,COM_DEBUG,0,0,0));
}
char * STDCALL
mysql_stat(MYSQL *mysql)
{
DBUG_ENTER("mysql_stat");
if (simple_command(mysql,COM_STATISTICS,0,0,0))
return mysql->net.last_error;
mysql->net.read_pos[mysql->packet_length]=0; /* End of stat string */
if (!mysql->net.read_pos[0])
{
mysql->net.last_errno=CR_WRONG_HOST_INFO;
strmov(mysql->net.last_error, ER(mysql->net.last_errno));
return mysql->net.last_error;
}
DBUG_RETURN((char*) mysql->net.read_pos);
}
int STDCALL
mysql_ping(MYSQL *mysql)
{
DBUG_ENTER("mysql_ping");
DBUG_RETURN(simple_command(mysql,COM_PING,0,0,0));
}
char * STDCALL
mysql_get_server_info(MYSQL *mysql)
{
return((char*) mysql->server_version);
}
char * STDCALL
mysql_get_host_info(MYSQL *mysql)
{
return(mysql->host_info);
}
uint STDCALL
mysql_get_proto_info(MYSQL *mysql)
{
return (mysql->protocol_version);
}
char * STDCALL
mysql_get_client_info(void)
{
return (char*) MYSQL_SERVER_VERSION;
}
int STDCALL
mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)
{
DBUG_ENTER("mysql_option");
DBUG_PRINT("enter",("option: %d",(int) option));
switch (option) {
case MYSQL_OPT_CONNECT_TIMEOUT:
mysql->options.connect_timeout= *(uint*) arg;
break;
case MYSQL_OPT_COMPRESS:
mysql->options.compress=1; /* Remember for connect */
break;
case MYSQL_OPT_NAMED_PIPE:
mysql->options.named_pipe=1; /* Force named pipe */
break;
case MYSQL_INIT_COMMAND:
my_free(mysql->options.init_command,MYF(MY_ALLOW_ZERO_PTR));
mysql->options.init_command=my_strdup(arg,MYF(MY_WME));
break;
case MYSQL_READ_DEFAULT_FILE:
my_free(mysql->options.my_cnf_file,MYF(MY_ALLOW_ZERO_PTR));
mysql->options.my_cnf_file=my_strdup(arg,MYF(MY_WME));
break;
case MYSQL_READ_DEFAULT_GROUP:
my_free(mysql->options.my_cnf_group,MYF(MY_ALLOW_ZERO_PTR));
mysql->options.my_cnf_group=my_strdup(arg,MYF(MY_WME));
break;
case MYSQL_SET_CHARSET_DIR:
my_free(mysql->options.charset_dir,MYF(MY_ALLOW_ZERO_PTR));
mysql->options.charset_dir=my_strdup(arg,MYF(MY_WME));
break;
case MYSQL_SET_CHARSET_NAME:
my_free(mysql->options.charset_name,MYF(MY_ALLOW_ZERO_PTR));
mysql->options.charset_name=my_strdup(arg,MYF(MY_WME));
break;
default:
DBUG_RETURN(-1);
}
DBUG_RETURN(0);
}
/****************************************************************************
** Functions to get information from the MySQL structure
** These are functions to make shared libraries more usable.
****************************************************************************/
/* MYSQL_RES */
my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res)
{
return res->row_count;
}
unsigned int STDCALL mysql_num_fields(MYSQL_RES *res)
{
return res->field_count;
}
my_bool STDCALL mysql_eof(MYSQL_RES *res)
{
return res->eof;
}
MYSQL_FIELD * STDCALL mysql_fetch_field_direct(MYSQL_RES *res,uint fieldnr)
{
return &(res)->fields[fieldnr];
}
MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res)
{
return (res)->fields;
}
MYSQL_ROWS * STDCALL mysql_row_tell(MYSQL_RES *res)
{
return res->data_cursor;
}
uint STDCALL mysql_field_tell(MYSQL_RES *res)
{
return (res)->current_field;
}
/* MYSQL */
unsigned int STDCALL mysql_field_count(MYSQL *mysql)
{
return mysql->field_count;
}
my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql)
{
return (mysql)->affected_rows;
}
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
{
return (mysql)->insert_id;
}
uint STDCALL mysql_errno(MYSQL *mysql)
{
return (mysql)->net.last_errno;
}
char * STDCALL mysql_error(MYSQL *mysql)
{
return (mysql)->net.last_error;
}
char *STDCALL mysql_info(MYSQL *mysql)
{
return (mysql)->info;
}
ulong STDCALL mysql_thread_id(MYSQL *mysql)
{
return (mysql)->thread_id;
}
const char * STDCALL mysql_character_set_name(MYSQL *mysql)
{
return mysql->charset->name;
}
uint STDCALL mysql_thread_safe(void)
{
#ifdef THREAD
return 1;
#else
return 0;
#endif
}
/****************************************************************************
** Some support functions
****************************************************************************/
/*
** Add escape characters to a string (blob?) to make it suitable for a insert
** to should at least have place for length*2+1 chars
** Returns the length of the to string
*/
ulong STDCALL
mysql_escape_string(char *to,const char *from,ulong length)
{
return mysql_sub_escape_string(default_charset_info,to,from,length);
}
ulong STDCALL
mysql_real_escape_string(MYSQL *mysql, char *to,const char *from,
ulong length)
{
return mysql_sub_escape_string(mysql->charset,to,from,length);
}
static ulong
mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
const char *from, ulong length)
{
const char *to_start=to;
const char *end;
#ifdef USE_MB
my_bool use_mb_flag=use_mb(charset_info);
#endif
for (end=from+length; from != end ; from++)
{
#ifdef USE_MB
int l;
if (use_mb_flag && (l = my_ismbchar(charset_info, from, end)))
{
while (l--)
*to++ = *from++;
from--;
continue;
}
#endif
switch (*from) {
case 0: /* Must be escaped for 'mysql' */
*to++= '\\';
*to++= '0';
break;
case '\n': /* Must be escaped for logs */
*to++= '\\';
*to++= 'n';
break;
case '\r':
*to++= '\\';
*to++= 'r';
break;
case '\\':
*to++= '\\';
*to++= '\\';
break;
case '\'':
*to++= '\\';
*to++= '\'';
break;
case '"': /* Better safe than sorry */
*to++= '\\';
*to++= '"';
break;
case '\032': /* This gives problems on Win32 */
*to++= '\\';
*to++= 'Z';
break;
default:
*to++= *from;
}
}
*to=0;
return (ulong) (to-to_start);
}
char * STDCALL
mysql_odbc_escape_string(MYSQL *mysql,
char *to, ulong to_length,
const char *from, ulong from_length,
void *param,
char * (*extend_buffer)
(void *, char *, ulong *))
{
char *to_end=to+to_length-5;
const char *end;
#ifdef USE_MB
my_bool use_mb_flag=use_mb(mysql->charset);
#endif
for (end=from+from_length; from != end ; from++)
{
if (to >= to_end)
{
to_length = (ulong) (end-from)+512; /* We want this much more */
if (!(to=(*extend_buffer)(param, to, &to_length)))
return to;
to_end=to+to_length-5;
}
#ifdef USE_MB
{
int l;
if (use_mb_flag && (l = my_ismbchar(mysql->charset, from, end)))
{
while (l--)
*to++ = *from++;
from--;
continue;
}
}
#endif
switch (*from) {
case 0: /* Must be escaped for 'mysql' */
*to++= '\\';
*to++= '0';
break;
case '\n': /* Must be escaped for logs */
*to++= '\\';
*to++= 'n';
break;
case '\r':
*to++= '\\';
*to++= 'r';
break;
case '\\':
*to++= '\\';
*to++= '\\';
break;
case '\'':
*to++= '\\';
*to++= '\'';
break;
case '"': /* Better safe than sorry */
*to++= '\\';
*to++= '"';
break;
case '\032': /* This gives problems on Win32 */
*to++= '\\';
*to++= 'Z';
break;
default:
*to++= *from;
}
}
return to;
}
void STDCALL
myodbc_remove_escape(MYSQL *mysql,char *name)
{
char *to;
#ifdef USE_MB
my_bool use_mb_flag=use_mb(mysql->charset);
char *end;
LINT_INIT(end);
if (use_mb_flag)
for (end=name; *end ; end++) ;
#endif
for (to=name ; *name ; name++)
{
#ifdef USE_MB
int l;
if (use_mb_flag && (l = my_ismbchar( mysql->charset, name , end ) ) )
{
while (l--)
*to++ = *name++;
name--;
continue;
}
#endif
if (*name == '\\' && name[1])
name++;
*to++= *name;
}
*to=0;
}