diff options
-rw-r--r-- | BitKeeper/etc/gone | 321 | ||||
-rw-r--r-- | BitKeeper/etc/logging_ok | 1 | ||||
-rw-r--r-- | Docs/manual.texi | 4 | ||||
-rwxr-xr-x | tests/mail_to_db.pl | 507 |
4 files changed, 536 insertions, 297 deletions
diff --git a/BitKeeper/etc/gone b/BitKeeper/etc/gone index 78bd1d3679e..53a9e725441 100644 --- a/BitKeeper/etc/gone +++ b/BitKeeper/etc/gone @@ -1,261 +1,330 @@ -mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/README|20001009213643|10190|f9fd36f3c3711305 -mwagner@evoq.home.mwagner.org|mysql-test/share/README|20001009213643|10987|6cd25db633f30de5 -mwagner@evoq.home.mwagner.org|mysql-test/var/lib/README|20001009213643|15351|3b652c0f321e1940 -mwagner@evoq.home.mwagner.org|mysql-test/var/log/README|20001009213643|16203|df5481fdbe6e5b6e -mwagner@evoq.home.mwagner.org|mysql-test/var/run/README|20001009213643|17062|acb305e4c2ed5990 -mwagner@evoq.home.mwagner.org|mysql-test/var/tmp/README|20001009213643|17904|b32d866bfd50e72e -sasha@mysql.sashanet.com|mysql-test/README.gcov|20001012045950|28177|5a6da067a30780ce -sasha@mysql.sashanet.com|mysql-test/t/include/master-slave.inc|20001118030458|01636|556fd038c3a3d54 -BK|mit-pthreads/config.flags|19700101030959|00594|dcec5296ef811cd6 -BK|myisam/mi_test_all|19700101030959|01666|ae7a366c45527b4e -BK|mysys/mf_reccache.c|19700101030959|01419|f8191c8485e158fe -BK|sql-bench/Results-linux/ATIS-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02443|defb62af5958fcac -BK|sql-bench/Results-linux/Attic/ATIS-mysql_fast-Linux_2.0.33_i586|19700101030959|02385|91f98358bd93d33 -BK|sql-bench/Results-linux/Attic/RUN-mysql-Linux_pgcc|19700101030959|02390|ba188059ad9609da -BK|sql-bench/Results-linux/Attic/RUN-mysql_fast-Linux_2.0.33_i586|19700101030959|02392|5de3839bccd7800d -BK|sql-bench/Results-linux/Attic/RUN-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02393|621fa27b9d4bd16f -BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_2.0.33_i586|19700101030959|02395|f44520d03e8ce00 -BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_dynamic|19700101030959|02396|209fe96b7af30953 -BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_static|19700101030959|02398|1e79f0a78656a783 -BK|sql-bench/Results-linux/Attic/connect-mysql-Linux_static|19700101030959|02405|8f0210ab126e2d52 -BK|sql-bench/Results-linux/Attic/connect-mysql_fast-Linux_2.0.33_i586|19700101030959|02406|bea04f29553d0282 -BK|sql-bench/Results-linux/Attic/connect-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02407|7e9bb70fd7b37f42 -BK|sql-bench/Results-linux/Attic/create-mysql-Linux_pgcc|19700101030959|02411|1818558b2313c5c -BK|sql-bench/Results-linux/Attic/create-mysql-Linux_static|19700101030959|02412|41d31c3aed3bac32 -BK|sql-bench/Results-linux/Attic/insert-mysql-Linux_dynamic|19700101030959|02417|11d98836dff348d4 -BK|sql-bench/Results-linux/Attic/select-mysql-Linux_dynamic|19700101030959|02424|1a6ecfc73d4c9c7c -BK|sql-bench/Results-linux/Attic/select-mysql-Linux_pgcc|19700101030959|02425|74dcac67613f7019 -BK|sql-bench/Results-linux/Attic/select-mysql-Linux_static|19700101030959|02426|d05271375e18476f -BK|sql-bench/Results-linux/Attic/select-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02428|60fc5c8eaa45e911 -BK|sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_static|19700101030959|02433|a2c543aded6c8f40 -BK|sql-bench/Results-linux/Attic/wisconsin-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02435|28a4840ebd5dd015 -BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.12_20smp_i686|19700101030959|02328|da28ced3e0aac09c -BK|sql-bench/Results-linux/RUN-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02444|16694c5927b7600c -BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.12_20smp_i686|19700101030959|02330|67ae4e91b5f4eabd -BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02331|c85eb85ba45dd748 -BK|sql-bench/Results-linux/alter-table-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02445|b062db76cf6df5d2 -BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.12_20smp_i686|19700101030959|02336|beedcd769a903c19 -BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02337|74ec2bf5f55b81f -BK|sql-bench/Results-linux/create-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02339|771b40d3280fe8ad -BK|sql-bench/Results-linux/create-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02448|c46d6c283c0e34ae -BK|sql-bench/Results-linux/insert-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02449|3245ba5633a18e8 -BK|sql-bench/Results-linux/select-mysql-Linux_2.2.12_20smp_i686|19700101030959|02344|3b64aff0dfddfff4 -BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02347|ad7babd436f26841 -BK|sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686|19700101030959|02025|3fa4d167cceff7e8 -BK|sql-bench/Results/ATIS-mysql-SunOS_5.5.1_sun4u|19700101030959|02031|dfb4c5f6b6db3b49 -BK|sql-bench/Results/ATIS-mysql-SunOS_5.6_sun4m|19700101030959|02032|62028e0375b3b8b -BK|sql-bench/Results/ATIS-mysql-SunOS_5.7_sun4u|19700101030959|02034|be0d9789776c5ed7 -BK|sql-bench/Results/ATIS-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02304|cbe120d860296d2f -BK|sql-bench/Results/ATIS-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02027|a74e7b82d3908fa9 -BK|sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.12_20smp_i686|19700101030959|02167|1e29b2a67768c48e -BK|sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02177|ad0b2dd9635e2c5 -BK|sql-bench/Results/Attic/ATIS-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02178|f2a315ff3020d8af -BK|sql-bench/Results/Attic/RUN-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02181|b57a8fe3ec3c61fe -BK|sql-bench/Results/Attic/RUN-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02183|5621a2bcc51f0046 -BK|sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02186|5fd6ded14590fbb8 -BK|sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.12_20smp_i686|19700101030959|02169|4d534c0d139e6e84 -BK|sql-bench/Results/Attic/alter-table-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02189|4250bb2da83647a2 -BK|sql-bench/Results/Attic/alter-table-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02190|b17e2aaa38b55eb2 -BK|sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02191|8f54c66cf5c54c9b -BK|sql-bench/Results/Attic/big-tables-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02193|87bd5cad328f9a56 -BK|sql-bench/Results/Attic/big-tables-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02195|f4e8992432a41520 -BK|sql-bench/Results/Attic/connect-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02196|e7d05143faaaed14 -BK|sql-bench/Results/Attic/connect-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02197|ed24e73925a9a15f -BK|sql-bench/Results/Attic/create-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02202|567131bf739028de -BK|sql-bench/Results/Attic/create-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02204|c6cd719f446aef2d -BK|sql-bench/Results/Attic/create-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02205|447e91cb1cbd0200 -BK|sql-bench/Results/Attic/insert-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02208|6c23fbad4756fc5a -BK|sql-bench/Results/Attic/select-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02211|8945aaf0216c6faa -BK|sql-bench/Results/Attic/select-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02212|4df8dad5f928896f -BK|sql-bench/Results/Attic/select-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02214|2b25f0443d476a6a -BK|sql-bench/Results/Attic/select-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02215|72a5128156c0045e -BK|sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.12_20smp_i686|19700101030959|02175|3b972af9467dcd06 -BK|sql-bench/Results/Attic/wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02218|b4e89cdac0620cba -BK|sql-bench/Results/Attic/wisconsin-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02220|db31ec971b4c5051 -BK|sql-bench/Results/RUN-mysql-Linux_2.2.10_i686|19700101030959|02041|712f52be5d195406 -BK|sql-bench/Results/RUN-mysql-Linux_2.2.14_i686_xeon|19700101030959|02055|17854e751e1d9d1d -BK|sql-bench/Results/RUN-mysql-SunOS_5.5.1_sun4u|19700101030959|02058|afbba182428e20df -BK|sql-bench/Results/RUN-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02030|413ab3b8a99e61e9 -BK|sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02046|a910a9b3fde431e1 -BK|sql-bench/Results/alter-table-mysql-Linux_2.2.14_i686_xeon|19700101030959|02057|64cc4b874cd6fabf -BK|sql-bench/Results/alter-table-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02316|1390155aad5b6e86 -BK|sql-bench/Results/alter-table-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02317|9090bebb62ef164b -BK|sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02233|b8721431b356177 -BK|sql-bench/Results/big-tables-mysql-Linux_2.2.10_i686|19700101030959|02109|99daa1c5370d077d -BK|sql-bench/Results/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02315|2804ec3c95be436a -BK|sql-bench/Results/big-tables-mysql-SunOS_5.5.1_sun4u|19700101030959|02115|7d7b6c0bf58b9b79 -BK|sql-bench/Results/big-tables-mysql-SunOS_5.6_sun4m|19700101030959|02116|f351a7f3e1e2257e -BK|sql-bench/Results/big-tables-mysql-SunOS_5.7_sun4u|19700101030959|02118|ebc379b231312bbe -BK|sql-bench/Results/big-tables-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02318|c5eabcb89ceac698 -BK|sql-bench/Results/big-tables-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02319|856d503725373684 -BK|sql-bench/Results/connect-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02084|e7e2959b7387251f -BK|sql-bench/Results/connect-mysql-Linux_2.2.14_i686_xeon|19700101030959|02071|ea19dc3ec55b3618 -BK|sql-bench/Results/connect-mysql-SunOS_5.7_sun4u|19700101030959|02145|c67beb9e9d2cf32e -BK|sql-bench/Results/connect-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02320|ce69cc65bc827b5c -BK|sql-bench/Results/connect-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02066|f801e08429a4f7c6 -BK|sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02086|1d95d36fd717990 -BK|sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02244|f6ab4d00b0ae09c1 -BK|sql-bench/Results/create-mysql-Linux_2.2.10_i686|19700101030959|02161|9e7822f66df6aa76 -BK|sql-bench/Results/create-mysql-SunOS_5.6_sun4m|19700101030959|02221|9233114ae6f8c5f -BK|sql-bench/Results/create-mysql-SunOS_5.7_sun4u|19700101030959|02223|7ee13bfcafeab498 -BK|sql-bench/Results/create-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02321|e985e71d552ff09e -BK|sql-bench/Results/create-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02099|483dcf223d5abf81 -BK|sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02112|a140e5e229a53b7b -BK|sql-bench/Results/insert-mysql-Linux_2.2.10_i686|19700101030959|02242|763edf9aec633f51 -BK|sql-bench/Results/insert-mysql-SunOS_5.6_sun4m|19700101030959|02248|3402d060ae20e19 -BK|sql-bench/Results/insert-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02322|ed252140ff399961 -BK|sql-bench/Results/select-mysql-Linux_2.2.10_i686|19700101030959|02268|a2e264d777b787d -BK|sql-bench/Results/select-mysql-Linux_2.2.14_i686_xeon|19700101030959|02152|ead3f11b46ac626f -BK|sql-bench/Results/select-mysql-SunOS_5.6_sun4m|19700101030959|02274|4da215905bce988d -BK|sql-bench/Results/select-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02323|e8c0871a668a610d -BK|sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02261|188d6b5b72d8e0a -BK|sql-bench/Results/wisconsin-mysql-Linux_2.2.10_i686|19700101030959|02288|301a82b12a84922b -BK|sql-bench/Results/wisconsin-mysql-Linux_2.2.14_i686_xeon|19700101030959|02154|7525b23938631801 -BK|sql-bench/Results/wisconsin-mysql-SunOS_5.6_sun4m|19700101030959|02298|ec61b14072715dc8 -BK|sql-bench/Results/wisconsin-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02324|ec075a89dbdbbe6a -BK|sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02270|ef201ca14f635c57 -BK|sql/share/romanian/errmsg.sys|19700101030959|01869|9d8282efb437e8cc -monty@donna.mysql.com|myisam/mi_debug.c|20000829092809|23459|873a6e7d6ff8297c -mwagner@evoq.home.mwagner.org|mysql-test/mybin/start-mysqld|20001016055648|54840|9c8f21a7ab97793a -mwagner@evoq.home.mwagner.org|mysql-test/r/3.22/README|20001009213643|04628|2bddc2706d0834d0 -mwagner@evoq.home.mwagner.org|mysql-test/t/3.22/README|20001009213643|13611|b8e00a1b57b91f69 -sasha@mysql.sashanet.com|BitKeeper/etc/logging_ok|20000801000905|12967|5b7d847a2158554 -sasha@mysql.sashanet.com|mysql-test/README|20001010001022|12739|108667adaeabe3f5 -sasha@mysql.sashanet.com|mysql-test/std_data/select-key.master|20001009234916|07315|e6b83af25df0ce5 -sasha@mysql.sashanet.com|mysql-test/t/3.23/select-key.test|20001009234859|21197|5d785cef5c02c070 -sasha@work.mysql.com|BitKeeper/etc/logging_ok|20001214015456|29919|32b6551b8288c2fa BK|Build-tools/Do-compile-all|19700101030959|00060|f119832ce3aca102 BK|client/mysql-test.c|19700101030959|00560|809ade45d58e28ab BK|config.h.in|19700101030959|00050|aecae693cca472c BK|include/my_global.h|19700101030959|00105|f657f708961a4632 BK|libmysql/acconfig.h|19700101030959|02604|7b620dbd69ea6074 +BK|mit-pthreads/config.flags|19700101030959|00594|dcec5296ef811cd6 BK|myisam/common_words|19700101030959|01665|13c10ef32aaa7537 +BK|myisam/mi_test_all|19700101030959|01666|ae7a366c45527b4e +BK|mysys/mf_reccache.c|19700101030959|01419|f8191c8485e158fe BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.2.12_20smp_i686|19700101030959|02437|28211fb9f0e6ab0e BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02438|136bdd9fd1a2cd14 +BK|sql-bench/Results-linux/ATIS-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02443|defb62af5958fcac BK|sql-bench/Results-linux/Attic/ATIS-mysql-Linux_2.0.33_i586|19700101030959|02381|ef64fcf54c271212 BK|sql-bench/Results-linux/Attic/ATIS-mysql-Linux_dynamic|19700101030959|02382|ffa77bdc262ac10f BK|sql-bench/Results-linux/Attic/ATIS-mysql-Linux_pgcc|19700101030959|02383|e90bc846c037bc40 BK|sql-bench/Results-linux/Attic/ATIS-mysql-Linux_static|19700101030959|02384|f82ec48b35d970df +BK|sql-bench/Results-linux/Attic/ATIS-mysql_fast-Linux_2.0.33_i586|19700101030959|02385|91f98358bd93d33 BK|sql-bench/Results-linux/Attic/ATIS-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02386|7b460696d0bf1072 BK|sql-bench/Results-linux/Attic/ATIS-mysql_new-Linux_2.0.33_i586|19700101030959|02387|cee42754880a28a2 BK|sql-bench/Results-linux/Attic/RUN-mysql-Linux_2.0.33_i586|19700101030959|02388|16978dc37b29c312 BK|sql-bench/Results-linux/Attic/RUN-mysql-Linux_dynamic|19700101030959|02389|bbf0c571b0e7b524 +BK|sql-bench/Results-linux/Attic/RUN-mysql-Linux_pgcc|19700101030959|02390|ba188059ad9609da BK|sql-bench/Results-linux/Attic/RUN-mysql-Linux_static|19700101030959|02391|42aef77ab6fdc428 +BK|sql-bench/Results-linux/Attic/RUN-mysql_fast-Linux_2.0.33_i586|19700101030959|02392|5de3839bccd7800d +BK|sql-bench/Results-linux/Attic/RUN-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02393|621fa27b9d4bd16f BK|sql-bench/Results-linux/Attic/RUN-mysql_new-Linux_2.0.33_i586|19700101030959|02394|dd52a2007c1645df +BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_2.0.33_i586|19700101030959|02395|f44520d03e8ce00 +BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_dynamic|19700101030959|02396|209fe96b7af30953 BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_pgcc|19700101030959|02397|fc4a80312fcc2195 +BK|sql-bench/Results-linux/Attic/big-tables-mysql-Linux_static|19700101030959|02398|1e79f0a78656a783 BK|sql-bench/Results-linux/Attic/big-tables-mysql_fast-Linux_2.0.33_i586|19700101030959|02399|55512b5885a90d87 BK|sql-bench/Results-linux/Attic/big-tables-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02400|6b3250f133c85fe1 BK|sql-bench/Results-linux/Attic/big-tables-mysql_new-Linux_2.0.33_i586|19700101030959|02401|a69502b3c5c80313 BK|sql-bench/Results-linux/Attic/connect-mysql-Linux_2.0.33_i586|19700101030959|02402|56370edebf4dca78 BK|sql-bench/Results-linux/Attic/connect-mysql-Linux_dynamic|19700101030959|02403|48fe1a7c5d808828 BK|sql-bench/Results-linux/Attic/connect-mysql-Linux_pgcc|19700101030959|02404|4db8805b840040c2 +BK|sql-bench/Results-linux/Attic/connect-mysql-Linux_static|19700101030959|02405|8f0210ab126e2d52 +BK|sql-bench/Results-linux/Attic/connect-mysql_fast-Linux_2.0.33_i586|19700101030959|02406|bea04f29553d0282 +BK|sql-bench/Results-linux/Attic/connect-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02407|7e9bb70fd7b37f42 BK|sql-bench/Results-linux/Attic/connect-mysql_new-Linux_2.0.33_i586|19700101030959|02408|68bec6f9daa2bef BK|sql-bench/Results-linux/Attic/create-mysql-Linux_2.0.33_i586|19700101030959|02409|b17e3ee156e4c5af BK|sql-bench/Results-linux/Attic/create-mysql-Linux_dynamic|19700101030959|02410|76f74b46ddaa2195 +BK|sql-bench/Results-linux/Attic/create-mysql-Linux_pgcc|19700101030959|02411|1818558b2313c5c +BK|sql-bench/Results-linux/Attic/create-mysql-Linux_static|19700101030959|02412|41d31c3aed3bac32 BK|sql-bench/Results-linux/Attic/create-mysql_fast-Linux_2.0.33_i586|19700101030959|02413|a1097e6149ab2c30 BK|sql-bench/Results-linux/Attic/create-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02414|f10fc5d8ad18ec87 BK|sql-bench/Results-linux/Attic/create-mysql_new-Linux_2.0.33_i586|19700101030959|02415|6e325e38cfc0f448 BK|sql-bench/Results-linux/Attic/insert-mysql-Linux_2.0.33_i586|19700101030959|02416|d8e119a76e9c5299 +BK|sql-bench/Results-linux/Attic/insert-mysql-Linux_dynamic|19700101030959|02417|11d98836dff348d4 BK|sql-bench/Results-linux/Attic/insert-mysql-Linux_pgcc|19700101030959|02418|a4dc763c821e7320 BK|sql-bench/Results-linux/Attic/insert-mysql-Linux_static|19700101030959|02419|c30666e4ba4d83e3 BK|sql-bench/Results-linux/Attic/insert-mysql_fast-Linux_2.0.33_i586|19700101030959|02420|335e3e2e309ed829 BK|sql-bench/Results-linux/Attic/insert-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02421|9f4d1ef7b3803ea0 BK|sql-bench/Results-linux/Attic/insert-mysql_new-Linux_2.0.33_i586|19700101030959|02422|ab8faa4054950b BK|sql-bench/Results-linux/Attic/select-mysql-Linux_2.0.33_i586|19700101030959|02423|ead2441b87c86a7 +BK|sql-bench/Results-linux/Attic/select-mysql-Linux_dynamic|19700101030959|02424|1a6ecfc73d4c9c7c +BK|sql-bench/Results-linux/Attic/select-mysql-Linux_pgcc|19700101030959|02425|74dcac67613f7019 +BK|sql-bench/Results-linux/Attic/select-mysql-Linux_static|19700101030959|02426|d05271375e18476f BK|sql-bench/Results-linux/Attic/select-mysql_fast-Linux_2.0.33_i586|19700101030959|02427|c4893ae7ccfd6679 +BK|sql-bench/Results-linux/Attic/select-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02428|60fc5c8eaa45e911 BK|sql-bench/Results-linux/Attic/select-mysql_new-Linux_2.0.33_i586|19700101030959|02429|319f856c6fc2e17e BK|sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_2.0.33_i586|19700101030959|02430|70ed9659b64e7687 BK|sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_dynamic|19700101030959|02431|55691eaf454d6204 BK|sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_pgcc|19700101030959|02432|799fec80139c693e +BK|sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_static|19700101030959|02433|a2c543aded6c8f40 BK|sql-bench/Results-linux/Attic/wisconsin-mysql_fast-Linux_2.0.33_i586|19700101030959|02434|7d98b33fa6d91a87 +BK|sql-bench/Results-linux/Attic/wisconsin-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02435|28a4840ebd5dd015 BK|sql-bench/Results-linux/Attic/wisconsin-mysql_new-Linux_2.0.33_i586|19700101030959|02436|e1f17edfbee1f22e +BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.12_20smp_i686|19700101030959|02328|da28ced3e0aac09c BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02329|f6fa9f46d4a6152 +BK|sql-bench/Results-linux/RUN-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02444|16694c5927b7600c +BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.12_20smp_i686|19700101030959|02330|67ae4e91b5f4eabd +BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02331|c85eb85ba45dd748 +BK|sql-bench/Results-linux/alter-table-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02445|b062db76cf6df5d2 BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.2.12_20smp_i686|19700101030959|02332|a2dcb74a3c73ac18 BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02333|b5f4f4c35225f0f BK|sql-bench/Results-linux/big-tables-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02446|a9eedd951eab7e8b +BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.12_20smp_i686|19700101030959|02336|beedcd769a903c19 +BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02337|74ec2bf5f55b81f BK|sql-bench/Results-linux/connect-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02447|f6d7665c418d62c6 BK|sql-bench/Results-linux/create-mysql-Linux_2.2.12_20smp_i686|19700101030959|02338|fe23ee50aea195f4 +BK|sql-bench/Results-linux/create-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02339|771b40d3280fe8ad +BK|sql-bench/Results-linux/create-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02448|c46d6c283c0e34ae BK|sql-bench/Results-linux/insert-mysql-Linux_2.2.12_20smp_i686|19700101030959|02340|f120b0ead3836c81 BK|sql-bench/Results-linux/insert-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02343|17f262f12d2244bc +BK|sql-bench/Results-linux/insert-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02449|3245ba5633a18e8 +BK|sql-bench/Results-linux/select-mysql-Linux_2.2.12_20smp_i686|19700101030959|02344|3b64aff0dfddfff4 BK|sql-bench/Results-linux/select-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02345|9fd9c6e036f988d7 BK|sql-bench/Results-linux/select-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02450|744633c6e13a897f BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.12_20smp_i686|19700101030959|02346|d49db545341a732f +BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02347|ad7babd436f26841 BK|sql-bench/Results-linux/wisconsin-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02451|6ad065fe4c6b4fa9 +BK|sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686|19700101030959|02025|3fa4d167cceff7e8 BK|sql-bench/Results/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02312|84ca3b85ff306133 BK|sql-bench/Results/ATIS-mysql-Linux_2.2.14_i686_xeon|19700101030959|02044|3e820c28bf4af63a +BK|sql-bench/Results/ATIS-mysql-SunOS_5.5.1_sun4u|19700101030959|02031|dfb4c5f6b6db3b49 +BK|sql-bench/Results/ATIS-mysql-SunOS_5.6_sun4m|19700101030959|02032|62028e0375b3b8b +BK|sql-bench/Results/ATIS-mysql-SunOS_5.7_sun4u|19700101030959|02034|be0d9789776c5ed7 +BK|sql-bench/Results/ATIS-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02304|cbe120d860296d2f +BK|sql-bench/Results/ATIS-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02027|a74e7b82d3908fa9 BK|sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02313|8c6fc2968f78773 BK|sql-bench/Results/ATIS-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02163|c2042f9a9657c3c3 BK|sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02176|a8b0d775c0a4691 +BK|sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.12_20smp_i686|19700101030959|02167|1e29b2a67768c48e +BK|sql-bench/Results/Attic/ATIS-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02177|ad0b2dd9635e2c5 +BK|sql-bench/Results/Attic/ATIS-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02178|f2a315ff3020d8af BK|sql-bench/Results/Attic/ATIS-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02179|976d7060e515b99d BK|sql-bench/Results/Attic/ATIS-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02180|4eb0a8bb9375c8b4 +BK|sql-bench/Results/Attic/RUN-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02181|b57a8fe3ec3c61fe BK|sql-bench/Results/Attic/RUN-mysql-Linux_2.2.12_20smp_i686|19700101030959|02168|151c91b6daab4dde BK|sql-bench/Results/Attic/RUN-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02182|29eba7ff708091a9 +BK|sql-bench/Results/Attic/RUN-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02183|5621a2bcc51f0046 BK|sql-bench/Results/Attic/RUN-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02184|bdd5fe173fc3ce04 BK|sql-bench/Results/Attic/RUN-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02185|18ad094a4a084f2d +BK|sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02186|5fd6ded14590fbb8 +BK|sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.12_20smp_i686|19700101030959|02169|4d534c0d139e6e84 BK|sql-bench/Results/Attic/alter-table-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02187|3328a9b65a550c5d BK|sql-bench/Results/Attic/alter-table-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02188|ff27c85c97c3ad3 +BK|sql-bench/Results/Attic/alter-table-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02189|4250bb2da83647a2 +BK|sql-bench/Results/Attic/alter-table-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02190|b17e2aaa38b55eb2 +BK|sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02191|8f54c66cf5c54c9b BK|sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.12_20smp_i686|19700101030959|02170|5769cc71415f47c0 BK|sql-bench/Results/Attic/big-tables-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02192|f5635f889ac7fd1 +BK|sql-bench/Results/Attic/big-tables-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02193|87bd5cad328f9a56 BK|sql-bench/Results/Attic/big-tables-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02194|7ab2f4e6f446e8d1 +BK|sql-bench/Results/Attic/big-tables-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02195|f4e8992432a41520 +BK|sql-bench/Results/Attic/connect-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02196|e7d05143faaaed14 BK|sql-bench/Results/Attic/connect-mysql-Linux_2.2.12_20smp_i686|19700101030959|02171|f729aa3ce165504b +BK|sql-bench/Results/Attic/connect-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02197|ed24e73925a9a15f BK|sql-bench/Results/Attic/connect-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02198|cd44ecbb1bc562df BK|sql-bench/Results/Attic/connect-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02199|2e32ec7ed48830b0 BK|sql-bench/Results/Attic/connect-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02200|54279ceecad4ff75 BK|sql-bench/Results/Attic/create-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02201|794bb2f5d9848a31 BK|sql-bench/Results/Attic/create-mysql-Linux_2.2.12_20smp_i686|19700101030959|02172|fac50eb6d476b061 +BK|sql-bench/Results/Attic/create-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02202|567131bf739028de BK|sql-bench/Results/Attic/create-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02203|f588adda77591d0e +BK|sql-bench/Results/Attic/create-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02204|c6cd719f446aef2d +BK|sql-bench/Results/Attic/create-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02205|447e91cb1cbd0200 BK|sql-bench/Results/Attic/insert-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02206|3eef949d8497d64a BK|sql-bench/Results/Attic/insert-mysql-Linux_2.2.12_20smp_i686|19700101030959|02173|e2b60136e721ee00 BK|sql-bench/Results/Attic/insert-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02207|34e0e127be9818d5 +BK|sql-bench/Results/Attic/insert-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02208|6c23fbad4756fc5a BK|sql-bench/Results/Attic/insert-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02209|256460399ba1a19 BK|sql-bench/Results/Attic/insert-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02210|64c440c68299737c +BK|sql-bench/Results/Attic/select-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02211|8945aaf0216c6faa BK|sql-bench/Results/Attic/select-mysql-Linux_2.2.12_20smp_i686|19700101030959|02174|f55b5bbb2b146e8f +BK|sql-bench/Results/Attic/select-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02212|4df8dad5f928896f BK|sql-bench/Results/Attic/select-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02213|4f358f071fb9fb64 +BK|sql-bench/Results/Attic/select-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02214|2b25f0443d476a6a +BK|sql-bench/Results/Attic/select-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02215|72a5128156c0045e BK|sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02216|daca359e12015b98 +BK|sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.12_20smp_i686|19700101030959|02175|3b972af9467dcd06 BK|sql-bench/Results/Attic/wisconsin-mysql-Linux_2.2.1_i686-cmp-mysql,pg|19700101030959|02217|16584fde48942aa2 +BK|sql-bench/Results/Attic/wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02218|b4e89cdac0620cba BK|sql-bench/Results/Attic/wisconsin-pg-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02219|7d641554f51cf45a +BK|sql-bench/Results/Attic/wisconsin-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg|19700101030959|02220|db31ec971b4c5051 +BK|sql-bench/Results/RUN-mysql-Linux_2.2.10_i686|19700101030959|02041|712f52be5d195406 BK|sql-bench/Results/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02038|8ee87b26b91c86fe +BK|sql-bench/Results/RUN-mysql-Linux_2.2.14_i686_xeon|19700101030959|02055|17854e751e1d9d1d +BK|sql-bench/Results/RUN-mysql-SunOS_5.5.1_sun4u|19700101030959|02058|afbba182428e20df BK|sql-bench/Results/RUN-mysql-SunOS_5.6_sun4m|19700101030959|02059|eafc8188345e262b BK|sql-bench/Results/RUN-mysql-SunOS_5.7_sun4u|19700101030959|02061|86e1dc0e25a8b8f BK|sql-bench/Results/RUN-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02310|a902e1a967d79c42 +BK|sql-bench/Results/RUN-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02030|413ab3b8a99e61e9 +BK|sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02046|a910a9b3fde431e1 BK|sql-bench/Results/RUN-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02165|e0f060fdbf92325e BK|sql-bench/Results/alter-table-mysql-Linux_2.2.10_i686|19700101030959|02081|93b78a85b720a186 BK|sql-bench/Results/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02314|4ae4b989301df98b +BK|sql-bench/Results/alter-table-mysql-Linux_2.2.14_i686_xeon|19700101030959|02057|64cc4b874cd6fabf BK|sql-bench/Results/alter-table-mysql-SunOS_5.5.1_sun4u|19700101030959|02087|9d7e75667fcb29ec BK|sql-bench/Results/alter-table-mysql-SunOS_5.6_sun4m|19700101030959|02088|8a1bd6589a189890 BK|sql-bench/Results/alter-table-mysql-SunOS_5.7_sun4u|19700101030959|02090|ce74c2f623d3bb3 +BK|sql-bench/Results/alter-table-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02316|1390155aad5b6e86 +BK|sql-bench/Results/alter-table-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02317|9090bebb62ef164b BK|sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02094|4e02d36dc17ecbfa +BK|sql-bench/Results/alter-table-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02233|b8721431b356177 +BK|sql-bench/Results/big-tables-mysql-Linux_2.2.10_i686|19700101030959|02109|99daa1c5370d077d +BK|sql-bench/Results/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02315|2804ec3c95be436a BK|sql-bench/Results/big-tables-mysql-Linux_2.2.14_i686_xeon|19700101030959|02074|290c2c3de9d8e6b +BK|sql-bench/Results/big-tables-mysql-SunOS_5.5.1_sun4u|19700101030959|02115|7d7b6c0bf58b9b79 +BK|sql-bench/Results/big-tables-mysql-SunOS_5.6_sun4m|19700101030959|02116|f351a7f3e1e2257e +BK|sql-bench/Results/big-tables-mysql-SunOS_5.7_sun4u|19700101030959|02118|ebc379b231312bbe +BK|sql-bench/Results/big-tables-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02318|c5eabcb89ceac698 +BK|sql-bench/Results/big-tables-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02319|856d503725373684 BK|sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02122|a442a8aff47fae20 BK|sql-bench/Results/big-tables-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02235|e5a33639e51290fd BK|sql-bench/Results/connect-mysql-Linux_2.2.10_i686|19700101030959|02137|c92505d77e19d5ec +BK|sql-bench/Results/connect-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02084|e7e2959b7387251f +BK|sql-bench/Results/connect-mysql-Linux_2.2.14_i686_xeon|19700101030959|02071|ea19dc3ec55b3618 BK|sql-bench/Results/connect-mysql-SunOS_5.5.1_sun4u|19700101030959|02142|a9493110fe62e0b1 BK|sql-bench/Results/connect-mysql-SunOS_5.6_sun4m|19700101030959|02143|a10e3ddfa26a3e7f +BK|sql-bench/Results/connect-mysql-SunOS_5.7_sun4u|19700101030959|02145|c67beb9e9d2cf32e +BK|sql-bench/Results/connect-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02320|ce69cc65bc827b5c +BK|sql-bench/Results/connect-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02066|f801e08429a4f7c6 +BK|sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02086|1d95d36fd717990 +BK|sql-bench/Results/connect-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02244|f6ab4d00b0ae09c1 +BK|sql-bench/Results/create-mysql-Linux_2.2.10_i686|19700101030959|02161|9e7822f66df6aa76 BK|sql-bench/Results/create-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02102|34ded91c5fc25de9 BK|sql-bench/Results/create-mysql-Linux_2.2.14_i686_xeon|19700101030959|02139|50d15991293030ef BK|sql-bench/Results/create-mysql-SunOS_5.5.1_sun4u|19700101030959|02166|bbb5de66fc56de7b +BK|sql-bench/Results/create-mysql-SunOS_5.6_sun4m|19700101030959|02221|9233114ae6f8c5f +BK|sql-bench/Results/create-mysql-SunOS_5.7_sun4u|19700101030959|02223|7ee13bfcafeab498 +BK|sql-bench/Results/create-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02321|e985e71d552ff09e +BK|sql-bench/Results/create-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02099|483dcf223d5abf81 +BK|sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02112|a140e5e229a53b7b BK|sql-bench/Results/create-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02246|177fd39cc1d298a8 +BK|sql-bench/Results/insert-mysql-Linux_2.2.10_i686|19700101030959|02242|763edf9aec633f51 BK|sql-bench/Results/insert-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02130|5be3d6f299738a31 BK|sql-bench/Results/insert-mysql-Linux_2.2.14_i686_xeon|19700101030959|02141|c683ee4b9d214298 BK|sql-bench/Results/insert-mysql-SunOS_5.5.1_sun4u|19700101030959|02247|8a9ae41f9a79f79 +BK|sql-bench/Results/insert-mysql-SunOS_5.6_sun4m|19700101030959|02248|3402d060ae20e19 BK|sql-bench/Results/insert-mysql-SunOS_5.7_sun4u|19700101030959|02250|78efa132c6e252b9 +BK|sql-bench/Results/insert-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02322|ed252140ff399961 BK|sql-bench/Results/insert-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02114|29a3b8a1ca8aa9d BK|sql-bench/Results/insert-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02148|e65dd14f2ed9abbf BK|sql-bench/Results/insert-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02259|b5bf77586c18d2b5 +BK|sql-bench/Results/select-mysql-Linux_2.2.10_i686|19700101030959|02268|a2e264d777b787d BK|sql-bench/Results/select-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02227|308117295c3bc096 +BK|sql-bench/Results/select-mysql-Linux_2.2.14_i686_xeon|19700101030959|02152|ead3f11b46ac626f BK|sql-bench/Results/select-mysql-SunOS_5.5.1_sun4u|19700101030959|02273|c9a1a498a052e268 +BK|sql-bench/Results/select-mysql-SunOS_5.6_sun4m|19700101030959|02274|4da215905bce988d BK|sql-bench/Results/select-mysql-SunOS_5.7_sun4u|19700101030959|02276|632c92971c61e34a +BK|sql-bench/Results/select-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02323|e8c0871a668a610d BK|sql-bench/Results/select-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02127|963a98ed526e2be4 BK|sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02254|f9ab7726ff14ea90 +BK|sql-bench/Results/select-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02261|188d6b5b72d8e0a +BK|sql-bench/Results/wisconsin-mysql-Linux_2.2.10_i686|19700101030959|02288|301a82b12a84922b BK|sql-bench/Results/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02280|d01900af34fb33b8 +BK|sql-bench/Results/wisconsin-mysql-Linux_2.2.14_i686_xeon|19700101030959|02154|7525b23938631801 BK|sql-bench/Results/wisconsin-mysql-SunOS_5.5.1_sun4u|19700101030959|02297|379705afa2e12378 +BK|sql-bench/Results/wisconsin-mysql-SunOS_5.6_sun4m|19700101030959|02298|ec61b14072715dc8 BK|sql-bench/Results/wisconsin-mysql-SunOS_5.7_sun4u|19700101030959|02300|f27927f8c64ea8ad +BK|sql-bench/Results/wisconsin-mysql_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02324|ec075a89dbdbbe6a BK|sql-bench/Results/wisconsin-pg-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02325|233d5aa529979990 BK|sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02295|ec361eee4f4128cd +BK|sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02270|ef201ca14f635c57 +BK|sql/share/romanian/errmsg.sys|19700101030959|01869|9d8282efb437e8cc BK|sql/share/romanian/errmsg.txt|19700101030959|01870|2c64fb13a8f104ad +monty@donna.mysql.com|myisam/mi_debug.c|20000829092809|23459|873a6e7d6ff8297c +mwagner@evoq.home.mwagner.org|mysql-test/mybin/start-mysqld|20001016055648|54840|9c8f21a7ab97793a mwagner@evoq.home.mwagner.org|mysql-test/mybin/stop-mysqld|20001016055653|20710|89a1194045f05d1c mwagner@evoq.home.mwagner.org|mysql-test/mybin/translate-tests|20001018130217|00206|3869c1fdf0a5ea1a +mwagner@evoq.home.mwagner.org|mysql-test/r/3.22/README|20001009213643|04628|2bddc2706d0834d0 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/README|20001009213643|10190|f9fd36f3c3711305 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000004.result|20001017133900|06471|1f8d1265be521c17 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000005.result|20001017133900|07980|d5410bb765199cc5 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000006.result|20001017133900|09337|d38004d1acfc11a5 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000007.result|20001017133900|10672|df455e49f9727c4f +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000008.result|20001017133900|11918|67a459ff62c84d6a +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000009.result|20001017133900|13159|e042b35ab131fb3 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000010.result|20001017133900|14408|eee5b9631a1e0066 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000011.result|20001017133900|15675|6907fe356973ed25 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000012.result|20001017133900|16957|be18991fc28954c2 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000013.result|20001017133900|18248|513389e06c96af73 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000014.result|20001017133900|19568|fc8de0ec89d9e35 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000015.result|20001017133900|20900|cadbc52051d47bac +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000016.result|20001017133900|22246|6177851869bd5b07 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000017.result|20001017133900|25454|84ebf147850ff31c +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000018.result|20001017133900|26863|562ac9094cf53aba +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000019.result|20001017133900|28330|2870fe1c4998d929 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000020.result|20001017133900|29810|faa670294ef5fa91 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000021.result|20001017133900|31269|8f0ce4ec26e0c21d +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000022.result|20001017133900|32814|34828a43753ee767 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000023.result|20001017133900|34366|13e112d77573bf17 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000024.result|20001017133900|35938|b10d449624f48d07 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000025.result|20001017133900|37670|f31e08fcca805f35 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000026.result|20001017133900|39253|854fa951666b7982 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000027.result|20001017133900|40901|cfd73fe738f27da +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000028.result|20001017133900|42576|13ff5add6ac24908 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000029.result|20001017133900|44275|c6d071781808aa26 +mwagner@evoq.home.mwagner.org|mysql-test/r/3.23/sel000030.result|20001017133900|46003|98d496948e15064d +mwagner@evoq.home.mwagner.org|mysql-test/share/README|20001009213643|10987|6cd25db633f30de5 mwagner@evoq.home.mwagner.org|mysql-test/std_data/README|20001009213643|12759|c5aaceda4c2b1a8 +mwagner@evoq.home.mwagner.org|mysql-test/t/3.22/README|20001009213643|13611|b8e00a1b57b91f69 +mwagner@evoq.home.mwagner.org|mysql-test/var/lib/README|20001009213643|15351|3b652c0f321e1940 +mwagner@evoq.home.mwagner.org|mysql-test/var/log/README|20001009213643|16203|df5481fdbe6e5b6e +mwagner@evoq.home.mwagner.org|mysql-test/var/run/README|20001009213643|17062|acb305e4c2ed5990 +mwagner@evoq.home.mwagner.org|mysql-test/var/tmp/README|20001009213643|17904|b32d866bfd50e72e +mwagner@work.mysql.com|mysql-test/r/3.23/sel000001.result|20001010091454|28284|383913ae4505ec86 +mwagner@work.mysql.com|mysql-test/r/3.23/sel000002.result|20001010091454|29230|d1787e6fd5dbc1cc +sasha@mysql.sashanet.com|BitKeeper/etc/logging_ok|20000801000905|12967|5b7d847a2158554 sasha@mysql.sashanet.com|libmysql_r/acconfig.h|20001128060846|51084|65f1202b3b5c345f +sasha@mysql.sashanet.com|mysql-test/README.gcov|20001012045950|28177|5a6da067a30780ce +sasha@mysql.sashanet.com|mysql-test/README|20001010001022|12739|108667adaeabe3f5 +sasha@mysql.sashanet.com|mysql-test/r/3.23/alt000001.result|20001122072330|24729|393103dbf15f35c9 +sasha@mysql.sashanet.com|mysql-test/r/3.23/ins000001.result|20001018175743|49824|f45c599efdf8352b +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000001.a.result|20001118063528|39426|2987b17db06808c3 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000001.b.result|20001118063528|44057|62e1fa91167cacc3 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000002.result|20001118063528|46039|109f5ceed1e0d64 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000003.result|20001118063528|48148|68d6ee00beaa011 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000004.a.result|20001118063528|50132|3415f066cb91c460 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000004.b.result|20001118063528|52094|352b35351551485 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000005.result|20001118063528|54071|a50962bc2340ab9a +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000006.result|20001118063528|56081|5653051e8ce6b4aa +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000007.result|20001121063807|21606|e0c3b6134e0884da +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000008.result|20001121063807|23636|c5cfee19ca5a7da9 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000009.result|20001121063807|25633|ed8042446ab97926 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000010.result|20001122072330|29430|3228109b8965b0f8 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000011.result|20001125024912|48851|c29dce30aa97f265 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000012.result|20001126062901|05938|35d6596da7b90fc5 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000012.status.result|20001126062901|09395|bbbd650b5beea32f +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000013.result|20001202171150|03876|ac5024e6cf6daac6 +sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000013.status.result|20001202171150|06069|6bee190c298cc9fd +sasha@mysql.sashanet.com|mysql-test/r/3.23/sel000003.result|20001011230020|64653|d7b657b1e3a286a7 +sasha@mysql.sashanet.com|mysql-test/r/3.23/sel000100.res|20001205131218|23520|84ed46856cb3a69f +sasha@mysql.sashanet.com|mysql-test/r/3.23/shw000001.result|20001121234128|16652|8b20b03d8319b9a5 +sasha@mysql.sashanet.com|mysql-test/r/mrg000002.result|20001212152450|11492|745be0854aaaaf5e +sasha@mysql.sashanet.com|mysql-test/r/rpl000014.result|20001212220135|30510|ddf1e4582c964fa7 +sasha@mysql.sashanet.com|mysql-test/r/rpl000015.result|20001213165825|18511|40a167681c001086 +sasha@mysql.sashanet.com|mysql-test/r/slave-running.result|20001208141122|24303|f73e49462cf59e1f +sasha@mysql.sashanet.com|mysql-test/r/slave-stopped.result|20001208141122|28916|25c134b1a4f1993a +sasha@mysql.sashanet.com|mysql-test/std_data/select-key.master|20001009234916|07315|e6b83af25df0ce5 sasha@mysql.sashanet.com|mysql-test/std_data/simple-select.master|20001009234916|08299|6f3eb98812926caf +sasha@mysql.sashanet.com|mysql-test/t/3.23/select-key.test|20001009234859|21197|5d785cef5c02c070 sasha@mysql.sashanet.com|mysql-test/t/3.23/simple-select.test|20001009234859|26291|71f98293e1dc65 +sasha@mysql.sashanet.com|mysql-test/t/include/master-slave.inc|20001118030458|01636|556fd038c3a3d54 +sasha@work.mysql.com|BitKeeper/etc/logging_ok|20001214015456|29919|32b6551b8288c2fa +serg@serg.mysql.com|mysql-test/r/3.23/mrg000001.dummy.result|20001206231604|05053|bf7e6d609f22b897 +serg@serg.mysql.com|mysql-test/r/3.23/mrg000001.result|20001206231609|46662|db2ef2e717ab8332 +serg@serg.mysql.com|mysql-test/r/ft0000001.a.result|20001211130756|05199|3d17aff15fa5a9f1 +serg@serg.mysql.com|mysql-test/r/ft0000001.b.result|20001211130756|10153|505c4c00a0bddfc4 +serg@serg.mysql.com|mysql-test/r/ft0000001.c.result|20001211130756|14950|1040289a75243a92 +serg@serg.mysql.com|mysql-test/r/ft0000001.d.result|20001211130756|19773|7c549555fbc7663e +serg@serg.mysql.com|mysql-test/r/ft0000001.e.result|20001212121413|40468|c58d30fd7fe86f4f +serg@serg.mysql.com|mysql-test/r/ft0000002.a.result|20001212120058|27306|a89b4db1db19f944 +serg@serg.mysql.com|mysql-test/r/ft0000002.b.result|20001212120058|34425|5de41ce15ae1cedb +serg@serg.mysql.com|mysql-test/r/ft0000002.c.result|20001212120059|07173|cd66b90918a87531 +serg@serg.mysql.com|mysql-test/r/sel000031.result|20001211130803|03576|d49aeac63ad7db4d +serg@serg.mysql.com|mysql-test/r/sel000032.result|20001211130803|08537|6cb30e23cbca9fb0 +serg@serg.mysql.com|mysql-test/r/sel000033.result|20001211130803|13548|56d1d02d72b94602 diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 80ace6efa22..e1dae97b575 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -4,6 +4,7 @@ jcole@tetra.spaceapes.com monty@donna.mysql.com monty@tik.mysql.com monty@work.mysql.com +mwagner@evoq.home.mwagner.org paul@central.snake.net sasha@mysql.sashanet.com sasha@work.mysql.com diff --git a/Docs/manual.texi b/Docs/manual.texi index e8db004651f..468ad37ae6d 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -38865,6 +38865,10 @@ Fernandez Herrero. Binary and source for @code{mydsn.dll}. mydsn should be used to build and remove the DSN registry file for the MyODBC driver in Coldfusion applications. By Miguel Angel Solórzano. + +@item @uref{http://www.mysql.com/Downloads/Contrib/MySQL-ADA95_API.zip, MySQL-ADA95_API.zip} +An ADA95 interface to the MySQL API. By Francois Fabien. + @end itemize @appendixsec Clients diff --git a/tests/mail_to_db.pl b/tests/mail_to_db.pl index 7886ffb7e0f..68b6fcb71c7 100755 --- a/tests/mail_to_db.pl +++ b/tests/mail_to_db.pl @@ -1,10 +1,13 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w # Copyright Abandoned 1998 TCX DataKonsult AB & Monty Program KB & Detron HB # This file is public domain and comes with NO WARRANTY of any kind # # This program is brought to you by Janne-Petteri Koilo with the # administration of Michael Widenius. - +# +# Rewritten with a lot of bug fixes by Jani Tolonen and Thimble Smith +# 15.12.2000 +# # This program takes your mails and puts them into your database. It ignores # messages with the same from, date and message text. # You can use mail-files that are compressed or gzipped and ends with @@ -13,287 +16,372 @@ use DBI; use Getopt::Long; -$VER = "1.6"; - -$opt_db = "mail"; -$opt_table = "mails"; +$| = 1; +$VER = "2.0"; + +$opt_help = 0; +$opt_version = 0; +$opt_debug = 0; +$opt_host = undef(); +$opt_port = undef(); +$opt_socket = undef(); +$opt_db = undef(); +$opt_table = undef(); +$opt_user = undef(); +$opt_password = undef(); $opt_max_mail_size = 65536; -$opt_db_engine = "mysql"; -$opt_host = "localhost"; -$opt_user = $opt_password = ""; -$opt_help = $opt_version = $opt_test=0; +$opt_create = 0; +$opt_test = 0; +$opt_no_path = 0; +$opt_stop_on_error = 0; -GetOptions("help","version","user=s","password=s", - "db_engine=s","db=s","host=s","max_mail_size=s","test") || usage(); +my ($dbh, $progname, $mail_no_from_f, $mail_no_txt_f, $mail_too_big, + $mail_forwarded, $mail_duplicates, $mail_no_subject_f, $mail_inserted); -usage($VER) if ($opt_help || $opt_version || !$ARGV[0]); +$mail_no_from_f = $mail_no_txt_f = $mail_too_big = $mail_forwarded = +$mail_duplicates = $mail_no_subject_f = $mail_inserted = 0; -%months= ('Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4, 'May' => 5, - 'Jun' => 6, 'Jul' => 7, 'Aug' => 8, 'Sep' => 9, 'Oct' => 10, - 'Nov' => 11, 'Des' => 12); +my %months = ('Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4, 'May' => 5, + 'Jun' => 6, 'Jul' => 7, 'Aug' => 8, 'Sep' => 9, 'Oct' => 10, + 'Nov' => 11, 'Dec' => 12); -$count_no_from = $count_no_txt = $count_too_big = 0; -$count_forwarded_msgs = $count_duplicates = $no_subject = 0; -$inserted_mails = 0; -$dbh=0; +$progname = $0; +$progname =~ s/.*[\/]//; -$dbh = DBI->connect("DBI:$opt_db_engine:$opt_db:$opt_host",$opt_user, - $opt_password,{ PrintError => 0}) || die $DBI::errstr; -if (!$opt_test) -{ - create_table_if_needed($dbh); -} +main(); + +#### +#### main sub routine +#### -foreach (@ARGV) +sub main { - if (/^(.*)\.(gz|Z)$/) #checks if the file is compressed or gzipped + my ($connect_arg, @args, $ignored, @defops, $i); + + if (defined(my_which("my_print_defaults"))) { - open(FILE, "zcat $_ |"); - process_mail_file($dbh,$1); + @defops = `my_print_defaults mail_to_db`; + chop @defops; + splice @ARGV, 0, 0, @defops; } else { - open(FILE,$_); - process_mail_file($dbh,$_); + print "WARNING: No command 'my_print_defaults' found; unable to read\n"; + print "the my.cnf file. This command is available from the latest MySQL\n"; + print "distribution.\n"; } -} -$dbh->disconnect if (!$opt_test); - -$ignored = $count_no_from + $count_no_txt + $count_too_big + $count_duplicates + $no_subject; -print "Mails inserted:\t\t\t$inserted_mails\n"; -print "Mails ignored:\t\t\t$ignored\n"; -print "Mails without \"From:\" -field:\t$count_no_from\n"; -print "Mails without message:\t\t$count_no_txt\n"; -print "Too big mails (> $opt_max_mail_size):\t$count_too_big\n"; -print "Duplicate mails:\t\t$count_duplicates\n"; -print "Forwarded mails:\t\t$count_forwarded_msgs\n"; -print "No subject:\t\t\t$no_subject\n"; -print "Mails altogether:\t\t"; -print $inserted_mails+$ignored; -print "\n"; -exit(0); + GetOptions("help","version","host=s","port=i","socket=s","db=s","table=s", + "user=s","password=s","max_mail_size=i","create","test", + "no_path","debug","stop_on_error") + || die "Wrong option! See $progname --help\n"; -sub usage -{ - my($VER)=@_; - - $0 =~ s/.\/(.+)/$1/; - if ($opt_version) - { - print "$0 version $VER\n"; - } - else + usage($VER) if ($opt_help || $opt_version || (!$ARGV[0] && !$opt_create)); + + # Check that the given inbox files exist and are regular files + for ($i = 0; defined($ARGV[$i]); $i++) { - print <<EOF; -$0 version $VER + die "FATAL: Can't find inbox file: $ARGV[$i]\n" if (! -f $ARGV[$i]); + } -Usage: $0 [options] file1 [file2 file3 ...] + $connect_arg = "DBI:mysql:"; + push @args, "database=$opt_db" if defined($opt_db); + push @args, "host=$opt_host" if defined($opt_host); + push @args, "port=$opt_port" if defined($opt_port); + push @args, "mysql_socket=$opt_socket" if defined($opt_socket); + push @args, "mysql_read_default_group=mail_to_db"; + $connect_arg .= join ';', @args; + $dbh = DBI->connect("$connect_arg", $opt_user, $opt_password) + || die "Couldn't connect: $DBI::errstr\n"; -Description: Inserts mails from file(s) into a database + die "You must specify the database; use --db=" if (!defined($opt_db)); + die "You must specify the table; use --table=" if (!defined($opt_table)); -Options: ---help show this help and exit ---version shows the version of the program ---db_engine=... database server (default: $opt_db_engine) ---db=... database to be used (default: $opt_db) ---host=... hostname to be used (default: $opt_host) ---password=... user password for the db server ---user=... username for the db server ---max_mail_size=# max size of a mail to be inserted into the db. - mail will be ignored if it exceeds this size - (default $opt_max_mail_size) ---test Don\'t connect to the database, just write the - queries to stdout -EOF + create_table($dbh) if ($opt_create); + + foreach (@ARGV) + { + # Check if the file is compressed + if (/^(.*)\.(gz|Z)$/) + { + open(FILE, "zcat $_ |"); + process_mail_file($dbh, $1); + } + else + { + open(FILE, $_); + process_mail_file($dbh, $_); + } } + $dbh->disconnect if (!$opt_test); + + $ignored = ($mail_no_from_f + $mail_no_subject_f + $mail_no_txt_f + + $mail_too_big + $mail_duplicates); + print "Mails inserted:\t\t\t$mail_inserted\n"; + print "Mails ignored:\t\t\t$ignored\n"; + print "Mails without \"From:\" -field:\t$mail_no_from_f\n"; + print "Mails without message:\t\t$mail_no_txt_f\n"; + print "Mails without subject:\t\t$mail_no_subject_f\n"; + print "Too big mails (> $opt_max_mail_size):\t$mail_too_big\n"; + print "Duplicate mails:\t\t$mail_duplicates\n"; + print "Forwarded mails:\t\t$mail_forwarded\n"; + print "Total number of mails:\t\t"; + print $mail_inserted + $ignored; + print "\n"; exit(0); } -sub create_table_if_needed +#### +#### table creation +#### + +sub create_table { - my ($dbh)=@_; - my ($sth,$create); - - $sth = $dbh->prepare("select count(*) from $opt_table") or die $dbh->errstr; - if (!$sth->execute) - { - $create = "CREATE TABLE $opt_table (msg_nro mediumint unsigned not null "; - $create .= "auto_increment, date DATETIME NOT NULL, time_zone CHAR(6) "; - $create .= "NOT NULL, mail_from char(120) not null, reply char(120), "; - $create .= "mail_to TEXT, cc TEXT, sbj char(200), txt MEDIUMTEXT NOT "; - $create .= "NULL, file char(32) noT NULL, hash INT NOT NULL, key "; - $create .= "(msg_nro), primary key (mail_from, date, time_zone, hash))"; - $sth = $dbh->prepare($create) or die $dbh->errstr; - $sth->execute() or die $dbh->errstr; - } + my ($dbh) = @_; + my ($sth, $query); + + $query = <<EOF; +CREATE TABLE $opt_table +( + mail_id MEDIUMINT UNSIGNED NOT NULL auto_increment, + date DATETIME NOT NULL, + time_zone VARCHAR(20), + mail_from VARCHAR(120) NOT NULL, + reply VARCHAR(120), + mail_to TEXT, + cc TEXT, + sbj VARCHAR(200), + txt MEDIUMTEXT NOT NULL, + file VARCHAR(64) NOT NULL, + hash INTEGER NOT NULL, + KEY (mail_id), + PRIMARY KEY (mail_from, date, hash)) + TYPE=MyISAM COMMENT='' +EOF + $sth = $dbh->prepare($query) or die $DBI::errstr; + $sth->execute() or die "Couldn't create table: $DBI::errstr\n"; } +#### +#### inbox processing +#### + sub process_mail_file { - my ($dbh,$file_name)= @_; - my (%values,$type,$check); + my ($dbh, $file_name) = @_; + my (%values, $type, $check); - %values=(); $type=""; - $check=0; + $file_name =~ s/.*[\/]// if ($opt_no_path); + + %values = (); + $type = ""; + $check = 0; while (<FILE>) { chop; if ($type ne "message") { - if (/^Reply-To: (.*)/i) # finding different fields from file + if (/^Reply-To: (.*)/i) { - $type="reply"; - $values{$type}= $1; + $type = "reply"; + $values{$type} = $1; } elsif (/^From: (.*)/i) { - $type="from"; - $values{$type}= $1; + $type = "from"; + $values{$type} = $1; } elsif (/^To: (.*)/i) { - $type="to"; - $values{$type}= $1; + $type = "to"; + $values{$type} = $1; } elsif (/^Cc: (.*)/i) { - $type="cc"; - $values{$type}= $1; + $type = "cc"; + $values{$type} = $1; } elsif (/^Subject: (.*)/i) { - $type="subject"; - $values{$type}= $1; + $type = "subject"; + $values{$type} = $1; } elsif (/^Date: (.*)/i) { - date_parser($1,\%values); - $type="rubbish"; + date_parser($1, \%values, $file_name); + $type = "rubbish"; } elsif (/^[\w\W-]+:\s/) { - $type="rubbish"; + $type = "rubbish"; } elsif ($_ eq "") { - $type="message"; - $values{$type}=""; + $type = "message"; + $values{$type} = ""; } else { s/^\s*/ /; - $values{$type}.= $_; + $values{$type} .= $_; } } - elsif ($check!=0 && $_ ne "") # in case of forwarded messages + elsif ($check != 0 && $_ ne "") # in case of forwarded messages { - $values{$type}.= "\n" . $_; + $values{$type} .= "\n" . $_; $check--; } elsif (/^From .* \d\d:\d\d:\d\d\s\d\d\d\d$/) { - $values{'hash'}= checksum("$values{'message'}"); - update_table($dbh,$file_name,\%values); - %values=(); $type=""; - $check=0; + $values{'hash'} = checksum("$values{'message'}"); + update_table($dbh, $file_name, \%values); + %values = (); + $type = ""; + $check = 0; } elsif (/-* forwarded message .*-*/i) # in case of forwarded messages { - $values{$type}.= "\n" . $_; + $values{$type} .= "\n" . $_; $check++; - $count_forwarded_msgs++; + $mail_forwarded++; } else { - $values{$type}.= "\n" . $_; + $values{$type} .= "\n" . $_; } } - $values{'hash'}= checksum("$values{'message'}"); - update_table($dbh,$file_name,\%values); + $values{'hash'} = checksum("$values{'message'}"); + update_table($dbh, $file_name, \%values); } -######## - -# converts date to the right form +#### +#### get date and timezone +#### sub date_parser { - my ($date_raw,$values)=@_; + my ($date_raw, $values, $file_name, $tmp) = @_; - $date_raw =~ /\s*(\d{1,2}) (\w+) (\d{2,4}) (\d+:\d+:\d+)\s*([\w-+]{3-5})?/; + # If you ever need to change this test, be especially careful with + # the timezone; it may be just a number (-0600), or just a name (EET), or + # both (-0600 (EET), or -0600 (EET GMT)), or without parenthesis: GMT. + # You probably should use a 'greedy' regexp in the end + $date_raw =~ /^\D*(\d{1,2})\s+(\w+)\s+(\d{2,4})\s+(\d+:\d+)(:\d+)?\s*(\S+.*)?/; - $values->{'date'}=$3 . "-" . $months{$2} . "-" . "$1 $4"; - $values->{'time_zone'}=$5; + if (!defined($1) || !defined($2) || !defined($3) || !defined($4) || + !defined($months{$2})) + { + if ($opt_debug || $opt_stop_on_error) + { + print "FAILED: date_parser: 1: $1 2: $2 3: $3 4: $4 5: $5\n"; + print "months{2}: $months{$2}\n"; + print "date_raw: $date_raw\n"; + print "Inbox filename: $file_name\n"; + } + exit(1) if ($opt_stop_on_error); + } + $tmp = $3 . "-" . $months{$2} . "-" . "$1 $4"; + $tmp.= defined($5) ? $5 : ":00"; + $values->{'date'} = $tmp; + print "INSERTING DATE: $tmp\n" if ($opt_debug); + $values->{'time_zone'} = $6; } -######### - -# this is runned when the whole mail is gathered. -# this actually puts the mail to the database. +#### +#### Insert to table +#### sub update_table { - my($dbh,$file_name,$values)=@_; - my($query); + my($dbh, $file_name, $values) = @_; + my($q); - if (! defined($values->{'subject'}) || !defined($values->{'to'})) + if (!defined($values->{'subject'}) || !defined($values->{'to'})) { - $no_subject++; + $mail_no_subject_f++; return; # Ignore these } $values->{'message'} =~ s/^\s*//; #removes whitespaces from the beginning $values->{'message'} =~ s/\s*$//; #removes whitespaces from the end - $query = "insert into $opt_table values (NULL,'" . $values->{'date'}; - $query .= "','" . $values->{'time_zone'} . "',"; - $query .= (defined($values->{'from'}) ? $dbh->quote($values->{'from'}) : "NULL") . ","; - $query .= (defined($values->{'reply'}) ? $dbh->quote($values->{'reply'}) : "NULL") . ","; - - $query .= (defined($values->{'to'}) ? $dbh->quote($values->{'to'}) : "NULL") . ","; - $query .= (defined($values->{'cc'}) ? $dbh->quote($values->{'cc'}) : "NULL") . ","; - $query .= $dbh->quote($values->{'subject'}) . ","; - $query .= $dbh->quote($values->{'message'}) . "," . $dbh->quote($file_name); - $query .= ",'" . $values->{'hash'} . "')"; - - if (length($values->{'message'}) > $opt_max_mail_size) #disables big message + + $q = "INSERT INTO $opt_table ("; + $q.= "mail_id,"; + $q.= "date,"; + $q.= "time_zone,"; + $q.= "mail_from,"; + $q.= "reply,"; + $q.= "mail_to,"; + $q.= "cc,"; + $q.= "sbj,"; + $q.= "txt,"; + $q.= "file,"; + $q.= "hash"; + $q.= ") VALUES ("; + $q.= "NULL,"; + $q.= "'" . $values->{'date'} . "',"; + $q.= (defined($values->{'time_zone'}) ? + ("'" . $values->{'time_zone'} . "',") : "NULL,"); + $q.= defined($values->{'from'}) ? $dbh->quote($values->{'from'}) : "NULL"; + $q.= ","; + $q.= defined($values->{'reply'}) ? $dbh->quote($values->{'reply'}) : "NULL"; + $q.= ","; + $q.= defined($values->{'to'}) ? $dbh->quote($values->{'to'}) : "NULL"; + $q.= ","; + $q.= defined($values->{'cc'}) ? $dbh->quote($values->{'cc'}) : "NULL"; + $q.= ","; + $q.= $dbh->quote($values->{'subject'}); + $q.= ","; + $q.= $dbh->quote($values->{'message'}); + $q.= ","; + $q.= $dbh->quote($file_name); + $q.= ","; + $q.= "'" . $values->{'hash'} . "'"; + $q.= ")"; + + # Don't insert mails bigger than $opt_max_mail_size + if (length($values->{'message'}) > $opt_max_mail_size) { - $count_too_big++; + $mail_too_big++; } - elsif ($values->{'from'} eq "") #disables mails with no from field + # Don't insert mails without 'From' field + elsif ($values->{'from'} eq "") { - $count_no_from++; + $mail_no_from_f++; } elsif ($opt_test) { - print "$query\n"; - $inserted_mails++; + print "$q\n"; + $mail_inserted++; } - elsif ($values->{'message'} eq "") #disables mails with no message text + # Don't insert mails without the 'message' + elsif ($values->{'message'} eq "") { - $count_no_msg_text++; + $mail_no_txt_f++; } - elsif ($dbh->do($query)) + elsif ($dbh->do($q)) { - $inserted_mails++; + $mail_inserted++; } - elsif (!($dbh->errstr =~ /Duplicate entry /)) #disables duplicates + # This should never happen. This means that the above q failed, + # but it wasn't because of a duplicate mail entry + elsif (!($DBI::errstr =~ /Duplicate entry /)) { - die "Aborting: Got error '" . $dbh->errstr ."' for query: '$query'\n"; + die "FATAL: Got error :$DBI::errstr\nAttempted query was: $q\n"; } else { - $count_duplicates++; + $mail_duplicates++; + print "Duplicate mail: query: $q\n" if ($opt_debug); } - $query=""; + $q = ""; } - -########## - -# In case you have two identical messages we wanted to identify them -# and remove additionals; We do this by calculating a hash number of the -# message and ignoring messages with the same from, date and hash. -# This function calculates a simple 32 bit hash value for the message. +#### +#### In case you have two identical messages we wanted to identify them +#### and remove additionals; We do this by calculating a hash number of the +#### message and ignoring messages with the same from, date and hash. +#### This function calculates a simple 32 bit hash value for the message. +#### sub checksum { @@ -308,3 +396,80 @@ sub checksum } return $crc; } + +#### +#### my_which is used, because we can't assume that every system has the +#### which -command. my_which can take only one argument at a time. +#### Return values: requested system command with the first found path, +#### or undefined, if not found. +#### + +sub my_which +{ + my ($command) = @_; + my (@paths, $path); + + return $command if (-f $command && -x $command); + @paths = split(':', $ENV{'PATH'}); + foreach $path (@paths) + { + $path = "." if ($path eq ""); + $path .= "/$command"; + return $path if (-f $path && -x $path); + } + return undef(); +} + +#### +#### usage and version +#### + +sub usage +{ + my ($VER)= @_; + + if ($opt_version) + { + print "$progname version $VER\n"; + } + else + { + print <<EOF; +$progname version $VER + +Description: Insert mails from inbox file(s) into a table. +This program can read group [mail_to_db] from the my.cnf +file. You may want to have db and table set there at least. + +Usage: $progname [options] file1 [file2 file3 ...] [>& /path/to/log.txt] +or: $progname [options] --create [file1 file2...] [>& /path/to/log.txt] + +Options: +--help Show this help and exit. +--version Show the version number and exit. +--debug Print some extra information during the run. +--host=... Hostname to be used. (Using: $opt_host) +--port=# TCP/IP port to be used with connection. (Using: $opt_port) +--socket=... MySQL UNIX socket to be used with connection. + (Using: $opt_socket) +--db=... Database to be used. (Using: $opt_db) +--table=... Table name for mails. (Using: $opt_table) +--user=... Username for connecting. (Using: $opt_user) +--password=... Password for the user. +--max_mail_size=# Maximum size of a mail. + Beware of the downside letting this variable be too big; + you may easily end up inserting a lot of attached + binary files (like MS Word documents etc), which take + space, make the database slower and are not really + searchable anyway. (Default: $opt_max_mail_size) +--create Create the mails table. This can be done with the first run. +--test Dry run. Print the queries and the result as it would be. +--no_path When inserting the file name, leave out any paths of + the name. +--stop_on_error Stop the run, if an unexpected, but not fatal error occurs + during the run. Without this option some fields may get + unwanted values. --debug will also report about these. +EOF + } + exit(0); +} |