mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	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
		
			
				
	
	
		
			719 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			719 lines
		
	
	
		
			20 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 to handle date and time */
 | 
						|
 | 
						|
#include "mysql_priv.h"
 | 
						|
#include <m_ctype.h>
 | 
						|
 | 
						|
 | 
						|
	/* Some functions to calculate dates */
 | 
						|
 | 
						|
#ifndef TESTTIME
 | 
						|
	/* Calc weekday from daynr */
 | 
						|
	/* Returns 0 for monday, 1 for tuesday .... */
 | 
						|
 | 
						|
int calc_weekday(long daynr,bool sunday_first_day_of_week)
 | 
						|
{
 | 
						|
  DBUG_ENTER("calc_weekday");
 | 
						|
  DBUG_RETURN ((int) ((daynr + 5L + (sunday_first_day_of_week ? 1L : 0L)) % 7));
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
  The bits in week_format has the following meaning:
 | 
						|
   WEEK_MONDAY_FIRST (0)  If not set	Sunday is first day of week
 | 
						|
      		   	  If set	Monday is first day of week
 | 
						|
   WEEK_YEAR (1)	  If not set	Week is in range 0-53
 | 
						|
 | 
						|
   	Week 0 is returned for the the last week of the previous year (for
 | 
						|
	a date at start of january) In this case one can get 53 for the
 | 
						|
	first week of next year.  This flag ensures that the week is
 | 
						|
	relevant for the given year. Note that this flag is only
 | 
						|
	releveant if WEEK_JANUARY is not set.
 | 
						|
 | 
						|
			  If set	 Week is in range 1-53.
 | 
						|
 | 
						|
	In this case one may get week 53 for a date in January (when
 | 
						|
	the week is that last week of previous year) and week 1 for a
 | 
						|
	date in December.
 | 
						|
 | 
						|
  WEEK_FIRST_WEEKDAY (2)  If not set	Weeks are numbered according
 | 
						|
			   		to ISO 8601:1988
 | 
						|
			  If set	The week that contains the first
 | 
						|
					'first-day-of-week' is week 1.
 | 
						|
	
 | 
						|
	ISO 8601:1988 means that if the week containing January 1 has
 | 
						|
	four or more days in the new year, then it is week 1;
 | 
						|
	Otherwise it is the last week of the previous year, and the
 | 
						|
	next week is week 1.
 | 
						|
*/
 | 
						|
 | 
						|
uint calc_week(TIME *l_time, uint week_behaviour, uint *year)
 | 
						|
{
 | 
						|
  uint days;
 | 
						|
  ulong daynr=calc_daynr(l_time->year,l_time->month,l_time->day);
 | 
						|
  ulong first_daynr=calc_daynr(l_time->year,1,1);
 | 
						|
  bool monday_first= test(week_behaviour & WEEK_MONDAY_FIRST);
 | 
						|
  bool week_year= test(week_behaviour & WEEK_YEAR);
 | 
						|
  bool first_weekday= test(week_behaviour & WEEK_FIRST_WEEKDAY);
 | 
						|
 | 
						|
  uint weekday=calc_weekday(first_daynr, !monday_first);
 | 
						|
  *year=l_time->year;
 | 
						|
 | 
						|
  if (l_time->month == 1 && l_time->day <= 7-weekday)
 | 
						|
  {
 | 
						|
    if (!week_year && 
 | 
						|
	(first_weekday && weekday != 0 ||
 | 
						|
	 !first_weekday && weekday >= 4))
 | 
						|
      return 0;
 | 
						|
    week_year= 1;
 | 
						|
    (*year)--;
 | 
						|
    first_daynr-= (days=calc_days_in_year(*year));
 | 
						|
    weekday= (weekday + 53*7- days) % 7;
 | 
						|
  }
 | 
						|
 | 
						|
  if ((first_weekday && weekday != 0) ||
 | 
						|
      (!first_weekday && weekday >= 4))
 | 
						|
    days= daynr - (first_daynr+ (7-weekday));
 | 
						|
  else
 | 
						|
    days= daynr - (first_daynr - weekday);
 | 
						|
 | 
						|
  if (week_year && days >= 52*7)
 | 
						|
  {
 | 
						|
    weekday= (weekday + calc_days_in_year(*year)) % 7;
 | 
						|
    if (!first_weekday && weekday < 4 ||
 | 
						|
	first_weekday && weekday == 0)
 | 
						|
    {
 | 
						|
      (*year)++;
 | 
						|
      return 1;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  return days/7+1;
 | 
						|
}
 | 
						|
 | 
						|
	/* Change a daynr to year, month and day */
 | 
						|
	/* Daynr 0 is returned as date 00.00.00 */
 | 
						|
 | 
						|
void get_date_from_daynr(long daynr,uint *ret_year,uint *ret_month,
 | 
						|
			 uint *ret_day)
 | 
						|
{
 | 
						|
  uint year,temp,leap_day,day_of_year,days_in_year;
 | 
						|
  uchar *month_pos;
 | 
						|
  DBUG_ENTER("get_date_from_daynr");
 | 
						|
 | 
						|
  if (daynr <= 365L || daynr >= 3652500)
 | 
						|
  {						/* Fix if wrong daynr */
 | 
						|
    *ret_year= *ret_month = *ret_day =0;
 | 
						|
  }
 | 
						|
  else
 | 
						|
  {
 | 
						|
    year= (uint) (daynr*100 / 36525L);
 | 
						|
    temp=(((year-1)/100+1)*3)/4;
 | 
						|
    day_of_year=(uint) (daynr - (long) year * 365L) - (year-1)/4 +temp;
 | 
						|
    while (day_of_year > (days_in_year= calc_days_in_year(year)))
 | 
						|
    {
 | 
						|
      day_of_year-=days_in_year;
 | 
						|
      (year)++;
 | 
						|
    }
 | 
						|
    leap_day=0;
 | 
						|
    if (days_in_year == 366)
 | 
						|
    {
 | 
						|
      if (day_of_year > 31+28)
 | 
						|
      {
 | 
						|
	day_of_year--;
 | 
						|
	if (day_of_year == 31+28)
 | 
						|
	  leap_day=1;		/* Handle leapyears leapday */
 | 
						|
      }
 | 
						|
    }
 | 
						|
    *ret_month=1;
 | 
						|
    for (month_pos= days_in_month ;
 | 
						|
	 day_of_year > (uint) *month_pos ;
 | 
						|
	 day_of_year-= *(month_pos++), (*ret_month)++)
 | 
						|
      ;
 | 
						|
    *ret_year=year;
 | 
						|
    *ret_day=day_of_year+leap_day;
 | 
						|
  }
 | 
						|
  DBUG_VOID_RETURN;
 | 
						|
}
 | 
						|
 | 
						|
	/* Functions to handle periods */
 | 
						|
 | 
						|
ulong convert_period_to_month(ulong period)
 | 
						|
{
 | 
						|
  ulong a,b;
 | 
						|
  if (period == 0)
 | 
						|
    return 0L;
 | 
						|
  if ((a=period/100) < YY_PART_YEAR)
 | 
						|
    a+=2000;
 | 
						|
  else if (a < 100)
 | 
						|
    a+=1900;
 | 
						|
  b=period%100;
 | 
						|
  return a*12+b-1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
ulong convert_month_to_period(ulong month)
 | 
						|
{
 | 
						|
  ulong year;
 | 
						|
  if (month == 0L)
 | 
						|
    return 0L;
 | 
						|
  if ((year=month/12) < 100)
 | 
						|
  {
 | 
						|
    year+=(year < YY_PART_YEAR) ? 2000 : 1900;
 | 
						|
  }
 | 
						|
  return year*100+month%12+1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Convert a timestamp string to a TIME value and produce a warning 
 | 
						|
  if string was truncated during conversion.
 | 
						|
 | 
						|
  NOTE
 | 
						|
    See description of str_to_datetime() for more information.
 | 
						|
*/
 | 
						|
 | 
						|
timestamp_type
 | 
						|
str_to_datetime_with_warn(const char *str, uint length, TIME *l_time,
 | 
						|
                          uint flags)
 | 
						|
{
 | 
						|
  int was_cut;
 | 
						|
  THD *thd= current_thd;
 | 
						|
  timestamp_type ts_type;
 | 
						|
  
 | 
						|
  ts_type= str_to_datetime(str, length, l_time,
 | 
						|
                           (flags | (thd->variables.sql_mode &
 | 
						|
                                     (MODE_INVALID_DATES |
 | 
						|
                                      MODE_NO_ZERO_DATE))),
 | 
						|
                           &was_cut);
 | 
						|
  if (was_cut || ts_type <= MYSQL_TIMESTAMP_ERROR)
 | 
						|
    make_truncated_value_warning(current_thd, str, length, ts_type,  NullS);
 | 
						|
  return ts_type;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Convert a datetime from broken-down TIME representation to corresponding 
 | 
						|
  TIMESTAMP value.
 | 
						|
 | 
						|
  SYNOPSIS
 | 
						|
    TIME_to_timestamp()
 | 
						|
      thd             - current thread
 | 
						|
      t               - datetime in broken-down representation, 
 | 
						|
      in_dst_time_gap - pointer to bool which is set to true if t represents
 | 
						|
                        value which doesn't exists (falls into the spring 
 | 
						|
                        time-gap) or to false otherwise.
 | 
						|
   
 | 
						|
  RETURN
 | 
						|
     Number seconds in UTC since start of Unix Epoch corresponding to t.
 | 
						|
     0 - t contains datetime value which is out of TIMESTAMP range.
 | 
						|
     
 | 
						|
*/
 | 
						|
my_time_t TIME_to_timestamp(THD *thd, const TIME *t, my_bool *in_dst_time_gap)
 | 
						|
{
 | 
						|
  my_time_t timestamp;
 | 
						|
 | 
						|
  *in_dst_time_gap= 0;
 | 
						|
 | 
						|
  timestamp= thd->variables.time_zone->TIME_to_gmt_sec(t, in_dst_time_gap);
 | 
						|
  if (timestamp)
 | 
						|
  {
 | 
						|
    thd->time_zone_used= 1;
 | 
						|
    return timestamp;
 | 
						|
  }
 | 
						|
 | 
						|
  /* If we are here we have range error. */
 | 
						|
  return(0);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Convert a time string to a TIME struct and produce a warning
 | 
						|
  if string was cut during conversion.
 | 
						|
 | 
						|
  NOTE
 | 
						|
    See str_to_time() for more info.
 | 
						|
*/
 | 
						|
bool
 | 
						|
str_to_time_with_warn(const char *str, uint length, TIME *l_time)
 | 
						|
{
 | 
						|
  int warning;
 | 
						|
  bool ret_val= str_to_time(str, length, l_time, &warning);
 | 
						|
  if (ret_val || warning)
 | 
						|
    make_truncated_value_warning(current_thd, str, length,
 | 
						|
                                 MYSQL_TIMESTAMP_TIME, NullS);
 | 
						|
  return ret_val;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Convert a system time structure to TIME
 | 
						|
*/
 | 
						|
 | 
						|
void localtime_to_TIME(TIME *to, struct tm *from)
 | 
						|
{
 | 
						|
  to->neg=0;
 | 
						|
  to->second_part=0;
 | 
						|
  to->year=	(int) ((from->tm_year+1900) % 10000);
 | 
						|
  to->month=	(int) from->tm_mon+1;
 | 
						|
  to->day=	(int) from->tm_mday;
 | 
						|
  to->hour=	(int) from->tm_hour;
 | 
						|
  to->minute=	(int) from->tm_min;
 | 
						|
  to->second=   (int) from->tm_sec;
 | 
						|
}
 | 
						|
 | 
						|
void calc_time_from_sec(TIME *to, long seconds, long microseconds)
 | 
						|
{
 | 
						|
  long t_seconds;
 | 
						|
  to->hour= seconds/3600L;
 | 
						|
  t_seconds= seconds%3600L;
 | 
						|
  to->minute= t_seconds/60L;
 | 
						|
  to->second= t_seconds%60L;
 | 
						|
  to->second_part= microseconds;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Parse a format string specification
 | 
						|
 | 
						|
  SYNOPSIS
 | 
						|
    parse_date_time_format()
 | 
						|
    format_type		Format of string (time, date or datetime)
 | 
						|
    format_str		String to parse
 | 
						|
    format_length	Length of string
 | 
						|
    date_time_format	Format to fill in
 | 
						|
 | 
						|
  NOTES
 | 
						|
    Fills in date_time_format->positions for all date time parts.
 | 
						|
 | 
						|
    positions marks the position for a datetime element in the format string.
 | 
						|
    The position array elements are in the following order:
 | 
						|
    YYYY-DD-MM HH-MM-DD.FFFFFF AM
 | 
						|
    0    1  2  3  4  5  6      7
 | 
						|
 | 
						|
    If positions[0]= 5, it means that year will be the forth element to
 | 
						|
    read from the parsed date string.
 | 
						|
 | 
						|
  RETURN
 | 
						|
    0	ok
 | 
						|
    1	error
 | 
						|
*/
 | 
						|
 | 
						|
bool parse_date_time_format(timestamp_type format_type, 
 | 
						|
			    const char *format, uint format_length,
 | 
						|
			    DATE_TIME_FORMAT *date_time_format)
 | 
						|
{
 | 
						|
  uint offset= 0, separators= 0;
 | 
						|
  const char *ptr= format, *format_str;
 | 
						|
  const char *end= ptr+format_length;
 | 
						|
  uchar *dt_pos= date_time_format->positions;
 | 
						|
  /* need_p is set if we are using AM/PM format */
 | 
						|
  bool need_p= 0, allow_separator= 0;
 | 
						|
  ulong part_map= 0, separator_map= 0;
 | 
						|
  const char *parts[16];
 | 
						|
 | 
						|
  date_time_format->time_separator= 0;
 | 
						|
  date_time_format->flag= 0;			// For future
 | 
						|
 | 
						|
  /*
 | 
						|
    Fill position with 'dummy' arguments to found out if a format tag is
 | 
						|
    used twice (This limit's the format to 255 characters, but this is ok)
 | 
						|
  */
 | 
						|
  dt_pos[0]= dt_pos[1]= dt_pos[2]= dt_pos[3]=
 | 
						|
    dt_pos[4]= dt_pos[5]= dt_pos[6]= dt_pos[7]= 255;
 | 
						|
 | 
						|
  for (; ptr != end; ptr++)
 | 
						|
  {
 | 
						|
    if (*ptr == '%' && ptr+1 != end)
 | 
						|
    {
 | 
						|
      uint position;
 | 
						|
      LINT_INIT(position);
 | 
						|
      switch (*++ptr) {
 | 
						|
      case 'y':					// Year
 | 
						|
      case 'Y':
 | 
						|
	position= 0;
 | 
						|
	break;
 | 
						|
      case 'c':					// Month
 | 
						|
      case 'm':
 | 
						|
	position= 1;
 | 
						|
	break;
 | 
						|
      case 'd':
 | 
						|
      case 'e':
 | 
						|
	position= 2;
 | 
						|
	break;
 | 
						|
      case 'h':
 | 
						|
      case 'I':
 | 
						|
      case 'l':
 | 
						|
	need_p= 1;				// Need AM/PM
 | 
						|
	/* Fall through */
 | 
						|
      case 'k':
 | 
						|
      case 'H':
 | 
						|
	position= 3;
 | 
						|
	break;
 | 
						|
      case 'i':
 | 
						|
	position= 4;
 | 
						|
	break;
 | 
						|
      case 's':
 | 
						|
      case 'S':
 | 
						|
	position= 5;
 | 
						|
	break;
 | 
						|
      case 'f':
 | 
						|
	position= 6;
 | 
						|
	if (dt_pos[5] != offset-1 || ptr[-2] != '.')
 | 
						|
	  return 1;				// Wrong usage of %f
 | 
						|
	break;
 | 
						|
      case 'p':					// AM/PM
 | 
						|
	if (offset == 0)			// Can't be first
 | 
						|
	  return 0;
 | 
						|
	position= 7;
 | 
						|
	break;
 | 
						|
      default:
 | 
						|
	return 1;				// Unknown controll char
 | 
						|
      }
 | 
						|
      if (dt_pos[position] != 255)		// Don't allow same tag twice
 | 
						|
	return 1;
 | 
						|
      parts[position]= ptr-1;
 | 
						|
 | 
						|
      /*
 | 
						|
	If switching from time to date, ensure that all time parts
 | 
						|
	are used
 | 
						|
      */
 | 
						|
      if (part_map && position <= 2 && !(part_map & (1 | 2 | 4)))
 | 
						|
	offset=5;
 | 
						|
      part_map|= (ulong) 1 << position;
 | 
						|
      dt_pos[position]= offset++;
 | 
						|
      allow_separator= 1;
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
      /*
 | 
						|
	Don't allow any characters in format as this could easily confuse
 | 
						|
	the date reader
 | 
						|
      */
 | 
						|
      if (!allow_separator)
 | 
						|
	return 1;				// No separator here
 | 
						|
      allow_separator= 0;			// Don't allow two separators
 | 
						|
      separators++;
 | 
						|
      /* Store in separator_map which parts are punct characters */
 | 
						|
      if (my_ispunct(&my_charset_latin1, *ptr))
 | 
						|
	separator_map|= (ulong) 1 << (offset-1);
 | 
						|
      else if (!my_isspace(&my_charset_latin1, *ptr))
 | 
						|
	return 1;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  /* If no %f, specify it after seconds.  Move %p up, if necessary */
 | 
						|
  if ((part_map & 32) && !(part_map & 64))
 | 
						|
  {
 | 
						|
    dt_pos[6]= dt_pos[5] +1;
 | 
						|
    parts[6]= parts[5];				// For later test in (need_p)
 | 
						|
    if (dt_pos[6] == dt_pos[7])			// Move %p one step up if used
 | 
						|
      dt_pos[7]++;
 | 
						|
  }
 | 
						|
 | 
						|
  /*
 | 
						|
    Check that we have not used a non legal format specifier and that all
 | 
						|
    format specifiers have been used
 | 
						|
 | 
						|
    The last test is to ensure that %p is used if and only if
 | 
						|
    it's needed.
 | 
						|
  */
 | 
						|
  if ((format_type == MYSQL_TIMESTAMP_DATETIME &&
 | 
						|
       !test_all_bits(part_map, (1 | 2 | 4 | 8 | 16 | 32))) ||
 | 
						|
      (format_type == MYSQL_TIMESTAMP_DATE && part_map != (1 | 2 | 4)) ||
 | 
						|
      (format_type == MYSQL_TIMESTAMP_TIME &&
 | 
						|
       !test_all_bits(part_map, 8 | 16 | 32)) ||
 | 
						|
      !allow_separator ||			// %option should be last
 | 
						|
      (need_p && dt_pos[6] +1 != dt_pos[7]) ||
 | 
						|
      (need_p ^ (dt_pos[7] != 255)))
 | 
						|
    return 1;
 | 
						|
 | 
						|
  if (dt_pos[6] != 255)				// If fractional seconds
 | 
						|
  {
 | 
						|
    /* remove fractional seconds from later tests */
 | 
						|
    uint pos= dt_pos[6] -1;
 | 
						|
    /* Remove separator before %f from sep map */
 | 
						|
    separator_map= ((separator_map & ((ulong) (1 << pos)-1)) |
 | 
						|
		    ((separator_map & ~((ulong) (1 << pos)-1)) >> 1));
 | 
						|
    if (part_map & 64)			      
 | 
						|
    {
 | 
						|
      separators--;				// There is always a separator
 | 
						|
      need_p= 1;				// force use of separators
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  /*
 | 
						|
    Remove possible separator before %p from sep_map
 | 
						|
    (This can either be at position 3, 4, 6 or 7) h.m.d.%f %p
 | 
						|
  */
 | 
						|
  if (dt_pos[7] != 255)
 | 
						|
  {
 | 
						|
    if (need_p && parts[7] != parts[6]+2)
 | 
						|
      separators--;
 | 
						|
  }     
 | 
						|
  /*
 | 
						|
    Calculate if %p is in first or last part of the datetime field
 | 
						|
 | 
						|
    At this point we have either %H-%i-%s %p 'year parts' or
 | 
						|
    'year parts' &H-%i-%s %p" as %f was removed above
 | 
						|
  */
 | 
						|
  offset= dt_pos[6] <= 3 ? 3 : 6;
 | 
						|
  /* Remove separator before %p from sep map */
 | 
						|
  separator_map= ((separator_map & ((ulong) (1 << offset)-1)) |
 | 
						|
		  ((separator_map & ~((ulong) (1 << offset)-1)) >> 1));
 | 
						|
 | 
						|
  format_str= 0;
 | 
						|
  switch (format_type) {
 | 
						|
  case MYSQL_TIMESTAMP_DATE:
 | 
						|
    format_str= known_date_time_formats[INTERNAL_FORMAT].date_format;
 | 
						|
    /* fall through */
 | 
						|
  case MYSQL_TIMESTAMP_TIME:
 | 
						|
    if (!format_str)
 | 
						|
      format_str=known_date_time_formats[INTERNAL_FORMAT].time_format;
 | 
						|
 | 
						|
    /*
 | 
						|
      If there is no separators, allow the internal format as we can read
 | 
						|
      this.  If separators are used, they must be between each part
 | 
						|
    */
 | 
						|
    if (format_length == 6 && !need_p &&
 | 
						|
	!my_strnncoll(&my_charset_bin,
 | 
						|
		      (const uchar *) format, 6, 
 | 
						|
		      (const uchar *) format_str, 6))
 | 
						|
      return 0;
 | 
						|
    if (separator_map == (1 | 2))
 | 
						|
    {
 | 
						|
      if (format_type == MYSQL_TIMESTAMP_TIME)
 | 
						|
      {
 | 
						|
	if (*(format+2) != *(format+5))
 | 
						|
	  break;				// Error
 | 
						|
	/* Store the character used for time formats */
 | 
						|
	date_time_format->time_separator= *(format+2);
 | 
						|
      }
 | 
						|
      return 0;
 | 
						|
    }
 | 
						|
    break;
 | 
						|
  case MYSQL_TIMESTAMP_DATETIME:
 | 
						|
    /*
 | 
						|
      If there is no separators, allow the internal format as we can read
 | 
						|
      this.  If separators are used, they must be between each part.
 | 
						|
      Between DATE and TIME we also allow space as separator
 | 
						|
    */
 | 
						|
    if ((format_length == 12 && !need_p &&
 | 
						|
	 !my_strnncoll(&my_charset_bin, 
 | 
						|
		       (const uchar *) format, 12,
 | 
						|
		       (const uchar*) known_date_time_formats[INTERNAL_FORMAT].datetime_format,
 | 
						|
		       12)) ||
 | 
						|
	(separators == 5 && separator_map == (1 | 2 | 8 | 16)))
 | 
						|
      return 0;
 | 
						|
    break;
 | 
						|
  default:
 | 
						|
    DBUG_ASSERT(1);
 | 
						|
    break;
 | 
						|
  }
 | 
						|
  return 1;					// Error
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Create a DATE_TIME_FORMAT object from a format string specification
 | 
						|
 | 
						|
  SYNOPSIS
 | 
						|
    date_time_format_make()
 | 
						|
    format_type		Format to parse (time, date or datetime)
 | 
						|
    format_str		String to parse
 | 
						|
    format_length	Length of string
 | 
						|
 | 
						|
  NOTES
 | 
						|
    The returned object should be freed with my_free()
 | 
						|
 | 
						|
  RETURN
 | 
						|
    NULL ponter:	Error
 | 
						|
    new object
 | 
						|
*/
 | 
						|
 | 
						|
DATE_TIME_FORMAT
 | 
						|
*date_time_format_make(timestamp_type format_type,
 | 
						|
		       const char *format_str, uint format_length)
 | 
						|
{
 | 
						|
  DATE_TIME_FORMAT tmp;
 | 
						|
 | 
						|
  if (format_length && format_length < 255 &&
 | 
						|
      !parse_date_time_format(format_type, format_str,
 | 
						|
			      format_length, &tmp))
 | 
						|
  {
 | 
						|
    tmp.format.str=    (char*) format_str;
 | 
						|
    tmp.format.length= format_length;
 | 
						|
    return date_time_format_copy((THD *)0, &tmp);
 | 
						|
  }
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  Create a copy of a DATE_TIME_FORMAT object
 | 
						|
 | 
						|
  SYNOPSIS
 | 
						|
    date_and_time_format_copy()
 | 
						|
    thd			Set if variable should be allocated in thread mem
 | 
						|
    format		format to copy
 | 
						|
 | 
						|
  NOTES
 | 
						|
    The returned object should be freed with my_free()
 | 
						|
 | 
						|
  RETURN
 | 
						|
    NULL ponter:	Error
 | 
						|
    new object
 | 
						|
*/
 | 
						|
 | 
						|
DATE_TIME_FORMAT *date_time_format_copy(THD *thd, DATE_TIME_FORMAT *format)
 | 
						|
{
 | 
						|
  DATE_TIME_FORMAT *new_format;
 | 
						|
  ulong length= sizeof(*format) + format->format.length + 1;
 | 
						|
 | 
						|
  if (thd)
 | 
						|
    new_format= (DATE_TIME_FORMAT *) thd->alloc(length);
 | 
						|
  else
 | 
						|
    new_format=  (DATE_TIME_FORMAT *) my_malloc(length, MYF(MY_WME));
 | 
						|
  if (new_format)
 | 
						|
  {
 | 
						|
    /* Put format string after current pos */
 | 
						|
    new_format->format.str= (char*) (new_format+1);
 | 
						|
    memcpy((char*) new_format->positions, (char*) format->positions,
 | 
						|
	   sizeof(format->positions));
 | 
						|
    new_format->time_separator= format->time_separator;
 | 
						|
    /* We make the string null terminated for easy printf in SHOW VARIABLES */
 | 
						|
    memcpy((char*) new_format->format.str, format->format.str,
 | 
						|
	   format->format.length);
 | 
						|
    new_format->format.str[format->format.length]= 0;
 | 
						|
    new_format->format.length= format->format.length;
 | 
						|
  }
 | 
						|
  return new_format;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
KNOWN_DATE_TIME_FORMAT known_date_time_formats[6]=
 | 
						|
{
 | 
						|
  {"USA", "%m.%d.%Y", "%Y-%m-%d %H.%i.%s", "%h:%i:%s %p" },
 | 
						|
  {"JIS", "%Y-%m-%d", "%Y-%m-%d %H:%i:%s", "%H:%i:%s" },
 | 
						|
  {"ISO", "%Y-%m-%d", "%Y-%m-%d %H:%i:%s", "%H:%i:%s" },
 | 
						|
  {"EUR", "%d.%m.%Y", "%Y-%m-%d %H.%i.%s", "%H.%i.%s" },
 | 
						|
  {"INTERNAL", "%Y%m%d",   "%Y%m%d%H%i%s", "%H%i%s" },
 | 
						|
  { 0, 0, 0, 0 }
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
   Return format string according format name.
 | 
						|
   If name is unknown, result is NULL
 | 
						|
*/
 | 
						|
 | 
						|
const char *get_date_time_format_str(KNOWN_DATE_TIME_FORMAT *format,
 | 
						|
				     timestamp_type type)
 | 
						|
{
 | 
						|
  switch (type) {
 | 
						|
  case MYSQL_TIMESTAMP_DATE:
 | 
						|
    return format->date_format;
 | 
						|
  case MYSQL_TIMESTAMP_DATETIME:
 | 
						|
    return format->datetime_format;
 | 
						|
  case MYSQL_TIMESTAMP_TIME:
 | 
						|
    return format->time_format;
 | 
						|
  default:
 | 
						|
    DBUG_ASSERT(0);				// Impossible
 | 
						|
    return 0;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/****************************************************************************
 | 
						|
  Functions to create default time/date/datetime strings
 | 
						|
 
 | 
						|
  NOTE:
 | 
						|
    For the moment the DATE_TIME_FORMAT argument is ignored becasue
 | 
						|
    MySQL doesn't support comparing of date/time/datetime strings that
 | 
						|
    are not in arbutary order as dates are compared as strings in some
 | 
						|
    context)
 | 
						|
    This functions don't check that given TIME structure members are
 | 
						|
    in valid range. If they are not, return value won't reflect any 
 | 
						|
    valid date either. Additionally, make_time doesn't take into
 | 
						|
    account time->day member: it's assumed that days have been converted
 | 
						|
    to hours already.
 | 
						|
****************************************************************************/
 | 
						|
 | 
						|
void make_time(const DATE_TIME_FORMAT *format __attribute__((unused)),
 | 
						|
               const TIME *l_time, String *str)
 | 
						|
{
 | 
						|
  uint length= (uint) my_time_to_str(l_time, (char*) str->ptr());
 | 
						|
  str->length(length);
 | 
						|
  str->set_charset(&my_charset_bin);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void make_date(const DATE_TIME_FORMAT *format __attribute__((unused)),
 | 
						|
               const TIME *l_time, String *str)
 | 
						|
{
 | 
						|
  uint length= (uint) my_date_to_str(l_time, (char*) str->ptr());
 | 
						|
  str->length(length);
 | 
						|
  str->set_charset(&my_charset_bin);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void make_datetime(const DATE_TIME_FORMAT *format __attribute__((unused)),
 | 
						|
                   const TIME *l_time, String *str)
 | 
						|
{
 | 
						|
  uint length= (uint) my_datetime_to_str(l_time, (char*) str->ptr());
 | 
						|
  str->length(length);
 | 
						|
  str->set_charset(&my_charset_bin);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void make_truncated_value_warning(THD *thd, const char *str_val,
 | 
						|
				  uint str_length, timestamp_type time_type,
 | 
						|
                                  const char *field_name)
 | 
						|
{
 | 
						|
  char warn_buff[MYSQL_ERRMSG_SIZE];
 | 
						|
  const char *type_str;
 | 
						|
  CHARSET_INFO *cs= &my_charset_latin1;
 | 
						|
  char buff[128];
 | 
						|
  String str(buff,(uint32) sizeof(buff), system_charset_info);
 | 
						|
  str.copy(str_val, str_length, system_charset_info);
 | 
						|
 | 
						|
  switch (time_type) {
 | 
						|
    case MYSQL_TIMESTAMP_DATE: 
 | 
						|
      type_str= "date";
 | 
						|
      break;
 | 
						|
    case MYSQL_TIMESTAMP_TIME:
 | 
						|
      type_str= "time";
 | 
						|
      break;
 | 
						|
    case MYSQL_TIMESTAMP_DATETIME:  // FALLTHROUGH
 | 
						|
    default:
 | 
						|
      type_str= "datetime";
 | 
						|
      break;
 | 
						|
  }
 | 
						|
  if (field_name)
 | 
						|
    cs->cset->snprintf(cs, warn_buff, sizeof(warn_buff),
 | 
						|
                       ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD),
 | 
						|
                       type_str, str.c_ptr(), field_name,
 | 
						|
                       (ulong) thd->row_count);
 | 
						|
  else
 | 
						|
    cs->cset->snprintf(cs, warn_buff, sizeof(warn_buff),
 | 
						|
                       ER(ER_TRUNCATED_WRONG_VALUE),
 | 
						|
                       type_str, str.c_ptr());
 | 
						|
  push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
 | 
						|
               ER_TRUNCATED_WRONG_VALUE, warn_buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
#endif
 |