mariadb/sql/records.cc
unknown e2765a84b1 my_strtoll10-x86.s:
Corrected spelling in copyright text
Makefile.am:
  Don't update the files from BitKeeper
Many files:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header 
Many files:
  Added GPL copyright text
Removed files:
  Docs/Support/colspec-fix.pl
  Docs/Support/docbook-fixup.pl
  Docs/Support/docbook-prefix.pl
  Docs/Support/docbook-split
  Docs/Support/make-docbook
  Docs/Support/make-makefile
  Docs/Support/test-make-manual
  Docs/Support/test-make-manual-de
  Docs/Support/xwf


CMakeLists.txt:
  Added GPL copyright text
bdb/CMakeLists.txt:
  Added GPL copyright text
client/CMakeLists.txt:
  Added GPL copyright text
dbug/CMakeLists.txt:
  Added GPL copyright text
extra/CMakeLists.txt:
  Added GPL copyright text
extra/yassl/CMakeLists.txt:
  Added GPL copyright text
extra/yassl/taocrypt/CMakeLists.txt:
  Added GPL copyright text
heap/CMakeLists.txt:
  Added GPL copyright text
innobase/CMakeLists.txt:
  Added GPL copyright text
libmysql/CMakeLists.txt:
  Added GPL copyright text
myisam/CMakeLists.txt:
  Added GPL copyright text
myisammrg/CMakeLists.txt:
  Added GPL copyright text
mysys/CMakeLists.txt:
  Added GPL copyright text
regex/CMakeLists.txt:
  Added GPL copyright text
server-tools/CMakeLists.txt:
  Added GPL copyright text
server-tools/instance-manager/CMakeLists.txt:
  Added GPL copyright text
sql/CMakeLists.txt:
  Added GPL copyright text
sql/examples/CMakeLists.txt:
  Added GPL copyright text
strings/CMakeLists.txt:
  Added GPL copyright text
tests/CMakeLists.txt:
  Added GPL copyright text
vio/CMakeLists.txt:
  Added GPL copyright text
zlib/CMakeLists.txt:
  Added GPL copyright text
VC++Files/copy_mysql_files.bat:
  Added GPL copyright text
extra/yassl/src/make.bat:
  Added GPL copyright text
extra/yassl/taocrypt/benchmark/make.bat:
  Added GPL copyright text
extra/yassl/taocrypt/src/make.bat:
  Added GPL copyright text
extra/yassl/taocrypt/test/make.bat:
  Added GPL copyright text
extra/yassl/testsuite/make.bat:
  Added GPL copyright text
Docs/Support/generate-text-files.pl:
  Added GPL copyright text
VC++Files/prepare:
  Added GPL copyright text
VC++Files/test1/mysql_thr.c:
  Added GPL copyright text
VC++Files/thr_test/thr_test.c:
  Added GPL copyright text
include/help_end.h:
  Added GPL copyright text
include/help_start.h:
  Added GPL copyright text
mysql-test/install_test_db.sh:
  Added GPL copyright text
mysql-test/my_create_tables.c:
  Added GPL copyright text
mysql-test/ndb/ndbcluster.sh:
  Added GPL copyright text
scripts/fill_func_tables.sh:
  Added GPL copyright text
scripts/fill_help_tables.sh:
  Added GPL copyright text
scripts/mysql_create_system_tables.sh:
  Added GPL copyright text
scripts/mysql_install_db.sh:
  Added GPL copyright text
scripts/mysql_upgrade_shell.sh:
  Added GPL copyright text
server-tools/instance-manager/IMService.cpp:
  Added GPL copyright text
server-tools/instance-manager/IMService.h:
  Added GPL copyright text
server-tools/instance-manager/WindowsService.cpp:
  Added GPL copyright text
server-tools/instance-manager/WindowsService.h:
  Added GPL copyright text
server-tools/instance-manager/portability.h:
  Added GPL copyright text
strings/ctype-extra.c:
  Added GPL copyright text
strings/dump_map.c:
  Added GPL copyright text
strings/uca-dump.c:
  Added GPL copyright text
strings/utr11-dump.c:
  Added GPL copyright text
win/build-vs71.bat:
  Added GPL copyright text
win/build-vs8.bat:
  Added GPL copyright text
win/build-vs8_x64.bat:
  Added GPL copyright text
