diff options
author | unknown <bk@work.mysql.com> | 2000-07-31 21:29:14 +0200 |
---|---|---|
committer | unknown <bk@work.mysql.com> | 2000-07-31 21:29:14 +0200 |
commit | 84626f52fb1ca40ebe0175dfda8cc1a2931651c7 (patch) | |
tree | d253a359142dfc1ed247d5d4365d86972ea31109 /sql-bench/crash-me.sh | |
parent | 3be46690f46f27f3e671de9a615d24d1554b9991 (diff) | |
download | mariadb-git-84626f52fb1ca40ebe0175dfda8cc1a2931651c7.tar.gz |
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
Diffstat (limited to 'sql-bench/crash-me.sh')
-rwxr-xr-x | sql-bench/crash-me.sh | 3442 |
1 files changed, 3442 insertions, 0 deletions
diff --git a/sql-bench/crash-me.sh b/sql-bench/crash-me.sh new file mode 100755 index 00000000000..19d358c6613 --- /dev/null +++ b/sql-bench/crash-me.sh @@ -0,0 +1,3442 @@ +#!@PERL@ +# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +# MA 02111-1307, USA + +# Written by Monty for the TCX/Monty Program/Detron benchmark suite. +# Empress and PostgreSQL patches by Luuk de Boer +# Extensions for ANSI SQL and Mimer by Bengt Gunne +# Some additions and corrections by Matthias Urlich +# +# This programs tries to find all limits for a sql server +# It gets the name from what it does to most servers :) +# +# Be sure to use --help before running this! +# +# If you want to add support for another server, add a new package for the +# server in server-cfg. You only have to support the 'new' and 'version' +# functions. new doesn't need to have any limits if one doesn't want to +# use the benchmarks. +# + +# TODO: +# CMT includes types and functions which are synonyms for other types +# and functions, including those in SQL9x. It should label those synonyms +# as such, and clarify ones such as "mediumint" with comments such as +# "3-byte int" or "same as xxx". + + +$version="1.47"; + +use DBI; +use Getopt::Long; +chomp($pwd = `pwd`); $pwd = "." if ($pwd eq ''); +require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n"; + +$opt_server="mysql"; $opt_host="localhost"; $opt_database="test"; +$opt_dir="limits"; +$opt_debug=$opt_help=$opt_Information=$opt_restart=$opt_force=$opt_quick=0; +$opt_log_all_queries=$opt_fix_limit_file=$opt_batch_mode=0; +$opt_db_start_cmd=""; # the db server start command +$opt_sleep=10; # time to sleep while starting the db server +$limit_changed=0; # For configure file +$reconnect_count=0; +$opt_comment=$opt_config_file=$opt_log_queries_to_file=""; +$limits{'crash_me_safe'}='yes'; +$prompts{'crash_me_safe'}='crash me safe'; +$limits{'operating_system'}= machine(); +$prompts{'operating_system'}='crash-me tested on'; +$retry_limit=3; + +GetOptions("Information","help","server=s","debug","user=s","password=s","database=s","restart","force","quick","log-all-queries","comment=s","host=s","fix-limit-file","dir=s","db-start-cmd=s","sleep=s","batch-mode","config-file=s","log-queries-to-file=s") || usage(); +usage() if ($opt_help || $opt_Information); + +$opt_config_file="$pwd/$opt_dir/$opt_server.cfg" if (length($opt_config_file) == 0); + +if ($opt_fix_limit_file) +{ + print "Fixing limit file for $opt_server\n"; + read_config_data(); + $limit_changed=1; + save_all_config_data(); + exit 0; +} + +$server=get_server($opt_server,$opt_host,$opt_database); +$opt_server=$server->{'cmp_name'}; + +$|=1; # For debugging + +print "Running $0 $version on '",($server_version=$server->version()),"'\n\n"; +print "I hope you didn't have anything important running on this server....\n"; +read_config_data(); +if ($limit_changed) # Must have been restarted +{ + save_config_data('crash_me_safe','no',"crash me safe"); +} + +if (!$opt_force && !$opt_batch_mode) +{ + server_info(); +} +else +{ + print "Using --force. I assume you know what you are doing...\n"; +} +print "\n"; + +save_config_data('crash_me_version',$version,"crash me version"); +if ($server_version) +{ + save_config_data('server_version',$server_version,"server version"); +} +if (length($opt_comment)) +{ + save_config_data('user_comment',$opt_comment,"comment"); +} + +$opt_log=0; +if (length($opt_log_queries_to_file)) +{ + open(LOG,">$opt_log_queries_to_file") || die "Can't open file $opt_log_queries_to_file\n"; + $opt_log=1; +} + +# +# Set up some limits that's regared as unlimited +# We don't want to take up all resources from the server... +# + +$max_connections="+1000"; # Number of simultaneous connections +$max_buffer_size="+16000000"; # size of communication buffer. +$max_string_size="+8000000"; # Enough for this test +$max_name_length="+512"; # Actually 256, but ... +$max_keys="+64"; # Probably too big. +$max_join_tables="+64"; # Probably too big. +$max_columns="+8192"; # Probably too big. +$max_row_length=$max_string_size; +$max_key_length="+8192"; # Big enough +$max_order_by="+64"; # Big enough +$max_expressions="+10000"; +$max_big_expressions="+100"; +$max_stacked_expressions="+2000"; +$query_size=$max_buffer_size; +$longreadlen=16000000; # For retrieval buffer + +# +# First do some checks that needed for the rest of the benchmark +# +use sigtrap; # Must be removed with perl5.005_2 on Win98 +$SIG{PIPE} = 'IGNORE'; +$SIG{SEGV} = sub {warn('SEGFAULT')}; +$dbh=safe_connect(); +$dbh->do("drop table crash_me"); # Remove old run +$dbh->do("drop table crash_me2"); # Remove old run +$dbh->do("drop table crash_me3"); # Remove old run +$dbh->do("drop table crash_q"); # Remove old run +$dbh->do("drop table crash_q1"); # Remove old run + +$prompt="Tables without primary key"; +if (!safe_query(["create table crash_me (a integer not null,b char(10) not null)", + "insert into crash_me (a,b) values (1,'a')"])) +{ + if (!safe_query(["create table crash_me (a integer not null,b char(10) not null, primary key (a))", + "insert into crash_me (a,b) values (1,'a')"])) + { + die "Can't create table 'crash_me' with one record: $DBI::errstr\n"; + } + save_config_data('no_primary_key',"no",$prompt); +} +else +{ + save_config_data('no_primary_key',"yes",$prompt); +} +# +# Define strings for character NULL and numeric NULL used in expressions +# +$char_null=$server->{'char_null'}; +$numeric_null=$server->{'numeric_null'}; +if ($char_null eq '') +{ + $char_null="NULL"; +} +if ($numeric_null eq '') +{ + $numeric_null="NULL"; +} + +print "$prompt: $limits{'no_primary_key'}\n"; + +report("SELECT without FROM",'select_without_from',"select 1"); +if ($limits{'select_without_from'} ne "yes") +{ + $end_query=" from crash_me"; + $check_connect="select a from crash_me"; +} +else +{ + $end_query=""; + $check_connect="select 1"; +} + +assert($check_connect); +assert("select a from crash_me where b<'b'"); + +report("Select constants",'select_constants',"select 1 $end_query"); +report("Select table_name.*",'table_wildcard', + "select crash_me.* from crash_me"); +report("Allows \' and \" as string markers",'quote_with_"', + 'select a from crash_me where b<"c"'); +check_and_report("Double '' as ' in strings",'double_quotes',[], + "select 'Walker''s' $end_query",[],"Walker's",1); +check_and_report("Multiple line strings","multi_strings",[], + "select a from crash_me where b < 'a'\n'b'",[],"1",0); +check_and_report("\" as identifier quote (ANSI SQL)",'quote_ident_with_"',[], + 'select "A" from crash_me',[],"1",0); +check_and_report("\` as identifier quote",'quote_ident_with_`',[], + 'select `A` from crash_me',[],"1",0); +check_and_report("[] as identifier quote",'quote_ident_with_[',[], + 'select [A] from crash_me',[],"1",0); + +report("Column alias","column_alias","select a as ab from crash_me"); +report("Table alias","table_alias","select b.a from crash_me as b"); +report("Functions",'functions',"select 1+1 $end_query"); +report("Group functions",'group_functions',"select count(*) from crash_me"); +report("Group functions with distinct",'group_distinct_functions', + "select count(distinct a) from crash_me"); +report("Group by",'group_by',"select a from crash_me group by a"); +report("Group by position",'group_by_position', + "select a from crash_me group by 1"); +report("Group by alias",'group_by_alias', + "select a as ab from crash_me group by ab"); +report("Order by",'order_by',"select a from crash_me order by a"); +report("Order by position",'order_by_position', + "select a from crash_me order by 1"); +report("Order by function","order_by_function", + "select a from crash_me order by a+1"); +check_and_report("Order by DESC is remembered",'order_by_remember_desc', + ["create table crash_q (s int,s1 int)", + "insert into crash_q values(1,1)", + "insert into crash_q values(3,1)", + "insert into crash_q values(2,1)"], + "select s,s1 from crash_q order by s1 DESC,s", + ["drop table crash_q"],[3,2,1],7,undef(),3); +report("Compute",'compute', + "select a from crash_me order by a compute sum(a) by a"); +report("Value lists in INSERT",'multi_value_insert', + "create table crash_q (s char(10))", + "insert into crash_q values ('a'),('b')", + "drop table crash_q"); +report("INSERT with set syntax",'insert_with_set', + "create table crash_q (a integer)", + "insert into crash_q SET a=1", + "drop table crash_q"); +report("allows end ';'","end_colon", "select * from crash_me;"); +try_and_report("LIMIT number of rows","select_limit", + ["with LIMIT", + "select * from crash_me limit 1"], + ["with TOP", + "select TOP 1 * from crash_me"]); +report("SELECT with LIMIT #,#","select_limit2", "select * from crash_me limit 1,1"); + +# The following alter table commands MUST be kept together! +if ($dbh->do("create table crash_q (a integer, b integer,c CHAR(10))")) +{ + report("Alter table add column",'alter_add_col', + "alter table crash_q add d integer"); + report_one("Alter table add many columns",'alter_add_multi_col', + [["alter table crash_q add (f integer,g integer)","yes"], + ["alter table crash_q add f integer, add g integer","with add"], + ["alter table crash_q add f integer,g integer","without add"]] ); + report("Alter table change column",'alter_change_col', + "alter table crash_q change a e char(50)"); + + # informix can only change data type with modify + report_one("Alter table modify column",'alter_modify_col', + [["alter table crash_q modify c CHAR(20)","yes"], + ["alter table crash_q alter c CHAR(20)","with alter"]]); + report("Alter table alter column default",'alter_alter_col', + "alter table crash_q alter b set default 10", + "alter table crash_q alter b set default NULL"); + report("Alter table drop column",'alter_drop_col', + "alter table crash_q drop column b"); + report("Alter table rename table",'alter_rename_table', + "alter table crash_q rename to crash_q1"); +} +# Make sure both tables will be dropped, even if rename fails. +$dbh->do("drop table crash_q1"); +$dbh->do("drop table crash_q"); + +if ($dbh->do("create table crash_q (a integer, b integer,c CHAR(10))") && + $dbh->do("create table crash_q1 (a integer, b integer,c CHAR(10) not null)")) +{ + report("Alter table add constraint",'alter_add_constraint', + "alter table crash_q add constraint c1 check(a > b)"); + report("Alter table drop constraint",'alter_drop_constraint', + "alter table crash_q drop constraint c1"); + report("Alter table add unique",'alter_add_unique', + "alter table crash_q add constraint u1 unique(c)"); + try_and_report("Alter table drop unique",'alter_drop_unique', + ["with constraint", + "alter table crash_q drop constraint u1"], + ["with drop key", + "alter table crash_q drop key c"]); + try_and_report("Alter table add primary key",'alter_add_primary_key', + ["with constraint", + "alter table crash_q1 add constraint p1 primary key(c)"], + ["with add primary key", + "alter table crash_q1 add primary key(c)"]); + report("Alter table add foreign key",'alter_add_foreign_key', + "alter table crash_q add constraint f1 foreign key(c) references crash_q1(c)"); + try_and_report("Alter table drop foreign key",'alter_drop_foreign_key', + ["with drop constraint", + "alter table crash_q drop constraint f1"], + ["with drop foreign key", + "alter table crash_q drop foreign key f1"]); + try_and_report("Alter table drop primary key",'alter_drop_primary_key', + ["drop constraint", + "alter table crash_q1 drop constraint p1 restrict"], + ["drop primary key", + "alter table crash_q1 drop primary key"]); +} +$dbh->do("drop table crash_q"); +$dbh->do("drop table crash_q1"); + +check_and_report("case insensitive compare","case_insensitive_strings", + [],"select b from crash_me where b = 'A'",[],'a',1); +check_and_report("ignore end space in compare","ignore_end_space", + [],"select b from crash_me where b = 'a '",[],'a',1); +check_and_report("group on column with null values",'group_by_null', + ["create table crash_q (s char(10))", + "insert into crash_q values(null)", + "insert into crash_q values(null)"], + "select count(*) from crash_q group by s", + ["drop table crash_q"],2,0); + +$prompt="Having"; +if (!defined($limits{'having'})) +{ # Complicated because of postgreSQL + if (!safe_query_result("select a from crash_me group by a having a > 0",1,0)) + { + if (!safe_query_result("select a from crash_me group by a having a < 0", + 1,0)) + { save_config_data("having","error",$prompt); } + else + { save_config_data("having","yes",$prompt); } + } + else + { save_config_data("having","no",$prompt); } +} +print "$prompt: $limits{'having'}\n"; + +if ($limits{'having'} eq 'yes') +{ + report("Having with group function","having_with_group", + "select a from crash_me group by a having count(*) = 1"); +} + +if ($limits{'column_alias'} eq 'yes') +{ + report("Order by alias",'order_by_alias', + "select a as ab from crash_me order by ab"); + if ($limits{'having'} eq 'yes') + { + report("Having on alias","having_with_alias", + "select a as ab from crash_me group by a having ab > 0"); + } +} +report("binary numbers (0b1001)","binary_numbers","select 0b1001 $end_query"); +report("hex numbers (0x41)","hex_numbers","select 0x41 $end_query"); +report("binary strings (b'0110')","binary_strings","select b'0110' $end_query"); +report("hex strings (x'1ace')","hex_strings","select x'1ace' $end_query"); + +report_result("Value of logical operation (1=1)","logical_value", + "select (1=1) $end_query"); + +$logical_value= $limits{'logical_value'}; + +$false=0; +$result="no"; +if ($res=safe_query("select (1=1)=true $end_query")) { + $false="false"; + $result="yes"; +} +save_config_data('has_true_false',$result,"TRUE and FALSE"); + +# +# Check how many connections the server can handle: +# We can't test unlimited connections, because this may take down the +# server... +# + +$prompt="Simultaneous connections (installation default)"; +print "$prompt: "; +if (defined($limits{'connections'})) +{ + print "$limits{'connections'}\n"; +} +else +{ + @connect=($dbh); + + for ($i=1; $i < $max_connections ; $i++) + { + if (!($dbh=DBI->connect($server->{'data_source'},$opt_user,$opt_password, + { PrintError => 0}))) + { + print "Last connect error: $DBI::errstr\n" if ($opt_debug); + last; + } + $dbh->{LongReadLen}= $longreadlen; # Set retrieval buffer + print "." if ($opt_debug); + push(@connect,$dbh); + } + print "$i\n"; + save_config_data('connections',$i,$prompt); + foreach $dbh (@connect) + { + print "#" if ($opt_debug); + $dbh->disconnect || warn $dbh->errstr; # close connection + } + + $#connect=-1; # Free connections + + if ($i == 0) + { + print "Can't connect to server: $DBI::errstr. Please start it and try again\n"; + exit 1; + } + $dbh=safe_connect(); +} + + +# +# Check size of communication buffer, strings... +# + +$prompt="query size"; +print "$prompt: "; +if (!defined($limits{'query_size'})) +{ + $query="select "; + $first=64; + $end=$max_buffer_size; + $select= $limits{'select_without_from'} eq 'yes' ? 1 : 'a'; + + assert($query . "$select$end_query"); + + $first=$limits{'restart'}{'low'} if ($limits{'restart'}{'low'}); + + if ($limits{'restart'}{'tohigh'}) + { + $end = $limits{'restart'}{'tohigh'} - 1; + print "\nRestarting this with low limit: $first and high limit: $end\n"; + delete $limits{'restart'}; + $first=$first+int(($end-$first+4)/5); # Prefere lower on errors + } + for ($i=$first ; $i < $end ; $i*=2) + { + last if (!safe_query($query . (" " x ($i - length($query)-length($end_query) -1)) . "$select$end_query")); + $first=$i; + save_config_data("restart",$i,"") if ($opt_restart); + } + $end=$i; + + if ($i < $max_buffer_size) + { + while ($first != $end) + { + $i=int(($first+$end+1)/2); + if (safe_query($query . + (" " x ($i - length($query)-length($end_query) -1)) . + "$select$end_query")) + { + $first=$i; + } + else + { + $end=$i-1; + } + } + } + save_config_data('query_size',$end,$prompt); +} +$query_size=$limits{'query_size'}; + +print "$limits{'query_size'}\n"; +# +# Test database types +# + +@sql_types=("character(1)","char(1)","char varying(1)", "character varying(1)", + "boolean", + "varchar(1)", + "integer","int","smallint", + "numeric(9,2)","decimal(6,2)","dec(6,2)", + "bit", "bit(2)","bit varying(2)","float","float(8)","real", + "double precision", "date","time","timestamp", + "interval year", "interval year to month", + "interval month", + "interval day", "interval day to hour", "interval day to minute", + "interval day to second", + "interval hour", "interval hour to minute", "interval hour to second", + "interval minute", "interval minute to second", + "interval second", + "national character varying(20)", + "national character(20)","nchar(1)", + "national char varying(20)","nchar varying(20)", + "national character varying(20)", + "timestamp with time zone"); +@odbc_types=("binary(1)","varbinary(1)","tinyint","bigint", + "datetime"); +@extra_types=("blob","byte","long varbinary","image","text","text(10)", + "mediumtext", + "long varchar(1)", "varchar2(257)", + "mediumint","middleint","int unsigned", + "int1","int2","int3","int4","int8","uint", + "money","smallmoney","float4","float8","smallfloat", + "float(6,2)","double", + "enum('red')","set('red')", "int(5) zerofill", "serial", + "char(10) binary","int not null auto_increment,unique(q)", + "abstime","year","datetime","smalldatetime","timespan","reltime", + # Sybase types + "int not null identity,unique(q)", + # postgres types + "box","bool","circle","polygon","point","line","lseg","path", + "interval", "serial", "inet", "cidr", "macaddr", + + # oracle types + "varchar2(16)","nvarchar2(16)","number(9,2)","number(9)", + "number", "long","raw(16)","long raw","rowid","mlslabel","clob", + "nclob","bfile" + ); + +@types=(["sql",\@sql_types], + ["odbc",\@odbc_types], + ["extra",\@extra_types]); + +foreach $types (@types) +{ + print "\nSupported $types->[0] types\n"; + $tmp=@$types->[1]; + foreach $use_type (@$tmp) + { + $type=$use_type; + $type =~ s/\(.*\)/(1 arg)/; + if (index($use_type,",")>= 0) + { + $type =~ s/\(1 arg\)/(2 arg)/; + } + if (($tmp2=index($type,",unique")) >= 0) + { + $type=substr($type,0,$tmp2); + } + $tmp2=$type; + $tmp2 =~ s/ /_/g; + $tmp2 =~ s/_not_null//g; + report("Type $type","type_$types->[0]_$tmp2", + "create table crash_q (q $use_type)", + "drop table crash_q"); + } +} + +# +# Test some type limits +# + +check_and_report("Remembers end space in char()","remember_end_space", + ["create table crash_q (a char(10))", + "insert into crash_q values('hello ')"], + "select a from crash_q where a = 'hello '", + ["drop table crash_q"], + 'hello ',6); + +check_and_report("Remembers end space in varchar()", + "remember_end_space_varchar", + ["create table crash_q (a varchar(10))", + "insert into crash_q values('hello ')"], + "select a from crash_q where a = 'hello '", + ["drop table crash_q"], + 'hello ',6); + +check_and_report("Supports 0000-00-00 dates","date_zero", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values ('0000-00-00')"], + "select a from crash_me2", + ["drop table crash_me2"], + "0000-00-00",1); + +check_and_report("Supports 0001-01-01 dates","date_one", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values (DATE '0001-01-01')"], + "select a from crash_me2", + ["drop table crash_me2"], + "0001-01-01",1); + +check_and_report("Supports 9999-12-31 dates","date_last", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values (DATE '9999-12-31')"], + "select a from crash_me2", + ["drop table crash_me2"], + "9999-12-31",1); + +check_and_report("Supports 'infinity dates","date_infinity", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values ('infinity')"], + "select a from crash_me2", + ["drop table crash_me2"], + "infinity",1); + +if (!defined($limits{'date_with_YY'})) +{ + check_and_report("Supports YY-MM-DD dates","date_with_YY", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values ('98-03-03')"], + "select a from crash_me2", + ["drop table crash_me2"], + "1998-03-03",5); + if ($limits{'date_with_YY'} eq "yes") + { + undef($limits{'date_with_YY'}); + check_and_report("Supports YY-MM-DD 2000 compilant dates", + "date_with_YY", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values ('10-03-03')"], + "select a from crash_me2", + ["drop table crash_me2"], + "2010-03-03",5); + } +} + +if (($limits{'type_extra_float(2_arg)'} eq "yes" || + $limits{'type_sql_decimal(2_arg)'} eq "yes") && + (!defined($limits{'storage_of_float'}))) +{ + my $type=$limits{'type_extra_float(2_arg)'} eq "yes" ? "float(4,1)" : + "decimal(4,1)"; + my $result="undefined"; + if (execute_and_check(["create table crash_q (q1 $type)", + "insert into crash_q values(1.14)"], + "select q1 from crash_q", + ["drop table crash_q"],1.1,0) && + execute_and_check(["create table crash_q (q1 $type)", + "insert into crash_q values(1.16)"], + "select q1 from crash_q", + ["drop table crash_q"],1.1,0)) + { + $result="truncate"; + } + elsif (execute_and_check(["create table crash_q (q1 $type)", + "insert into crash_q values(1.14)"], + "select q1 from crash_q", + ["drop table crash_q"],1.1,0) && + execute_and_check(["create table crash_q (q1 $type)", + "insert into crash_q values(1.16)"], + "select q1 from crash_q", + ["drop table crash_q"],1.2,0)) + { + $result="round"; + } + elsif (execute_and_check(["create table crash_q (q1 $type)", + "insert into crash_q values(1.14)"], + "select q1 from crash_q", + ["drop table crash_q"],1.14,0) && + execute_and_check(["create table crash_q (q1 $type)", + "insert into crash_q values(1.16)"], + "select q1 from crash_q", + ["drop table crash_q"],1.16,0)) + { + $result="exact"; + } + $prompt="Storage of float values"; + print "$prompt: $result\n"; + save_config_data("storage_of_float", $result, $prompt); +} + +try_and_report("Type for row id", "rowid", + ["rowid", + "create table crash_q (a rowid)","drop table crash_q"], + ["auto_increment", + "create table crash_q (a int not null auto_increment, primary key(a))","drop table crash_q"], + ["oid", + "create table crash_q (a oid, primary key(a))","drop table crash_q"], + ["serial", + "create table crash_q (a serial, primary key(a))","drop table crash_q"]); + +try_and_report("Automatic rowid", "automatic_rowid", + ["_rowid", + "create table crash_q (a int not null, primary key(a))", + "insert into crash_q values (1)", + "select _rowid from crash_q", + "drop table crash_q"]); + +# +# Test functions +# + +@sql_functions= + (["+, -, * and /","+","5*3-4/2+1",14,0], + ["ANSI SQL SUBSTRING","substring","substring('abcd' from 2 for 2)","bc",1], + ["BIT_LENGTH","bit_length","bit_length('abc')",24,0], + ["searched CASE","searched_case","case when 1 > 2 then 'false' when 2 > 1 then 'true' end", "true",1], + ["simple CASE","simple_case","case 2 when 1 then 'false' when 2 then 'true' end", "true",1], + ["CAST","cast","CAST(1 as CHAR)","1",1], + ["CHARACTER_LENGTH","character_length","character_length('abcd')","4",0], + ["CHAR_LENGTH","char_length","char_length(b)","10",0], + ["CHAR_LENGTH(constant)","char_length(constant)","char_length('abcd')","4",0], + ["COALESCE","coalesce","coalesce($char_null,'bcd','qwe')","bcd",1], + ["CURRENT_DATE","current_date","current_date",0,2], + ["CURRENT_TIME","current_time","current_time",0,2], + ["CURRENT_TIMESTAMP","current_timestamp","current_timestamp",0,2], + ["CURRENT_USER","current_user","current_user",0,2], + ["EXTRACT","extract_sql","extract(minute from timestamp '2000-02-23 18:43:12.987')",43,0], + ["LOCALTIME","localtime","localtime",0,2], + ["LOCALTIMESTAMP","localtimestamp","localtimestamp",0,2], + ["LOWER","lower","LOWER('ABC')","abc",1], + ["NULLIF with strings","nullif_string","NULLIF(NULLIF('first','second'),'first')",undef(),4], + ["NULLIF with numbers","nullif_num","NULLIF(NULLIF(1,2),1)",undef(),4], + ["OCTET_LENGTH","octet_length","octet_length('abc')",3,0], + ["POSITION","position","position('ll' in 'hello')",3,0], + ["SESSION_USER","session_user","session_user",0,2], + ["SYSTEM_USER","system_user","system_user",0,2], + ["TRIM","trim","trim(trailing from trim(LEADING FROM ' abc '))","abc",3], + ["UPPER","upper","UPPER('abc')","ABC",1], + ["USER","user","user"], + ["concatenation with ||","concat_as_||","'abc' || 'def'","abcdef",1], + ); + +@odbc_functions= + (["ASCII", "ascii", "ASCII('A')","65",0], + ["CHAR", "char", "CHAR(65)" ,"A",1], + ["CONCAT(2 arg)","concat", "concat('a','b')","ab",1], + ["DIFFERENCE()","difference","difference('abc','abe')",0,2], + ["INSERT","insert","insert('abcd',2,2,'ef')","aefd",1], + ["LEFT","left","left('abcd',2)","ab",1], + ["LTRIM","ltrim","ltrim(' abcd')","abcd",1], + ["REAL LENGTH","length","length('abcd ')","5",0], + ["ODBC LENGTH","length_without_space","length('abcd ')","4",0], + ["LOCATE(2 arg)","locate_2","locate('bcd','abcd')","2",0], + ["LOCATE(3 arg)","locate_3","locate('bcd','abcd',3)","0",0], + ["LCASE","lcase","lcase('ABC')","abc",1], + ["REPEAT","repeat","repeat('ab',3)","ababab",1], + ["REPLACE","replace","replace('abbaab','ab','ba')","bababa",1], + ["RIGHT","right","right('abcd',2)","cd",1], + ["RTRIM","rtrim","rtrim(' abcd ')"," abcd",1], + ["SPACE","space","space(5)"," ",3], + ["SOUNDEX","soundex","soundex('hello')",0,2], + ["ODBC SUBSTRING","substring","substring('abcd',3,2)","cd",1], + ["UCASE","ucase","ucase('abc')","ABC",1], + + ["ABS","abs","abs(-5)",5,0], + ["ACOS","acos","acos(0)","1.570796",0], + ["ASIN","asin","asin(1)","1.570796",0], + ["ATAN","atan","atan(1)","0.785398",0], + ["ATAN2","atan2","atan2(1,0)","1.570796",0], + ["CEILING","ceiling","ceiling(-4.5)",-4,0], + ["COS","cos","cos(0)","1.00000",0], + ["COT","cot","cot(1)","0.64209262",0], + ["DEGREES","degrees","degrees(6.283185)","360",0], + ["EXP","exp","exp(1)","2.718282",0], + ["FLOOR","floor","floor(2.5)","2",0], + ["LOG","log","log(2)","0.693147",0], + ["LOG10","log10","log10(10)","1",0], + ["MOD","mod","mod(11,7)","4",0], + ["PI","pi","pi()","3.141593",0], + ["POWER","power","power(2,4)","16",0], + ["RAND","rand","rand(1)",0,2], # Any value is acceptable + ["RADIANS","radians","radians(360)","6.283185",0], + ["ROUND(2 arg)","round","round(5.63,2)","5.6",0], + ["SIGN","sign","sign(-5)",-1,0], + ["SIN","sin","sin(1)","0.841471",0], + ["SQRT","sqrt","sqrt(4)",2,0], + ["TAN","tan","tan(1)","1.557408",0], + ["TRUNCATE","truncate","truncate(18.18,-1)",10,0], + ["NOW","now","now()",0,2], # Any value is acceptable + ["CURDATE","curdate","curdate()",0,2], + ["DAYNAME","dayname","dayname(DATE '1997-02-01')","",2], + ["MONTH","month","month(DATE '1997-02-01')","",2], + ["MONTHNAME","monthname","monthname(DATE '1997-02-01')","",2], + ["DAYOFMONTH","dayofmonth","dayofmonth(DATE '1997-02-01')",1,0], + ["DAYOFWEEK","dayofweek","dayofweek(DATE '1997-02-01')",7,0], + ["DAYOFYEAR","dayofyear","dayofyear(DATE '1997-02-01')",32,0], + ["QUARTER","quarter","quarter(DATE '1997-02-01')",1,0], + ["WEEK","week","week(DATE '1997-02-01')",5,0], + ["YEAR","year","year(DATE '1997-02-01')",1997,0], + ["CURTIME","curtime","curtime()",0,2], + ["HOUR","hour","hour('12:13:14')",12,0], + ["ANSI HOUR","hour_time","hour(TIME '12:13:14')",12,0], + ["MINUTE","minute","minute('12:13:14')",13,0], + ["SECOND","second","second('12:13:14')",14,0], + ["TIMESTAMPADD","timestampadd", + "timestampadd(SQL_TSI_SECOND,1,'1997-01-01 00:00:00')", + "1997-01-01 00:00:01",1], + ["TIMESTAMPDIFF","timestampdiff", + "timestampdiff(SQL_TSI_SECOND,'1997-01-01 00:00:02', '1997-01-01 00:00:01')","1",0], + ["USER()","user()","user()",0,2], + ["DATABASE","database","database()",0,2], + ["IFNULL","ifnull","ifnull(2,3)",2,0], + ["ODBC syntax LEFT & RIGHT", "fn_left", + "{ fn LEFT( { fn RIGHT('abcd',2) },1) }","c",1], + ); + +@extra_functions= + ( + ["& (bitwise and)",'&',"5 & 3",1,0], + ["| (bitwise or)",'|',"1 | 2",3,0], + ["<< and >> (bitwise shifts)",'binary_shifts',"(1 << 4) >> 2",4,0], + ["<> in SELECT","<>","1<>1","0",0], + ["=","=","(1=1)",1,$logical_value], + ["~* (case insensitive compare)","~*","'hi' ~* 'HI'",1,$logical_value], + ["ADD_MONTHS","add_months","add_months('1997-01-01',1)","1997-02-01",0], # oracle the date plus n months + ["AND and OR in SELECT","and_or","1=1 AND 2=2",$logical_value,0], + ["AND as '&&'",'&&',"1=1 && 2=2",$logical_value,0], + ["ASCII_CHAR", "ascii_char", "ASCII_CHAR(65)","A",1], + ["ASCII_CODE", "ascii_code", "ASCII_CODE('A')","65",0], + ["ATN2","atn2","atn2(1,0)","1.570796",0], + ["BETWEEN in SELECT","between","5 between 4 and 6",$logical_value,0], + ["BIT_COUNT","bit_count","bit_count(5)",2,0], + ["CEIL","ceil","ceil(-4.5)",-4,0], # oracle + ["CHARINDEX","charindex","charindex('a','crash')",3,0], + ["CHR", "chr", "CHR(65)" ,"A",1], # oracle + ["CONCAT(list)","concat_list", "concat('a','b','c','d')","abcd",1], + ["CONVERT","convert","convert(CHAR,5)","5",1], + ["COSH","cosh","cosh(0)","1",0], # oracle hyperbolic cosine of n. + ["DATEADD","dateadd","dateadd(day,3,'Nov 30 1997')",0,2], + ["DATEDIFF","datediff","datediff(month,'Oct 21 1997','Nov 30 1997')",0,2], + ["DATENAME","datename","datename(month,'Nov 30 1997')",0,2], + ["DATEPART","datepart","datepart(month,'July 20 1997')",0,2], + ["DATE_FORMAT","date_format", "date_format('1997-01-02 03:04:05','M W D Y y m d h i s w')", 0,2], + ["ELT","elt","elt(2,'ONE','TWO','THREE')","TWO",1], + ["ENCRYPT","encrypt","encrypt('hello')",0,2], + ["FIELD","field","field('IBM','NCA','ICL','SUN','IBM','DIGITAL')",4,0], + ["FORMAT","format","format(1234.5555,2)","1,234.56",1], + ["FROM_DAYS","from_days","from_days(729024)","1996-01-01",1], + ["FROM_UNIXTIME","from_unixtime","from_unixtime(0)",0,2], + ["GETDATE","getdate","getdate()",0,2], + ["GREATEST","greatest","greatest('HARRY','HARRIOT','HAROLD')","HARRY",1], # oracle + ["IF","if", "if(5,6,7)",6,0], + ["IN on numbers in SELECT","in_num","2 in (3,2,5,9,5,1)",$logical_value,0], + ["IN on strings in SELECT","in_str","'monty' in ('david','monty','allan')", $logical_value,0], + ["INITCAP","initcap","initcap('the soap')","The Soap",1], # oracle Returns char, with the first letter of each word in uppercase + ["INSTR (Oracle syntax)", "instr_oracle", "INSTR('CORPORATE FLOOR','OR',3,2)" ,"14",0], # oracle instring + ["INSTRB", "instrb", "INSTRB('CORPORATE FLOOR','OR',5,2)" ,"27",0], # oracle instring in bytes + ["INTERVAL","interval","interval(55,10,20,30,40,50,60,70,80,90,100)",5,0], + ["LAST_DAY","last_day","last_day('1997-04-01')","1997-04-30",0], # oracle last day of month of date + ["LAST_INSERT_ID","last_insert_id","last_insert_id()",0,2], + ["LEAST","least","least('HARRY','HARRIOT','HAROLD')","HAROLD",1], # oracle + ["LENGTHB","lengthb","lengthb('CANDIDE')","14",0], # oracle length in bytes + ["LIKE ESCAPE in SELECT","like_escape","'%' like 'a%' escape 'a'",$logical_value,0], + ["LIKE in SELECT","like","'a' like 'a%'",$logical_value,0], + ["LN","ln","ln(95)","4.55387689",0], # oracle natural logarithm of n + ["LOCATE as INSTR","instr","instr('hello','ll')",3,0], + ["LOG(m,n)","log(m_n)","log(10,100)","2",0], # oracle logarithm, base m, of n + ["LOGN","logn","logn(2)","0.693147",0], # informix + ["LPAD","lpad","lpad('hi',4,'??')",'??hi',3], + ["MDY","mdy","mdy(7,1,1998)","1998-07-01",0], # informix + ["MOD as %","%","10%7","3",0], + ["MONTHS_BETWEEN","months_between","months_between('1997-02-02','1997-01-01')","1.03225806",0], # oracle number of months between 2 dates + ["NOT BETWEEN in SELECT","not_between","5 not between 4 and 6",0,0], + ["NOT LIKE in SELECT","not_like","'a' not like 'a%'",0,0], + ["NOT as '!' in SELECT","!","! 1",0,0], + ["NOT in SELECT","not","not $false",$logical_value,0], + ["ODBC CONVERT","odbc_convert","convert(5,SQL_CHAR)","5",1], + ["OR as '||'",'||',"1=0 || 1=1",$logical_value,0], + ["PASSWORD","password","password('hello')",0,2], + ["PASTE", "paste", "paste('ABCDEFG',3,2,'1234')","AB1234EFG",1], + ["PATINDEX","patindex","patindex('%a%','crash')",3,0], + ["PERIOD_ADD","period_add","period_add(9602,-12)",199502,0], + ["PERIOD_DIFF","period_diff","period_diff(199505,199404)",13,0], + ["POW","pow","pow(3,2)",9,0], + ["RANGE","range","range(a)","0.0",0], # informix range(a) = max(a) - min(a) + ["REGEXP in SELECT","regexp","'a' regexp '^(a|b)*\$'",$logical_value,0], + ["REPLICATE","replicate","replicate('a',5)","aaaaa",1], + ["REVERSE","reverse","reverse('abcd')","dcba",1], + ["ROOT","root","root(4)",2,0], # informix + ["ROUND(1 arg)","round1","round(5.63)","6",0], + ["RPAD","rpad","rpad('hi',4,'??')",'hi??',3], + ["SEC_TO_TIME","sec_to_time","sec_to_time(5001)","01:23:21",1], + ["SINH","sinh","sinh(1)","1.17520119",0], # oracle hyperbolic sine of n + ["STR","str","str(123.45,5,1)",123.5,3], + ["STRCMP","strcmp","strcmp('abc','adc')",-1,0], + ["STUFF","stuff","stuff('abc',2,3,'xyz')",'axyz',3], + ["SUBSTRB", "substrb", "SUBSTRB('ABCDEFG',5,4.2)" ,"CD",1], # oracle substring with bytes + ["SUBSTRING as MID","mid","mid('hello',3,2)","ll",1], + ["SUBSTRING_INDEX","substring_index","substring_index('www.tcx.se','.',-2)", "tcx.se",1], + ["SYSDATE","sysdate","sysdate()",0,2], + ["TAIL","tail","tail('ABCDEFG',3)","EFG",0], + ["TANH","tanh","tanh(1)","0.462117157",0], # oracle hyperbolic tangent of n + ["TIME_TO_SEC","time_to_sec","time_to_sec('01:23:21')","5001",0], + ["TO_DAYS","to_days","to_days(DATE '1996-01-01')",729024,0], + ["TRANSLATE","translate","translate('abc','bc','de')",'ade',3], + ["TRIM; Many char extension","trim_many_char","trim(':!' FROM ':abc!')","abc",3], + ["TRIM; Substring extension","trim_substring","trim('cb' FROM 'abccb')","abc",3], + ["TRUNC","trunc","trunc(18.18,-1)",10,0], # oracle + ["UID","uid","uid",0,2], # oracle uid from user + ["UNIX_TIMESTAMP","unix_timestamp","unix_timestamp()",0,2], + ["USERENV","userenv","userenv",0,2], # oracle user enviroment + ["VERSION","version","version()",0,2], + ["WEEKDAY","weekday","weekday(DATE '1997-11-29')",5,0], + ["automatic num->string convert","auto_num2string","concat('a',2)","a2",1], + ["automatic string->num convert","auto_string2num","'1'+2",3,0], + ["concatenation with +","concat_as_+","'abc' + 'def'","abcdef",1], + ); + +@sql_group_functions= + ( + ["AVG","avg","avg(a)",1,0], + ["COUNT (*)","count_*","count(*)",1,0], + ["COUNT column name","count_column","count(a)",1,0], + ["COUNT(DISTINCT expr)","count_distinct","count(distinct a)",1,0], + ["MAX on numbers","max","max(a)",1,0], + ["MAX on strings","max_str","max(b)","a",1], + ["MIN on numbers","min","min(a)",1,0], + ["MIN on strings","min_str","min(b)","a",1], + ["SUM","sum","sum(a)",1,0], + ); + +@extra_group_functions= + ( + ["BIT_AND",'bit_and',"bit_and(a)",1,0], + ["BIT_OR", 'bit_or', "bit_or(a)",1,0], + ["COUNT(DISTINCT expr,expr,...)","count_distinct_list","count(distinct a,b)",1,0], + ["STD","std","std(a)",0,0], + ["STDDEV","stddev","stddev(a)",0,0], + ["VARIANCE","variance","variance(a)",0,0], + ); + +@where_functions= +( + ["= ALL","eq_all","b =all (select b from crash_me)",1,0], + ["= ANY","eq_any","b =any (select b from crash_me)",1,0], + ["= SOME","eq_some","b =some (select b from crash_me)",1,0], + ["BETWEEN","between","5 between 4 and 6",1,0], + ["EXISTS","exists","exists (select * from crash_me)",1,0], + ["IN on numbers","in_num","2 in (3,2,5,9,5,1)",1,0], + ["LIKE ESCAPE","like_escape","b like '%' escape 'a'",1,0], + ["LIKE","like","b like 'a%'",1,0], + ["MATCH UNIQUE","match_unique","1 match unique (select a from crash_me)",1,0], + ["MATCH","match","1 match (select a from crash_me)",1,0], + ["MATCHES","matches","b matcjhes 'a*'",1,0], + ["NOT BETWEEN","not_between","7 not between 4 and 6",1,0], + ["NOT EXISTS","not_exists","not exists (select * from crash_me where a = 2)",1,0], + ["NOT LIKE","not_like","b not like 'b%'",1,0], + ["NOT UNIQUE","not_unique","not unique (select * from crash_me where a = 2)",1,0], + ["UNIQUE","unique","unique (select * from crash_me)",1,0], + ); + +@types=(["sql",\@sql_functions,0], + ["odbc",\@odbc_functions,0], + ["extra",\@extra_functions,0], + ["where",\@where_functions,0]); + +@group_types=(["sql",\@sql_group_functions,0], + ["extra",\@extra_group_functions,0]); + + +foreach $types (@types) +{ + print "\nSupported $types->[0] functions\n"; + $tmp=@$types->[1]; + foreach $type (@$tmp) + { + if (defined($limits{"func_$types->[0]_$type->[1]"})) + { + next; + } + if ($types->[0] eq "where") + { + check_and_report("Function $type->[0]","func_$types->[0]_$type->[1]", + [],"select a from crash_me where $type->[2]",[], + $type->[3],$type->[4]); + } + elsif ($limits{'functions'} eq 'yes') + { + if (($type->[2] =~ /char_length\(b\)/) && (!$end_query)) + { + my $tmp= $type->[2]; + $tmp .= " from crash_me "; + undef($limits{"func_$types->[0]_$type->[1]"}); + check_and_report("Function $type->[0]", + "func_$types->[0]_$type->[1]", + [],"select $tmp ",[], + $type->[3],$type->[4]); + } + else + { + undef($limits{"func_$types->[0]_$type->[1]"}); + $result = check_and_report("Function $type->[0]", + "func_$types->[0]_$type->[1]", + [],"select $type->[2] $end_query",[], + $type->[3],$type->[4]); + if (!$result) + { + # check without type specifyer + if ($type->[2] =~ /DATE /) + { + my $tmp= $type->[2]; + $tmp =~ s/DATE //; + undef($limits{"func_$types->[0]_$type->[1]"}); + $result = check_and_report("Function $type->[0]", + "func_$types->[0]_$type->[1]", + [],"select $tmp $end_query",[], + $type->[3],$type->[4]); + } + if (!$result) + { + if ($types->[0] eq "odbc" && ! ($type->[2] =~ /\{fn/)) + { + my $tmp= $type->[2]; + # Check by converting to ODBC format + undef($limits{"func_$types->[0]_$type->[1]"}); + $tmp= "{fn $tmp }"; + $tmp =~ s/('1997-\d\d-\d\d \d\d:\d\d:\d\d')/{ts $1}/g; + $tmp =~ s/(DATE '1997-\d\d-\d\d')/{d $1}/g; + $tmp =~ s/(TIME '12:13:14')/{t $1}/g; + $tmp =~ s/DATE //; + $tmp =~ s/TIME //; + check_and_report("Function $type->[0]", + "func_$types->[0]_$type->[1]", + [],"select $tmp $end_query",[], + $type->[3],$type->[4]); + } + } + } + } + } + } +} + +if ($limits{'functions'} eq 'yes') +{ + foreach $types (@group_types) + { + print "\nSupported $types->[0] group functions\n"; + $tmp=@$types->[1]; + foreach $type (@$tmp) + { + check_and_report("Group function $type->[0]", + "group_func_$types->[0]_$type->[1]", + [],"select $type->[2],a from crash_me group by a",[], + $type->[3],$type->[4]); + } + } + print "\n"; + report("mixing of integer and float in expression","float_int_expr", + "select 1+1.0 $end_query"); + + check_and_report("Is 1+NULL = NULL","null_num_expr", + [],"select 1+$numeric_null $end_query",[],undef(),4); + $tmp=sql_concat("'a'",$char_null); + if (defined($tmp)) + { + check_and_report("Is $tmp = NULL", "null_concat_expr", [], + "select $tmp $end_query",[], undef(),4); + } + $prompt="Need to cast NULL for arithmetic"; + save_config_data("Need_cast_for_null", + ($numeric_null eq "NULL") ? "no" : "yes", + $prompt); +} +else +{ + print "\n"; +} + + +report("LIKE on numbers","like_with_number", + "create table crash_q (a int,b int)", + "insert into crash_q values(10,10)", + "select * from crash_q where a like '10'", + "drop table crash_q"); + +report("column LIKE column","like_with_column", + "create table crash_q (a char(10),b char(10))", + "insert into crash_q values('abc','abc')", + "select * from crash_q where a like b", + "drop table crash_q"); + +report("update of column= -column","NEG", + "create table crash_q (a integer)", + "insert into crash_q values(10)", + "update crash_q set a=-a", + "drop table crash_q"); + +if ($limits{'func_odbc_left'} eq 'yes' || + $limits{'func_odbc_substring'} eq 'yes') +{ + my $type= ($limits{'func_odbc_left'} eq 'yes' ? + "left(a,4)" : "substring(a for 4)"); + + check_and_report("String functions on date columns","date_as_string", + ["create table crash_me2 (a date not null)", + "insert into crash_me2 values ('1998-03-03')"], + "select $type from crash_me2", + ["drop table crash_me2"], + "1998",1); +} + + +$tmp=sql_concat("b","b"); +if (defined($tmp)) +{ + check_and_report("char are space filled","char_is_space_filled", + [],"select $tmp from crash_me where b = 'a '",[], + 'a a ',6); +} + +if (!defined($limits{'multi_table_update'})) +{ + if (check_and_report("Update with many tables","multi_table_update", + ["create table crash_q (a integer,b char(10))", + "insert into crash_q values(1,'c')", + "update crash_q left join crash_me on crash_q.a=crash_me.a set crash_q.b=crash_me.b"], + "select b from crash_q", + ["drop table crash_q"], + "a",1,undef(),2)) + { + check_and_report("Update with many tables","multi_table_update", + ["create table crash_q (a integer,b char(10))", + "insert into crash_q values(1,'c')", + "update crash_q,crash_me set crash_q.b=crash_me.b where crash_q.a=crash_me.a"], + "select b from crash_q", + ["drop table crash_q"], + "a",1, + 1); + } +} + +report("DELETE FROM table1,table2...","multi_table_delete", + "create table crash_q (a integer,b char(10))", + "insert into crash_q values(1,'c')", + "delete crash_q.* from crash_q,crash_me where crash_q.a=crash_me.a", + "drop table crash_q"); + +check_and_report("Update with sub select","select_table_update", + ["create table crash_q (a integer,b char(10))", + "insert into crash_q values(1,'c')", + "update crash_q set b= (select b from crash_me where crash_q.a = crash_me.a)"], + "select b from crash_q", + ["drop table crash_q"], + "a",1); + +check_and_report("Calculate 1--1","minus_neg",[], + "select a--1 from crash_me",[],0,2); + +report("ANSI SQL simple joins","simple_joins", + "select crash_me.a from crash_me, crash_me t0"); + +# +# Check max string size, and expression limits +# +$found=undef; +foreach $type (('mediumtext','text','text()','blob','long')) +{ + if ($limits{"type_extra_$type"} eq 'yes') + { + $found=$type; + last; + } +} +if (defined($found)) +{ + $found =~ s/\(\)/\(%d\)/; + find_limit("max text or blob size","max_text_size", + new query_many(["create table crash_q (q $found)", + "insert into crash_q values ('%s')"], + "select * from crash_q","%s", + ["drop table crash_q"], + min($max_string_size,$limits{'query_size'}-30))); + +} + +# It doesn't make lots of sense to check for string lengths much bigger than +# what can be stored... + +find_limit(($prompt="constant string size in where"),"where_string_size", + new query_repeat([],"select a from crash_me where b <'", + "","","a","","'")); +if ($limits{'where_string_size'} == 10) +{ + save_config_data('where_string_size','nonstandard',$prompt); +} + +if ($limits{'select_constants'} eq 'yes') +{ + find_limit("constant string size in SELECT","select_string_size", + new query_repeat([],"select '","","","a","","'$end_query")); +} + +goto no_functions if ($limits{'functions'} ne "yes"); + +if ($limits{'func_odbc_repeat'} eq 'yes') +{ + find_limit("return string size from function","repeat_string_size", + new query_many([], + "select repeat('a',%d) $end_query","%s", + [], + $max_string_size,0)); +} + +$tmp=find_limit("simple expressions","max_expressions", + new query_repeat([],"select 1","","","+1","",$end_query, + undef(),$max_expressions)); + +if ($tmp > 10) +{ + $tmp= "(1" . ( '+1' x ($tmp-10) ) . ")"; + find_limit("big expressions", "max_big_expressions", + new query_repeat([],"select 0","","","+$tmp","",$end_query, + undef(),$max_big_expressions)); +} + +find_limit("stacked expressions", "max_stack_expression", + new query_repeat([],"select 1","","","+(1",")",$end_query, + undef(),$max_stacked_expressions)); + +no_functions: + +if (!defined($limits{'max_conditions'})) +{ + find_limit("OR and AND in WHERE","max_conditions", + new query_repeat([], + "select a from crash_me where a=1 and b='a'","", + "", " or a=%d and b='%d'","","","", + [],($query_size-42)/29,undef,2)); + $limits{'max_conditions'}*=2; +} +# The 42 is the length of the constant part. +# The 29 is the length of the variable part, plus two seven-digit numbers. + +find_limit("tables in join", "join_tables", + new query_repeat([], + "select crash_me.a",",t%d.a","from crash_me", + ",crash_me t%d","","",[],$max_join_tables,undef, + 1)); + +# Different CREATE TABLE options + +report("primary key in create table",'primary_key_in_create', + "create table crash_q (q integer not null,primary key (q))", + "drop table crash_q"); + +report("unique in create table",'unique_in_create', + "create table crash_q (q integer not null,unique (q))", + "drop table crash_q"); + +if ($limits{'unique_in_create'} eq 'yes') +{ + report("unique null in create",'unique_null_in_create', + "create table crash_q (q integer,unique (q))", + "insert into crash_q (q) values (NULL)", + "insert into crash_q (q) values (NULL)", + "insert into crash_q (q) values (1)", + "drop table crash_q"); +} + +report("default value for column",'create_default', + "create table crash_q (q integer default 10 not null)", + "drop table crash_q"); + +report("default value function for column",'create_default_func', + "create table crash_q (q integer not null,q1 integer default (1+1)", + "drop table crash_q"); + +report("temporary tables",'tempoary_table', + "create temporary table crash_q (q integer not null)", + "drop table crash_q"); + +report("create table from select",'create_table_select', + "create table crash_q SELECT * from crash_me", + "drop table crash_q"); + +report("index in create table",'index_in_create', + "create table crash_q (q integer not null,index (q))", + "drop table crash_q"); + +# The following must be executed as we need the value of end_drop_keyword +# later +if (! defined($limits{'create_index'}) && + ! defined($limits{'drop_index'}) ) +{ + if ($res=safe_query("create index crash_q on crash_me (a)")) + { + $res="yes"; + $drop_res="yes"; + $end_drop_keyword=""; + if (!safe_query("drop index crash_q")) + { + # Can't drop the standard way; Check if mSQL + if (safe_query("drop index crash_q from crash_me")) + { + $drop_res="with 'FROM'"; # Drop is not ANSI SQL + $end_drop_keyword="drop index %i from %t"; + } + # else check if Access or MySQL + elsif (safe_query("drop index crash_q on crash_me")) + { + $drop_res="with 'ON'"; # Drop is not ANSI SQL + $end_drop_keyword="drop index %i on %t"; + } + # else check if MS-SQL + elsif (safe_query("drop index crash_me.crash_q")) + { + $drop_res="with 'table.index'"; # Drop is not ANSI SQL + $end_drop_keyword="drop index %t.%i"; + } + } + else + { + # Old MySQL 3.21 supports only the create index syntax + # This means that the second create doesn't give an error. + $res=safe_query(["create index crash_q on crash_me (a)", + "create index crash_q on crash_me (a)", + "drop index crash_q"]); + $res= $res ? 'ignored' : 'yes'; + } + } + else + { + $drop_res=$res='no'; + } + save_config_data('create_index',$res,"create index"); + save_config_data('drop_index',$drop_res,"drop index"); + + print "create index: $limits{'create_index'}\n"; + print "drop index: $limits{'drop_index'}\n"; +} + +# check if we can have 'NULL' as a key +check_and_report("null in index","null_in_index", + [create_table("crash_q",["a char(10)"],["(a)"]), + "insert into crash_q values (NULL)"], + "select * from crash_q", + ["drop table crash_q"], + undef(),4); + +if ($limits{'unique_in_create'} eq 'yes') +{ + report("null in unique index",'null_in_unique', + create_table("crash_q",["q integer"],["unique(q)"]), + "insert into crash_q (q) values(NULL)", + "insert into crash_q (q) values(NULL)", + "drop table crash_q"); +} + +if ($limits{'null_in_unique'} eq 'yes') +{ + report("null in unique index",'multi_null_in_unique', + create_table("crash_q",["q integer, x integer"],["unique(q)"]), + "insert into crash_q(x) values(1)", + "insert into crash_q(x) values(2)", + "drop table crash_q"); +} + +if ($limits{'create_index'} ne 'no') +{ + $end_drop=$end_drop_keyword; + $end_drop =~ s/%i/crash_q/; + $end_drop =~ s/%t/crash_me/; + report("index on column part (extension)","index_parts",, + "create index crash_q on crash_me (b(5))", + $end_drop); + $end_drop=$end_drop_keyword; + $end_drop =~ s/%i/crash_me/; + $end_drop =~ s/%t/crash_me/; + report("different namespace for index", + "index_namespace", + "create index crash_me on crash_me (b)", + $end_drop); +} + +if (!report("case independent table names","table_name_case", + "create table crash_q (q integer)", + "drop table CRASH_Q")) +{ + safe_query("drop table crash_q"); +} + +if (!report("drop table if exists","drop_if_exists", + "create table crash_q (q integer)", + "drop table if exists crash_q")) +{ + safe_query("drop table crash_q"); +} + +report("create table if not exists","create_if_not_exists", + "create table crash_q (q integer)", + "create table if not exists crash_q (q integer)"); +safe_query("drop table crash_q"); + +# +# test of different join types +# + +assert("create table crash_me2 (a integer not null,b char(10) not null, c integer)"); +assert("insert into crash_me2 (a,b,c) values (1,'b',1)"); +assert("create table crash_me3 (a integer not null,b char(10) not null)"); +assert("insert into crash_me3 (a,b) values (1,'b')"); + +report("inner join","inner_join", + "select crash_me.a from crash_me inner join crash_me2 ON crash_me.a=crash_me2.a"); +report("left outer join","left_outer_join", + "select crash_me.a from crash_me left join crash_me2 ON crash_me.a=crash_me2.a"); +report("natural left outer join","natural_left_outer_join", + "select c from crash_me natural left join crash_me2"); +report("left outer join using","left_outer_join_using", + "select c from crash_me left join crash_me2 using (a)"); +report("left outer join odbc style","odbc_left_outer_join", + "select crash_me.a from { oj crash_me left outer join crash_me2 ON crash_me.a=crash_me2.a }"); +report("right outer join","right_outer_join", + "select crash_me.a from crash_me right join crash_me2 ON crash_me.a=crash_me2.a"); +report("full outer join","full_outer_join", + "select crash_me.a from crash_me full join crash_me2 ON crash_me.a=crash_me2.a"); +report("cross join (same as from a,b)","cross_join", + "select crash_me.a from crash_me cross join crash_me3"); +report("natural join","natural_join", + "select * from crash_me natural join crash_me3"); +report("union","union", + "select * from crash_me union select a,b from crash_me3"); +report("union all","union_all", + "select * from crash_me union all select a,b from crash_me3"); +report("intersect","intersect", + "select * from crash_me intersect select * from crash_me3"); +report("intersect all","intersect_all", + "select * from crash_me intersect all select * from crash_me3"); +report("except","except", + "select * from crash_me except select * from crash_me3"); +report("except all","except_all", + "select * from crash_me except all select * from crash_me3"); +report("except","except", + "select * from crash_me except select * from crash_me3"); +report("except all","except_all", + "select * from crash_me except all select * from crash_me3"); +report("minus","minus", + "select * from crash_me minus select * from crash_me3"); # oracle ... + +report("natural join (incompatible lists)","natural_join_incompat", + "select c from crash_me natural join crash_me2"); +report("union (incompatible lists)","union_incompat", + "select * from crash_me union select a,b from crash_me2"); +report("union all (incompatible lists)","union_all_incompat", + "select * from crash_me union all select a,b from crash_me2"); +report("intersect (incompatible lists)","intersect_incompat", + "select * from crash_me intersect select * from crash_me2"); +report("intersect all (incompatible lists)","intersect_all_incompat", + "select * from crash_me intersect all select * from crash_me2"); +report("except (incompatible lists)","except_incompat", + "select * from crash_me except select * from crash_me2"); +report("except all (incompatible lists)","except_all_incompat", + "select * from crash_me except all select * from crash_me2"); +report("except (incompatible lists)","except_incompat", + "select * from crash_me except select * from crash_me2"); +report("except all (incompatible lists)","except_all_incompat", + "select * from crash_me except all select * from crash_me2"); +report("minus (incompatible lists)","minus_incompat", + "select * from crash_me minus select * from crash_me2"); # oracle ... + +assert("drop table crash_me2"); +assert("drop table crash_me3"); + +# somethings to be added here .... +# FOR UNION - INTERSECT - EXCEPT -> CORRESPONDING [ BY ] +# after subqueries: +# >ALL | ANY | SOME - EXISTS - UNIQUE + +if (report("subqueries","subqueries", + "select a from crash_me where crash_me.a in (select max(a) from crash_me)")) +{ + $tmp=new query_repeat([],"select a from crash_me","","", + " where a in (select a from crash_me",")", + "",[],$max_join_tables); + find_limit("recursive subqueries", "recursive_subqueries",$tmp); +} + +report("insert INTO ... SELECT ...","insert_select", + "create table crash_q (a int)", + "insert into crash_q (a) SELECT crash_me.a from crash_me", + "drop table crash_q"); + +report_trans("transactions","transactions", + [create_table("crash_q",["a integer not null"],[]), + "insert into crash_q values (1)"], + "select * from crash_q", + "drop table crash_q" + ); + +report("atomic updates","atomic_updates", + create_table("crash_q",["a integer not null"],["primary key (a)"]), + "insert into crash_q values (2)", + "insert into crash_q values (3)", + "insert into crash_q values (1)", + "update crash_q set a=a+1", + "drop table crash_q"); + +if ($limits{'atomic_updates'} eq 'yes') +{ + report_fail("atomic_updates_with_rollback","atomic_updates_with_rollback", + create_table("crash_q",["a integer not null"], + ["primary key (a)"]), + "insert into crash_q values (2)", + "insert into crash_q values (3)", + "insert into crash_q values (1)", + "update crash_q set a=a+1 where a < 3", + "drop table crash_q"); +} + +# To add with the views: +# DROP VIEW - CREAT VIEW *** [ WITH [ CASCADE | LOCAL ] CHECK OPTION ] +report("views","views", + "create view crash_q as select a from crash_me", + "drop view crash_q"); + +report("foreign key syntax","foreign_key_syntax", + create_table("crash_q",["a integer not null"],["primary key (a)"]), + create_table("crash_q2",["a integer not null", + "foreign key (a) references crash_q (a)"], + []), + "insert into crash_q values (1)", + "insert into crash_q2 values (1)", + "drop table crash_q2", + "drop table crash_q"); + +if ($limits{'foreign_key_syntax'} eq 'yes') +{ + report_fail("foreign keys","foreign_key", + create_table("crash_q",["a integer not null"], + ["primary key (a)"]), + create_table("crash_q2",["a integer not null", + "foreign key (a) references crash_q (a)"], + []), + "insert into crash_q values (1)", + "insert into crash_q2 values (2)", + "drop table crash_q2", + "drop table crash_q"); +} + +report("Create SCHEMA","create_schema", + "create schema crash_schema create table crash_q (a int) create table crash_q2(b int)", + "drop schema crash_schema cascade"); + +if ($limits{'foreign_key'} eq 'yes') +{ + if ($limits{'create_schema'} eq 'yes') + { + report("Circular foreign keys","foreign_key_circular", + "create schema crash_schema create table crash_q (a int primary key, b int, foreign key (b) references crash_q2(a)) create table crash_q2(a int, b int, primary key(a), foreign key (b) references crash_q(a))", + "drop schema crash_schema cascade"); + } +} + +report("Column constraints","constraint_check", + "create table crash_q (a int check (a>0))", + "drop table crash_q"); + +report("Table constraints","constraint_check_table", + "create table crash_q (a int ,b int, check (a>b))", + "drop table crash_q"); + +report("Named constraints","constraint_check", + "create table crash_q (a int ,b int, constraint abc check (a>b))", + "drop table crash_q"); + +report("NULL constraint (SyBase style)","constraint_null", + "create table crash_q (a int null)", + "drop table crash_q"); + +report("Triggers (ANSI SQL)","psm_trigger", + "create table crash_q (a int ,b int)", + "create trigger crash_trigger after insert on crash_q referencing new table as new_a when (localtime > time '18:00:00') begin atomic end", + "insert into crash_q values(1,2)", + "drop trigger crash_trigger", + "drop table crash_q"); + +report("PSM procedures (ANSI SQL)","psm_procedures", + "create table crash_q (a int,b int)", + "create procedure crash_proc(in a1 int, in b1 int) language sql modifies sql data begin declare c1 int; set c1 = a1 + b1; insert into crash_q(a,b) values (a1,c1); end", + "call crash_proc(1,10)", + "drop procedure crash_proc", + "drop table crash_q"); + +report("PSM modules (ANSI SQL)","psm_modules", + "create table crash_q (a int,b int)", + "create module crash_m declare procedure crash_proc(in a1 int, in b1 int) language sql modifies sql data begin declare c1 int; set c1 = a1 + b1; insert into crash_q(a,b) values (a1,c1); end; declare procedure crash_proc2(INOUT a int, in b int) contains sql set a = b + 10; end module", + "call crash_proc(1,10)", + "drop module crash_m cascade", + "drop table crash_q cascade"); + +report("PSM functions (ANSI SQL)","psm_functions", + "create table crash_q (a int)", + "create function crash_func(in a1 int, in b1 int) returns int language sql deterministic contains sql begin return a1 * b1; end", + "insert into crash_q values(crash_func(2,4))", + "select a,crash_func(a,2) from crash_q", + "drop function crash_func cascade", + "drop table crash_q"); + +report("Domains (ANSI SQL)","domains", + "create domain crash_d as varchar(10) default 'Empty' check (value <> 'abcd')", + "create table crash_q(a crash_d, b int)", + "insert into crash_q(a,b) values('xyz',10)", + "insert into crash_q(b) values(10)", + "drop table crash_q", + "drop domain crash_d"); + + +if (!defined($limits{'lock_tables'})) +{ + report("lock table","lock_tables", + "lock table crash_me READ", + "unlock tables"); + if ($limits{'lock_tables'} eq 'no') + { + delete $limits{'lock_tables'}; + report("lock table","lock_tables", + "lock table crash_me IN SHARE MODE"); + } +} + +if (!report("many tables to drop table","multi_drop", + "create table crash_q (a int)", + "create table crash_q2 (a int)", + "drop table crash_q,crash_q2")) +{ + $dbh->do("drop table crash_q"); + $dbh->do("drop table crash_q2"); +} + + +report("-- as comment","comment_--", + "select * from crash_me -- Testing of comments"); +report("// as comment","comment_//", + "select * from crash_me // Testing of comments"); +report("# as comment","comment_#", + "select * from crash_me # Testing of comments"); +report("/* */ as comment","comment_/**/", + "select * from crash_me /* Testing of comments */"); + +# +# Check things that fails one some servers +# + +# Empress can't insert empty strings in a char() field +report("insert empty string","insert_empty_string", + create_table("crash_q",["a char(10) not null,b char(10)"],[]), + "insert into crash_q values ('','')", + "drop table crash_q"); + +report("Having with alias","having_with_alias", + create_table("crash_q",["a integer"],[]), + "insert into crash_q values (10)", + "select sum(a) as b from crash_q group by a having b > 0", + "drop table crash_q"); + +# +# test name limits +# + +find_limit("table name length","max_table_name", + new query_many(["create table crash_q%s (q integer)", + "insert into crash_q%s values(1)"], + "select * from crash_q%s",1, + ["drop table crash_q%s"], + $max_name_length,7,1)); + +find_limit("column name length","max_column_name", + new query_many(["create table crash_q (q%s integer)", + "insert into crash_q (q%s) values(1)"], + "select q%s from crash_q",1, + ["drop table crash_q"], + $max_name_length,1)); + +if ($limits{'column_alias'} eq 'yes') +{ + find_limit("select alias name length","max_select_alias_name", + new query_many(undef, + "select b as %s from crash_me",undef, + undef, $max_name_length)); +} + +find_limit("table alias name length","max_table_alias_name", + new query_many(undef, + "select %s.b from crash_me %s", + undef, + undef, $max_name_length)); + +$end_drop_keyword = "drop index %i" if (!$end_drop_keyword); +$end_drop=$end_drop_keyword; +$end_drop =~ s/%i/crash_q%s/; +$end_drop =~ s/%t/crash_me/; + +if ($limits{'create_index'} ne 'no') +{ + find_limit("index name length","max_index_name", + new query_many(["create index crash_q%s on crash_me (a)"], + undef,undef, + [$end_drop], + $max_name_length,7)); +} + +find_limit("max char() size","max_char_size", + new query_many(["create table crash_q (q char(%d))", + "insert into crash_q values ('%s')"], + "select * from crash_q","%s", + ["drop table crash_q"], + min($max_string_size,$limits{'query_size'}))); + +if ($limits{'type_sql_varchar(1_arg)'} eq 'yes') +{ + find_limit("max varchar() size","max_varchar_size", + new query_many(["create table crash_q (q varchar(%d))", + "insert into crash_q values ('%s')"], + "select * from crash_q","%s", + ["drop table crash_q"], + min($max_string_size,$limits{'query_size'}))); +} + +$found=undef; +foreach $type (('mediumtext','text','text()','blob','long')) +{ + if ($limits{"type_extra_$type"} eq 'yes') + { + $found=$type; + last; + } +} +if (defined($found)) +{ + $found =~ s/\(\)/\(%d\)/; + find_limit("max text or blob size","max_text_size", + new query_many(["create table crash_q (q $found)", + "insert into crash_q values ('%s')"], + "select * from crash_q","%s", + ["drop table crash_q"], + min($max_string_size,$limits{'query_size'}-30))); + +} + +$tmp=new query_repeat([],"create table crash_q (a integer","","", + ",a%d integer","",")",["drop table crash_q"], + $max_columns); +$tmp->{'offset'}=1; +find_limit("Columns in table","max_columns",$tmp); + +# Make a field definition to be used when testing keys + +$key_definitions="q0 integer not null"; +$key_fields="q0"; +for ($i=1; $i < min($limits{'max_columns'},$max_keys) ; $i++) +{ + $key_definitions.=",q$i integer not null"; + $key_fields.=",q$i"; +} +$key_values="1," x $i; +chop($key_values); + +if ($limits{'unique_in_create'} eq 'yes') +{ + find_limit("unique indexes","max_unique_index", + new query_table("create table crash_q (q integer", + ",q%d integer not null,unique (q%d)",")", + ["insert into crash_q (q,%f) values (1,%v)"], + "select q from crash_q",1, + "drop table crash_q", + $max_keys,0)); + + find_limit("index parts","max_index_parts", + new query_table("create table crash_q ($key_definitions,unique (q0", + ",q%d","))", + ["insert into crash_q ($key_fields) values ($key_values)"], + "select q0 from crash_q",1, + "drop table crash_q", + $max_keys,1)); + + find_limit("max index part length","max_index_part_length", + new query_many(["create table crash_q (q char(%d) not null,unique(q))", + "insert into crash_q (q) values ('%s')"], + "select q from crash_q","%s", + ["drop table crash_q"], + $limits{'max_char_size'},0)); + + if ($limits{'type_sql_varchar(1_arg)'} eq 'yes') + { + find_limit("index varchar part length","max_index_varchar_part_length", + new query_many(["create table crash_q (q varchar(%d) not null,unique(q))", + "insert into crash_q (q) values ('%s')"], + "select q from crash_q","%s", + ["drop table crash_q"], + $limits{'max_varchar_size'},0)); + } +} + + +if ($limits{'create_index'} ne 'no') +{ + if ($limits{'create_index'} eq 'ignored' || + $limits{'unique_in_create'} eq 'yes') + { # This should be true + save_config_data('max_index',$limits{'max_unique_index'},"max index"); + print "indexes: $limits{'max_index'}\n"; + } + else + { + if (!defined($limits{'max_index'})) + { + assert("create table crash_q ($key_definitions)"); + for ($i=1; $i <= min($limits{'max_columns'},$max_keys) ; $i++) + { + last if (!safe_query("create index crash_q$i on crash_q (q$i)")); + } + save_config_data('max_index',$i == $max_keys ? $max_keys : $i, + "max index"); + while ( --$i > 0) + { + $end_drop=$end_drop_keyword; + $end_drop =~ s/%i/crash_q$i/; + $end_drop =~ s/%t/crash_q/; + assert($end_drop); + } + assert("drop table crash_q"); + } + print "indexs: $limits{'max_index'}\n"; + if (!defined($limits{'max_unique_index'})) + { + assert("create table crash_q ($key_definitions)"); + for ($i=0; $i < min($limits{'max_columns'},$max_keys) ; $i++) + { + last if (!safe_query("create unique index crash_q$i on crash_q (q$i)")); + } + save_config_data('max_unique_index',$i == $max_keys ? $max_keys : $i, + "max unique index"); + while ( --$i >= 0) + { + $end_drop=$end_drop_keyword; + $end_drop =~ s/%i/crash_q$i/; + $end_drop =~ s/%t/crash_q/; + assert($end_drop); + } + assert("drop table crash_q"); + } + print "unique indexes: $limits{'max_unique_index'}\n"; + if (!defined($limits{'max_index_parts'})) + { + assert("create table crash_q ($key_definitions)"); + $end_drop=$end_drop_keyword; + $end_drop =~ s/%i/crash_q1%d/; + $end_drop =~ s/%t/crash_q/; + find_limit("index parts","max_index_parts", + new query_table("create index crash_q1%d on crash_q (q0", + ",q%d",")", + [], + undef,undef, + $end_drop, + $max_keys,1)); + assert("drop table crash_q"); + } + else + { + print "index parts: $limits{'max_index_parts'}\n"; + } + $end_drop=$end_drop_keyword; + $end_drop =~ s/%i/crash_q2%d/; + $end_drop =~ s/%t/crash_me/; + + find_limit("index part length","max_index_part_length", + new query_many(["create table crash_q (q char(%d))", + "create index crash_q2%d on crash_q (q)", + "insert into crash_q values('%s')"], + "select q from crash_q", + "%s", + [ $end_drop, + "drop table crash_q"], + min($limits{'max_char_size'},"+8192"))); + } +} + +find_limit("index length","max_index_length", + new query_index_length("create table crash_q ", + "drop table crash_q", + $max_key_length)); + +find_limit("max table row length (without blobs)","max_row_length", + new query_row_length("crash_q ", + "not null", + "drop table crash_q", + min($max_row_length, + $limits{'max_columns'}* + min($limits{'max_char_size'},255)))); + +find_limit("table row length with nulls (without blobs)", + "max_row_length_with_null", + new query_row_length("crash_q ", + "", + "drop table crash_q", + $limits{'max_row_length'}*2)); + +find_limit("number of columns in order by","columns_in_order_by", + new query_many(["create table crash_q (%F)", + "insert into crash_q values(%v)", + "insert into crash_q values(%v)"], + "select * from crash_q order by %f", + undef(), + ["drop table crash_q"], + $max_order_by)); + +find_limit("number of columns in group by","columns_in_group_by", + new query_many(["create table crash_q (%F)", + "insert into crash_q values(%v)", + "insert into crash_q values(%v)"], + "select %f from crash_q group by %f", + undef(), + ["drop table crash_q"], + $max_order_by)); + +# +# End of test +# + +$dbh->do("drop table crash_me"); # Remove temporary table + +print "crash-me safe: $limits{'crash_me_safe'}\n"; +print "reconnected $reconnect_count times\n"; + +$dbh->disconnect || warn $dbh->errstr; +save_all_config_data(); +exit 0; + +sub usage +{ + print <<EOF; +$0 Ver $version + +This program tries to find all limits and capabilities for a SQL +server. As it will use the server in some 'unexpected' ways, one +shouldn\'t have anything important running on it at the same time this +program runs! There is a slight chance that something unexpected may +happen.... + +As all used queries are legal according to some SQL standard. any +reasonable SQL server should be able to run this test without any +problems. + +All questions is cached in $opt_dir/'server_name'.cfg that future runs will use +limits found in previous runs. Remove this file if you want to find the +current limits for your version of the database server. + +This program uses some table names while testing things. If you have any +tables with the name of 'crash_me' or 'crash_qxxxx' where 'x' is a number, +they will be deleted by this test! + +$0 takes the following options: + +--help or --Information + Shows this help + +--batch-mode + Don\'t ask any questions, quit on errors. + +--comment='some comment' + Add this comment to the crash-me limit file + +--database='database' (Default $opt_database) + Create test tables in this database. + +--dir='limits' + Save crash-me output in this directory + +--debug + Lots of printing to help debugging if something goes wrong. + +--fix-limit-file + Reformat the crash-me limit file. crash-me is not run! + +--force + Start test at once, without a warning screen and without questions. + This is a option for the very brave. + Use this in your cron scripts to test your database every night. + +--log-all-queries + Prints all queries that are executed. Mostly used for debugging crash-me. + +--log-queries-to-file='filename' + Log full queries to file. + +--host='hostname' (Default $opt_host) + Run tests on this host. + +--password='password' + Password for the current user. + +--restart + Save states during each limit tests. This will make it possible to continue + by restarting with the same options if there is some bug in the DBI or + DBD driver that caused $0 to die! + +--server='server name' (Default $opt_server) + Run the test on the given server. + Known servers names are: Access, Adabas, AdabasD, Empress, Oracle, Informix, DB2, Mimer, mSQL, MS-SQL, MySQL, Pg, Solid or Sybase. + For others $0 can\'t report the server version. + +--user='user_name' + User name to log into the SQL server. + +--start-cmd='command to restart server' + Automaticly restarts server with this command if the server dies. + +--sleep='time in seconds' (Default $opt_sleep) + Wait this long before restarting server. + +EOF + exit(0); +} + + +sub server_info +{ + my ($ok,$tmp); + $ok=0; + print "\nNOTE: You should be familiar with '$0 --help' before continuing!\n\n"; + if (lc($opt_server) eq "mysql") + { + $ok=1; + print <<EOF; +This test should not crash MySQL if it was distributed together with the +running MySQL version. +If this is the case you can probably continue without having to worry about +destroying something. +EOF + } + elsif (lc($opt_server) eq "msql") + { + print <<EOF; +This test will take down mSQL repeatedly while finding limits. +To make this test easier, start mSQL in another terminal with something like: + +while (true); do /usr/local/mSQL/bin/msql2d ; done + +You should be sure that no one is doing anything important with mSQL and that +you have privileges to restart it! +It may take awhile to determinate the number of joinable tables, so prepare to +wait! +EOF + } + elsif (lc($opt_server) eq "solid") + { + print <<EOF; +This test will take down Solid server repeatedly while finding limits. +You should be sure that no one is doing anything important with Solid +and that you have privileges to restart it! + +If you are running Solid without logging and/or backup YOU WILL LOSE! +Solid does not write data from the cache often enough. So if you continue +you may lose tables and data that you entered hours ago! + +Solid will also take a lot of memory running this test. You will nead +at least 234M free! + +When doing the connect test Solid server or the perl api will hang when +freeing connections. Kill this program and restart it to continue with the +test. You don\'t have to use --restart for this case. +EOF + if (!$opt_restart) + { + print "\nWhen DBI/Solid dies you should run this program repeatedly\n"; + print "with --restart until all tests have completed\n"; + } + } + elsif (lc($opt_server) eq "pg") + { + print <<EOF; +This test will crash postgreSQL when calculating the number of joinable tables! +You should be sure that no one is doing anything important with postgreSQL +and that you have privileges to restart it! +EOF + } + else + { + print <<EOF; +This test may crash $opt_server repeatedly while finding limits! +You should be sure that no one is doing anything important with $opt_server +and that you have privileges to restart it! +EOF + } + print <<EOF; + +Some of the tests you are about to execute may require a lot of +memory. Your tests WILL adversely affect system performance. It's +not uncommon that either this crash-me test program, or the actual +database back-end, will DIE with an out-of-memory error. So might +any other program on your system if it requests more memory at the +wrong time. + +Note also that while crash-me tries to find limits for the database server +it will make a lot of queries that can't be categorized as 'normal'. It's +not unlikely that crash-me finds some limit bug in your server so if you +run this test you have to be prepared that your server may die during it! + +We, the creators of this utility, are not responsible in any way if your +database server unexpectedly crashes while this program tries to find the +limitations of your server. By accepting the following question with 'yes', +you agree to the above! + +You have been warned! + +EOF + + # + # No default reply here so no one can blame us for starting the test + # automaticly. + # + for (;;) + { + print "Start test (yes/no) ? "; + $tmp=<STDIN>; chomp($tmp); $tmp=lc($tmp); + last if ($tmp =~ /^yes$/i); + exit 1 if ($tmp =~ /^n/i); + print "\n"; + } +} + +sub machine +{ + $name= `uname -s -r -m`; + if ($?) + { + $name= `uname -s -m`; + } + if ($?) + { + $name= `uname -s`; + } + if ($?) + { + $name= `uname`; + } + if ($?) + { + $name="unknown"; + } + chomp($name); $name =~ s/[\n\r]//g; + return $name; +} + + +# +# Help functions that we need +# + +sub safe_connect +{ + my ($object)=@_; + my ($dbh,$tmp); + + for (;;) + { + if (($dbh=DBI->connect($server->{'data_source'},$opt_user,$opt_password, + { PrintError => 0, AutoCommit => 1}))) + { + $dbh->{LongReadLen}= 16000000; # Set max retrieval buffer + return $dbh; + } + print "Error: $DBI::errstr; $server->{'data_source'} - '$opt_user' - '$opt_password'\n"; + print "I got the above error when connecting to $opt_server\n"; + if (defined($object) && defined($object->{'limit'})) + { + print "This check was done with limit: $object->{'limit'}.\nNext check will be done with a smaller limit!\n"; + $object=undef(); + } + save_config_data('crash_me_safe','no',"crash me safe"); + if ($opt_db_start_cmd) + { + print "Restarting the db server with:\n'$opt_db_start_cmd'\n"; + system("$opt_db_start_cmd"); + print "Waiting $opt_sleep seconds so the server can initialize\n"; + sleep $opt_sleep; + } + else + { + exit(1) if ($opt_batch_mode); + print "Can you check/restart it so I can continue testing?\n"; + for (;;) + { + print "Continue test (yes/no) ? [yes] "; + $tmp=<STDIN>; chomp($tmp); $tmp=lc($tmp); + $tmp = "yes" if ($tmp eq ""); + last if (index("yes",$tmp) >= 0); + exit 1 if (index("no",$tmp) >= 0); + print "\n"; + } + } + } +} + +# +# Check if the server is upp and running. If not, ask the user to restart it +# + +sub check_connect +{ + my ($object)=@_; + my ($sth); + print "Checking connection\n" if ($opt_log_all_queries); + # The following line will not work properly with interbase + return if (defined($check_connect) && defined($dbh->do($check_connect))); + $dbh->disconnect || warn $dbh->errstr; + print "\nreconnecting\n" if ($opt_debug); + $reconnect_count++; + undef($dbh); + $dbh=safe_connect($object); +} + +# +# print query if debugging +# +sub print_query +{ + my ($query)=@_; + $last_error=$DBI::errstr; + if ($opt_debug) + { + if (length($query) > 130) + { + $query=substr($query,0,120) . "...(" . (length($query)-120) . ")"; + } + printf "\nGot error from query: '%s'\n%s\n",$query,$DBI::errstr; + } +} + +# +# Do one or many queries. Return 1 if all was ok +# Note that all rows are executed (to ensure that we execute drop table commands) +# + +sub safe_query +{ + my($queries)=@_; + my($query,$ok,$retry_ok,$retry,@tmp,$sth); + $ok=1; + if (ref($queries) ne "ARRAY") + { + push(@tmp,$queries); + $queries= \@tmp; + } + foreach $query (@$queries) + { + printf "query1: %-80.80s ...(%d - %d)\n",$query,length($query),$retry_limit if ($opt_log_all_queries); + print LOG "$query;\n" if ($opt_log); + if (length($query) > $query_size) + { + $ok=0; + next; + } + + $retry_ok=0; + for ($retry=0; $retry < $retry_limit ; $retry++) + { + if (! ($sth=$dbh->prepare($query))) + { + print_query($query); + $retry=100 if (!$server->abort_if_fatal_error()); + # Force a reconnect because of Access drop table bug! + if ($retry == $retry_limit-2) + { + print "Forcing disconnect to retry query\n" if ($opt_debug); + $dbh->disconnect || warn $dbh->errstr; + } + check_connect(); # Check that server is still up + } + else + { + if (!$sth->execute()) + { + print_query($query); + $retry=100 if (!$server->abort_if_fatal_error()); + # Force a reconnect because of Access drop table bug! + if ($retry == $retry_limit-2) + { + print "Forcing disconnect to retry query\n" if ($opt_debug); + $dbh->disconnect || warn $dbh->errstr; + } + check_connect(); # Check that server is still up + } + else + { + $retry = $retry_limit; + $retry_ok = 1; + } + $sth->finish; + } + } + $ok=0 if (!$retry_ok); + if ($query =~ /create/i && $server->reconnect_on_errors()) + { + print "Forcing disconnect to retry query\n" if ($opt_debug); + $dbh->disconnect || warn $dbh->errstr; + $dbh=safe_connect(); + } + } + return $ok; +} + + +# +# Do a query on a query package object. +# + +sub limit_query +{ + my($object,$limit)=@_; + my ($query,$result,$retry,$sth); + + $query=$object->query($limit); + $result=safe_query($query); + if (!$result) + { + $object->cleanup(); + return 0; + } + if (defined($query=$object->check_query())) + { + for ($retry=0 ; $retry < $retry_limit ; $retry++) + { + printf "query2: %-80.80s\n",$query if ($opt_log_all_queries); + print LOG "$query;\n" if ($opt_log); + if (($sth= $dbh->prepare($query))) + { + if ($sth->execute) + { + $result= $object->check($sth); + $sth->finish; + $object->cleanup(); + return $result; + } + print_query($query); + $sth->finish; + } + else + { + print_query($query); + } + $retry=100 if (!$server->abort_if_fatal_error()); # No need to continue + if ($retry == $retry_limit-2) + { + print "Forcing discoennect to retry query\n" if ($opt_debug); + $dbh->disconnect || warn $dbh->errstr; + } + check_connect($object); # Check that server is still up + } + $result=0; # Query failed + } + $object->cleanup(); + return $result; # Server couldn't handle the query +} + + +sub report +{ + my ($prompt,$limit,@queries)=@_; + print "$prompt: "; + if (!defined($limits{$limit})) + { + save_config_data($limit,safe_query(\@queries) ? "yes" : "no",$prompt); + } + print "$limits{$limit}\n"; + return $limits{$limit} ne "no"; +} + +sub report_fail +{ + my ($prompt,$limit,@queries)=@_; + print "$prompt: "; + if (!defined($limits{$limit})) + { + save_config_data($limit,safe_query(\@queries) ? "no" : "yes",$prompt); + } + print "$limits{$limit}\n"; + return $limits{$limit} ne "no"; +} + + +# Return true if one of the queries is ok + +sub report_one +{ + my ($prompt,$limit,$queries)=@_; + my ($query,$res,$result); + print "$prompt: "; + if (!defined($limits{$limit})) + { + $result="no"; + foreach $query (@$queries) + { + if (safe_query($query->[0])) + { + $result= $query->[1]; + last; + } + } + save_config_data($limit,$result,$prompt); + } + print "$limits{$limit}\n"; + return $limits{$limit} ne "no"; +} + + +# Execute query and save result as limit value. + +sub report_result +{ + my ($prompt,$limit,$query)=@_; + my($error); + print "$prompt: "; + if (!defined($limits{$limit})) + { + $error=safe_query_result($query,"1",2); + save_config_data($limit,$error ? "not supported" : $last_result,$prompt); + } + print "$limits{$limit}\n"; + return $limits{$limit} ne "no"; +} + +sub report_trans +{ + my ($prompt,$limit,$queries,$check,$clear)=@_; + print "$prompt: "; + if (!defined($limits{$limit})) + { + eval {undef($dbh->{AutoCommit})}; + if (!$@) + { + if (safe_query(\@$queries)) + { + $rc = $dbh->rollback; + if ($rc) { + $dbh->{AutoCommit} = 1; + if (safe_query_result($check,"","")) { + save_config_data($limit,"yes",$prompt); + } + safe_query($clear); + } else { + $dbh->{AutoCommit} = 1; + safe_query($clear); + save_config_data($limit,"error",$prompt); + } + } else { + save_config_data($limit,"error",$prompt); + } + $dbh->{AutoCommit} = 1; + } + else + { + save_config_data($limit,"no",$prompt); + } + safe_query($clear); + } + print "$limits{$limit}\n"; + return $limits{$limit} ne "no"; +} + + +sub check_and_report +{ + my ($prompt,$limit,$pre,$query,$post,$answer,$string_type,$skip_prompt, + $function)=@_; + my ($tmp); + $function=0 if (!defined($function)); + + print "$prompt: " if (!defined($skip_prompt)); + if (!defined($limits{$limit})) + { + $tmp=1-safe_query(\@$pre); + $tmp=safe_query_result($query,$answer,$string_type) if (!$tmp); + safe_query(\@$post); + if ($function == 3) # Report error as 'no'. + { + $function=0; + $tmp= -$tmp; + } + if ($function == 0 || + $tmp != 0 && $function == 1 || + $tmp == 0 && $function== 2) + { + save_config_data($limit, $tmp == 0 ? "yes" : $tmp == 1 ? "no" : "error", + $prompt); + print "$limits{$limit}\n"; + return $function == 0 ? $limits{$limit} eq "yes" : 0; + } + return 1; # more things to check + } + print "$limits{$limit}\n"; + return 0 if ($function); + return $limits{$limit} eq "yes"; +} + + +sub try_and_report +{ + my ($prompt,$limit,@tests)=@_; + my ($tmp,$test,$type); + + print "$prompt: "; + if (!defined($limits{$limit})) + { + $type="no"; # Not supported + foreach $test (@tests) + { + my $tmp_type= shift(@$test); + if (safe_query(\@$test)) + { + $type=$tmp_type; + goto outer; + } + } + outer: + save_config_data($limit, $type, $prompt); + } + print "$limits{$limit}\n"; + return $limits{$limit} ne "no"; +} + +# +# Just execute the query and check values; Returns 1 if ok +# + +sub execute_and_check +{ + my ($pre,$query,$post,$answer,$string_type)=@_; + my ($tmp); + + $tmp=safe_query(\@$pre); + $tmp=safe_query_result($query,$answer,$string_type) == 0 if ($tmp); + safe_query(\@$post); + return $tmp; +} + + +# returns 0 if ok, 1 if error, -1 if wrong answer +# Sets $last_result to value of query + +sub safe_query_result +{ + my ($query,$answer,$result_type)=@_; + my ($sth,$row,$result,$retry); + undef($last_result); + + printf "\nquery3: %-80.80s\n",$query if ($opt_log_all_queries); + print LOG "$query;\n" if ($opt_log); + for ($retry=0; $retry < $retry_limit ; $retry++) + { + if (!($sth=$dbh->prepare($query))) + { + print_query($query); + if ($server->abort_if_fatal_error()) + { + check_connect(); # Check that server is still up + next; # Retry again + } + check_connect(); # Check that server is still up + return 1; + } + if (!$sth->execute) + { + print_query($query); + if ($server->abort_if_fatal_error()) + { + check_connect(); # Check that server is still up + next; # Retry again + } + check_connect(); # Check that server is still up + return 1; + } + else + { + last; + } + } + if (!($row=$sth->fetchrow_arrayref)) + { + print "\nquery: $query didn't return any result\n" if ($opt_debug); + $sth->finish; + return ($result_type == 8) ? 0 : 1; + } + if(result_type == 8) { + $sth->finish; + return 1; + } + $result=0; # Ok + $last_result= $row->[0]; # Save for report_result; + if ($result_type == 0) # Compare numbers + { + $row->[0] =~ s/,/,/; # Fix if ',' is used instead of '.' + if ($row->[0] != $answer && (abs($row->[0]- $answer)/ + (abs($row->[0]) + abs($answer))) > 0.01) + { + $result=-1; + } + } + elsif ($result_type == 1) # Compare where end space may differ + { + $row->[0] =~ s/\s+$//; + $result=-1 if ($row->[0] ne $answer); + } + elsif ($result_type == 3) # This should be a exact match + { + $result= -1 if ($row->[0] ne $answer); + } + elsif ($result_type == 4) # If results should be NULL + { + $result= -1 if (defined($row->[0])); + } + elsif ($result_type == 5) # Result should have given prefix + { + $result= -1 if (length($row->[0]) < length($answer) && + substring($row->[0],1,length($answer)) ne $answer); + } + elsif ($result_type == 6) # Exact match but ignore errors + { + $result= 1 if ($row->[0] ne $answer); + } + elsif ($result_type == 7) # Compare against array of numbers + { + if ($row->[0] != $answer->[0]) + { + $result= -1; + } + else + { + my ($value); + shift @$answer; + while (($row=$sth->fetchrow_arrayref)) + { + $value=shift(@$answer); + if (!defined($value)) + { + print "\nquery: $query returned to many results\n" + if ($opt_debug); + $result= 1; + last; + } + if ($row->[0] != $value) + { + $result= -1; + last; + } + } + if ($#$answer != -1) + { + print "\nquery: $query returned too few results\n" + if ($opt_debug); + $result= 1; + } + } + } + $sth->finish; + print "\nquery: '$query' returned '$row->[0]' instead of '$answer'\n" + if ($opt_debug && $result && $result_type != 7); + return $result; +} + +# +# Find limit using binary search. This is a weighed binary search that +# will prefere lower limits to get the server to crash as few times as possible +# + +sub find_limit() +{ + my ($prompt,$limit,$query)=@_; + my ($first,$end,$i,$tmp); + print "$prompt: "; + if (defined($end=$limits{$limit})) + { + print "$end (cache)\n"; + return $end; + } + if (defined($query->{'init'}) && !defined($end=$limits{'restart'}{'tohigh'})) + { + if (!safe_query($query->{'init'})) + { + $query->cleanup(); + return "error"; + } + } + + if (!limit_query($query,1)) # This must work + { + print "\nMaybe fatal error: Can't check '$prompt' for limit=1\nerror: $last_error\n"; + return "error"; + } + + $first=0; + $first=$limits{'restart'}{'low'} if ($limits{'restart'}{'low'}); + + if (defined($end=$limits{'restart'}{'tohigh'})) + { + $end--; + print "\nRestarting this with low limit: $first and high limit: $end\n"; + delete $limits{'restart'}; + $i=$first+int(($end-$first+4)/5); # Prefere lower on errors + } + else + { + $end= $query->max_limit(); + $i=int(($end+$first)/2); + } + + unless(limit_query($query,0+$end)) { + while ($first < $end) + { + print "." if ($opt_debug); + save_config_data("restart",$i,"") if ($opt_restart); + if (limit_query($query,$i)) + { + $first=$i; + $i=$first+int(($end-$first+1)/2); # to be a bit faster to go up + } + else + { + $end=$i-1; + $i=$first+int(($end-$first+4)/5); # Prefere lower on errors + } + } + } + $end+=$query->{'offset'} if ($end && defined($query->{'offset'})); + if ($end >= $query->{'max_limit'} && + substr($query->{'max_limit'},0,1) eq '+') + { + $end= $query->{'max_limit'}; + } + print "$end\n"; + save_config_data($limit,$end,$prompt); + delete $limits{'restart'}; + return $end; +} + +# +# Check that the query works! +# + +sub assert +{ + my($query)=@_; + + if (!safe_query($query)) + { + $query=join("; ",@$query) if (ref($query) eq "ARRAY"); + print "\nFatal error:\nquery: '$query'\nerror: $DBI::errstr\n"; + exit 1; + } +} + + +sub read_config_data +{ + my ($key,$limit,$prompt); + if (-e $opt_config_file) + { + open(CONFIG_FILE,"+<$opt_config_file") || + die "Can't open configure file $opt_config_file\n"; + print "Reading old values from cache: $opt_config_file\n"; + } + else + { + open(CONFIG_FILE,"+>>$opt_config_file") || + die "Can't create configure file $opt_config_file: $!\n"; + } + select CONFIG_FILE; + $|=1; + select STDOUT; + while (<CONFIG_FILE>) + { + chomp; + if (/^(\S+)=([^\#]*[^\#\s])\s*(\# .*)*$/) + { + $key=$1; $limit=$2 ; $prompt=$3; + if (!$opt_quick || $limit =~ /\d/ || $key =~ /crash_me/) + { + if ($key !~ /restart/i) + { + $limits{$key}=$limit; + $prompts{$key}=length($prompt) ? substr($prompt,2) : ""; + delete $limits{'restart'}; + } + else + { + $limit_changed=1; + if ($limit > $limits{'restart'}{'tohigh'}) + { + $limits{'restart'}{'low'} = $limits{'restart'}{'tohigh'}; + } + $limits{'restart'}{'tohigh'} = $limit; + } + } + } + elsif (!/^\s*$/ && !/^\#/) + { + die "Wrong config row: $_\n"; + } + } +} + + +sub save_config_data +{ + my ($key,$limit,$prompt)=@_; + $prompts{$key}=$prompt; + return if (defined($limits{$key}) && $limits{$key} eq $limit); + if (!defined($limit) || $limit eq "") + { + die "Undefined limit for $key\n"; + } + print CONFIG_FILE "$key=$limit\t# $prompt\n"; + $limits{$key}=$limit; + $limit_changed=1; + if (($opt_restart && $limits{'operating_system'} =~ /windows/i) || + ($limits{'operating_system'} =~ /NT/)) + { + # If perl crashes in windows, everything is lost (Wonder why? :) + close CONFIG_FILE; + open(CONFIG_FILE,"+>>$opt_config_file") || + die "Can't reopen configure file $opt_config_file: $!\n"; + } +} + + +sub save_all_config_data +{ + my ($key,$tmp); + close CONFIG_FILE; + return if (!$limit_changed); + open(CONFIG_FILE,">$opt_config_file") || + die "Can't create configure file $opt_config_file: $!\n"; + select CONFIG_FILE; + $|=1; + select STDOUT; + delete $limits{'restart'}; + + print CONFIG_FILE "#This file is automaticly generated by crash-me $version\n\n"; + foreach $key (sort keys %limits) + { + $tmp="$key=$limits{$key}"; + print CONFIG_FILE $tmp . ("\t" x (int((32-min(length($tmp),32)+7)/8)+1)) . + "# $prompts{$key}\n"; + } + close CONFIG_FILE; +} + + +sub check_repeat +{ + my ($sth,$limit)=@_; + my ($row); + + return 0 if (!($row=$sth->fetchrow_arrayref)); + return (defined($row->[0]) && ('a' x $limit) eq $row->[0]) ? 1 : 0; +} + + +sub min +{ + my($min)=$_[0]; + my($i); + for ($i=1 ; $i <= $#_; $i++) + { + $min=$_[$i] if ($min > $_[$i]); + } + return $min; +} + +sub sql_concat +{ + my ($a,$b)= @_; + return "$a || $b" if ($limits{'func_sql_concat_as_||'} eq 'yes'); + return "concat($a,$b)" if ($limits{'func_odbc_concat'} eq 'yes'); + return "$a + $b" if ($limits{'func_extra_concat_as_+'} eq 'yes'); + return undef; +} + +# +# Returns a list of statements to create a table in a portable manner +# but still utilizing features in the databases. +# + +sub create_table +{ + my($table_name,$fields,$index) = @_; + my($query,$nr,$parts,@queries,@index); + + $query="create table $table_name ("; + $nr=0; + foreach $field (@$fields) + { + $query.= $field . ','; + } + foreach $index (@$index) + { + $index =~ /\(([^\(]*)\)$/i; + $parts=$1; + if ($index =~ /^primary key/) + { + if ($limits{'primary_key_in_create'} eq 'yes') + { + $query.= $index . ','; + } + else + { + push(@queries, + "create unique index ${table_name}_prim on $table_name ($parts)"); + } + } + elsif ($index =~ /^unique/) + { + if ($limits{'unique_in_create'} eq 'yes') + { + $query.= "unique ($parts),"; + } + else + { + $nr++; + push(@queries, + "create unique index ${table_name}_$nr on $table_name ($parts)"); + + } + } + else + { + if ($limits{'index_in_create'} eq 'yes') + { + $query.= "index ($parts),"; + } + else + { + $nr++; + push(@queries, + "create index ${table_name}_$nr on $table_name ($1)"); + } + } + } + chop($query); + $query.= ')'; + unshift(@queries,$query); + return @queries; +} + + +# +# This is used by some query packages to change: +# %d -> limit +# %s -> 'a' x limit +# %v -> "1,1,1,1,1" where there are 'limit' number of ones +# %f -> q1,q2,q3.... +# %F -> q1 integer,q2 integer,q3 integer.... + +sub fix_query +{ + my ($query,$limit)=@_; + my ($repeat,$i); + + return $query if !(defined($query)); + $query =~ s/%d/$limit/g; + if ($query =~ /%s/) + { + $repeat= 'a' x $limit; + $query =~ s/%s/$repeat/g; + } + if ($query =~ /%v/) + { + $repeat= '1,' x $limit; + chop($repeat); + $query =~ s/%v/$repeat/g; + } + if ($query =~ /%f/) + { + $repeat=""; + for ($i=1 ; $i <= $limit ; $i++) + { + $repeat.="q$i,"; + } + chop($repeat); + $query =~ s/%f/$repeat/g; + } + if ($query =~ /%F/) + { + $repeat=""; + for ($i=1 ; $i <= $limit ; $i++) + { + $repeat.="q$i integer,"; + } + chop($repeat); + $query =~ s/%F/$repeat/g; + } + return $query; +} + + +# +# Different query packages +# + +package query_repeat; + +sub new +{ + my ($type,$init,$query,$add1,$add_mid,$add,$add_end,$end_query,$cleanup, + $max_limit, $check, $offset)=@_; + my $self={}; + if (defined($init) && $#$init != -1) + { + $self->{'init'}=$init; + } + $self->{'query'}=$query; + $self->{'add1'}=$add1; + $self->{'add_mid'}=$add_mid; + $self->{'add'}=$add; + $self->{'add_end'}=$add_end; + $self->{'end_query'}=$end_query; + $self->{'cleanup'}=$cleanup; + $self->{'max_limit'}=(defined($max_limit) ? $max_limit : $main::query_size); + $self->{'check'}=$check; + $self->{'offset'}=$offset; + $self->{'printf'}= ($add =~ /%d/); + bless $self; +} + +sub query +{ + my ($self,$limit)=@_; + if (!$self->{'printf'}) + { + return $self->{'query'} . ($self->{'add'} x $limit) . + ($self->{'add_end'} x $limit) . $self->{'end_query'}; + } + my ($tmp,$tmp2,$tmp3,$i); + $tmp=$self->{'query'}; + if ($self->{'add1'}) + { + for ($i=0; $i < $limit ; $i++) + { + $tmp3 = $self->{'add1'}; + $tmp3 =~ s/%d/$i/g; + $tmp .= $tmp3; + } + } + $tmp .= " ".$self->{'add_mid'}; + if ($self->{'add'}) + { + for ($i=0; $i < $limit ; $i++) + { + $tmp2 = $self->{'add'}; + $tmp2 =~ s/%d/$i/g; + $tmp .= $tmp2; + } + } + return ($tmp . + ($self->{'add_end'} x $limit) . $self->{'end_query'}); +} + +sub max_limit +{ + my ($self)=@_; + my $tmp; + $tmp=int(($main::limits{"query_size"}-length($self->{'query'}) + -length($self->{'add_mid'})-length($self->{'end_query'}))/ + (length($self->{'add1'})+ + length($self->{'add'})+length($self->{'add_end'}))); + return main::min($self->{'max_limit'},$tmp); +} + + +sub cleanup +{ + my ($self)=@_; + my($tmp,$statement); + $tmp=$self->{'cleanup'}; + foreach $statement (@$tmp) + { + main::safe_query($statement) if (defined($statement) && length($statement)); + } +} + +sub check +{ + my ($self,$sth)=@_; + my $check=$self->{'check'}; + return &$check($sth,$self->{'limit'}) if (defined($check)); + return 1; +} + +sub check_query +{ + return undef; +} + + +package query_num; + +sub new +{ + my ($type,$query,$end_query,$cleanup,$max_limit,$check)=@_; + my $self={}; + $self->{'query'}=$query; + $self->{'end_query'}=$end_query; + $self->{'cleanup'}=$cleanup; + $self->{'max_limit'}=$max_limit; + $self->{'check'}=$check; + bless $self; +} + + +sub query +{ + my ($self,$i)=@_; + $self->{'limit'}=$i; + return "$self->{'query'}$i$self->{'end_query'}"; +} + +sub max_limit +{ + my ($self)=@_; + return $self->{'max_limit'}; +} + +sub cleanup +{ + my ($self)=@_; + my($statement); + foreach $statement ($self->{'$cleanup'}) + { + main::safe_query($statement) if (defined($statement) && length($statement)); + } +} + + +sub check +{ + my ($self,$sth)=@_; + my $check=$self->{'check'}; + return &$check($sth,$self->{'limit'}) if (defined($check)); + return 1; +} + +sub check_query +{ + return undef; +} + +# +# This package is used when testing CREATE TABLE! +# + +package query_table; + +sub new +{ + my ($type,$query, $add, $end_query, $extra_init, $safe_query, $check, + $cleanup, $max_limit, $offset)=@_; + my $self={}; + $self->{'query'}=$query; + $self->{'add'}=$add; + $self->{'end_query'}=$end_query; + $self->{'extra_init'}=$extra_init; + $self->{'safe_query'}=$safe_query; + $self->{'check'}=$check; + $self->{'cleanup'}=$cleanup; + $self->{'max_limit'}=$max_limit; + $self->{'offset'}=$offset; + bless $self; +} + + +sub query +{ + my ($self,$limit)=@_; + $self->{'limit'}=$limit; + $self->cleanup(); # Drop table before create + + my ($tmp,$tmp2,$i,$query,@res); + $tmp =$self->{'query'}; + $tmp =~ s/%d/$limit/g; + for ($i=1; $i <= $limit ; $i++) + { + $tmp2 = $self->{'add'}; + $tmp2 =~ s/%d/$i/g; + $tmp .= $tmp2; + } + push(@res,$tmp . $self->{'end_query'}); + $tmp=$self->{'extra_init'}; + foreach $query (@$tmp) + { + push(@res,main::fix_query($query,$limit)); + } + return \@res; +} + + +sub max_limit +{ + my ($self)=@_; + return $self->{'max_limit'}; +} + + +sub check_query +{ + my ($self)=@_; + return main::fix_query($self->{'safe_query'},$self->{'limit'}); +} + +sub check +{ + my ($self,$sth)=@_; + my $check=$self->{'check'}; + return 0 if (!($row=$sth->fetchrow_arrayref)); + if (defined($check)) + { + return (defined($row->[0]) && + $row->[0] eq main::fix_query($check,$self->{'limit'})) ? 1 : 0; + } + return 1; +} + + +# Remove table before and after create table query + +sub cleanup() +{ + my ($self)=@_; + main::safe_query(main::fix_query($self->{'cleanup'},$self->{'limit'})); +} + +# +# Package to do many queries with %d, and %s substitution +# + +package query_many; + +sub new +{ + my ($type,$query,$safe_query,$check_result,$cleanup,$max_limit,$offset, + $safe_cleanup)=@_; + my $self={}; + $self->{'query'}=$query; + $self->{'safe_query'}=$safe_query; + $self->{'check'}=$check_result; + $self->{'cleanup'}=$cleanup; + $self->{'max_limit'}=$max_limit; + $self->{'offset'}=$offset; + $self->{'safe_cleanup'}=$safe_cleanup; + bless $self; +} + + +sub query +{ + my ($self,$limit)=@_; + my ($queries,$query,@res); + $self->{'limit'}=$limit; + $self->cleanup() if (defined($self->{'safe_cleanup'})); + $queries=$self->{'query'}; + foreach $query (@$queries) + { + push(@res,main::fix_query($query,$limit)); + } + return \@res; +} + +sub check_query +{ + my ($self)=@_; + return main::fix_query($self->{'safe_query'},$self->{'limit'}); +} + +sub cleanup +{ + my ($self)=@_; + my($tmp,$statement); + return if (!defined($self->{'cleanup'})); + $tmp=$self->{'cleanup'}; + foreach $statement (@$tmp) + { + if (defined($statement) && length($statement)) + { + main::safe_query(main::fix_query($statement,$self->{'limit'})); + } + } +} + + +sub check +{ + my ($self,$sth)=@_; + my ($check,$row); + return 0 if (!($row=$sth->fetchrow_arrayref)); + $check=$self->{'check'}; + if (defined($check)) + { + return (defined($row->[0]) && + $row->[0] eq main::fix_query($check,$self->{'limit'})) ? 1 : 0; + } + return 1; +} + +sub max_limit +{ + my ($self)=@_; + return $self->{'max_limit'}; +} + +# +# Used to find max supported row length +# + +package query_row_length; + +sub new +{ + my ($type,$create,$null,$drop,$max_limit)=@_; + my $self={}; + $self->{'table_name'}=$create; + $self->{'null'}=$null; + $self->{'cleanup'}=$drop; + $self->{'max_limit'}=$max_limit; + bless $self; +} + + +sub query +{ + my ($self,$limit)=@_; + my ($res,$values,$size,$length,$i); + $self->{'limit'}=$limit; + + $res=""; + $size=main::min($main::limits{'max_char_size'},255); + $size = 255 if (!$size); # Safety + for ($length=$i=0; $length + $size <= $limit ; $length+=$size, $i++) + { + $res.= "q$i char($size) $self->{'null'},"; + $values.="'" . ('a' x $size) . "',"; + } + if ($length < $limit) + { + $size=$limit-$length; + $res.= "q$i char($size) $self->{'null'},"; + $values.="'" . ('a' x $size) . "',"; + } + chop($res); + chop($values); + return ["create table " . $self->{'table_name'} . " ($res)", + "insert into " . $self->{'table_name'} . " values ($values)"]; +} + +sub max_limit +{ + my ($self)=@_; + return $self->{'max_limit'}; +} + +sub cleanup +{ + my ($self)=@_; + main::safe_query($self->{'cleanup'}); +} + + +sub check +{ + return 1; +} + +sub check_query +{ + return undef; +} + +# +# Used to find max supported index length +# + +package query_index_length; + +sub new +{ + my ($type,$create,$drop,$max_limit)=@_; + my $self={}; + $self->{'create'}=$create; + $self->{'cleanup'}=$drop; + $self->{'max_limit'}=$max_limit; + bless $self; +} + + +sub query +{ + my ($self,$limit)=@_; + my ($res,$size,$length,$i,$parts,$values); + $self->{'limit'}=$limit; + + $res=$parts=$values=""; + $size=main::min($main::limits{'max_index_part_length'},$main::limits{'max_char_size'}); + $size=1 if ($size == 0); # Avoid infinite loop errors + for ($length=$i=0; $length + $size <= $limit ; $length+=$size, $i++) + { + $res.= "q$i char($size) not null,"; + $parts.= "q$i,"; + $values.= "'" . ('a' x $size) . "',"; + } + if ($length < $limit) + { + $size=$limit-$length; + $res.= "q$i char($size) not null,"; + $parts.="q$i,"; + $values.= "'" . ('a' x $size) . "',"; + } + chop($parts); + chop($res); + chop($values); + if ($main::limits{'unique_in_create'} eq 'yes') + { + return [$self->{'create'} . "($res,unique ($parts))", + "insert into crash_q values($values)"]; + } + return [$self->{'create'} . "($res)", + "create index crash_q_index on crash_q ($parts)", + "insert into crash_q values($values)"]; +} + +sub max_limit +{ + my ($self)=@_; + return $self->{'max_limit'}; +} + +sub cleanup +{ + my ($self)=@_; + main::safe_query($self->{'cleanup'}); +} + + +sub check +{ + return 1; +} + +sub check_query +{ + return undef; +} + + +### TODO: +# OID test instead of / in addition to _rowid |