mariadb/Docs/Tutorial-MySQL-final.txt
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

1643 lines
70 KiB
Text
Raw Blame History

8 Tutorial MySQL
=======================
Este cap<61>ítulo ofrece un tutorial de introducci<63>ón a MySQL, mostrando c<>ómo usar el programa cliente
mysql para crear y usar una simple base de datos. mysql (al que algunas veces nos referimos como
"monitor terminal" o simplemente "monitor") es un programa interactivo que te permite conectarte a
un servidor MySQL, ejecutar consultas y observar los resultados. mysql puede ser usado tambi<62>én en
modo batch: escribes tus consultas en un fichero de texto, para despu<70>és pedirle a mysql que
ejecute el contenido del fichero. Se cubren aqu<71>í esas dos formas de usar de usar mysql.
Para ver una lista de opciones proporcionadas por mysql, l<>ánzalo con las opci<63>ón --help :
shell> mysql --help
Este cap<61>ítulo asume que mysql est<73>á instalado en tu m<>áquina, y que hay disponible un servidor al que
te puedes conectar. Si esto no es as<61>í, contacta con tu administrador MySQL. (Si el administrador
eres t<>ú, necesitar<61>ás consultar otra secci<63>ón de este manual).
El cap<61>ítulo describe el proceso completo de configurar y usar una base de datos. Si est<73>ás interesado
s<EFBFBD>ólo en acceder una base de datos ya existente, querr<72>ás saltar las secciones que describen c<>ómo
crear la base de datos y las tablas que la contienen.
Dado que este cap<61>ítulo es un tutorial b<>ásico, se dejar<61>án en el tintero muchos
detalles. Consulta las secciones relevantes del manual para m<>ás informaci<63>ón sobre los temas
aqu<EFBFBD>í cubiertos.
8.1 Conectando y desconectando del servidor
=============================================
Para conectarse al servidor, generalmente necesitar<61>ás facilitar un nombre de usuario MySQL cuando
lances el cliente mysql y, lo m<>ás probable, tambi<62>én un password. Si el servidor se est<73>á ejecutando
en una m<>áquina distinta a la que est<73>ás conectado, necesitar<61>ás especificar tambi<62>én un nombre de
host. Contacta con tu administrador para averiguar qu<71>é par<61>ámetros de conexi<78>ón necesitas usar para
conectar (es decir, qu<71>é host, nombre de usuario y password usar). Una vez que conozcas los
par<EFBFBD>ámetros adecuados, deber<65>ás ser capaz de conectar de la siguiente forma:
shell> mysql -h host -u user -p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log
Type 'help' for help.
mysql>
El prompt te indica que mysql ya est<73>á listo para la introducci<63>ón de comandos.
Algunas instalaciones MySQL permiten a los usuarios conectarse como usuarios "anonymous" (sin
nombre) al servidor ejecut<75>ándose en el host local. Si este es el caso en tu m<>áquina, deber<65>ías ser
capaz de conectar a ese servidor invocando mysql sin ninguna opci<63>ón:
shell> mysql
Una vez que hayas conectado con <20>éxito, puedes desconectarte en cualquier momento tecleando QUIT en
el prompt mysql> :
mysql> QUIT
Bye
Tambi<EFBFBD>én puedes desconectar tecleando control-D.
La mayor parte de los ejemplos en las siguientes secciones asumen que est<73>ás conectado al
servidor. Lo indicar<61>án por el prompt mysql>
8.2 Haciendo consultas
========================
Aseg<EFBFBD>úrate de que est<73>ás conectado al servidor, como se ha discutido en secciones anteriores. El
hacerlo no implica que tengas seleccionada ninguna base de datos con la que trabajar, pero est<73>á
bien. En este punto, es m<>ás importante averiguar un poco sobre c<>ómo lanzar consultas que lanzarse
directamente a la creaci<63>ón de tablas, cargar datos en ellas y recuperar los datos de las
mismas. Esta secci<63>ón describe los principios b<>ásicos de la entrada de comandos, usando varias
consultas que puedes probar para familiarizarte con la forma de trabajo de mysql.
Aqu<EFBFBD>í presentamos un comando simple que pide al servidor que nos diga su n<>úmero de versi<73>ón y fecha
actual. Tecl<63>éalo como se muestra a continuaci<63>ón siguiendo el prompt mysql> y pulsa la tecla RETURN:
mysql> SELECT VERSION(), CURRENT_DATE;
+-----------+--------------+
| version() | CURRENT_DATE |
+-----------+--------------+
| 3.22.23b | 2000-01-05 |
+-----------+--------------+
1 row in set (0.06 sec)
mysql>
Esta consulta ilustra muchas cosas sobre mysql:
* Un comando consiste normalmente de una sentencia SQL seguida por un punto y coma. (Existen algunas
excepciones donde no es necesario el punto y coma. QUIT, mencionado m<>ás adelante, es una de
ellas. Conoceremos otras m<>ás adelante.)
* Cuando lanzas un comando, mysql lo env<6E>ía al servidor para su ejecuci<63>ón y muestra los resultados,
despu<70>és imprime otro mysql> para indicar que est<73>á listo para otro comando.
* mysql muestra la salida de una consulta como una tabla (filas y columnas). La primera fila
contiene etiquetas para las columnas. Las siguientes filas son el resultado de la
consulta. Normalmente, las etiquetas de las columnas son los nombres de las columnas que has
obtenido de la base de datos. Si pides el valor de una expresi<73>ón en vez de una columna de una
tabla (como en el ejemplo anterior), mysql etiqueta la columna usando la propia expresi<73>ón.
* mysql muestra el n<>úmero de filas que se han dado como resultado, y cu<63>ánto tiempo llev<65>ó la
ejecuci<63>ón de la consulta, lo que te da una idea aproximada del rendimiento del servidor. Estos
valores son imprecisos porque representan tiempo real (no tiempo de CPU o m<>áquina), y porque est<73>án
afectados por factores como la carga del servidor y la latencia de la red. (Por cuestiones de
brevedad, la l<>ínea "rows in set" no se mostrar<61>á en los ejemplos posteriores de este cap<61>ítulo.)
Las palabras clave pueden ser tecleadas en cualquier combinaci<63>ón may<61>úscula/min<69>úscula. Las siguientes
consultas son equivalentes:
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;
He aqu<71>í otra consulta. Demuestra que puedes usar mysql como una calculadora sencilla:
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+
Los comandos vistos hasta aqu<71>í han sido relativamente cortos, sentencias de una sola l<>ínea. Tambi<62>én puedes
insertar m<>últiples sentencias en una sola l<>ínea. Simplemente, termina cada una con un punto y coma:
mysql> SELECT VERSION(); SELECT NOW();
+-----------+
| version() |
+-----------+
| 3.22.23b |
+-----------+
+---------------------+
| NOW() |
+---------------------+
| 2000-01-05 17:33:16 |
+---------------------+
Un comando no necesita ser dado todo en una s<>óla l<>ínea, as<61>í pues, los comandos largos que requieran
varias lineas no son un problema. mysql determina cuando termina tu sentencia buscando el punto y
coma final, no buscando el final de la l<>ínea de entrada. (En otras palabras, mysql acepta entrada de
libre formato: recoleta las l<>íneas de entrada pero no las ejecutahasta que vea el punto y coma.)
Aqu<EFBFBD>í tenemos un simple ejemplo de m<>últiples l<>íneas:
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+----------------+--------------+
| USER() | CURRENT_DATE |
+----------------+--------------+
| root@localhost | 2000-01-05 |
+----------------+--------------+
En este ejemplo, observa como cambia el prompt de mysql> a -> una vez que has insertado la primera
l<EFBFBD>ínea de una consulta multi-l<>ínea. Esta es la forma en que mysql indica que no ha encontrado una
sentencia completa y que est<73>á esperando por el resto. El prompt es tu amigo, dado que ofrece una
retroalimentaci<EFBFBD>ón (feedback) significativa. Si usas ese feedback, siempre sabr<62>ás a qu<71>é est<73>á
esperando mysql.
Si decides que no quieres ejecutar un comando que est<73>á en proceso de introducci<63>ón, puedes cancelarlo
tecleando \c :
mysql> SELECT
-> USER
-> \c
mysql>
Observa aqu<71>í tambi<62>én el prompt. Ha vuelto a mysql> tras haber tecleado \c, ofreciendo un feedback
que indica que mysql est<73>á listo para un nuevo comando.
La siguiente tabla muestra cada uno de los prompts que puedes ver y resume qu<71>é es lo que significan
y el estado en el que se encontrar<61>á mysql:
Prompt Significado
mysql> Listo para un nuevo comando
-> Esperando una nueva l<>ínea de una consulta multi-l<>ínea
'> Esperando la siguiente l<>ínea, se ha insertado una l<>ínea que comienza con (')
"> Esperando la siguiente l<>ínea, se ha insertado una l<>ínea que comienza con (")
Las sentencias multi-l<>ínea ocurren com<6F>únmente "por accidente" cuando intentas lanzar un comando en
una <20>única l<>ínea, pero olvidas el punto y coma del final. En este caso, mysql espera m<>ás entrada:
mysql> SELECT USER()
->
Si esto es lo que te ocurre (crees que has introducido una sentencia pero la <20>única respuesta es un
prompt como ->), lo m<>ás probable es que mysql est<73>é esperando por el punto y coma. Si no observas qu<71>é
es lo que te dice el prompt, podr<64>ías quedarte esperando un buen rato antes de enterarte de qu<71>é es lo
que sucede. Introduce un punto y coma para completar la sentencia, y mysql la ejecutar<61>á:
mysql> SELECT USER()
-> ;
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
Los prompts '> y "> ocurren durante la recogida de strings. En MySQL, puedes escribir strings
encerrados por comillas simples (') o dobles (") (por ejemplo, 'hola' o "adios"), y mysql te permite
introducir tambi<62>én strings que se cortan en m<>últiples l<>íneas. Cuando veas un prompt como '> <20>ó ">,
significa que has introducido una l<>ínea que conten<65>ía un string que comenzaba por (') o ("), pero que
no has introducido a<>ún la comilla (simple o doble) de cierre. Esto est<73>á bien si realmente estabas
introduciendo un string multi-l<>ínea, pero no es lo m<>ás normal. Lo que s<>í es m<>ás normal, es que los
prompts '> <20>ó "> indiquen que te has olvidado del caracter de cierre " <20>ó '. Por ejemplo:
mysql> SELECT * FROM mi_tabla WHERE nombre ="Garc<72>ía AND edad < 30;
">
Si tecleas esta sentencia SELECT, despu<70>és pulsas ENTER y esperas por el resultado, no suceder<65>á
nada. En lugar de preocuparte, "<22>¿por qu<71>é tarda tanto esta consulta?", observa la pista que te ofrece
el prompt "> . Esto te indica que mysql espera ver el resto de un string que a<>ún no ha
terminado. (<28>¿Ves el error en la sentencia? La cadena "Garc<72>ía ha perdido las comillas de cierre.)
Llegados a este punto, <20>¿qu<71>é puedes hacer?. Lo m<>ás f<>ácil es cancelar el comando. Sin embargo, no
puedes teclear simplemente \c en este ejemplo, dado que mysql <20>¡lo interpretar<61>á como parte del string
que est<73>á leyendo! En vez de eso, introduce las comillas de cierre (para que mysql sepa que ya has
terminado de introducir el string), y despu<70>és teclea \c :
mysql> SELECT * FROM mi_tabla WHERE nombre ="Garc<72>ía AND edad < 30;
"> "\c
mysql>
El prompt vuelve a cambiar a mysql>, indicando que mysql est<73>á listo para un nuevo comando.
Es importante saber qu<71>é significan los prompts '> y ">, dado que si introduces por error un string
sin cerrar, cualquier otra l<>ínea que introduzcas ser<65>án ignoradas por mysql - <20>¡incluyendo una l<>ínea
que contenga QUIT! Esto puede ser bastante confuso, especialmente si no sabes que debes introducir
la comilla de cierre antes de poder cancelar el comando actual.
8.3 Creando y usando una base de datos
==========================================
Ahora que sabes como introducir comandos, es hora de acceder a la base de datos.
Supon que tienes varias mascotas en tu casa (tu peque<75>ño "zoo") y que te gustar<61>ía llevar un control
de varios tipos de informaci<63>ón sobre estos animales. Puedes hacerlo creando tablas que guarden tus
datos y cargandolas con la informaci<63>ón deseada. Despu<70>és puedes responder a diferentes series de
preguntas sobre tus animales extrayendo los datos de las tablas. Esta secci<63>ón explica c<>ómo hacer
todo esto:
* C<>ómo crear una base de datos
* C<>ómo crear una tabla
* C<>ómo cargar los datos en la tabla
* C<>ómo extraer informaci<63>ón de la tabla de varias maneras
* C<>ómo usar m<>últiples tablas
La base de datos del zoo ser<65>á simple (deliberadamente), pero no es dif<69>ícil pensar en situaciones del
mundo real en las que se pudiera utilizar una base de datos similar. Por ejemplo, se podr<64>ía usar una base
de datos como <20>ésta en una granja para llevar un control del ganado, o por un veterinario para
controlar el historial de sus pacientes.
Usa la sentencia SHOW para averiguar qu<71>é bases de datos existen actualmente en el servidor:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
Probablemente, la lista de las bases de datos ser<65>á diferente en tu m<>áquina, pero las bases de datos
mysql y test es probable que se encuentren en esa lista. Se requiere la base de datos mysql pues
describe los privilegios de acceso de los usuarios. La base de datos test se ofrece como campo de
pruebas para que los usuarios prueben ah<61>í sus teor<6F>ías.
Si la base de datos test existe, intenta acceder a ella:
mysql> USE test
Database changed
Observa que USE, como QUIT, no requiere un punto y coma. (Puedes terminar este tipo de sentencias
con un punto y coma si quieres, pero no es necesario.) La sentencia USE es especial en otro sentido,
tambi<EFBFBD>én: debe ser tecleada en una sola l<>ínea.
Puedes usar la base de datos test (si tienes acceso a ella) para los ejemplos que siguen, pero
cualquier cosa que crees en dicha base de datos puede ser eliminada por cualquiera que tenga acceso
a ella. Por esta raz<61>ón, deber<65>ías pedir a tu administrador MySQL permisos para usar una base de datos
propia. Suponte que le quieres llamar zoo. El administrador necesitar<61>á ejecutar entonces la
siguiente orden:
mysql> GRANT ALL ON zoo.* TO tu_nombre;
donde tu_nombre es el nombre de usuario MySQL que tengas asignado.
ejemplo:
mysql> GRANT ALL ON zoo.* TO chessy@localhost;
Query OK, 0 rows affected (0.08 sec)
8.3.1 Creando y seleccionando una base de datos
==================================================
Si el administrador cre<72>ó la base de datos para t<>í cuando te configur<75>ó los permisos, puedes comenzar
a usarla. En otro caso, deber<65>ás crearla t<>ú mismo:
[chessy@bishito chessy]$ mysql -u chessy
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 3.22.23b
Type 'help' for help.
mysql> CREATE DATABASE zoo;
Query OK, 1 row affected (0.02 sec)
Bajo Unix, los nombres de bases de datos son sensibles a las may<61>úsculas/min<69>úsculas (a diferencia de
los comandos SQL), as<61>í que deber<65>ás referirte siempre a tu base de datos con el nombre zoo, no como
Zoo, ZOO o cualquier otra variante. Es es as<61>í tambi<62>én para las tablas. (Bajo Windows, esta
restricci<EFBFBD>ón desaparece, aunque deber<65>ías referirte a las bases de datos y a las tablas usando la
misma sintaxis en tus consultas.)
Crear una base de datos no la selecciona para su uso, debes hacerlo expl<70>ícitamente. Para hacer que
la base de datos zoo sea tu base de datos de trabajo, usa el comando:
mysql> USE zoo;
Database changed
Tu base de datos s<>ólo necesita ser creada una vez, pero debes seleccionarla para usarla cada vez que
comiences una sesi<73>ón mysql. Puedes hacerlo lanzando un comando USE como se ha visto en el
ejemplo. Alternativamente, puedes seleccionar la base de datos desde la l<>ínea de comandos cuando
lanzas mysql. Simplemente especifica su nombre tras los par<61>ámetros de conexi<78>ón que hayas
escrito. Por ejemplo:
shell> mysql -h host -u user -p zoo
Enter password: ********
Observa que en la l<>ínea de comandos del ejemplo, zoo no es tu password. Si quieres introducir tu
password como par<61>ámetro en la l<>ínea de comandos tras la opci<63>ón -p, debes hacerlo sin teclear un
espacio en blanco intermedio (es decir, como -pmi_password, no como -p mi_password). Sin embargo, no
es recomendable poner tu password en la l<>ínea de comandos, pues hacerlo lo expone a posibles
miradas de otros usuarios conectados a tu m<>áquina.
8.3.2 Creando una tabla
============================
Crear una tabla es la parte f<>ácil, pero hasta este momento est<73>á vac<61>ía, como te dice la orden SHOW
TABLES:
mysql> SHOW TABLES;
Empty set (0.00 sec)
La parte m<>ás dura consiste en decidir cual va a ser la estructura de tu base de datos: qu<71>é tablas
necesitar<EFBFBD>ás, y qu<71>é columnas tendr<64>á cada una de ellas.
Querr<EFBFBD>ás seguramente una tabla que contenga un registro por cada una de tus mascotas. Esta tabla
puede llamarse mascotas, y deber<65>ía contener, como m<>ínimo, el nombre de cada animal. Dado que el
nombre por s<>í solo no es muy interesante, la tabla deber<65>ía contener otra informaci<63>ón. Por ejemplo,
si m<>ás de una persona de tu familia tiene mascotas, probablemente quieras listar el propietario de
cada animal. Tambi<62>én querr<72>ás guardar informaci<63>ón descriptiva b<>ásica como puede ser la especie y el
sexo de cada mascota.
<EFBFBD>¿Qu<EFBFBD>é pasa con la edad? Podr<64>ía ser de inter<65>és, pero no es una buena cosa a guardar en una base de
datos. La edad cambia a medida que pasa el tiempo, lo que significa que tendr<64>ás que actualizar tus
registros a menudo. En vez de eso, es mejor almacenar un valor fijo como la edad de
nacimiento. Despu<70>és, cada vez que necesites saber la edad, puedes calcularla como la diferencia
entre la fecha actual y la fecha de nacimiento. MySQL ofrece funciones para realizar c<>álculos
aritm<EFBFBD>éticos entre fechas, por lo que esto no es dif<69>ícil. Almacenar la fecha de nacimiento en lugar
de la edad tiene tambi<62>én otras ventajas:
* Puedes usar la base de datos para generar recordatorios de cumplea<65>ños de mascotas. (Si crees que
este tipo de consulta es algo tonta, observa que es la misma pregunta que necesitar<61>ás hacer en el
contexto de una base de datos de un negocio para identificar clientes a los que pronto necesitar<61>ás
mandar un saludo por su cumplea<65>ños, para ese toque personal asistido por ordenador :-)
* Puedes calcular la edad en relaci<63>ón a fechas distintas a la fecha actual. Por ejemplo, si
almacenas la fecha de muerte en la base de datos, puedes calcular f<>ácilmente lo vieja que era una
mascota cuando muri<72>ó.
Seguramente puedas pensar en otros tipos de informaci<63>ón que ser<65>ía <20>útil en la tabla mascota, pero los
identificados hasta ahora son suficientes por el momento: nombre, propietarios, especie, sexo, fecha
de nacimiento y muerte.
Usa una sentencia CREATE TABLE para especificar la estructura de tu tabla:
mysql> CREATE TABLE mascota (nombre VARCHAR(20), propietario VARCHAR(20),
-> especie VARCHAR(20), sexo CHAR(1), nacimiento DATE, muerte DATE);
VARCHAR es una buena elecci<63>ón para las columnas nombre, propietario y especie dado que los valores
de estas columnas variar<61>án su longitud. Las longitudes de estas columnas no necesitan ser iguales, y
no necesitan ser 20. Puedes elegir cualquier longitud entre 1 y 255, cualquiera que te parezca
razonable. (Si realizar una elecci<63>ón pobre y resulta que m<>ás adelante necesitas un campo mayor,
MySQL ofrece una sentencia ALTER TABLE.)
El sexo del animal puede ser representado en una variedad de formas, por ejemplo, "m" y "f", o
quiz<EFBFBD>ás "masculino" y "femenino". Es m<>ás simple usar un <20>único caracter, "m" <20>ó "f".
El uso del tipo de datos DATE para las columnas de nacimiento y muerte es una opci<63>ón bastante
obvia.
Ahora que ya has creado una tabla, SHOW TABLES deber<65>ía producir alguna salida:
mysql> SHOW TABLES;
+---------------+
| Tables in zoo |
+---------------+
| mascota |
+---------------+
Para verificar que tu tabla fue creada de la forma que esperabas, usa una sentencia DESCRIBE:
mysql> DESCRIBE mascota;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| nombre | varchar(20) | YES | | NULL | |
| propietario | varchar(20) | YES | | NULL | |
| especie | varchar(20) | YES | | NULL | |
| sexo | char(1) | YES | | NULL | |
| nacimiento | date | YES | | NULL | |
| muerte | date | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
Puedes usar DESCRIBE en cualquier momento, por ejemplo, si olvidas los nombres de las columnas de tu
tabla o a qu<71>é tipo de datos pertenecen.
8.3.3 Cargando datos en una tabla
=====================================
Una vez creada tu tabla, necesitas poblarla. Las sentencias LOAD DATA e INSERT son <20>útiles para esto.
Suponte que tus registros de mascotas pueden ser descritos como se muestra m<>ás abajo. (Observa que
MySQL espera que las fechas se introduzcan en formato AAAA-MM-DD; esto podr<64>ía ser diferente a lo que
est<EFBFBD>ás acostumbrado.)
nombre propietario especie sexo nacimiento muerte
Fluffy Harold gato f 1993-02-04
Claws Gwen gato m 1994-03-17
Buffy Harold perro f 1989-05-13
Fang Benny perro m 1990-08-27
Bowser Diane perro m 1998-08-31 1995-07-29
Chirpy Gwen p<>ájaro f 1998-09-11
Whistler Gwen p<>ájaro 1997-12-09
Slim Benny serpiente m 1996-04-29
Dado que est<73>ás comenzando con una tabla vac<61>ía, una forma sencilla de poblarla consiste en crear un
fichero de texto conteniendo una fila para cada uno de tus animales, y despu<70>és cargar el contenido del
fichero en la tabla con una sola sentencia.
Puedes crear un fichero de texto "mascota.txt" conteniendo un registro por l<>ínea, con valores separados
por tabuladores, y dados en el orden en el que las columnas fueron listadas en la sentencia CREATE
TABLE. Para valores perdidos (como sexos desconocidos, o fechas de muerte de animales que a<>ún est<73>án
vivos), puedes usar valores NULL. Para representar estos en tu fichero de texto, use \N. Por
ejemplo, el registro para Whistler el p<>ájaro ser<65>ía algo como esto (donde el espacio en blanco entre
valores es un simple caracter de tabulaci<63>ón):
Whistler Gwen p<>ájaro \N 1997-12-09 \N
Para cargar el fichero de texto "mascota.txt" en la tabla mascota, usa este comando:
mysql> LOAD DATA LOCAL INFILE "mascota.txt" INTO TABLE mascota;
Puedes especificar el valor de separaci<63>ón de columna y el marcador de final de l<>ínea expl<70>ícitamente
en la sentencia LOAD DATA si lo deseas, pero por defecto equivalen a TAB y LF (intro). Estos valores
por defecto son suficientes para que la sentencia que lee el fichero "mascota.txt" funcione
correctamente.
Cuando quieras a<>ñadir nuevos registros uno a uno, la sentencia INSERT es muy <20>útil. En su forma m<>ás
simple, ofreces valores para cada columna, en el orden en el que las columnas fueron listadas en la
sentencia CREATE TABLE. Sup<75>ón que Diane consige un nuevo hamster llamado Puffball. Podr<64>ías a<>ñadir un
nuevo registro usando una sentencia INSERT como esta:
mysql> INSERT INTO mascota
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Observa que los valores string y fecha se espefican encerrados entre comillas. Observa tambi<62>én que,
con INSERT, puedes insertar NULL directamente para representar un valor perdido. No usamos \N como
hac<EFBFBD>íamos con LOAD DATA.
De este ejemplo, deber<65>ías ser capaz de ver que hubiera dido mucho m<>ás costoso teclear todos los
datos necesarios en la tabla mascota con sentencias INSERT que hacerlo como lo hemos hecho con una
<EFBFBD>única sentencia LOAD DATA.
8.3.4 Extrayendo informaci<63>ón de una tabla
===============================================
La sentencia SELECT se usa para recabar informaci<63>ón de una tabla. La forma
general de la sentencia es:
SELECT qu<71>é_seleccionar
FROM de_qu<71>é_tabla
WHERE condiciones_a_satisfacer
qu<EFBFBD>é_seleccionar indica qu<71>é es lo que quieres seleccionar. Puede ser una lista de
columnas, o * para indicar "todas las columnas". de_qu<71>é_tabla indica la tabla de
la que quieres extraer datos. La cla<6C>úsula WHERE es opcional. Si est<73>á presente,
condiciones_a_satisfacer especifica las codiciones que las filas deben cumplir
para estar presentes en el resultado de la selecci<63>ón.
8.3.4.1 Seleccionando todos los datos
=======================================
La forma m<>ás simplede SELECT recoge toda la informaci<63>ón de una tabla:
mysql> SELECT * FROM mascota;
+----------+-------------+-----------+------+------------+------------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+----------+-------------+-----------+------+------------+------------+
| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
| Fang | Benny | perro | m | 1990-08-27 | NULL |
| Bowser | Diane | perro | m | 1998-08-31 | 1995-07-29 |
| Chirpy | Gwen | p<>ájaro | f | 1998-09-11 | NULL |
| Whistler | Gwen | p<>ájaro | NULL | 1997-12-09 | NULL |
| Slim | Benny | serpiente | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------------+-----------+------+------------+------------+
Esta forma de SELECT es <20>útil si quieres revisar tu tabla al completo, por
ejemplo, tras haberla cargado con tu conjunto inicial de datos. Como suele
suceder, la salida ya muestra un error en tu fichero de datos: Bowser <20>¡parece
haber nacido tras su muerte! Consultando tus papeles originales sobre el
pedigree del perro, descubres que la fecha correcta de nacimiento es 1989, no
1998.
Existen al menos un par de maneras de arreglar esto:
* Edita el fichero "mascota.txt" para corregir el error, despu<70>és vac<61>ía la tabla
y vuelve a cargarla usando DELETE y LOAD DATA:
mysql> DELETE from mascota;
mysql> LOAD DATA LOCAL INFILE "mascota.txt" INTO TABLE mascota;
Sin embargo, si haces esto, debes re-escribir el registro para Puffball.
* Arreglar s<>ólo el registro err<72>óneo con la sentencia UPDATE:
mysql> UPDATE mascota SET nacimiento="1989-08-31" WHERE nombre="Bowser";
Como se muestra m<>ás arriba, es f<>ácil recuperar el cuerpo de una data. Pero
t<EFBFBD>ípicamente no querr<72>ás hacer eso, en particular cuando la tabla sea muy
larga. Generalmente, estar<61>ás m<>ás interesado en responder a una pregunta en
particular, en cuyo caso deber<65>ás especificar algunas restricciones en la
informaci<EFBFBD>ón que deseas. Veamos algunas consultas de selecci<63>ón en t<>érminos de
preguntas sobre tus mascotas que se deben responder.
8.3.4.2 Seleccionando filas en particular
=============================================
Puedes seleccionar s<>ólo filas en particular de tu tabla. Por ejemplo, si quieres
verificar el cambio que has realizado a la fecha de nacimiento de Bowser,
selecciona el registro de Bowser de la siguiente forma:
mysql> SELECT * FROM mascota WHERE nombre="Bowser";
+--------+-------------+---------+------+------------+------------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+------------+
| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
+--------+-------------+---------+------+------------+------------+
La salida confirma que el a<>ño est<73>á correctamente registrado como 1989, no 1998.
Las comparaciones de cadenas de texto son normalmente insensibles a las
may<EFBFBD>úsculas/min<69>úsculas, por lo que puedes especificar el nombre como "bowser",
"BOWSER", etc. El resultado de la consulta ser<65>á el mismo.
Puedes especificar condiciones en cualquier columna, no s<>ólo el nombre. Por
ejemplo, si quisieras saber qu<71>é animales nacieron a partir de 1998, examina la
columna nacimiento:
mysql> SELECT * FROM mascota WHERE nacimiento >= "1998-1-1";
+----------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+----------+-------------+---------+------+------------+--------+
| Chirpy | Gwen | p<>ájaro | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------------+---------+------+------------+--------+
Puedes combinar condiciones, por ejemplo, para localizar los perros hembra:
mysql> SELECT * FROM mascota WHERE especie="perro" AND sexo="f";
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
La consulta anterior usa el operador l<>ógico AND. Existe tambi<62>én un operador OR:
mysql> SELECT * FROM mascota WHERE especie="serpiente" OR especie="p<>ájaro";
+----------+-------------+-----------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+----------+-------------+-----------+------+------------+--------+
| Chirpy | Gwen | p<>ájaro | f | 1998-09-11 | NULL |
| Whistler | Gwen | p<>ájaro | NULL | 1997-12-09 | NULL |
| Slim | Benny | serpiente | m | 1996-04-29 | NULL |
+----------+-------------+-----------+------+------------+--------+
AND y OR pueden entremezclarse. Si lo haces, es una buena idea el utilizar
par<EFBFBD>éntesis para indicar c<>ómo deber<65>ían agruparse las condiciones:
mysql> SELECT * FROM mascota WHERE (especie="gato" AND sexo="m")
-> OR (especie="perro" AND sexo="f");
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
8.3.4.3 Seleccionando columnas en particular
===================================================
Si no quieres ver filas completas de tu tabla, simplemente nombra las columnas
en las cuales est<73>ás interesado, separadas por comas. Por ejemplo, si quieres
saber cu<63>ándo nacieron tus animales, selecciona las columnas nombre y nacimiento:
mysql> SELECT nombre, nacimiento FROM mascota;
+----------+------------+
| nombre | nacimiento |
+----------+------------+
| Bluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Buffy | 1989-05-13 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Puffball | 1999-03-30 |
+----------+------------+
Para averiguar qui<75>én posee mascotas, usa esta consulta:
mysql> SELECT propietario FROM mascota;
+-------------+
| propietario |
+-------------+
| Harold |
| Gwen |
| Harold |
| Benny |
| Diane |
| Gwen |
| Gwen |
| Benny |
| Diane |
+-------------+
Sin embargo, observa que la consulta simplemente obtiene el campo propietario de
cada registro, y algunos de ellos aparecen m<>ás de una vez. Para minimizar la
salida, obt<62>én cada registro de salida <20>único una sola vez a<>ñadiendo la palabra
reservada DISTINCT:
mysql> SELECT DISTINCT propietario FROM mascota;
+-------------+
| propietario |
+-------------+
| Benny |
| Diane |
| Gwen |
| Harold |
+-------------+
Puedes usar una cla<6C>úsula WHERE para combinar la selecci<63>ón de filas con la
selecci<EFBFBD>ón de columnas. Por ejemplo, para conseguir s<>ólo las fechas de nacimiento
de perros y gatos, usa esta consulta:
mysql> SELECT nombre, especie, nacimiento FROM mascota
-> WHERE especie = "perro" OR especie = "gato";
+--------+---------+------------+
| nombre | especie | nacimiento |
+--------+---------+------------+
| Bluffy | gato | 1993-02-04 |
| Claws | gato | 1994-03-17 |
| Buffy | perro | 1989-05-13 |
| Fang | perro | 1990-08-27 |
| Bowser | perro | 1989-08-31 |
+--------+---------+------------+
8.3.4.4 Ordenando filas
===========================
Tal vez hayas observado que en los ejemplos anteriores las filas del resultado
se muestran sin ning<6E>ún tipo de orden en particular. Sin embargo, a menudo es m<>ás
f<EFBFBD>ácil de examinar la salida de una consulta cuando las filas est<73>án ordenadas de
alguna manera en particular. Para ordenar un resultado, usa la cla<6C>úsula ORDER
BY.
Aqu<EFBFBD>í mostramos las fechas de nacimiento de los animales, ordenadas por fecha:
mysql> SELECT nombre, nacimiento FROM mascota ORDER BY nacimiento;
+----------+------------+
| nombre | nacimiento |
+----------+------------+
| Buffy | 1989-05-13 |
| Bowser | 1989-08-31 |
| Fang | 1990-08-27 |
| Bluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+
Para ordenar de forma inversa, a<>ñade la palabra reservada DESC (descendente) al
nombre de la columna por la que est<73>ás ordenando:
mysql> SELECT nombre, nacimiento FROM mascota ORDER BY nacimiento DESC;
+----------+------------+
| nombre | nacimiento |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Bluffy | 1993-02-04 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Buffy | 1989-05-13 |
+----------+------------+
Puedes ordenar por m<>últiples columnas. Por ejemplo, para ordenar por tipo de
animal, despu<70>és por fecha de nacimiento dentro del mismo tipo de animal estando
los animales m<>ás j<>óvenes primero, usa la siguiente consulta:
mysql> SELECT nombre, especie, nacimiento FROM mascota ORDER BY especie, nacimiento DESC;
+----------+-----------+------------+
| nombre | especie | nacimiento |
+----------+-----------+------------+
| Claws | gato | 1994-03-17 |
| Bluffy | gato | 1993-02-04 |
| Puffball | hamster | 1999-03-30 |
| Chirpy | p<>ájaro | 1998-09-11 |
| Whistler | p<>ájaro | 1997-12-09 |
| Fang | perro | 1990-08-27 |
| Bowser | perro | 1989-08-31 |
| Buffy | perro | 1989-05-13 |
| Slim | serpiente | 1996-04-29 |
+----------+-----------+------------+
Observa que la palabra reservada DESC se aplica s<>ólo al nombre de columna que
preceda a la palabra reservada (nacimiento); los valores especie siguen siendo
ordenados en forma ascendente.
8.3.4.5 C<>álculos de fecha
============================
MySQL ofrece muchas funciones que puedes usar para realizar c<>álculos con fechas,
por ejemplo, para calcular edades o extraer partes de fechas.
Para determinar cuantos a<>ños tiene cada una de tus mascotas, puedes calcular la
edad como la diferencia entre la fecha de nacimiento y la fecha actual. Puedes
hacerlo convirtiendo las dos fechas a dias, coge la diferencia, y div<69>ídela por
365 (el n<>úmero de dias en un a<>ño):
mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 FROM mascota;
+----------+------------------------------------------+
| nombre | (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 |
+----------+------------------------------------------+
| Bluffy | 6.94 |
| Claws | 5.83 |
| Buffy | 10.68 |
| Fang | 9.39 |
| Bowser | 10.38 |
| Chirpy | 1.34 |
| Whistler | 2.10 |
| Slim | 3.71 |
| Puffball | 0.79 |
+----------+------------------------------------------+
Aunque la consulta funcione, existen algunos puntos que podr<64>ían ser
mejorados. Primero, el resultado podr<64>ía ser revisado m<>ás f<>ácilmente si las filas
se presentaran ordenadas de alguna manera. Segundo, la cabecera de la columna
edad no es muy significativa.
El primer problema puede ser solucionado a<>ñadiendo una cl<63>áusula ORDER BY nombre
para ordenar la salida por nombre. Para arreglar el tema del encabezamiento de
columna, puedes darle un nombre a dicha columna de tal forma que aparezca una
etiqueta diferente en la salida (esto es lo que se llama un alias de columna):
mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad
-> FROM mascota ORDER BY nombre;
+----------+-------+
| nombre | edad |
+----------+-------+
| Bluffy | 6.94 |
| Bowser | 10.38 |
| Buffy | 10.68 |
| Chirpy | 1.34 |
| Claws | 5.83 |
| Fang | 9.39 |
| Puffball | 0.79 |
| Slim | 3.71 |
| Whistler | 2.10 |
+----------+-------+
Para ordenar la salida por edad en lugar de por nombre, puedes hacerlo usando
s<EFBFBD>ímplemente una cl<63>áusula ORDER BY diferente:
mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad
-> FROM mascota ORDER BY edad;
+----------+-------+
| nombre | edad |
+----------+-------+
| Puffball | 0.79 |
| Chirpy | 1.34 |
| Whistler | 2.10 |
| Slim | 3.71 |
| Claws | 5.83 |
| Bluffy | 6.94 |
| Fang | 9.39 |
| Bowser | 10.38 |
| Buffy | 10.68 |
+----------+-------+
Puede usarse una consulta similar para determinar la edad de la muerte para los
animales que hayan muerto. Puedes determinar qu<71>é animales son estos comprobando
si el valor muerte es NULL o no. Despu<70>és, para aquellos que no tengan un valor
NULL, calcular la diferencia entre los valores muerte y nacimiento:
mysql> select nombre, nacimiento, muerte,
-> (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad
-> FROM mascota WHERE muerte IS NOT NULL ORDER BY edad;
+--------+------------+------------+-------+
| nombre | nacimiento | muerte | edad |
+--------+------------+------------+-------+
| Bowser | 1989-08-31 | 1995-07-29 | 10.38 |
+--------+------------+------------+-------+
La consulta usa muerte IS NOT NULL en lugar de muerte != NULL dado que NULL es
un valor especial. Esto se explica m<>ás adelante. [Puedes consultar la secci<63>ón
[Working with NULL] del manual de MySQL.
<EFBFBD>¿Qu<EFBFBD>é har<61>ías si quisieras saber qu<71>é animales cumplen a<>ños el mes que viene? Para
este tipo de c<>álculos, a<>ño y d<>ía son irrelevantes, simplemente querr<72>ás extraer
la parte mes de la columna nacimiento. MySQL ofrece muchas funciones de
extracci<EFBFBD>ón de parte-de-fecha, como YEAR(),MONTH() y DAY(). La funci<63>ón apropiada
para nuestro problema es MONTH(). Para ver c<>ómo funciona, ejecuta una consulta
r<EFBFBD>ápida que muestre el valor de la fecha de nacimiento y el mes de nacimiento
(MONTH(nacimiento)):
mysql> SELECT nombre, nacimiento, MONTH(nacimiento) FROM mascota;
+----------+------------+-------------------+
| nombre | nacimiento | MONTH(nacimiento) |
+----------+------------+-------------------+
| Bluffy | 1993-02-04 | 2 |
| Claws | 1994-03-17 | 3 |
| Buffy | 1989-05-13 | 5 |
| Fang | 1990-08-27 | 8 |
| Bowser | 1989-08-31 | 8 |
| Chirpy | 1998-09-11 | 9 |
| Whistler | 1997-12-09 | 12 |
| Slim | 1996-04-29 | 4 |
| Puffball | 1999-03-30 | 3 |
+----------+------------+-------------------+
Buscar animales que hayan nacido en el mes pr<70>óximo es tambi<62>én sencillo de
realizar. Suponte que Abril es el mes actual. Entonces el valor del mes es 4 y
lo que buscas son animales nacidos en Mayo (mes 5):
mysql> SELECT nombre, nacimiento FROM mascota WHERE MONTH(nacimiento) = 5;
+--------+------------+
| nombre | nacimiento |
+--------+------------+
| Buffy | 1989-05-13 |
+--------+------------+
Existe una peque<75>ña complicaci<63>ón si el mes actual es Diciembre, por supuesto. No
puedes a<>ñadir simplemente uno al n<>úmero de mes (12) y buscar animales nacidos en
el mes 13, dado que no existe tal mes. En lugar de eso, debes buscar animales
nacidos en Enero (mes 1).
Puedes escribir la consulta de tal forma que funcione independientemente del mes
en el que estemos. De esa forma no tendr<64>ás que usar un n<>úmero de mes en
particular en la consulta. DATE_ADD() te permite a<>ñadir un intervalo de tiempo a
una fecha dada. Si a<>ñades un mes al valor de NOW(), y despu<70>és extraes la parte
del mes con MONTH(), el resultado produce el mes del cumplea<65>ños que buscamos:
mysql> select NOW();
+---------------------+
| NOW() |
+---------------------+
| 2000-01-13 18:13:09 |
+---------------------+
mysql> SELECT nombre, nacimiento FROM mascota
-> WHERE MONTH(nacimiento) = MONTH(DATE_ADD(NOW(),INTERVAL 1 MONTH));
+--------+------------+
| nombre | nacimiento |
+--------+------------+
| Bluffy | 1993-02-04 |
+--------+------------+
Una manera difente de conseguir los mismos resultados es a<>ñadir 1 al mes actual
para conseguir el mes siguiente (tras usar la funci<63>ón m<>ódulo (MOD) para
convertir el valor de mes actual en 0 si estamos en Diciembre (mes 12)):
mysql> SELECT nombre, nacimiento FROM mascota
-> WHERE MONTH(nacimiento) = MOD(MONTH(NOW()),12) +1;
+--------+------------+
| nombre | nacimiento |
+--------+------------+
| Bluffy | 1993-02-04 |
+--------+------------+
8.3.4.6 Trabajando con valores NULL
=======================================
Los valores NULL pueden ser sorprenderte hasta que te acostumbras a
usarlos. Conceptualmente, NULL significa "valor perdido" o "valor desconocido" y
se trata de forma diferente que otros valores. Para realizar comparaciones
respecto a NULL, no puedes utilizar los operadores de comparaci<63>ón aritm<74>éticos
como =, < o != . Puedes realizar una demostraci<63>ón de esto, prueba la siguiente consulta:
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
Ciertamente, de estas comparaciones no se pueden extraer resultados
significativos. Para conseguirlo, usa los operadores IS NULL y IS NOT NULL:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
En MySQL, 0 significa falso y 1 significa VERDADERO.
Este tratamiento especial de NULL fue la causa de que en la secci<63>ón anterior
fuera necesario determinar qu<71>é animales ya no viv<69>ían usando "muerte IS NOT NULL"
en lugar de "muerte != NULL".
8.3.4.7 Asociaci<63>ón/Coincidencia de patrones (PATTERN MATCHING)
================================================================
MySQL ofrece las caracter<65>ísticas de asociaci<63>ón de patrones est<73>ándar as<61>í como
una forma de coincidencia de patrones basadas en expresiones regulares
extendidas similares a las usadas por utilidades UNIX como vi, grep y sed.
La asociaci<63>ón de patrones SQL te permite usar '_' para asociar cualquier
caracter simple, y '%' para asociar un n<>úmero arbitrario de caracteres
(incluyendo cero caracteres). Los patrones SQL no toman en cuenta las
diferencias entre may<61>úsculas y min<69>úsculas. Se muestran debajo algunos
ejemplos. Observa que no se utiliza = o != en el trabajo con patrones SQL;
utiliza en su lugar los operadores de comparaci<63>ón LIKE o NOT LIKE.
Para buscar nombres que comienzan por "b":
mysql> SELECT * FROM mascota WHERE nombre LIKE "b%";
+--------+-------------+---------+------+------------+------------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+------------+
| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
+--------+-------------+---------+------+------------+------------+
Para buscar nombres que terminen por "fy":
mysql> SELECT * FROM mascota WHERE nombre LIKE "%fy";
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
Para buscar nombres que contengan una "w":
mysql> SELECT * FROM mascota WHERE nombre LIKE "%w%";
+----------+-------------+---------+------+------------+------------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+----------+-------------+---------+------+------------+------------+
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | p<>ájaro | NULL | 1997-12-09 | NULL |
+----------+-------------+---------+------+------------+------------+
Para buscar nombres de longitud cinco caracteres, usa el patr<74>ón "_" :
mysql> SELECT * FROM mascota WHERE nombre LIKE "_____";
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
El otro tipo de asociaci<63>ón de patrones ofrecido por MySQL utiliza expresiones
regulares extendidas. Cuando se realiza una comprobaci<63>ón buscando una coincidencia
para este tipo de patr<74>ón, se deben usar los operadores REGEXP y NOT REGEXP (o
RLIKE y NOT RLIKE, dado que son sin<69>ónimos).
Algunas caracter<65>ísticas de las expresiones regulares extendidas son:
* `.' se asocia con cualquier caracter (pero s<>ólo uno)
* Una clase de caracteres `[...]' se asocia con culquier caracter contenido
dentro de los corchetes. Por ejemplo, `[abc]' se asocia con 'a', 'b' <20>ó
* 'c'. Para nombrar un rango de caracteres, usa un gui<75>ón. `[a-z]' se asocia con
cualquier letra en min<69>úscula, donde '[0-9]' se asocia con cualquier d<>ígito.
* '*' se asocia con 0 o m<>ás instancias de lo que preceda al asterisco. Por
ejemplo,'a*' coincide con cualquier n<>úmero de a's,'[0-9]*' se asocia con
cualquier n<>úmero de d<>ígitos, y '.*' se asocia con cualquier cosa.
* Las expresiones regulares son sensibles a las may<61>úsculas/min<69>úsculas, pero
puedes utilizar una clase caracter para asociar ambos casos si los deseas. Por
ejemplo, '[aA]' coincide tanto con la letra a min<69>úscula como con la letra A
may<61>úscula y '[a-zA-Z]' coincide con cualquier letra en cualquier modo
may<61>úscula/min<69>úscula.
* El patr<74>ón se asocia si ocurre en cualquier lugar dentro del valor a ser
probado (los patrones SQL coinciden s<>ólo si se asocian con el valor
completo).
* Para anclar un patr<74>ón de manera que se busque la coincidencia bien al comienzo
o bien al final del valor a ser comprobado, usa '^' al comienzo del patr<74>ón o
'$' al final del patr<74>ón, respectivamente.
Para demostrar c<>ómo funcionan las expresiones regulares, las consultas LIKE
mostradas antes son reescritas debajo para usar REGEXP:
Para buscar nombres que comiencen por "b", usa '^' para buscar la coincidencia
al comienzo del nombre y '[bB]' para buscar la asociaci<63>ón tanto con la b
min<EFBFBD>úscula como con la b may<61>úscula:
mysql> SELECT * FROM mascota WHERE nombre REGEXP "^[bB]";
+--------+-------------+---------+------+------------+------------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+------------+
| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
+--------+-------------+---------+------+------------+------------+
Para buscar nombres que terminen por "fy", usa "$" para buscar la coincidencia
al final del nombre:
mysql> SELECT * FROM mascota WHERE nombre REGEXP "fy$";
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
Para buscar nombres que contengan una "w", utiliza "[wW]" para buscar la
asociaci<EFBFBD>ón tanto en may<61>úsculas como min<69>úsculas:
mysql> SELECT * FROM mascota WHERE nombre REGEXP "[wW]";
+----------+-------------+---------+------+------------+------------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+----------+-------------+---------+------+------------+------------+
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | p<>ájaro | NULL | 1997-12-09 | NULL |
+----------+-------------+---------+------+------------+------------+
Dado que un patr<74>ón de una expresi<73>ón regular se asocia si ocurre en cualquier
lugar del valor, no es necesario poner un caracter comod<6F>ín en ning<6E>ún lado del
patr<EFBFBD>ón para conseguir que se asocie con el valor completo como har<61>ías si usaras
un patr<74>ón SQL.
Para buscar nombres conteniendo exactamente cinco caracteres, usa "^" y "$" para
asociar el comienzo y el final de un nombre, y cinco instancias de "." entre
ellos:
mysql> SELECT * FROM mascota WHERE nombre REGEXP "^.....$";
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
Tambi<EFBFBD>én podr<64>ías haber escrito la consulta anterior usando el operador '{n}'
"repetir n veces":
mysql> SELECT * FROM mascota WHERE nombre REGEXP "^.{5}$";
+--------+-------------+---------+------+------------+--------+
| nombre | propietario | especie | sexo | nacimiento | muerte |
+--------+-------------+---------+------+------------+--------+
| Claws | Gwen | gato | m | 1994-03-17 | NULL |
| Buffy | Harold | perro | f | 1989-05-13 | NULL |
+--------+-------------+---------+------+------------+--------+
8.3.4.8 Contando filas
=======================
Las bases de datos son usadas a menudo para responder a la pregunta, "<22>¿cuantas
veces aparece un determinado tipo de datos en una tabla?". Por ejemplo, podr<64>ías
querer saber cu<63>ántas mascotas tienes, o cu<63>ántas mascotas tiene cada propietario,
o podr<64>ías querer realizar varios tipos de censos respecto a tus animales.
Contar el n<>úmero total de animales que tienes es lo mismo que preguntar
"<22>¿cu<63>ántas filas hay en la tabla mascota?", dado que hay s<>ólo una fila por
mascota. La funci<63>ón COUNT() cuenta el n<>úmero de resultados no-NULL , as<61>í pues,
la consulta a realizar para contar el n<>úmero de animales tiene la siguiente forma:
mysql> SELECT COUNT(*) FROM mascota;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+
Antes, conseguiste los nombres de las personas que poseen una mascota. Puedes
usar COUNT() para averiguar cu<63>ántas mascotas tiene cada propietario:
mysql> SELECT propietario, COUNT(*) FROM mascota GROUP BY propietario;
+-------------+----------+
| propietario | COUNT(*) |
+-------------+----------+
| Benny | 2 |
| Diane | 2 |
| Gwen | 3 |
| Harold | 2 |
+-------------+----------+
Observa el uso de GROUP BY para agrupar todos los registros de cada
propietario. Si no lo hubi<62>éramos puesto, todo lo que conseguirias ser<65>ía un
mensaje de error:
mysql> SELECT propietario, COUNT(propietario) FROM mascota;
ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP
columns is illegal if there is no GROUP BY clause
COUNT() y GROUP BY son <20>útiles para la caracterizaci<63>ón de tus datos de varias
formas. Los siguientes ejemplos muestran difentes maneras para realizar
operaciones de censo animal.
N<EFBFBD>úmero de animales por especies:
mysql> SELECT especie, COUNT(*) FROM mascota GROUP BY especie;
+-----------+----------+
| especie | COUNT(*) |
+-----------+----------+
| gato | 2 |
| hamster | 1 |
| p<>ájaro | 2 |
| perro | 3 |
| serpiente | 1 |
+-----------+----------+
N<EFBFBD>úmero de animales por sexo:
mysql> SELECT sexo , COUNT(*) FROM mascota GROUP BY sexo;
+------+----------+
| sexo | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+
(En este resultado, NULL indica "sexo desconocido")
El n<>úmero de animales por combinaci<63>ón de especies y sexo:
mysql> SELECT especie , sexo, COUNT(*) FROM mascota GROUP BY especie, sexo;
+-----------+------+----------+
| especie | sexo | COUNT(*) |
+-----------+------+----------+
| gato | f | 1 |
| gato | m | 1 |
| hamster | f | 1 |
| p<>ájaro | NULL | 1 |
| p<>ájaro | f | 1 |
| perro | f | 1 |
| perro | m | 2 |
| serpiente | m | 1 |
+-----------+------+----------+
No necesitas recuperar una tabla completa cuando uses COUNT(). Por ejemplo, la
consulta anterior, cuando se realiza s<>ólo sobre perros y gatos, se escribe as<61>í:
mysql> SELECT especie , sexo, COUNT(*) FROM mascota
-> WHERE especie = "perro" OR especie = "gato"
-> GROUP BY especie, sexo;
+---------+------+----------+
| especie | sexo | COUNT(*) |
+---------+------+----------+
| gato | f | 1 |
| gato | m | 1 |
| perro | f | 1 |
| perro | m | 2 |
+---------+------+----------+
O, si quieres conocer el n<>úmero de animales por sexo s<>ólo para animales de sexo
conocido:
mysql> SELECT especie , sexo, COUNT(*) FROM mascota
-> WHERE sexo IS NOT NULL
-> GROUP BY especie, sexo;
+-----------+------+----------+
| especie | sexo | COUNT(*) |
+-----------+------+----------+
| gato | f | 1 |
| gato | m | 1 |
| hamster | f | 1 |
| p<>ájaro | f | 1 |
| perro | f | 1 |
| perro | m | 2 |
| serpiente | m | 1 |
+-----------+------+----------+
8.3.5 Usando m<>ás de una tabla
===============================
La tabla mascota guarda datos sobre las mascotas que posees. Si quieres guardar
otra informaci<63>ón sobre ellos, como eventos en sus vidas, visitas al veterinario
o cu<63>ándo han tenido hermanos, necesitas otra tabla. <20>¿C<C2BF>ómo deber<65>ía ser esta otra
tabla?
* Deber<65>á contener el nombre de la mascota de tal forma que pudieras saber a qu<71>é
animal corresponde cada evento almacenado en la misma.
* Necesitar<61>á una fecha para conocer cu<63>ándo ocurri<72>ó el evento.
* Necesitar<61>á un campo para describir el evento
* Si quieres ser capaz de categorizar los eventos, ser<65>ía <20>útil tener un campo de
tipo evento.
Dadas estas consideraciones, la sentencia CREATE TABLE para la tabla "evento" se
parecer<EFBFBD>ía a esto:
mysql> CREATE TABLE evento (nombre VARCHAR(20), fecha DATE,
-> tipo VARCHAR(15), anotaci<63>ón VARCHAR(255));
Como ocurr<72>ía con la tabla mascota, es m<>ás f<>ácil cargar los registros iniciales
creando un fichero de texto delimitado por tabuladores conteniendo la
informaci<EFBFBD>ón:
Fluffy 1995-05-15 parto 4 cachorros, 3 hembras, 1 macho
Buffy 1993-06-23 parto 5 cachorros, 2 hembras, 3 machos
Buffy 1994-06-19 parto 3 cachorros, 3 hembras
Chirpy 1999-03-21 veterinario necesit<69>ó enderezamiento de pico
Slim 1997-08-03 veterinario costilla rota
Bowser 1991-10-12 perrera
Fang 1991-10-12 perrera
Fang 1998-08-28 cumplea<65>ños Se le regala un nuevo juguete de goma
Claws 1998-03-17 cumplea<65>ños Se le regala un nuevo collar de pulgas
Whistler 1998-12-09 cumplea<65>ños Primer cumplea<65>ños
Carga los registros as<61>í:
mysql> LOAD DATA LOCAL INFILE "evento.txt" INTO TABLE evento;
Bas<EFBFBD>ándote en lo que has aprendido de las consultas que has ejecutado em la tabla
mascota, deber<65>ías ser capaz de realizar recuperaciones de datos en los registros
de la tabla "evento"; los principios son los mismos. <20>¿Pero qu<71>é hacer cuando la
tabla evento no sea suficiente por s<>í sola de responder a cuestiones que
podr<EFBFBD>ías llegar a realizar?
Sup<EFBFBD>ón que quisieras averiguar las edades de cada mascota al tener cachorros. La
tabla evento indica cu<63>ándo ha ocurrido esto, pero para calcular la edad de la
madre, necesitas su fecha de nacimiento. Dado que eso est<73>á almacenado en la
tabla mascota, necesitas ambas tablas para la consulta:
mysql> SELECT mascota.nombre , (TO_DAYS(fecha) - TO_DAYS(nacimiento))/365 AS edad, anotaci<63>ón
-> FROM mascota, evento
-> WHERE mascota.nombre = evento.nombre AND tipo = "parto";
+--------+------+----------------------------------+
| nombre | edad | anotaci<63>ón |
+--------+------+----------------------------------+
| Fluffy | 2.27 | 4 cachorros, 3 hembras, 1 macho |
| Buffy | 4.12 | 5 cachorros, 2 hembras, 3 machos |
| Buffy | 5.10 | 3 cachorros, 3 hembras |
+--------+------+----------------------------------+
Existen varios puntos que anotar sobre esta consulta:
* La cl<63>áusula FROM lista dos tablas dado que la consulta necesita extraer
informaci<63>ón de las dos.
* Cuando se combina la informaci<63>ón de m<>últiples tablas, necesitas especificar
c<>ómo pueden ser asociados los registros de una tabla con los registros de la
otra. Esto es f<>ácil dado que ambas tienen una columna nombre (N.T.: nombre es
una clave extranjera). La consulta usa la cl<63>áusula WHERE para combinar los
registros de las dos tablas bas<61>ándose en los valores de nombre.
* Dado que la columna nombre aparece en ambas tablas, debes ser espec<65>ífico sobre
a qu<71>é tabla te refieres cuando est<73>és hablando de esa columna. Esto se realiza
poniendo el nombre de la tabla como prefijo de la columna.
No necesitas tener dos tablas diferentes para realizar un join. En algunas
ocasiones es <20>útil realizar un join de una tabla consigo misma, si quieres comparar
registros de una tabla con otros registros en la misma tabla. Por ejemplo, para buscar
parejas de sexos entre tus mascotas, puedes enlazar la tabla mascota consigo
mismo para emaparejar machos y hembras de las mismas especies:
mysql> SELECT p1.nombre, p1.sexo, p2.nombre, p2.sexo, p1.especie
-> FROM mascota AS p1, mascota AS p2
-> WHERE p1.especie = p2.especie AND p1.sexo = "f" AND p2.sexo = "m";
+--------+------+--------+------+---------+
| nombre | sexo | nombre | sexo | especie |
+--------+------+--------+------+---------+
| Fluffy | f | Claws | m | gato |
| Buffy | f | Fang | m | perro |
| Buffy | f | Bowser | m | perro |
+--------+------+--------+------+---------+
En esta consulta, especificamos un par de alias para el nombre de las tablas
y ser capaces as<61>í de referirnos a las columnas y saber en todo momento a qu<71>é
instancia de qu<71>é tabla se asocia cada referencia de columna.
8.4 Obtener informaci<63>ón sobre bases de datos y tablas
================================================================
<EFBFBD>¿Qu<EFBFBD>é ocurre si olvidas el nombre de una base de datos o de una tabla, o cu<63>ál es
la estructura de una tabla dada (ejm. : <20>¿c<C2BF>ómo se llaman sus columnas?) MySQL
soluciona este problema a trav<61>és de numerosas sentencias que ofrecen informaci<63>ón
sobre las bases de datos y las tablas que soporta.
Ya hemos visto SHOW DATABASES, que lista las bases de datos gestionadas por el
servidor. Para averiguar qu<71>é base de datos est<73>á actualmente seleccionada, usa la
funci<EFBFBD>ón DATABASE():
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| zoo |
+------------+
Si a<>ún no has seleccionado ninguna base de datos, el resultado estar<61>á en blanco.
Para averiguar qu<71>é tablas contiene la base de datos actual (por ejemplo, cuando
no est<73>ás seguro sobre el nombre de una tabla), usa este comando:
mysql> SHOW TABLES;
+---------------+
| Tables in zoo |
+---------------+
| evento |
| mascota |
+---------------+
Si quieres averiguar la estructura de una tabla, el comando DESCRIBE te ser<65>á
<EFBFBD>útil; muestra informaci<63>ón sobre cada columna de una tabla:
mysql> DESCRIBE mascota;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| nombre | varchar(20) | YES | | NULL | |
| propietario | varchar(20) | YES | | NULL | |
| especie | varchar(20) | YES | | NULL | |
| sexo | char(1) | YES | | NULL | |
| nacimiento | date | YES | | NULL | |
| muerte | date | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
Field indica el nombre de la columna, Type es el tipo de datos para la columna,
Null indica si la columna puede contener o no valores NULL, Key indica si la
columna est<73>á indexada o no, y Default especifica el valor por defecto para la
columna.
Si tienes <20>índices en una tabla, SHOW INDEX FROM nombre_tabla te mostrar<61>á
informaci<EFBFBD>ón sobre ellos.
8.5 Usando mysql en modo batch
=================================
En las secciones previas, hemos usado mysql interactivamente para introducir
consultas y observar los resultados. Tambi<62>én puedes ejecutar mysql en modo
batch. Para realizarlo, escribe los comandos que quieras ejecutar en un fichero,
despu<EFBFBD>és p<>ídele a mysql que lea su entrada desde el fichero:
shell> mysql < fichero-batch
(N.T.: en ocasiones se traduce como fichero por lotes)
Si necesitas especificar par<61>ámetros de conexi<78>ón en la l<>ínea de comandos, el
comando podr<64>ía parecerse a esto:
shell> mysql -h host -u user -p < fichero-batch
Enter password: ********
Cuando usas MySQL de esta manera, est<73>ás creando un fichero script (de gui<75>ón), y
despu<EFBFBD>és ejecutando el script.
<EFBFBD>¿Por qu<71>é usar un script? He aqu<71>í algunas razones:
* Si ejecutas una consulta repetidamente (digamos, cada d<>ía o cada semana), el
construir un script con esta consulta te permite evitar volver a teclearla
cada vez que la ejecutes.
* Puedes generar nuevas consultas a partir de consultas ya existentes similares
simplemente copiando y editando los ficheros script.
* El modo batch puede ser tambi<62>én muy <20>útil cuando est<73>és desarrollando una
consulta, particularmente para comandos multi-l<>ínea o m<>últiples secuencias de
comandos de m<>últiples sentencias. Si cometes un error, no necesitas reescribir
todo. S<>ímplemente edita el script para corregir el error, y despu<70>és p<>ídele a
mysql que lo vuelva a ejecutar.
* Si tienes una consulta que produce resultados muy largos, puedes usar un
paginador para filtrar esta salida en lugar de ver c<>ómo se desplaza fuera del
alcance de tu pantalla:
shell> mysql < fichero_batch | more
* Puedes redirigir la salida a un fichero para un procesamiento posterior:
shell> mysql < fichero_batch > mysql.out
* Puedes distribuir tu script a otras personas para que puedan ejecutar tambi<62>én
tus comandos.
* Algunas situaciones no permiten un uso interactivo, por ejemplo, cuando
ejecutas una consulta como una tarea de cron. (N.T.: cron es un comando UNIX
que sirve para planificar y ejecutar comandos UNIX en el tiempo). En este
caso, debes usar el procesamiento por lotes.
El formato de salida por defecto es diferente (m<>ás conciso) cuando ejecutas
mysql en modo batch que cuando lo usas de manera interactiva. Por ejemplo, la
salida de SELECT DISTINCT especie FROM mascota es la siguiente cuando se
ejecuta de manera interactiva:
mysql> SELECT DISTINCT especie FROM mascota;
+-----------+
| especie |
+-----------+
| gato |
| hamster |
| p<>ájaro |
| perro |
| serpiente |
+-----------+
Y la siguiente si se ejecuta en modo batch:
especie
gato
hamster
p<EFBFBD>ájaro
perro
serpiente
Si quieres obtener el formato de salida del modo interactivo tambi<62>én en modo
batch, usa mysql -t. Para redirigir a salida est<73>ándar los comandos que se est<73>án
ejecutando, usa mysql -vvv.
8.6 Consultas del proyecto gemelos
En Analytikerna y Lentus, hemos estado realizando el trabajo de campo y sistemas para
un gran proyecto de investigaci<63>ón. Este proyecto es una colaboraci<63>ón entre el Instituto de
Medicina Medioambiental en el Karolinska Institutet Stockholm y la Secci<63>ón en Investigaci<63>ón
Cl<EFBFBD>ínica en Envejecimiento y Psicolog<6F>ía en la Universidad del Sur de California.
El proyecto consisti<74>ó en una parte de selecci<63>ón donde todos los gemelos en Suecia mayores de
65 a<>ños eran entrevistados por tel<65>éfono. Los gemelos que reun<75>ían ciertos criterios pasaban a la
siguiente fase. En esta fase posterior, los gemelos que quer<65>ían participar eran visitados por
un equipo doctor/enfermera. Algunos de los ex<65>ámenes inclu<6C>ían ex<65>ámenes f<>ísicos y neuropsicol<6F>ógicos,
pruebas de laboratorio, neuroim<69>ágenes, valoraci<63>ón del estado psicol<6F>ógico, y recopilaci<63>ón de la
historia familiar. Adem<65>ás, se recogieron datos sobre los factores de riesgo m<>édicos y
medioambientales.
Puede encontrarse m<>ás informaci<63>ón sobre los estudios de gemelos en :
http://www.imm.ki.se/TWIN/TWINUKW.HTM
La <20>última parte del proyecto se administra con un interfaz web escrito usando Perl y MySQL.
Cada noche, todos los datos de las entrevistas son movidos a una base de datos MySQL.
8.6.1 Buscar todos los gemelos no-distribuidos
La siguiente consulta se usa para determinar qui<75>én pasa a la segunda parte del proyecto:
select
concat(p1.id, p1.tvab) + 0 as tvid,
concat(p1.christian_name, " ", p1.surname) as Name,
p1.postal_code as Code,
p1.city as City,
pg.abrev as Area,
if(td.participation = "Aborted", "A", " ") as A,
p1.dead as dead1,
l.event as event1,
td.suspect as tsuspect1,
id.suspect as isuspect1,
td.severe as tsevere1,
id.severe as isevere1,
p2.dead as dead2,
l2.event as event2,
h2.nurse as nurse2,
h2.doctor as doctor2,
td2.suspect as tsuspect2,
id2.suspect as isuspect2,
td2.severe as tsevere2,
id2.severe as isevere2,
l.finish_date
from
twin_project as tp
/* For Twin 1 */
left join twin_data as td on tp.id = td.id and tp.tvab = td.tvab
left join informant_data as id on tp.id = id.id and tp.tvab = id.tvab
left join harmony as h on tp.id = h.id and tp.tvab = h.tvab
left join lentus as l on tp.id = l.id and tp.tvab = l.tvab
/* For Twin 2 */
left join twin_data as td2 on p2.id = td2.id and p2.tvab = td2.tvab left join informant_data as id2 on p2.id = id2.id and p2.tvab = id2.tvab
left join harmony as h2 on p2.id = h2.id and p2.tvab = h2.tvab
left join lentus as l2 on p2.id = l2.id and p2.tvab = l2.tvab,
person_data as p1,
person_data as p2,
postal_groups as pg
where
/* p1 gets main twin and p2 gets his/her twin. */
/* ptvab is a field inverted from tvab */
p1.id = tp.id and p1.tvab = tp.tvab and
p2.id = p1.id and p2.ptvab = p1.tvab and
/* Just the sceening survey */
tp.survey_no = 5 and
/* Skip if partner died before 65 but allow emigration (dead=9) */
(p2.dead = 0 or p2.dead = 9 or
(p2.dead = 1 and
(p2.death_date = 0 or
(((to_days(p2.death_date) - to_days(p2.birthday)) / 365)
>= 65))))
and
(
/* Twin is suspect */
(td.future_contact = 'Yes' and td.suspect = 2) or
/* Twin is suspect - Informant is Blessed */
(td.future_contact = 'Yes' and td.suspect = 1 and id.suspect = 1) o
/* No twin - Informant is Blessed */
(ISNULL(td.suspect) and id.suspect = 1 and id.future_contact = 'Yes') or
/* Twin broken off - Informant is Blessed */
(td.participation = 'Aborted'
and id.suspect = 1 and id.future_contact = 'Yes') or
/* Twin broken off - No inform - Have partner */
(td.participation = 'Aborted' and ISNULL(id.suspect) and p2.dead = 0))
and
l.event = 'Finished'
/* Get at area code */
and substring(p1.postal_code, 1, 2) = pg.code
/* Not already distributed */
and (h.nurse is NULL or h.nurse=00 or h.doctor=00)
/* Has not refused or been aborted */
and not (h.status = 'Refused' or h.status = 'Aborted'
or h.status = 'Died' or h.status = 'Other')
order by
tvid;
Algunas explicaciones:
`concat(p1.id, p1.tvab) + 0 as tvid'
Queremos ordenar por la concatenaci<63>ón de `id' y `tvab' en orden num<75>érico.
A<>ñadiendo `0' al resultado provocamos que *MySQL* trate el resultado como
un n<>úmero.
column `id'
Esto identifica un par de gemelos. Es una clave en todas las tablas.
column `tvab'
Esto identifica un gemelo de una pareja. Tiene un valor de `1' <20>ó `2'
column `ptvab'
Esto es la inversa de `tvab'. Cuando `tvab' es `1' esto es `2', y
vice versa. Esto existe para ahorrarnos teclear y para hacer m<>ás f<>ácil
la optimizaci<63>ón de la consulta a MySQL.
Esta consulta demuestra, entre otras cosas, c<>ómo realizar b<>úsquedas en una tabla
enlazada con la misma tabla a trav<61>és de un join (p1 y p2). En el ejemplo, <20>ésto
se usa para comprobar cu<63>ándo un gemelo de una pareja muri<72>ó antes de cumplir 65.
En caso afirmativo, la fila no es devuelta.
Todo lo anterior existe en todas las tablas con informaci<63>ón relacionada con los gemelos.
Tenemos una clave tanto en id, tvab (todas las tablas) como en id,ptvab (person_data) para
construir consultas m<>ás r<>ápidas.
En nuestra m<>áquina de producci<63>ón (una UltraSPARC 200MHz), esta consulta devuelve alrededor
de 150-200 filas y tarda menos de un segundo.
El n<>úmero actual de registros en las tablas usadas arriba:
Tabla Filas
person_data 71074
lentus 5291
twin_project 5286
twin_data 2012
informant_data 663
harmony 381
postal_groups 100
8.6.2 Mostrar una tabla con el estado de la pareja de gemelos.
Cada entrevista finaliza con un c<>ódigo de estado llamado event. La consulta mostrada
debajo se usa para imprimir una tabla sobre todas las parejas de gemelos combinadas por evento.
Esto indica en cu<63>ántas parejas ambos gemelos han finalizado, en cu<63>ántas parejas
ha finalizado un gemelo y el otro se rechaz<61>ó, etc.
select
t1.event,
t2.event,
count(*)
from
lentus as t1,
lentus as t2,
twin_project as tp
where
/* We are looking at one pair at a time */
t1.id = tp.id
and t1.tvab=tp.tvab
and t1.id = t2.id
/* Just the sceening survey */
and tp.survey_no = 5
/* This makes each pair only appear once */
and t1.tvab='1' and t2.tvab='2'
group by
t1.event, t2.event;