win/configure.js:
  Added GPL copyright text
mysql-test/lib/mtr_cases.pl:
  Added GPL copyright text
mysql-test/lib/mtr_diff.pl:
  Added GPL copyright text
mysql-test/lib/mtr_gcov.pl:
  Added GPL copyright text
mysql-test/lib/mtr_gprof.pl:
  Added GPL copyright text
mysql-test/lib/mtr_im.pl:
  Added GPL copyright text
mysql-test/lib/mtr_io.pl:
  Added GPL copyright text
mysql-test/lib/mtr_match.pl:
  Added GPL copyright text
mysql-test/lib/mtr_misc.pl:
  Added GPL copyright text
mysql-test/lib/mtr_process.pl:
  Added GPL copyright text
mysql-test/lib/mtr_report.pl:
  Added GPL copyright text
mysql-test/lib/mtr_stress.pl:
  Added GPL copyright text
mysql-test/lib/mtr_timer.pl:
  Added GPL copyright text
mysql-test/lib/mtr_unique.pl:
  Added GPL copyright text
strings/my_strtoll10-x86.s:
  Corrected spelling in copyright text
BUILD/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
Docs/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
SSL/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
bdb/Makefile.in:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
client/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
client/client_priv.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
client/completion_hash.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
client/mysqladmin.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
client/mysqlimport.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
client/mysqlshow.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
dbug/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
extra/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/_check.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/_rectest.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/heapdef.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_block.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_clear.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_close.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_create.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_delete.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_extra.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_hash.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_info.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_open.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_panic.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rename.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rfirst.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rkey.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rlast.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rnext.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rprev.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rrnd.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_rsame.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_scan.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_static.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_test1.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_test2.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_update.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
heap/hp_write.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/my_aes.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/my_getopt.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/my_handler.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/my_time.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/mysql_time.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/rijndael.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/sha1.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
include/sql_common.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
libmysql/client_settings.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
libmysqld/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
libmysqld/emb_qcache.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
libmysqld/embedded_priv.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
man/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_boolean_search.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_eval.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_nlq_search.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_parser.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_static.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_stem.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_stopwords.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_test1.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_test1.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ft_update.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/ftdefs.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/fulltext.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_cache.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_changed.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_check.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_checksum.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_close.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_create.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_dbug.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_delete.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_delete_all.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_delete_table.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_dynrec.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_extra.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_info.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_key.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_locking.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_log.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_open.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_packrec.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_page.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_panic.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_preload.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_range.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rename.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rfirst.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rkey.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rlast.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rnext.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rnext_same.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rprev.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rrnd.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rsame.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_rsamepos.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_scan.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_search.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_static.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_statrec.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_test1.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_test2.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_test3.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_unique.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_update.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/mi_write.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/myisam_ftdump.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/myisamdef.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/myisamlog.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/myisampack.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_index.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_index.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_key.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_mbr.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_mbr.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_split.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/rt_test.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/sort.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/sp_defs.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisam/sp_test.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_close.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_create.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_def.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_delete.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_extra.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_info.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_locking.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_open.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_panic.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_queue.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_range.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rfirst.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rkey.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rlast.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rnext.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rnext_same.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rprev.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rrnd.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_rsame.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_static.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_update.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
myisammrg/myrg_write.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysql-test/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_aes.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_gethostbyname.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_gethwaddr.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_getopt.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_getsystime.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_handler.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_port.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/my_semaphore.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/rijndael.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
mysys/sha1.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
os2/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
os2/ReadMe.txt:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
os2/include/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
os2/include/sys/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
pstack/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
regex/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
scripts/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
scripts/mysql_config.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/listener.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/listener.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/log.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/log.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/manager.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/manager.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/messages.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/messages.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/mysql_connection.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/mysql_connection.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/mysqlmanager.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/options.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/options.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/priv.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/priv.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/protocol.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/protocol.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/thread_registry.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/thread_registry.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/user_map.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
server-tools/instance-manager/user_map.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/as3ap.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/bench-count-distinct.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/bench-init.pl.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/compare-results.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/copy-db.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/crash-me.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/print-limit-table:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/run-all-tests.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/server-cfg.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-ATIS.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-alter-table.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-big-tables.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-connect.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-create.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-insert.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-select.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-transactions.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-bench/test-wisconsin.sh:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-common/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql-common/my_time.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/client_settings.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/custom_conf.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/derror.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/des_key_file.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/discover.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/field.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/field.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/filesort.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/frm_crypt.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/gen_lex_hash.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/gstream.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_berkeley.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_berkeley.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_heap.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_heap.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_myisam.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_myisam.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_myisammrg.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/ha_myisammrg.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/handler.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/handler.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/hash_filo.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/hash_filo.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/hostname.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/init.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_buff.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_cmpfunc.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_create.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_func.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_geofunc.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_strfunc.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_sum.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_timefunc.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_uniq.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/item_uniq.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/key.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/lex_symbol.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/lock.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/log_event.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/matherr.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/mf_iocache.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/my_decimal.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/my_decimal.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/my_lock.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/opt_range.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/opt_range.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/password.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/procedure.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/procedure.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/protocol.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/records.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/repl_failsafe.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/repl_failsafe.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/set_var.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/spatial.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_acl.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_analyse.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_analyse.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_base.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_cache.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_class.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_class.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_client.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_crypt.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_crypt.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_cursor.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_cursor.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_do.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_insert.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_lex.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_lex.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_list.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_load.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_manager.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_manager.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_map.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_map.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_olap.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_rename.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_repl.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_repl.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_select.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_select.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_test.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_udf.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/sql_update.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/structs.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/table.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/table.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/thr_malloc.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/time.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/unireg.cc:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
sql/unireg.h:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/bmove_upp-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/macros.asm:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/ptr_cmp.asm:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strappend-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strend-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strings.asm:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strinstr-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strmake-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strmov-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strnmov-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strstr-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strxmov-sparc.s:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
strings/strxmov.asm:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
support-files/MacOSX/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
support-files/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
tests/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
tests/deadlock_test.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
tools/mysqlmanager.c:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
vio/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
win/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
innobase/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
innobase/ibuf/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
innobase/include/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
innobase/os/Makefile.am:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header
ndb/include/Makefile.am:
  Added GPL copyright text
ndb/src/common/debugger/Makefile.am:
  Added GPL copyright text
ndb/src/common/debugger/signaldata/Makefile.am:
  Added GPL copyright text
ndb/src/common/logger/Makefile.am:
  Added GPL copyright text
ndb/src/common/mgmcommon/Makefile.am:
  Added GPL copyright text
ndb/src/common/transporter/Makefile.am:
  Added GPL copyright text
ndb/src/common/util/Makefile.am:
  Added GPL copyright text
ndb/src/cw/cpcd/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/backup/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/cmvmi/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbacc/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbdict/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbdih/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dblqh/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbtc/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbtup/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbtux/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/dbutil/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/ndbcntr/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/ndbfs/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/qmgr/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/suma/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/blocks/trix/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/error/Makefile.am:
  Added GPL copyright text
ndb/src/kernel/vm/Makefile.am:
  Added GPL copyright text
ndb/src/mgmapi/Makefile.am:
  Added GPL copyright text
ndb/src/mgmclient/Makefile.am:
  Added GPL copyright text
ndb/src/mgmsrv/Makefile.am:
  Added GPL copyright text
ndb/src/ndbapi/Makefile.am:
  Added GPL copyright text
ndb/test/ndbapi/Makefile.am:
  Added GPL copyright text
ndb/test/ndbapi/bank/Makefile.am:
  Added GPL copyright text
ndb/test/run-test/Makefile.am:
  Added GPL copyright text
ndb/test/src/Makefile.am:
  Added GPL copyright text
ndb/test/tools/Makefile.am:
  Added GPL copyright text
ndb/tools/Makefile.am:
  Added GPL copyright text
scripts/make_binary_distribution.sh:
  Added GPL copyright text
scripts/make_sharedlib_distribution.sh:
  Added GPL copyright text
scripts/make_win_bin_dist:
  Added GPL copyright text
scripts/make_win_src_distribution.sh:
  Added GPL copyright text
scripts/mysql_convert_table_format.sh:
  Added GPL copyright text
scripts/mysql_explain_log.sh:
  Added GPL copyright text
scripts/mysql_find_rows.sh:
  Added GPL copyright text
scripts/mysql_fix_privilege_tables.sh:
  Added GPL copyright text
scripts/mysql_zap.sh:
  Added GPL copyright text
scripts/mysqlbug.sh:
  Added GPL copyright text
BitKeeper/deleted/.del-colspec-fix.pl:
  Delete: Docs/Support/colspec-fix.pl
BitKeeper/deleted/.del-docbook-fixup.pl:
  Delete: Docs/Support/docbook-fixup.pl
BitKeeper/deleted/.del-docbook-prefix.pl:
  Delete: Docs/Support/docbook-prefix.pl
BitKeeper/deleted/.del-docbook-split:
  Delete: Docs/Support/docbook-split
BitKeeper/deleted/.del-make-docbook:
  Delete: Docs/Support/make-docbook
BitKeeper/deleted/.del-make-makefile:
  Delete: Docs/Support/make-makefile
BitKeeper/deleted/.del-test-make-manual-de:
  Delete: Docs/Support/test-make-manual-de
BitKeeper/deleted/.del-test-make-manual:
  Delete: Docs/Support/test-make-manual
BitKeeper/deleted/.del-xwf:
  Delete: Docs/Support/xwf
Makefile.am:
  Don't update the files from BitKeeper
extra/yassl/Makefile.am:
  Don't update the files from BitKeeper
extra/yassl/taocrypt/Makefile.am:
  Don't update the files from BitKeeper
extra/yassl/taocrypt/benchmark/Makefile.am:
  Don't update the files from BitKeeper
extra/yassl/taocrypt/test/Makefile.am:
  Don't update the files from BitKeeper
innobase/btr/Makefile.am:
  Don't update the files from BitKeeper
innobase/buf/Makefile.am:
  Don't update the files from BitKeeper
innobase/data/Makefile.am:
  Don't update the files from BitKeeper
innobase/dict/Makefile.am:
  Don't update the files from BitKeeper
innobase/dyn/Makefile.am:
  Don't update the files from BitKeeper
innobase/eval/Makefile.am:
  Don't update the files from BitKeeper
innobase/fil/Makefile.am:
  Don't update the files from BitKeeper
innobase/fsp/Makefile.am:
  Don't update the files from BitKeeper
innobase/fut/Makefile.am:
  Don't update the files from BitKeeper
innobase/ha/Makefile.am:
  Don't update the files from BitKeeper
innobase/lock/Makefile.am:
  Don't update the files from BitKeeper
innobase/log/Makefile.am:
  Don't update the files from BitKeeper
innobase/mach/Makefile.am:
  Don't update the files from BitKeeper
innobase/mem/Makefile.am:
  Don't update the files from BitKeeper
innobase/mtr/Makefile.am:
  Don't update the files from BitKeeper
innobase/page/Makefile.am:
  Don't update the files from BitKeeper
innobase/pars/Makefile.am:
  Don't update the files from BitKeeper
innobase/que/Makefile.am:
  Don't update the files from BitKeeper
innobase/read/Makefile.am:
  Don't update the files from BitKeeper
innobase/rem/Makefile.am:
  Don't update the files from BitKeeper
innobase/row/Makefile.am:
  Don't update the files from BitKeeper
innobase/srv/Makefile.am:
  Don't update the files from BitKeeper
innobase/sync/Makefile.am:
  Don't update the files from BitKeeper
innobase/thr/Makefile.am:
  Don't update the files from BitKeeper
innobase/trx/Makefile.am:
  Don't update the files from BitKeeper
innobase/usr/Makefile.am:
  Don't update the files from BitKeeper
innobase/ut/Makefile.am:
  Don't update the files from BitKeeper
libmysql/Makefile.am:
  Don't update the files from BitKeeper
libmysql_r/Makefile.am:
  Don't update the files from BitKeeper
ndb/Makefile.am:
  Don't update the files from BitKeeper
ndb/docs/Makefile.am:
  Don't update the files from BitKeeper
ndb/src/Makefile.am:
  Don't update the files from BitKeeper
ndb/src/common/Makefile.am:
  Don't update the files from BitKeeper
ndb/src/common/portlib/Makefile.am:
  Don't update the files from BitKeeper
ndb/src/cw/Makefile.am:
  Don't update the files from BitKeeper
ndb/src/kernel/blocks/Makefile.am:
  Don't update the files from BitKeeper
ndb/test/Makefile.am:
  Don't update the files from BitKeeper
pstack/aout/Makefile.am:
  Don't update the files from BitKeeper
server-tools/Makefile.am:
  Don't update the files from BitKeeper
zlib/Makefile.am:
  Don't update the files from BitKeeper
ndb/config/common.mk.am:
  Added GPL copyright text
ndb/config/type_kernel.mk.am:
  Added GPL copyright text
ndb/config/type_mgmapiclient.mk.am:
  Added GPL copyright text
ndb/config/type_ndbapi.mk.am:
  Added GPL copyright text
ndb/config/type_ndbapiclient.mk.am:
  Added GPL copyright text
ndb/config/type_ndbapitest.mk.am:
  Added GPL copyright text
ndb/config/type_ndbapitools.mk.am:
  Added GPL copyright text
ndb/config/type_util.mk.am:
  Added GPL copyright text
ndb/include/kernel/kernel_config_parameters.h:
  Added GPL copyright text
ndb/include/kernel/signaldata/CntrStart.hpp:
  Added GPL copyright text
ndb/include/kernel/signaldata/ReadConfig.hpp:
  Added GPL copyright text
ndb/include/kernel/signaldata/UpgradeStartup.hpp:
  Added GPL copyright text
ndb/include/mgmapi/mgmapi_config_parameters.h:
  Added GPL copyright text
ndb/include/mgmapi/mgmapi_config_parameters_debug.h:
  Added GPL copyright text
ndb/include/ndb_net.h:
  Added GPL copyright text
ndb/include/util/ConfigValues.hpp:
  Added GPL copyright text
ndb/src/common/debugger/signaldata/CntrStart.cpp:
  Added GPL copyright text
ndb/src/common/debugger/signaldata/ReadNodesConf.cpp:
  Added GPL copyright text
ndb/src/common/debugger/signaldata/print.awk:
  Added GPL copyright text
ndb/src/common/util/Bitmask.cpp:
  Added GPL copyright text
ndb/src/common/util/ConfigValues.cpp:
  Added GPL copyright text
ndb/src/common/util/new.cpp:
  Added GPL copyright text
ndb/src/common/util/testConfigValues/testConfigValues.cpp:
  Added GPL copyright text
ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl:
  Added GPL copyright text
ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl:
  Added GPL copyright text
ndb/src/mgmapi/mgmapi_configuration.cpp:
  Added GPL copyright text
2006-12-31 01:02:27 +01:00

546 lines
15 KiB
C++

/* Copyright (C) 2000-2006 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* Functions for easy reading of records, possible through a cache */
#include "mysql_priv.h"
static int rr_quick(READ_RECORD *info);
int rr_sequential(READ_RECORD *info);
static int rr_from_tempfile(READ_RECORD *info);
static int rr_unpack_from_tempfile(READ_RECORD *info);
static int rr_unpack_from_buffer(READ_RECORD *info);
static int rr_from_pointers(READ_RECORD *info);
static int rr_from_cache(READ_RECORD *info);
static int init_rr_cache(THD *thd, READ_RECORD *info);
static int rr_cmp(uchar *a,uchar *b);
static int rr_index_first(READ_RECORD *info);
static int rr_index(READ_RECORD *info);
/*
Initialize READ_RECORD structure to perform full index scan
SYNOPSIS
init_read_record_idx()
info READ_RECORD structure to initialize.
thd Thread handle
table Table to be accessed
print_error If true, call table->file->print_error() if an error
occurs (except for end-of-records error)
idx index to scan
DESCRIPTION
Initialize READ_RECORD structure to perform full index scan (in forward
direction) using read_record.read_record() interface.
This function has been added at late stage and is used only by
UPDATE/DELETE. Other statements perform index scans using
join_read_first/next functions.
*/
void init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table,
bool print_error, uint idx)
{
bzero((char*) info,sizeof(*info));
info->table= table;
info->file= table->file;
info->record= table->record[0];
info->print_error= print_error;
table->status=0; /* And it's always found */
if (!table->file->inited)
{
table->file->ha_index_init(idx);
table->file->extra(HA_EXTRA_RETRIEVE_PRIMARY_KEY);
}
/* read_record will be changed to rr_index in rr_index_first */
info->read_record= rr_index_first;
}
/* init struct for read with info->read_record */
void init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
SQL_SELECT *select,
int use_record_cache, bool print_error)
{
IO_CACHE *tempfile;
DBUG_ENTER("init_read_record");
bzero((char*) info,sizeof(*info));
info->thd=thd;
info->table=table;
info->file= table->file;
info->forms= &info->table; /* Only one table */
if (table->sort.addon_field)
{
info->rec_buf= table->sort.addon_buf;
info->ref_length= table->sort.addon_length;
}
else
{
info->record= table->record[0];
info->ref_length= table->file->ref_length;
}
info->select=select;
info->print_error=print_error;
info->ignore_not_found_rows= 0;
table->status=0; /* And it's always found */
if (select && my_b_inited(&select->file))
tempfile= &select->file;
else
tempfile= table->sort.io_cache;
if (tempfile && my_b_inited(tempfile)) // Test if ref-records was used
{
DBUG_PRINT("info",("using rr_from_tempfile"));
info->read_record= (table->sort.addon_field ?
rr_unpack_from_tempfile : rr_from_tempfile);
info->io_cache=tempfile;
reinit_io_cache(info->io_cache,READ_CACHE,0L,0,0);
info->ref_pos=table->file->ref;
if (!table->file->inited)
table->file->ha_rnd_init(0);
/*
table->sort.addon_field is checked because if we use addon fields,
it doesn't make sense to use cache - we don't read from the table
and table->sort.io_cache is read sequentially
*/
if (!table->sort.addon_field &&
! (specialflag & SPECIAL_SAFE_MODE) &&
thd->variables.read_rnd_buff_size &&
!(table->file->table_flags() & HA_FAST_KEY_READ) &&
(table->db_stat & HA_READ_ONLY ||
table->reginfo.lock_type <= TL_READ_NO_INSERT) &&
(ulonglong) table->s->reclength* (table->file->records+
table->file->deleted) >
(ulonglong) MIN_FILE_LENGTH_TO_USE_ROW_CACHE &&
info->io_cache->end_of_file/info->ref_length * table->s->reclength >
(my_off_t) MIN_ROWS_TO_USE_TABLE_CACHE &&
!table->s->blob_fields &&
info->ref_length <= MAX_REFLENGTH)
{
if (! init_rr_cache(thd, info))
{
DBUG_PRINT("info",("using rr_from_cache"));
info->read_record=rr_from_cache;
}
}
}
else if (select && select->quick)
{
DBUG_PRINT("info",("using rr_quick"));
info->read_record=rr_quick;
}
else if (table->sort.record_pointers)
{
DBUG_PRINT("info",("using record_pointers"));
table->file->ha_rnd_init(0);
info->cache_pos=table->sort.record_pointers;
info->cache_end=info->cache_pos+
table->sort.found_records*info->ref_length;
info->read_record= (table->sort.addon_field ?
rr_unpack_from_buffer : rr_from_pointers);
}
else
{
DBUG_PRINT("info",("using rr_sequential"));
info->read_record=rr_sequential;
table->file->ha_rnd_init(1);
/* We can use record cache if we don't update dynamic length tables */
if (!table->no_cache &&
(use_record_cache > 0 ||
(int) table->reginfo.lock_type <= (int) TL_READ_HIGH_PRIORITY ||
!(table->s->db_options_in_use & HA_OPTION_PACK_RECORD) ||
(use_record_cache < 0 &&
!(table->file->table_flags() & HA_NOT_DELETE_WITH_CACHE))))
VOID(table->file->extra_opt(HA_EXTRA_CACHE,
thd->variables.read_buff_size));
}
/* Condition pushdown to storage engine */
if (thd->variables.engine_condition_pushdown &&
select && select->cond &&
(select->cond->used_tables() & table->map) &&
!table->file->pushed_cond)
table->file->cond_push(select->cond);
DBUG_VOID_RETURN;
} /* init_read_record */
void end_read_record(READ_RECORD *info)
{ /* free cache if used */
if (info->cache)
{
my_free_lock((char*) info->cache,MYF(0));
info->cache=0;
}
if (info->table)
{
filesort_free_buffers(info->table,0);
(void) info->file->extra(HA_EXTRA_NO_CACHE);
if (info->read_record != rr_quick) // otherwise quick_range does it
(void) info->file->ha_index_or_rnd_end();
info->table=0;
}
}
static int rr_handle_error(READ_RECORD *info, int error)
{
if (error == HA_ERR_END_OF_FILE)
error= -1;
else
{
if (info->print_error)
info->table->file->print_error(error, MYF(0));
if (error < 0) // Fix negative BDB errno
error= 1;
}
return error;
}
/* Read a record from head-database */
static int rr_quick(READ_RECORD *info)
{
int tmp;
while ((tmp= info->select->quick->get_next()))
{
if (info->thd->killed)
{
my_error(ER_SERVER_SHUTDOWN, MYF(0));
return 1;
}
if (tmp != HA_ERR_RECORD_DELETED)
{
tmp= rr_handle_error(info, tmp);
break;
}
}
return tmp;
}
/*
Reads first row in an index scan
SYNOPSIS
rr_index_first()
info Scan info
RETURN
0 Ok
-1 End of records
1 Error
*/
static int rr_index_first(READ_RECORD *info)
{
int tmp= info->file->index_first(info->record);
info->read_record= rr_index;
if (tmp)
tmp= rr_handle_error(info, tmp);
return tmp;
}
/*
Reads index sequentially after first row
SYNOPSIS
rr_index()
info Scan info
DESCRIPTION
Read the next index record (in forward direction) and translate return
value.
RETURN
0 Ok
-1 End of records
1 Error
*/
static int rr_index(READ_RECORD *info)
{
int tmp= info->file->index_next(info->record);
if (tmp)
tmp= rr_handle_error(info, tmp);
return tmp;
}
int rr_sequential(READ_RECORD *info)
{
int tmp;
while ((tmp=info->file->rnd_next(info->record)))
{
if (info->thd->killed)
{
info->thd->send_kill_message();
return 1;
}
/*
rnd_next can return RECORD_DELETED for MyISAM when one thread is
reading and another deleting without locks.
*/
if (tmp != HA_ERR_RECORD_DELETED)
{
tmp= rr_handle_error(info, tmp);
break;
}
}
return tmp;
}
static int rr_from_tempfile(READ_RECORD *info)
{
int tmp;
for (;;)
{
if (my_b_read(info->io_cache,info->ref_pos,info->ref_length))
return -1; /* End of file */
if (!(tmp=info->file->rnd_pos(info->record,info->ref_pos)))
break;
/* The following is extremely unlikely to happen */
if (tmp == HA_ERR_RECORD_DELETED ||
(tmp == HA_ERR_KEY_NOT_FOUND && info->ignore_not_found_rows))
continue;
tmp= rr_handle_error(info, tmp);
break;
}
return tmp;
} /* rr_from_tempfile */
/*
Read a result set record from a temporary file after sorting
SYNOPSIS
rr_unpack_from_tempfile()
info Reference to the context including record descriptors
DESCRIPTION
The function first reads the next sorted record from the temporary file.
into a buffer. If a success it calls a callback function that unpacks
the fields values use in the result set from this buffer into their
positions in the regular record buffer.
RETURN
0 - Record successfully read.
-1 - There is no record to be read anymore.
*/
static int rr_unpack_from_tempfile(READ_RECORD *info)
{
if (my_b_read(info->io_cache, info->rec_buf, info->ref_length))
return -1;
TABLE *table= info->table;
(*table->sort.unpack)(table->sort.addon_field, info->rec_buf);
return 0;
}
static int rr_from_pointers(READ_RECORD *info)
{
int tmp;
byte *cache_pos;
for (;;)
{
if (info->cache_pos == info->cache_end)
return -1; /* End of file */
cache_pos= info->cache_pos;
info->cache_pos+= info->ref_length;
if (!(tmp=info->file->rnd_pos(info->record,cache_pos)))
break;
/* The following is extremely unlikely to happen */
if (tmp == HA_ERR_RECORD_DELETED ||
(tmp == HA_ERR_KEY_NOT_FOUND && info->ignore_not_found_rows))
continue;
tmp= rr_handle_error(info, tmp);
break;
}
return tmp;
}
/*
Read a result set record from a buffer after sorting
SYNOPSIS
rr_unpack_from_buffer()
info Reference to the context including record descriptors
DESCRIPTION
The function first reads the next sorted record from the sort buffer.
If a success it calls a callback function that unpacks
the fields values use in the result set from this buffer into their
positions in the regular record buffer.
RETURN
0 - Record successfully read.
-1 - There is no record to be read anymore.
*/
static int rr_unpack_from_buffer(READ_RECORD *info)
{
if (info->cache_pos == info->cache_end)
return -1; /* End of buffer */
TABLE *table= info->table;
(*table->sort.unpack)(table->sort.addon_field, info->cache_pos);
info->cache_pos+= info->ref_length;
return 0;
}
/* cacheing of records from a database */
static int init_rr_cache(THD *thd, READ_RECORD *info)
{
uint rec_cache_size;
DBUG_ENTER("init_rr_cache");
info->struct_length= 3+MAX_REFLENGTH;
info->reclength= ALIGN_SIZE(info->table->s->reclength+1);
if (info->reclength < info->struct_length)
info->reclength= ALIGN_SIZE(info->struct_length);
info->error_offset= info->table->s->reclength;
info->cache_records= (thd->variables.read_rnd_buff_size /
(info->reclength+info->struct_length));
rec_cache_size= info->cache_records*info->reclength;
info->rec_cache_size= info->cache_records*info->ref_length;
// We have to allocate one more byte to use uint3korr (see comments for it)
if (info->cache_records <= 2 ||
!(info->cache=(byte*) my_malloc_lock(rec_cache_size+info->cache_records*
info->struct_length+1,
MYF(0))))
DBUG_RETURN(1);
#ifdef HAVE_purify
// Avoid warnings in qsort
bzero(info->cache,rec_cache_size+info->cache_records* info->struct_length+1);
#endif
DBUG_PRINT("info",("Allocated buffert for %d records",info->cache_records));
info->read_positions=info->cache+rec_cache_size;
info->cache_pos=info->cache_end=info->cache;
DBUG_RETURN(0);
} /* init_rr_cache */
static int rr_from_cache(READ_RECORD *info)
{
reg1 uint i;
ulong length;
my_off_t rest_of_file;
int16 error;
byte *position,*ref_position,*record_pos;
ulong record;
for (;;)
{
if (info->cache_pos != info->cache_end)
{
if (info->cache_pos[info->error_offset])
{
shortget(error,info->cache_pos);
if (info->print_error)
info->table->file->print_error(error,MYF(0));
}
else
{
error=0;
memcpy(info->record,info->cache_pos,
(size_t) info->table->s->reclength);
}
info->cache_pos+=info->reclength;
return ((int) error);
}
length=info->rec_cache_size;
rest_of_file=info->io_cache->end_of_file - my_b_tell(info->io_cache);
if ((my_off_t) length > rest_of_file)
length= (ulong) rest_of_file;
if (!length || my_b_read(info->io_cache,info->cache,length))
{
DBUG_PRINT("info",("Found end of file"));
return -1; /* End of file */
}
length/=info->ref_length;
position=info->cache;
ref_position=info->read_positions;
for (i=0 ; i < length ; i++,position+=info->ref_length)
{
memcpy(ref_position,position,(size_s) info->ref_length);
ref_position+=MAX_REFLENGTH;
int3store(ref_position,(long) i);
ref_position+=3;
}
qsort(info->read_positions,length,info->struct_length,(qsort_cmp) rr_cmp);
position=info->read_positions;
for (i=0 ; i < length ; i++)
{
memcpy(info->ref_pos,position,(size_s) info->ref_length);
position+=MAX_REFLENGTH;
record=uint3korr(position);
position+=3;
record_pos=info->cache+record*info->reclength;
if ((error=(int16) info->file->rnd_pos(record_pos,info->ref_pos)))
{
record_pos[info->error_offset]=1;
shortstore(record_pos,error);
DBUG_PRINT("error",("Got error: %d:%d when reading row",
my_errno, error));
}
else
record_pos[info->error_offset]=0;
}
info->cache_end=(info->cache_pos=info->cache)+length*info->reclength;
}
} /* rr_from_cache */
static int rr_cmp(uchar *a,uchar *b)
{
if (a[0] != b[0])
return (int) a[0] - (int) b[0];
if (a[1] != b[1])
return (int) a[1] - (int) b[1];
if (a[2] != b[2])
return (int) a[2] - (int) b[2];
#if MAX_REFLENGTH == 4
return (int) a[3] - (int) b[3];
#else
if (a[3] != b[3])
return (int) a[3] - (int) b[3];
if (a[4] != b[4])
return (int) a[4] - (int) b[4];
if (a[5] != b[5])
return (int) a[1] - (int) b[5];
if (a[6] != b[6])
return (int) a[6] - (int) b[6];
return (int) a[7] - (int) b[7];
#endif
}