mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 10:31:54 +01:00
9d29647487
removed: libmysql/libmysql.ver.in libmysql/rpm_support.cc mysql-test/r/backup.result mysql-test/r/binlog_tx_isolation.result mysql-test/r/isam.result mysql-test/r/rpl_colSize.result mysql-test/r/rpl_extraColmaster_innodb.result mysql-test/r/rpl_extraColmaster_myisam.result mysql-test/r/slave-running.result mysql-test/r/slave-stopped.result storage/test_sql_discovery/mysql-test/archive/discover.rdiff storage/test_sql_discovery/mysql-test/main/r/plugin.rdiff storage/tokudb/ft-index/portability/tests/test-fair-rwlock.cc storage/tokudb/ft-index/portability/toku_fair_rwlock.cc storage/tokudb/ft-index/portability/toku_fair_rwlock.h storage/tokudb/scripts/run.tests.7.0.3.bash added: cmake/CPackRPM.cmake cmake/pcre.cmake mysql-test/include/have_metadata_lock_info.inc mysql-test/include/have_metadata_lock_info.opt mysql-test/include/have_rbr_triggers.inc mysql-test/include/have_unix_socket.inc mysql-test/include/save_master_gtid.inc mysql-test/include/sync_with_master_gtid.inc mysql-test/r/create_or_replace.result mysql-test/r/create_or_replace2.result mysql-test/r/failed_auth_unixsocket.result mysql-test/r/locked_temporary-5955.result mysql-test/r/lowercase_table5.result mysql-test/r/selectivity_no_engine.result mysql-test/r/stack-crash.result mysql-test/r/udf_debug_sync.result mysql-test/r/union_crash-714.result mysql-test/std_data/mariadb-5.5-binlog.000001 mysql-test/suite/archive/archive_no_symlink-master.opt mysql-test/suite/archive/archive_no_symlink.result mysql-test/suite/archive/archive_no_symlink.test mysql-test/suite/archive/archive_symlink.result mysql-test/suite/archive/archive_symlink.test mysql-test/suite/federated/federated_maybe_16324629.result mysql-test/suite/federated/federated_maybe_16324629.test mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result mysql-test/suite/innodb/r/row_lock.result mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test mysql-test/suite/innodb/t/row_lock.test mysql-test/suite/innodb_zip/ mysql-test/suite/innodb_zip/r/ mysql-test/suite/innodb_zip/t/ mysql-test/suite/multi_source/gtid_ignore_duplicates.cnf mysql-test/suite/multi_source/gtid_ignore_duplicates.result mysql-test/suite/multi_source/gtid_ignore_duplicates.test mysql-test/suite/plugins/r/server_audit.result mysql-test/suite/plugins/t/server_audit.opt mysql-test/suite/plugins/t/server_audit.test mysql-test/suite/roles/grant-5771.result mysql-test/suite/roles/grant-5771.test mysql-test/suite/rpl/r/create_or_replace_mix.result mysql-test/suite/rpl/r/create_or_replace_row.result mysql-test/suite/rpl/r/create_or_replace_statement.result mysql-test/suite/rpl/r/rpl_old_master.result mysql-test/suite/rpl/r/rpl_parallel2.result mysql-test/suite/rpl/r/rpl_row_triggers.result mysql-test/suite/rpl/r/rpl_row_triggers_sbr.result mysql-test/suite/rpl/t/create_or_replace.inc mysql-test/suite/rpl/t/create_or_replace_mix.cnf mysql-test/suite/rpl/t/create_or_replace_mix.test mysql-test/suite/rpl/t/create_or_replace_row.cnf mysql-test/suite/rpl/t/create_or_replace_row.test mysql-test/suite/rpl/t/create_or_replace_statement.cnf mysql-test/suite/rpl/t/create_or_replace_statement.test mysql-test/suite/rpl/t/rpl_000011-slave.opt mysql-test/suite/rpl/t/rpl_old_master.test mysql-test/suite/rpl/t/rpl_parallel2.test mysql-test/suite/rpl/t/rpl_row_triggers.test mysql-test/suite/rpl/t/rpl_row_triggers_sbr.test mysql-test/suite/sys_vars/r/gtid_ignore_duplicates_basic.result mysql-test/suite/sys_vars/r/last_gtid_basic.result mysql-test/suite/sys_vars/r/slave_ddl_exec_mode_basic.result mysql-test/suite/sys_vars/r/slave_domain_parallel_threads_basic.result mysql-test/suite/sys_vars/r/version_malloc_library_basic.result mysql-test/suite/sys_vars/t/gtid_ignore_duplicates_basic.test mysql-test/suite/sys_vars/t/last_gtid_basic.test mysql-test/suite/sys_vars/t/slave_ddl_exec_mode_basic.test mysql-test/suite/sys_vars/t/slave_domain_parallel_threads_basic.test mysql-test/suite/sys_vars/t/version_malloc_library_basic.test mysql-test/t/create_or_replace-master.opt mysql-test/t/create_or_replace.test mysql-test/t/create_or_replace2.test mysql-test/t/failed_auth_unixsocket.test mysql-test/t/locked_temporary-5955.test mysql-test/t/lowercase_table5.test mysql-test/t/selectivity_no_engine.test mysql-test/t/stack-crash.test mysql-test/t/udf_debug_sync.test mysql-test/t/union_crash-714.test packaging/rpm-oel/ packaging/rpm-oel/CMakeLists.txt packaging/rpm-oel/filter-provides.sh packaging/rpm-oel/filter-requires.sh packaging/rpm-oel/my.cnf packaging/rpm-oel/my_config.h packaging/rpm-oel/mysql-embedded-check.c packaging/rpm-oel/mysql-systemd-start packaging/rpm-oel/mysql.conf packaging/rpm-oel/mysql.init packaging/rpm-oel/mysql.spec.in packaging/rpm-oel/mysql_config.sh packaging/rpm-oel/mysqld.service plugin/server_audit/ plugin/server_audit/CMakeLists.txt plugin/server_audit/COPYING plugin/server_audit/server_audit.c storage/connect/mysql-test/connect/r/xml_mult.result storage/connect/mysql-test/connect/std_data/bookstore.xml storage/connect/mysql-test/connect/t/xml_mult.test storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test storage/sphinx/mysql-test/sphinx/union-5539.result storage/sphinx/mysql-test/sphinx/union-5539.test storage/tokudb/ft-index/ft/tests/mempool-115.cc storage/tokudb/ft-index/locktree/tests/lock_request_killed.cc storage/tokudb/ft-index/locktree/tests/lock_request_not_killed.cc storage/tokudb/ft-index/locktree/tests/lock_request_wait_time_callback.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_1big7lt_1small.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_2big_1lt.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_2big_2lt.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_impossible.cc storage/tokudb/ft-index/src/tests/env_nproc.cc storage/tokudb/ft-index/src/tests/get_last_key.cc storage/tokudb/ft-index/src/tests/locktree_escalation_stalls.cc storage/tokudb/ft-index/src/tests/recover-child-rollback.cc storage/tokudb/ft-index/src/tests/test_bad_implicit_promotion.cc storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc storage/tokudb/ft-index/src/tests/test_insert_many_gc.cc storage/tokudb/ft-index/util/context.cc storage/tokudb/ft-index/util/context.h storage/tokudb/ft-index/util/scoped_malloc.cc storage/tokudb/ft-index/util/scoped_malloc.h storage/tokudb/ft-index/util/tests/test-frwlock-fair-writers.cc storage/tokudb/ft-index/util/tests/test-rwlock-unfair-writers.cc storage/tokudb/mysql-test/tokudb_alter_table/r/drop_pk_with_prefix.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_drop_char0_t6.result storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result storage/tokudb/mysql-test/tokudb_alter_table/t/drop_pk_with_prefix.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_drop_char0_t6.test storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test storage/tokudb/mysql-test/tokudb_bugs/include/not_5_5.inc storage/tokudb/mysql-test/tokudb_bugs/r/alter_external_lock_assert.result storage/tokudb/mysql-test/tokudb_bugs/r/alter_part_tokudb_bug_155.result storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result storage/tokudb/mysql-test/tokudb_bugs/r/commit_index_end_1.result storage/tokudb/mysql-test/tokudb_bugs/r/commit_index_end_2.result storage/tokudb/mysql-test/tokudb_bugs/r/leak172.result storage/tokudb/mysql-test/tokudb_bugs/r/optimize_temp_table_tokudb.result storage/tokudb/mysql-test/tokudb_bugs/r/subselect_index_next_same_bug_157.result storage/tokudb/mysql-test/tokudb_bugs/std_data/ storage/tokudb/mysql-test/tokudb_bugs/std_data/leak172_t1.data storage/tokudb/mysql-test/tokudb_bugs/std_data/leak172_t2.data storage/tokudb/mysql-test/tokudb_bugs/t/alter_external_lock_assert.test storage/tokudb/mysql-test/tokudb_bugs/t/alter_part_tokudb_bug_155.test storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test storage/tokudb/mysql-test/tokudb_bugs/t/commit_index_end_1.test storage/tokudb/mysql-test/tokudb_bugs/t/commit_index_end_2.test storage/tokudb/mysql-test/tokudb_bugs/t/leak172.test storage/tokudb/mysql-test/tokudb_bugs/t/optimize_temp_table_tokudb.test storage/tokudb/mysql-test/tokudb_bugs/t/subselect_index_next_same_bug_157.test storage/tokudb/mysql-test/tokudb_mariadb/r/create_or_replace.result storage/tokudb/mysql-test/tokudb_mariadb/r/discover_names.result storage/tokudb/mysql-test/tokudb_mariadb/t/create_or_replace.test storage/tokudb/mysql-test/tokudb_mariadb/t/discover_names.test renamed: libmysql/libmysql_rpm_version.in => libmysql/libmysql_versions.ld.in mysql-test/suite/innodb/r/innodb-create-options.result => mysql-test/suite/innodb_zip/r/innodb-create-options.result mysql-test/suite/innodb/r/innodb-zip.result => mysql-test/suite/innodb_zip/r/innodb-zip.result mysql-test/suite/innodb/r/innodb_bug36169.result => mysql-test/suite/innodb_zip/r/innodb_bug36169.result mysql-test/suite/innodb/r/innodb_bug36172.result => mysql-test/suite/innodb_zip/r/innodb_bug36172.result mysql-test/suite/innodb/r/innodb_bug52745.result => mysql-test/suite/innodb_zip/r/innodb_bug52745.result mysql-test/suite/innodb/r/innodb_bug53591.result => mysql-test/suite/innodb_zip/r/innodb_bug53591.result mysql-test/suite/innodb/r/innodb_bug56680.result => mysql-test/suite/innodb_zip/r/innodb_bug56680.result mysql-test/suite/innodb/r/innodb_cmp_drop_table.result => mysql-test/suite/innodb_zip/r/innodb_cmp_drop_table.result mysql-test/suite/innodb/r/innodb_index_large_prefix.result => mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result => mysql-test/suite/innodb_zip/r/innodb_prefix_index_liftedlimit.result mysql-test/suite/innodb/t/innodb-create-options.test => mysql-test/suite/innodb_zip/t/innodb-create-options.test mysql-test/suite/innodb/t/innodb-zip.test => mysql-test/suite/innodb_zip/t/innodb-zip.test mysql-test/suite/innodb/t/innodb_bug36169.test => mysql-test/suite/innodb_zip/t/innodb_bug36169.test mysql-test/suite/innodb/t/innodb_bug36172.test => mysql-test/suite/innodb_zip/t/innodb_bug36172.test mysql-test/suite/innodb/t/innodb_bug52745.test => mysql-test/suite/innodb_zip/t/innodb_bug52745.test mysql-test/suite/innodb/t/innodb_bug53591.test => mysql-test/suite/innodb_zip/t/innodb_bug53591.test mysql-test/suite/innodb/t/innodb_bug56680.test => mysql-test/suite/innodb_zip/t/innodb_bug56680.test mysql-test/suite/innodb/t/innodb_cmp_drop_table-master.opt => mysql-test/suite/innodb_zip/t/innodb_cmp_drop_table-master.opt mysql-test/suite/innodb/t/innodb_cmp_drop_table.test => mysql-test/suite/innodb_zip/t/innodb_cmp_drop_table.test mysql-test/suite/innodb/t/innodb_index_large_prefix.test => mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test => mysql-test/suite/innodb_zip/t/innodb_prefix_index_liftedlimit.test mysql-test/suite/roles/show_grants_anon-5238.result => mysql-test/suite/roles/grant_empty.result mysql-test/suite/roles/show_grants_anon-5238.test => mysql-test/suite/roles/grant_empty.test modified: .bzrignore CMakeLists.txt CREDITS VERSION client/CMakeLists.txt client/mysql.cc client/mysql_plugin.c client/mysqlcheck.c client/mysqldump.c client/mysqltest.cc cmake/cpack_rpm.cmake cmake/install_macros.cmake cmake/jemalloc.cmake cmake/mysql_add_executable.cmake cmake/plugin.cmake cmake/versioninfo.rc.in cmake/zlib.cmake config.h.cmake dbug/dbug.c debian/dist/Debian/mariadb-server-10.0.files.in debian/dist/Ubuntu/mariadb-server-10.0.files.in debian/po/it.po debian/po/sv.po extra/jemalloc/ChangeLog extra/jemalloc/include/jemalloc/internal/arena.h extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in extra/jemalloc/include/jemalloc/internal/private_namespace.h extra/jemalloc/include/jemalloc/internal/tcache.h extra/jemalloc/src/arena.c extra/replace.c extra/yassl/CMakeLists.txt extra/yassl/include/yassl_error.hpp extra/yassl/include/yassl_types.hpp extra/yassl/src/handshake.cpp extra/yassl/src/yassl_error.cpp extra/yassl/src/yassl_imp.cpp extra/yassl/taocrypt/CMakeLists.txt include/atomic/gcc_builtins.h include/hash.h include/heap.h include/ma_dyncol.h include/maria.h include/my_bitmap.h include/my_getopt.h include/my_global.h include/my_net.h include/my_pthread.h include/my_sys.h include/my_time.h include/my_valgrind.h include/myisam.h include/mysql/plugin.h include/mysql/plugin_audit.h include/mysql/plugin_audit.h.pp include/mysql/plugin_auth.h.pp include/mysql/plugin_ftparser.h.pp include/mysql/psi/mysql_thread.h include/queues.h include/welcome_copyright_notice.h libmysql/CMakeLists.txt libmysql/conf_to_src.c libmysql/libmysql.c libmysqld/CMakeLists.txt libmysqld/examples/CMakeLists.txt libmysqld/lib_sql.cc mysql-test/CMakeLists.txt mysql-test/collections/default.weekly mysql-test/extra/rpl_tests/rpl_ddl.test mysql-test/extra/rpl_tests/rpl_log.test mysql-test/extra/rpl_tests/rpl_stop_slave.test mysql-test/include/commit.inc mysql-test/include/ctype_filesort2.inc mysql-test/include/have_innodb.combinations mysql-test/include/index_merge_ror_cpk.inc mysql-test/include/mtr_check.sql mysql-test/include/type_hrtime.inc mysql-test/lib/My/Config.pm mysql-test/lib/My/SafeProcess/safe_process.cc mysql-test/lib/My/SysInfo.pm mysql-test/lib/mtr_cases.pm mysql-test/mysql-test-run.pl mysql-test/r/alter_table.result mysql-test/r/blackhole.result mysql-test/r/cast.result mysql-test/r/comment_column.result mysql-test/r/comments.result mysql-test/r/commit_1innodb.result mysql-test/r/contributors.result mysql-test/r/create-big.result mysql-test/r/create.result mysql-test/r/ctype_binary.result mysql-test/r/ctype_cp1250_ch.result mysql-test/r/ctype_cp1251.result mysql-test/r/ctype_latin1.result mysql-test/r/ctype_ucs.result mysql-test/r/ctype_utf16.result mysql-test/r/ctype_utf16le.result mysql-test/r/ctype_utf32.result mysql-test/r/ctype_utf8.result mysql-test/r/ctype_utf8mb4.result mysql-test/r/derived_view.result mysql-test/r/distinct.result mysql-test/r/drop.result mysql-test/r/dyncol.result mysql-test/r/error_simulation.result mysql-test/r/events_trans.result mysql-test/r/func_compress.result mysql-test/r/func_group.result mysql-test/r/func_math.result mysql-test/r/func_misc.result mysql-test/r/func_regexp.result mysql-test/r/func_str.result mysql-test/r/func_time.result mysql-test/r/gis-precise.result mysql-test/r/gis.result mysql-test/r/index_intersect_innodb.result mysql-test/r/index_merge_innodb.result mysql-test/r/index_merge_myisam.result mysql-test/r/information_schema-big.result mysql-test/r/information_schema.result mysql-test/r/information_schema_all_engines.result mysql-test/r/innodb_ext_key.result mysql-test/r/join.result mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/key.result mysql-test/r/lowercase_fs_off.result mysql-test/r/lowercase_table.result mysql-test/r/lowercase_table2.result mysql-test/r/lowercase_view.result mysql-test/r/merge.result mysql-test/r/multi_update.result mysql-test/r/myisampack.result mysql-test/r/mysqld--help.result mysql-test/r/mysqldump.result mysql-test/r/not_embedded_server.result mysql-test/r/not_partition.result mysql-test/r/old-mode.result mysql-test/r/partition.result mysql-test/r/partition_debug_sync.result mysql-test/r/partition_disabled.result mysql-test/r/partition_error.result mysql-test/r/partition_exchange.result mysql-test/r/partition_innodb.result mysql-test/r/partition_order.result mysql-test/r/partition_windows.result mysql-test/r/plugin.result mysql-test/r/plugin_auth_qa_3.result mysql-test/r/ps.result mysql-test/r/ps_ddl.result mysql-test/r/range.result mysql-test/r/range_mrr_icp.result mysql-test/r/range_vs_index_merge.result mysql-test/r/range_vs_index_merge_innodb.result mysql-test/r/rpl_mysqldump_slave.result mysql-test/r/select.result mysql-test/r/select_found.result mysql-test/r/select_jcl6.result mysql-test/r/select_pkeycache.result mysql-test/r/selectivity.result mysql-test/r/selectivity_innodb.result mysql-test/r/show_check.result mysql-test/r/sp-security.result mysql-test/r/ssl.result mysql-test/r/stat_tables.result mysql-test/r/stat_tables_innodb.result mysql-test/r/stat_tables_par.result mysql-test/r/stat_tables_par_innodb.result mysql-test/r/stat_tables_partition.result mysql-test/r/stat_tables_rbr.result mysql-test/r/stat_tables_repl.result mysql-test/r/statistics.result mysql-test/r/subselect.result mysql-test/r/subselect2.result mysql-test/r/subselect4.result mysql-test/r/subselect_exists2in.result mysql-test/r/subselect_exists_to_in.result mysql-test/r/subselect_extra.result mysql-test/r/subselect_innodb.result mysql-test/r/subselect_mat.result mysql-test/r/subselect_no_mat.result mysql-test/r/subselect_no_opts.result mysql-test/r/subselect_no_scache.result mysql-test/r/subselect_no_semijoin.result mysql-test/r/subselect_sj.result mysql-test/r/subselect_sj2.result mysql-test/r/subselect_sj2_jcl6.result mysql-test/r/subselect_sj2_mat.result mysql-test/r/subselect_sj_jcl6.result mysql-test/r/subselect_sj_mat.result mysql-test/r/temporal_literal.result mysql-test/r/timezone2.result mysql-test/r/trigger.result mysql-test/r/type_datetime.result mysql-test/r/type_datetime_hires.result mysql-test/r/type_float.result mysql-test/r/type_time.result mysql-test/r/type_time_hires.result mysql-test/r/type_timestamp_hires.result mysql-test/r/update.result mysql-test/r/variables.result mysql-test/r/view.result mysql-test/r/view_grant.result mysql-test/r/xml.result mysql-test/std_data/cacert.pem mysql-test/std_data/client-cert.pem mysql-test/std_data/client-key.pem mysql-test/std_data/server-cert.pem mysql-test/std_data/server-key.pem mysql-test/std_data/server8k-cert.pem mysql-test/std_data/server8k-key.pem mysql-test/suite.pm mysql-test/suite/archive/discover.result mysql-test/suite/archive/discover.test mysql-test/suite/binlog/r/binlog_checkpoint.result mysql-test/suite/binlog/t/binlog_checkpoint.test mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test mysql-test/suite/csv/csv.result mysql-test/suite/csv/csv.test mysql-test/suite/federated/federated.test mysql-test/suite/funcs_1/r/innodb_func_view.result mysql-test/suite/funcs_1/r/innodb_views.result mysql-test/suite/funcs_1/r/is_columns_is.result mysql-test/suite/funcs_1/r/memory_func_view.result mysql-test/suite/funcs_1/r/memory_views.result mysql-test/suite/funcs_1/r/myisam_func_view.result mysql-test/suite/funcs_1/r/myisam_views-big.result mysql-test/suite/funcs_1/views/func_view.inc mysql-test/suite/heap/heap.result mysql-test/suite/heap/heap.test mysql-test/suite/innodb/r/innodb_bug54044.result mysql-test/suite/innodb/r/innodb_information_schema.result mysql-test/suite/innodb/r/innodb_mysql.result mysql-test/suite/innodb/t/innodb_bug54044.test mysql-test/suite/innodb/t/innodb_bug60196-master.opt mysql-test/suite/innodb/t/innodb_mysql.test mysql-test/suite/maria/icp.result mysql-test/suite/maria/maria-preload.result mysql-test/suite/maria/maria.result mysql-test/suite/maria/maria.test mysql-test/suite/multi_source/skip_counter.result mysql-test/suite/multi_source/skip_counter.test mysql-test/suite/optimizer_unfixed_bugs/t/bug42991.test mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result mysql-test/suite/parts/r/partition_mgm_lc2_memory.result mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result mysql-test/suite/perfschema/r/dml_setup_instruments.result mysql-test/suite/perfschema/r/func_mutex.result mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result mysql-test/suite/perfschema/r/server_init.result mysql-test/suite/perfschema/t/func_mutex.test mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test mysql-test/suite/perfschema/t/hostcache_ipv6_blocked.test mysql-test/suite/perfschema/t/server_init.test mysql-test/suite/plugins/t/unix_socket.test mysql-test/suite/roles/recursive_dbug.result mysql-test/suite/rpl/disabled.def mysql-test/suite/rpl/r/rpl_000011.result mysql-test/suite/rpl/r/rpl_ddl.result mysql-test/suite/rpl/r/rpl_drop_view.result mysql-test/suite/rpl/r/rpl_gtid_basic.result mysql-test/suite/rpl/r/rpl_gtid_crash.result mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result mysql-test/suite/rpl/r/rpl_gtid_ignored.result mysql-test/suite/rpl/r/rpl_gtid_nobinlog.result mysql-test/suite/rpl/r/rpl_gtid_startpos.result mysql-test/suite/rpl/r/rpl_gtid_stop_start.result mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result mysql-test/suite/rpl/r/rpl_mdev382.result mysql-test/suite/rpl/r/rpl_parallel.result mysql-test/suite/rpl/r/rpl_parallel_no_log_slave_updates.result mysql-test/suite/rpl/r/rpl_row_create_table.result mysql-test/suite/rpl/r/rpl_row_log.result mysql-test/suite/rpl/r/rpl_row_log_innodb.result mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_stm_log.result mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result mysql-test/suite/rpl/t/rpl_000011.test mysql-test/suite/rpl/t/rpl_bug37426.test mysql-test/suite/rpl/t/rpl_connection.test mysql-test/suite/rpl/t/rpl_create_if_not_exists.test mysql-test/suite/rpl/t/rpl_drop_db.test mysql-test/suite/rpl/t/rpl_gtid_basic.test mysql-test/suite/rpl/t/rpl_gtid_crash.test mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test mysql-test/suite/rpl/t/rpl_gtid_ignored.test mysql-test/suite/rpl/t/rpl_gtid_mdev4485.test mysql-test/suite/rpl/t/rpl_gtid_nobinlog.test mysql-test/suite/rpl/t/rpl_gtid_startpos.test mysql-test/suite/rpl/t/rpl_gtid_stop_start.test mysql-test/suite/rpl/t/rpl_heartbeat_basic.test mysql-test/suite/rpl/t/rpl_known_bugs_detection.test mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test mysql-test/suite/rpl/t/rpl_mix_found_rows.test mysql-test/suite/rpl/t/rpl_parallel.test mysql-test/suite/rpl/t/rpl_parallel_no_log_slave_updates.test mysql-test/suite/rpl/t/rpl_row_create_table.test mysql-test/suite/rpl/t/rpl_row_find_row_debug.test mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test mysql-test/suite/rpl/t/rpl_row_utf32.test mysql-test/suite/rpl/t/rpl_stm_log.test mysql-test/suite/rpl/t/rpl_stm_sql_mode.test mysql-test/suite/rpl/t/rpl_stm_stop_middle_group.test mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test mysql-test/suite/sys_vars/r/back_log_basic.result mysql-test/suite/sys_vars/r/engine_condition_pushdown_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result mysql-test/suite/sys_vars/r/old_mode_basic.result mysql-test/suite/sys_vars/r/optimizer_switch_basic.result mysql-test/suite/sys_vars/r/progress_report_time_basic.result mysql-test/suite/sys_vars/t/old_mode_basic.test mysql-test/suite/vcol/r/vcol_misc.result mysql-test/suite/vcol/t/vcol_misc.test mysql-test/t/aborted_clients.test mysql-test/t/alter_table.test mysql-test/t/auth_rpl.test mysql-test/t/blackhole.test mysql-test/t/cast.test mysql-test/t/comment_column.test mysql-test/t/comments.test mysql-test/t/create-big.test mysql-test/t/create.test mysql-test/t/derived_view.test mysql-test/t/distinct.test mysql-test/t/drop.test mysql-test/t/dyncol.test mysql-test/t/error_simulation.test mysql-test/t/events_trans.test mysql-test/t/func_compress.test mysql-test/t/func_gconcat.test mysql-test/t/func_group.test mysql-test/t/func_math.test mysql-test/t/func_misc.test mysql-test/t/func_regexp.test mysql-test/t/func_time.test mysql-test/t/gis-precise.test mysql-test/t/gis.test mysql-test/t/information_schema.test mysql-test/t/join.test mysql-test/t/key.test mysql-test/t/lowercase_table.test mysql-test/t/lowercase_table2.test mysql-test/t/lowercase_table4-master.opt mysql-test/t/lowercase_table4.test mysql-test/t/multi_update.test mysql-test/t/myisampack.test mysql-test/t/mysqld--help.test mysql-test/t/mysqldump.test mysql-test/t/not_embedded_server.test mysql-test/t/not_partition.test mysql-test/t/old-mode.test mysql-test/t/partition.test mysql-test/t/partition_debug_sync.test mysql-test/t/partition_disabled.test mysql-test/t/partition_error.test mysql-test/t/partition_exchange.test mysql-test/t/partition_innodb.test mysql-test/t/plugin.test mysql-test/t/ps.test mysql-test/t/ps_ddl.test mysql-test/t/range.test mysql-test/t/range_vs_index_merge.test mysql-test/t/rpl_mysqldump_slave.test mysql-test/t/select.test mysql-test/t/select_found.test mysql-test/t/selectivity.test mysql-test/t/show_check.test mysql-test/t/sp-security.test mysql-test/t/stat_tables_par.test mysql-test/t/statistics.test mysql-test/t/subselect4.test mysql-test/t/subselect_exists2in.test mysql-test/t/subselect_innodb.test mysql-test/t/subselect_sj.test mysql-test/t/subselect_sj2.test mysql-test/t/subselect_sj_mat.test mysql-test/t/temporal_literal.test mysql-test/t/timezone2.test mysql-test/t/type_float.test mysql-test/t/type_time.test mysql-test/t/update.test mysql-test/t/view.test mysql-test/t/view_grant.test mysql-test/t/xml.test mysql-test/valgrind.supp mysys/array.c mysys/file_logger.c mysys/hash.c mysys/ma_dyncol.c mysys/md5.c.THIS mysys/mf_iocache.c mysys/mf_keycache.c mysys/mf_qsort.c mysys/mf_radix.c mysys/mf_same.c mysys/mf_soundex.c mysys/mf_tempdir.c mysys/mf_tempfile.c mysys/mf_wcomp.c mysys/mulalloc.c mysys/my_access.c mysys/my_aes.c.THIS mysys/my_alloc.c mysys/my_bitmap.c mysys/my_conio.c mysys/my_copy.c mysys/my_crc32.c mysys/my_delete.c mysys/my_div.c mysys/my_error.c mysys/my_fopen.c mysys/my_gethwaddr.c mysys/my_getpagesize.c mysys/my_getwd.c mysys/my_libwrap.c mysys/my_lockmem.c mysys/my_malloc.c mysys/my_memmem.c mysys/my_mkdir.c mysys/my_once.c mysys/my_rename.c mysys/my_symlink2.c mysys/my_wincond.c mysys/my_winthread.c mysys/safemalloc.c mysys/test_dir.c mysys/test_xml.c mysys/thr_alarm.c mysys/thr_mutex.c mysys/tree.c packaging/WiX/CPackWixConfig.cmake packaging/WiX/custom_ui.wxs packaging/WiX/mysql_server.wxs.in plugin/auth_pam/auth_pam.c plugin/auth_socket/auth_socket.c plugin/daemon_example/daemon_example.cc plugin/feedback/CMakeLists.txt plugin/feedback/feedback.cc plugin/handler_socket/libhsclient/auto_file.hpp plugin/locale_info/locale_info.cc plugin/metadata_lock_info/metadata_lock_info.cc plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/user_lock.result plugin/qc_info/CMakeLists.txt plugin/qc_info/qc_info.cc plugin/query_response_time/mysql-test/query_response_time/basic.result plugin/query_response_time/plugin.cc plugin/sql_errlog/sql_errlog.c plugin/win_auth_client/CMakeLists.txt scripts/CMakeLists.txt scripts/mysql_config.pl.in scripts/mysql_config.sh scripts/mysql_install_db.pl.in scripts/mysql_install_db.sh scripts/mysql_system_tables.sql scripts/mysql_system_tables_fix.sql scripts/mysqlaccess.sh sql-bench/innotest1.sh sql-bench/innotest1a.sh sql-bench/innotest1b.sh sql-bench/innotest2.sh sql-bench/innotest2a.sh sql-bench/innotest2b.sh sql-bench/limits/access_odbc.cfg sql-common/client.c sql-common/my_time.c sql-common/mysql_async.c sql-common/pack.c sql/CMakeLists.txt sql/authors.h sql/contributors.h sql/create_options.cc sql/custom_conf.h sql/event_db_repository.cc sql/event_scheduler.cc sql/event_scheduler.h sql/events.cc sql/events.h sql/field.cc sql/field.h sql/field_conv.cc sql/filesort.cc sql/filesort_utils.h sql/ha_ndbcluster_binlog.cc sql/ha_ndbcluster_cond.cc sql/ha_ndbcluster_cond.h sql/ha_ndbcluster_tables.h sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/hash_filo.h sql/hostname.cc sql/item.cc sql/item.h sql/item_cmpfunc.cc sql/item_cmpfunc.h sql/item_create.cc sql/item_func.cc sql/item_func.h sql/item_geofunc.cc sql/item_strfunc.cc sql/item_strfunc.h sql/item_subselect.cc sql/item_subselect.h sql/item_sum.cc sql/item_sum.h sql/item_timefunc.cc sql/item_xmlfunc.cc sql/item_xmlfunc.h sql/key.cc sql/key.h sql/lex_symbol.h sql/lock.cc sql/log.cc sql/log.h sql/log_event.cc sql/log_event.h sql/log_event_old.cc sql/log_event_old.h sql/mdl.cc sql/mdl.h sql/mem_root_array.h sql/message.h sql/multi_range_read.cc sql/my_apc.h sql/my_decimal.h sql/mysqld.cc sql/mysqld.h sql/net_serv.cc sql/opt_index_cond_pushdown.cc sql/opt_range.cc sql/opt_range.h sql/opt_subselect.cc sql/opt_subselect.h sql/opt_sum.cc sql/opt_table_elimination.cc sql/partition_element.h sql/partition_info.cc sql/partition_info.h sql/password.c sql/rpl_filter.cc sql/rpl_gtid.cc sql/rpl_gtid.h sql/rpl_injector.h sql/rpl_mi.cc sql/rpl_parallel.cc sql/rpl_parallel.h sql/rpl_record.cc sql/rpl_record.h sql/rpl_rli.cc sql/rpl_rli.h sql/rpl_utility.cc sql/rpl_utility.h sql/scheduler.cc sql/scheduler.h sql/set_var.cc sql/set_var.h sql/share/charsets/Index.xml sql/share/charsets/armscii8.xml sql/share/charsets/ascii.xml sql/share/charsets/cp1250.xml sql/share/charsets/cp852.xml sql/share/charsets/hebrew.xml sql/share/charsets/latin1.xml sql/share/charsets/latin2.xml sql/share/charsets/latin5.xml sql/share/errmsg-utf8.txt sql/signal_handler.cc sql/slave.cc sql/sp_head.cc sql/sp_head.h sql/sp_rcontext.h sql/spatial.cc sql/sql_acl.cc sql/sql_admin.cc sql/sql_admin.h sql/sql_alter.cc sql/sql_analyse.cc sql/sql_analyse.h sql/sql_audit.cc sql/sql_audit.h sql/sql_base.cc sql/sql_base.h sql/sql_binlog.cc sql/sql_bitmap.h sql/sql_cache.cc sql/sql_class.cc sql/sql_class.h sql/sql_connect.cc sql/sql_db.cc sql/sql_delete.cc sql/sql_derived.cc sql/sql_error.cc sql/sql_handler.cc sql/sql_help.cc sql/sql_insert.cc sql/sql_insert.h sql/sql_join_cache.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_lifo_buffer.h sql/sql_list.h sql/sql_load.cc sql/sql_manager.cc sql/sql_parse.cc sql/sql_parse.h sql/sql_partition.cc sql/sql_partition_admin.cc sql/sql_plugin.cc sql/sql_prepare.cc sql/sql_prepare.h sql/sql_priv.h sql/sql_rename.cc sql/sql_repl.cc sql/sql_repl.h sql/sql_select.cc sql/sql_select.h sql/sql_servers.cc sql/sql_show.cc sql/sql_show.h sql/sql_statistics.cc sql/sql_statistics.h sql/sql_string.cc sql/sql_string.h sql/sql_table.cc sql/sql_table.h sql/sql_test.cc sql/sql_time.cc sql/sql_time.h sql/sql_trigger.cc sql/sql_truncate.cc sql/sql_udf.cc sql/sql_union.cc sql/sql_update.cc sql/sql_view.cc sql/sql_yacc.yy sql/strfunc.cc sql/sys_vars.cc sql/sys_vars.h sql/table.cc sql/table.h sql/table_cache.cc sql/table_cache.h sql/threadpool_unix.cc sql/transaction.cc sql/transaction.h sql/tztime.cc sql/uniques.cc sql/unireg.cc storage/archive/ha_archive.cc storage/cassandra/ha_cassandra.cc storage/connect/csort.cpp storage/connect/domdoc.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/inihandl.c storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/os.h storage/connect/osutil.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp storage/example/ha_example.cc storage/example/ha_example.h storage/federated/ha_federated.cc storage/federated/ha_federated.h storage/federatedx/CMakeLists.txt storage/federatedx/federatedx_io_mysql.cc storage/federatedx/ha_federatedx.cc storage/heap/_check.c storage/heap/_rectest.c storage/heap/ha_heap.cc storage/heap/ha_heap.h storage/heap/hp_create.c storage/heap/hp_delete.c storage/heap/hp_extra.c storage/heap/hp_hash.c storage/heap/hp_open.c storage/heap/hp_rfirst.c storage/heap/hp_rlast.c storage/heap/hp_rnext.c storage/heap/hp_rprev.c storage/heap/hp_rrnd.c storage/heap/hp_rsame.c storage/heap/hp_scan.c storage/heap/hp_update.c storage/heap/hp_write.c storage/innobase/CMakeLists.txt storage/innobase/api/api0api.cc storage/innobase/btr/btr0btr.cc storage/innobase/btr/btr0cur.cc storage/innobase/btr/btr0pcur.cc storage/innobase/compile-innodb* storage/innobase/dict/dict0crea.cc storage/innobase/dict/dict0dict.cc storage/innobase/dict/dict0load.cc storage/innobase/dict/dict0mem.cc storage/innobase/dict/dict0stats.cc storage/innobase/fil/fil0fil.cc storage/innobase/fts/fts0config.cc storage/innobase/fts/fts0fts.cc storage/innobase/fts/fts0opt.cc storage/innobase/fts/fts0que.cc storage/innobase/handler/ha_innodb.cc storage/innobase/handler/handler0alter.cc storage/innobase/handler/i_s.cc storage/innobase/ibuf/ibuf0ibuf.cc storage/innobase/include/api0api.h storage/innobase/include/btr0cur.h storage/innobase/include/btr0pcur.h storage/innobase/include/btr0pcur.ic storage/innobase/include/btr0sea.h storage/innobase/include/db0err.h storage/innobase/include/dict0stats.ic storage/innobase/include/dict0types.h storage/innobase/include/fts0fts.h storage/innobase/include/fts0types.h storage/innobase/include/ibuf0ibuf.h storage/innobase/include/log0log.h storage/innobase/include/mtr0mtr.h storage/innobase/include/mtr0mtr.ic storage/innobase/include/os0file.h storage/innobase/include/row0ftsort.h storage/innobase/include/srv0conc.h storage/innobase/include/srv0mon.h storage/innobase/include/srv0mon.ic storage/innobase/include/sync0arr.h storage/innobase/include/sync0arr.ic storage/innobase/include/sync0sync.h storage/innobase/include/trx0trx.h storage/innobase/include/univ.i storage/innobase/include/ut0bh.h storage/innobase/include/ut0bh.ic storage/innobase/log/log0log.cc storage/innobase/mtr/mtr0mtr.cc storage/innobase/os/os0file.cc storage/innobase/os/os0thread.cc storage/innobase/pars/make_bison.sh* storage/innobase/pars/make_flex.sh* storage/innobase/row/row0ftsort.cc storage/innobase/row/row0log.cc storage/innobase/row/row0merge.cc storage/innobase/row/row0mysql.cc storage/innobase/row/row0quiesce.cc storage/innobase/row/row0sel.cc storage/innobase/srv/srv0mon.cc storage/innobase/srv/srv0start.cc storage/innobase/sync/sync0arr.cc storage/innobase/sync/sync0rw.cc storage/innobase/sync/sync0sync.cc storage/innobase/trx/trx0purge.cc storage/innobase/trx/trx0sys.cc storage/innobase/trx/trx0trx.cc storage/innobase/ut/ut0ut.cc storage/maria/ha_maria.cc storage/maria/ha_maria.h storage/maria/ma_blockrec.c storage/maria/ma_check.c storage/maria/ma_create.c storage/maria/ma_delete_table.c storage/maria/ma_dynrec.c storage/maria/ma_extra.c storage/maria/ma_ft_boolean_search.c storage/maria/ma_locking.c storage/maria/ma_loghandler.c storage/maria/ma_open.c storage/maria/ma_packrec.c storage/maria/ma_pagecache.c storage/maria/ma_pagecrc.c storage/maria/ma_range.c storage/maria/ma_recovery.c storage/maria/ma_static.c storage/maria/ma_test1.c storage/maria/ma_test2.c storage/maria/ma_test_force_start.pl storage/maria/ma_unique.c storage/maria/maria_chk.c storage/maria/maria_def.h storage/maria/maria_pack.c storage/maria/maria_read_log.c storage/maria/unittest/ma_pagecache_single.c storage/maria/unittest/ma_test_loghandler-t.c storage/maria/unittest/ma_test_loghandler_multigroup-t.c storage/myisam/ft_boolean_search.c storage/myisam/ft_stopwords.c storage/myisam/ftbench/Ecompare.pl storage/myisam/ftbench/Ecreate.pl storage/myisam/ftbench/Ereport.pl storage/myisam/ftbench/ft-test-run.sh storage/myisam/ha_myisam.cc storage/myisam/mi_check.c storage/myisam/mi_checksum.c storage/myisam/mi_create.c storage/myisam/mi_delete.c storage/myisam/mi_delete_table.c storage/myisam/mi_dynrec.c storage/myisam/mi_extra.c storage/myisam/mi_locking.c storage/myisam/mi_open.c storage/myisam/mi_rfirst.c storage/myisam/mi_rlast.c storage/myisam/mi_rrnd.c storage/myisam/mi_rsamepos.c storage/myisam/mi_scan.c storage/myisam/mi_search.c storage/myisam/mi_test1.c storage/myisam/mi_write.c storage/myisam/myisamchk.c storage/myisam/myisampack.c storage/myisam/rt_index.h storage/myisam/rt_key.c storage/myisam/rt_key.h storage/myisam/rt_mbr.c storage/myisam/rt_mbr.h storage/myisam/sp_defs.h storage/myisammrg/myrg_delete.c storage/myisammrg/myrg_locking.c storage/myisammrg/myrg_panic.c storage/myisammrg/myrg_range.c storage/myisammrg/myrg_rfirst.c storage/myisammrg/myrg_rlast.c storage/myisammrg/myrg_rnext.c storage/myisammrg/myrg_rnext_same.c storage/myisammrg/myrg_rprev.c storage/myisammrg/myrg_rrnd.c storage/myisammrg/myrg_rsame.c storage/myisammrg/myrg_update.c storage/myisammrg/myrg_write.c storage/ndb/config/win-includes storage/ndb/config/win-libraries storage/ndb/config/win-name storage/ndb/config/win-sources storage/ndb/include/debugger/DebuggerNames.hpp storage/ndb/include/debugger/EventLogger.hpp storage/ndb/include/debugger/GrepError.hpp storage/ndb/include/debugger/SignalLoggerManager.hpp storage/ndb/include/editline/editline.h storage/ndb/include/kernel/AttributeDescriptor.hpp storage/ndb/include/kernel/AttributeHeader.hpp storage/ndb/include/kernel/AttributeList.hpp storage/ndb/include/kernel/BlockNumbers.h storage/ndb/include/kernel/GlobalSignalNumbers.h storage/ndb/include/kernel/GrepEvent.hpp storage/ndb/include/kernel/Interpreter.hpp storage/ndb/include/kernel/LogLevel.hpp storage/ndb/include/kernel/NodeBitmask.hpp storage/ndb/include/kernel/NodeInfo.hpp storage/ndb/include/kernel/NodeState.hpp storage/ndb/include/kernel/RefConvert.hpp storage/ndb/include/kernel/kernel_types.h storage/ndb/include/kernel/ndb_limits.h storage/ndb/include/kernel/signaldata/AbortAll.hpp storage/ndb/include/kernel/signaldata/AccFrag.hpp storage/ndb/include/kernel/signaldata/AccLock.hpp storage/ndb/include/kernel/signaldata/AccScan.hpp storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp storage/ndb/include/kernel/signaldata/AllocNodeId.hpp storage/ndb/include/kernel/signaldata/AlterIndx.hpp storage/ndb/include/kernel/signaldata/AlterTab.hpp storage/ndb/include/kernel/signaldata/AlterTable.hpp storage/ndb/include/kernel/signaldata/AlterTrig.hpp storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp storage/ndb/include/kernel/signaldata/ApiVersion.hpp storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp storage/ndb/include/kernel/signaldata/AttrInfo.hpp storage/ndb/include/kernel/signaldata/BackupContinueB.hpp storage/ndb/include/kernel/signaldata/BackupImpl.hpp storage/ndb/include/kernel/signaldata/BackupSignalData.hpp storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp storage/ndb/include/kernel/signaldata/BuildIndx.hpp storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp storage/ndb/include/kernel/signaldata/CmInit.hpp storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp storage/ndb/include/kernel/signaldata/ConfigParamId.hpp storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp storage/ndb/include/kernel/signaldata/CopyActive.hpp storage/ndb/include/kernel/signaldata/CopyFrag.hpp storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp storage/ndb/include/kernel/signaldata/CreateEvnt.hpp storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp storage/ndb/include/kernel/signaldata/CreateFrag.hpp storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp storage/ndb/include/kernel/signaldata/CreateIndx.hpp storage/ndb/include/kernel/signaldata/CreateObj.hpp storage/ndb/include/kernel/signaldata/CreateTab.hpp storage/ndb/include/kernel/signaldata/CreateTable.hpp storage/ndb/include/kernel/signaldata/CreateTrig.hpp storage/ndb/include/kernel/signaldata/DiAddTab.hpp storage/ndb/include/kernel/signaldata/DiGetNodes.hpp storage/ndb/include/kernel/signaldata/DictLock.hpp storage/ndb/include/kernel/signaldata/DictObjOp.hpp storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp storage/ndb/include/kernel/signaldata/DictStart.hpp storage/ndb/include/kernel/signaldata/DictTabInfo.hpp storage/ndb/include/kernel/signaldata/DihAddFrag.hpp storage/ndb/include/kernel/signaldata/DihContinueB.hpp storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp storage/ndb/include/kernel/signaldata/DihStartTab.hpp storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp storage/ndb/include/kernel/signaldata/DisconnectRep.hpp storage/ndb/include/kernel/signaldata/DropFilegroup.hpp storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp storage/ndb/include/kernel/signaldata/DropIndx.hpp storage/ndb/include/kernel/signaldata/DropObj.hpp storage/ndb/include/kernel/signaldata/DropTab.hpp storage/ndb/include/kernel/signaldata/DropTabFile.hpp storage/ndb/include/kernel/signaldata/DropTable.hpp storage/ndb/include/kernel/signaldata/DropTrig.hpp storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp storage/ndb/include/kernel/signaldata/EmptyLcp.hpp storage/ndb/include/kernel/signaldata/EndTo.hpp storage/ndb/include/kernel/signaldata/EventReport.hpp storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp storage/ndb/include/kernel/signaldata/ExecFragReq.hpp storage/ndb/include/kernel/signaldata/Extent.hpp storage/ndb/include/kernel/signaldata/FailRep.hpp storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp storage/ndb/include/kernel/signaldata/FsAppendReq.hpp storage/ndb/include/kernel/signaldata/FsCloseReq.hpp storage/ndb/include/kernel/signaldata/FsConf.hpp storage/ndb/include/kernel/signaldata/FsOpenReq.hpp storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp storage/ndb/include/kernel/signaldata/FsRef.hpp storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp storage/ndb/include/kernel/signaldata/GCPSave.hpp storage/ndb/include/kernel/signaldata/GetTabInfo.hpp storage/ndb/include/kernel/signaldata/GetTableId.hpp storage/ndb/include/kernel/signaldata/GrepImpl.hpp storage/ndb/include/kernel/signaldata/HotSpareRep.hpp storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp storage/ndb/include/kernel/signaldata/KeyInfo.hpp storage/ndb/include/kernel/signaldata/LCP.hpp storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp storage/ndb/include/kernel/signaldata/ListTables.hpp storage/ndb/include/kernel/signaldata/LqhFrag.hpp storage/ndb/include/kernel/signaldata/LqhKey.hpp storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp storage/ndb/include/kernel/signaldata/LqhTransConf.hpp storage/ndb/include/kernel/signaldata/ManagementServer.hpp storage/ndb/include/kernel/signaldata/MasterGCP.hpp storage/ndb/include/kernel/signaldata/MasterLCP.hpp storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp storage/ndb/include/kernel/signaldata/NdbSttor.hpp storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp storage/ndb/include/kernel/signaldata/NextScan.hpp storage/ndb/include/kernel/signaldata/NodeFailRep.hpp storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp storage/ndb/include/kernel/signaldata/PackedSignal.hpp storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp storage/ndb/include/kernel/signaldata/PrepDropTab.hpp storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp storage/ndb/include/kernel/signaldata/RelTabMem.hpp storage/ndb/include/kernel/signaldata/RepImpl.hpp storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp storage/ndb/include/kernel/signaldata/RestoreImpl.hpp storage/ndb/include/kernel/signaldata/ResumeReq.hpp storage/ndb/include/kernel/signaldata/RouteOrd.hpp storage/ndb/include/kernel/signaldata/ScanFrag.hpp storage/ndb/include/kernel/signaldata/ScanTab.hpp storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp storage/ndb/include/kernel/signaldata/SetVarReq.hpp storage/ndb/include/kernel/signaldata/SignalData.hpp storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp storage/ndb/include/kernel/signaldata/SrFragidConf.hpp storage/ndb/include/kernel/signaldata/StartFragReq.hpp storage/ndb/include/kernel/signaldata/StartInfo.hpp storage/ndb/include/kernel/signaldata/StartMe.hpp storage/ndb/include/kernel/signaldata/StartOrd.hpp storage/ndb/include/kernel/signaldata/StartPerm.hpp storage/ndb/include/kernel/signaldata/StartRec.hpp storage/ndb/include/kernel/signaldata/StartTo.hpp storage/ndb/include/kernel/signaldata/StopMe.hpp storage/ndb/include/kernel/signaldata/StopPerm.hpp storage/ndb/include/kernel/signaldata/StopReq.hpp storage/ndb/include/kernel/signaldata/SumaImpl.hpp storage/ndb/include/kernel/signaldata/SystemError.hpp storage/ndb/include/kernel/signaldata/TamperOrd.hpp storage/ndb/include/kernel/signaldata/TcCommit.hpp storage/ndb/include/kernel/signaldata/TcContinueB.hpp storage/ndb/include/kernel/signaldata/TcHbRep.hpp storage/ndb/include/kernel/signaldata/TcIndx.hpp storage/ndb/include/kernel/signaldata/TcKeyConf.hpp storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp storage/ndb/include/kernel/signaldata/TcKeyRef.hpp storage/ndb/include/kernel/signaldata/TcKeyReq.hpp storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp storage/ndb/include/kernel/signaldata/TestOrd.hpp storage/ndb/include/kernel/signaldata/TransIdAI.hpp storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp storage/ndb/include/kernel/signaldata/TupCommit.hpp storage/ndb/include/kernel/signaldata/TupFrag.hpp storage/ndb/include/kernel/signaldata/TupKey.hpp storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp storage/ndb/include/kernel/signaldata/TuxBound.hpp storage/ndb/include/kernel/signaldata/TuxContinueB.hpp storage/ndb/include/kernel/signaldata/TuxMaint.hpp storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp storage/ndb/include/kernel/signaldata/UpdateTo.hpp storage/ndb/include/kernel/signaldata/UtilDelete.hpp storage/ndb/include/kernel/signaldata/UtilExecute.hpp storage/ndb/include/kernel/signaldata/UtilLock.hpp storage/ndb/include/kernel/signaldata/UtilPrepare.hpp storage/ndb/include/kernel/signaldata/UtilRelease.hpp storage/ndb/include/kernel/signaldata/UtilSequence.hpp storage/ndb/include/kernel/signaldata/WaitGCP.hpp storage/ndb/include/kernel/trigger_definitions.h storage/ndb/include/logger/ConsoleLogHandler.hpp storage/ndb/include/logger/FileLogHandler.hpp storage/ndb/include/logger/LogHandler.hpp storage/ndb/include/logger/Logger.hpp storage/ndb/include/logger/SysLogHandler.hpp storage/ndb/include/mgmapi/mgmapi.h storage/ndb/include/mgmapi/mgmapi_debug.h storage/ndb/include/mgmapi/mgmapi_error.h storage/ndb/include/mgmapi/ndb_logevent.h storage/ndb/include/mgmapi/ndbd_exit_codes.h storage/ndb/include/mgmcommon/ConfigRetriever.hpp storage/ndb/include/mgmcommon/IPCConfig.hpp storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp storage/ndb/include/ndb_constants.h storage/ndb/include/ndb_global.h.in storage/ndb/include/ndb_init.h storage/ndb/include/ndb_types.h.in storage/ndb/include/ndb_version.h.in storage/ndb/include/ndbapi/Ndb.hpp storage/ndb/include/ndbapi/NdbApi.hpp storage/ndb/include/ndbapi/NdbBlob.hpp storage/ndb/include/ndbapi/NdbDictionary.hpp storage/ndb/include/ndbapi/NdbError.hpp storage/ndb/include/ndbapi/NdbEventOperation.hpp storage/ndb/include/ndbapi/NdbIndexOperation.hpp storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp storage/ndb/include/ndbapi/NdbIndexStat.hpp storage/ndb/include/ndbapi/NdbOperation.hpp storage/ndb/include/ndbapi/NdbPool.hpp storage/ndb/include/ndbapi/NdbRecAttr.hpp storage/ndb/include/ndbapi/NdbReceiver.hpp storage/ndb/include/ndbapi/NdbScanFilter.hpp storage/ndb/include/ndbapi/NdbScanOperation.hpp storage/ndb/include/ndbapi/NdbTransaction.hpp storage/ndb/include/ndbapi/ndb_cluster_connection.hpp storage/ndb/include/ndbapi/ndb_opt_defaults.h storage/ndb/include/ndbapi/ndbapi_limits.h storage/ndb/include/ndbapi/ndberror.h storage/ndb/include/newtonapi/dba.h storage/ndb/include/newtonapi/defs/pcn_types.h storage/ndb/include/portlib/NdbCondition.h storage/ndb/include/portlib/NdbConfig.h storage/ndb/include/portlib/NdbDaemon.h storage/ndb/include/portlib/NdbEnv.h storage/ndb/include/portlib/NdbHost.h storage/ndb/include/portlib/NdbMain.h storage/ndb/include/portlib/NdbMem.h storage/ndb/include/portlib/NdbMutex.h storage/ndb/include/portlib/NdbSleep.h storage/ndb/include/portlib/NdbTCP.h storage/ndb/include/portlib/NdbThread.h storage/ndb/include/portlib/NdbTick.h storage/ndb/include/portlib/PortDefs.h storage/ndb/include/portlib/prefetch.h storage/ndb/include/transporter/TransporterCallback.hpp storage/ndb/include/transporter/TransporterDefinitions.hpp storage/ndb/include/transporter/TransporterRegistry.hpp storage/ndb/include/util/BaseString.hpp storage/ndb/include/util/Bitmask.hpp storage/ndb/include/util/File.hpp storage/ndb/include/util/InputStream.hpp storage/ndb/include/util/NdbAutoPtr.hpp storage/ndb/include/util/NdbOut.hpp storage/ndb/include/util/NdbSqlUtil.hpp storage/ndb/include/util/OutputStream.hpp storage/ndb/include/util/Parser.hpp storage/ndb/include/util/Properties.hpp storage/ndb/include/util/SimpleProperties.hpp storage/ndb/include/util/SocketAuthenticator.hpp storage/ndb/include/util/SocketClient.hpp storage/ndb/include/util/SocketServer.hpp storage/ndb/include/util/UtilBuffer.hpp storage/ndb/include/util/Vector.hpp storage/ndb/include/util/basestring_vsnprintf.h storage/ndb/include/util/md5_hash.hpp storage/ndb/include/util/ndb_opts.h storage/ndb/include/util/ndb_rand.h storage/ndb/include/util/random.h storage/ndb/include/util/socket_io.h storage/ndb/include/util/uucode.h storage/ndb/include/util/version.h storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp storage/ndb/src/common/debugger/BlockNames.cpp storage/ndb/src/common/debugger/DebuggerNames.cpp storage/ndb/src/common/debugger/EventLogger.cpp storage/ndb/src/common/debugger/GrepError.cpp storage/ndb/src/common/debugger/SignalLoggerManager.cpp storage/ndb/src/common/debugger/signaldata/AccLock.cpp storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp storage/ndb/src/common/debugger/signaldata/AlterTab.cpp storage/ndb/src/common/debugger/signaldata/AlterTable.cpp storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp storage/ndb/src/common/debugger/signaldata/ContinueB.cpp storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp storage/ndb/src/common/debugger/signaldata/DropIndx.cpp storage/ndb/src/common/debugger/signaldata/DropTab.cpp storage/ndb/src/common/debugger/signaldata/DropTrig.cpp storage/ndb/src/common/debugger/signaldata/FailRep.cpp storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp storage/ndb/src/common/debugger/signaldata/FsConf.cpp storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp storage/ndb/src/common/debugger/signaldata/FsRef.cpp storage/ndb/src/common/debugger/signaldata/GCPSave.cpp storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp storage/ndb/src/common/debugger/signaldata/LCP.cpp storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp storage/ndb/src/common/debugger/signaldata/LqhKey.cpp storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp storage/ndb/src/common/debugger/signaldata/ScanTab.cpp storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp storage/ndb/src/common/debugger/signaldata/SignalNames.cpp storage/ndb/src/common/debugger/signaldata/StartRec.cpp storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp storage/ndb/src/common/debugger/signaldata/SystemError.cpp storage/ndb/src/common/debugger/signaldata/TcIndx.cpp storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp storage/ndb/src/common/debugger/signaldata/TupCommit.cpp storage/ndb/src/common/debugger/signaldata/TupKey.cpp storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp storage/ndb/src/common/debugger/signaldata/UtilLock.cpp storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp storage/ndb/src/common/logger/ConsoleLogHandler.cpp storage/ndb/src/common/logger/FileLogHandler.cpp storage/ndb/src/common/logger/LogHandler.cpp storage/ndb/src/common/logger/LogHandlerList.cpp storage/ndb/src/common/logger/LogHandlerList.hpp storage/ndb/src/common/logger/Logger.cpp storage/ndb/src/common/logger/SysLogHandler.cpp storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp storage/ndb/src/common/mgmcommon/IPCConfig.cpp storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp storage/ndb/src/common/portlib/NdbCondition.c storage/ndb/src/common/portlib/NdbConfig.c storage/ndb/src/common/portlib/NdbDaemon.c storage/ndb/src/common/portlib/NdbEnv.c storage/ndb/src/common/portlib/NdbHost.c storage/ndb/src/common/portlib/NdbMem.c storage/ndb/src/common/portlib/NdbMutex.c storage/ndb/src/common/portlib/NdbPortLibTest.cpp storage/ndb/src/common/portlib/NdbSleep.c storage/ndb/src/common/portlib/NdbTCP.cpp storage/ndb/src/common/portlib/NdbThread.c storage/ndb/src/common/portlib/NdbTick.c storage/ndb/src/common/portlib/memtest.c storage/ndb/src/common/portlib/mmstest.cpp storage/ndb/src/common/portlib/munmaptest.cpp storage/ndb/src/common/portlib/win32/NdbCondition.c storage/ndb/src/common/portlib/win32/NdbDaemon.c storage/ndb/src/common/portlib/win32/NdbEnv.c storage/ndb/src/common/portlib/win32/NdbHost.c storage/ndb/src/common/portlib/win32/NdbMem.c storage/ndb/src/common/portlib/win32/NdbMutex.c storage/ndb/src/common/portlib/win32/NdbSleep.c storage/ndb/src/common/portlib/win32/NdbTCP.c storage/ndb/src/common/portlib/win32/NdbThread.c storage/ndb/src/common/portlib/win32/NdbTick.c storage/ndb/src/common/transporter/Packer.cpp storage/ndb/src/common/transporter/Packer.hpp storage/ndb/src/common/transporter/SCI_Transporter.cpp storage/ndb/src/common/transporter/SCI_Transporter.hpp storage/ndb/src/common/transporter/SHM_Buffer.hpp storage/ndb/src/common/transporter/SHM_Transporter.cpp storage/ndb/src/common/transporter/SHM_Transporter.hpp storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp storage/ndb/src/common/transporter/SendBuffer.cpp storage/ndb/src/common/transporter/SendBuffer.hpp storage/ndb/src/common/transporter/TCP_Transporter.cpp storage/ndb/src/common/transporter/TCP_Transporter.hpp storage/ndb/src/common/transporter/Transporter.cpp storage/ndb/src/common/transporter/Transporter.hpp storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp storage/ndb/src/common/transporter/TransporterRegistry.cpp storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp storage/ndb/src/common/transporter/buddy.cpp storage/ndb/src/common/transporter/buddy.hpp storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp storage/ndb/src/common/util/BaseString.cpp storage/ndb/src/common/util/File.cpp storage/ndb/src/common/util/InputStream.cpp storage/ndb/src/common/util/NdbOut.cpp storage/ndb/src/common/util/NdbSqlUtil.cpp storage/ndb/src/common/util/OutputStream.cpp storage/ndb/src/common/util/Parser.cpp storage/ndb/src/common/util/Properties.cpp storage/ndb/src/common/util/SimpleProperties.cpp storage/ndb/src/common/util/SocketAuthenticator.cpp storage/ndb/src/common/util/SocketClient.cpp storage/ndb/src/common/util/SocketServer.cpp storage/ndb/src/common/util/basestring_vsnprintf.c storage/ndb/src/common/util/filetest/FileUnitTest.cpp storage/ndb/src/common/util/filetest/FileUnitTest.hpp storage/ndb/src/common/util/md5_hash.cpp storage/ndb/src/common/util/ndb_init.c storage/ndb/src/common/util/ndb_rand.c storage/ndb/src/common/util/random.c storage/ndb/src/common/util/socket_io.cpp storage/ndb/src/common/util/strdup.c storage/ndb/src/common/util/testProperties/testProperties.cpp storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp storage/ndb/src/common/util/uucode.c storage/ndb/src/common/util/version.c storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp storage/ndb/src/cw/cpcc-win32/C++/TreeView.h storage/ndb/src/cw/cpcc-win32/C++/resource.h storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/Database.cs storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs storage/ndb/src/cw/cpcc-win32/csharp/Process.cs storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs storage/ndb/src/cw/cpcd/APIService.cpp storage/ndb/src/cw/cpcd/APIService.hpp storage/ndb/src/cw/cpcd/CPCD.cpp storage/ndb/src/cw/cpcd/CPCD.hpp storage/ndb/src/cw/cpcd/Monitor.cpp storage/ndb/src/cw/cpcd/Process.cpp storage/ndb/src/cw/cpcd/common.cpp storage/ndb/src/cw/cpcd/common.hpp storage/ndb/src/cw/cpcd/main.cpp storage/ndb/src/cw/test/socketclient/socketClientTest.cpp storage/ndb/src/cw/util/ClientInterface.cpp storage/ndb/src/cw/util/ClientInterface.hpp storage/ndb/src/cw/util/SocketRegistry.cpp storage/ndb/src/cw/util/SocketRegistry.hpp storage/ndb/src/cw/util/SocketService.cpp storage/ndb/src/cw/util/SocketService.hpp storage/ndb/src/kernel/SimBlockList.cpp storage/ndb/src/kernel/blocks/backup/Backup.cpp storage/ndb/src/kernel/blocks/backup/Backup.hpp storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp storage/ndb/src/kernel/blocks/backup/BackupInit.cpp storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp storage/ndb/src/kernel/blocks/backup/read.cpp storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp storage/ndb/src/kernel/blocks/diskpage.hpp storage/ndb/src/kernel/blocks/lgman.hpp storage/ndb/src/kernel/blocks/mutexes.hpp storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp storage/ndb/src/kernel/blocks/pgman.cpp storage/ndb/src/kernel/blocks/pgman.hpp storage/ndb/src/kernel/blocks/print_file.cpp storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp storage/ndb/src/kernel/blocks/qmgr/timer.hpp storage/ndb/src/kernel/blocks/record_types.hpp storage/ndb/src/kernel/blocks/restore.cpp storage/ndb/src/kernel/blocks/restore.hpp storage/ndb/src/kernel/blocks/suma/Suma.cpp storage/ndb/src/kernel/blocks/suma/Suma.hpp storage/ndb/src/kernel/blocks/suma/SumaInit.cpp storage/ndb/src/kernel/blocks/trix/Trix.cpp storage/ndb/src/kernel/blocks/trix/Trix.hpp storage/ndb/src/kernel/blocks/tsman.cpp storage/ndb/src/kernel/blocks/tsman.hpp storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp storage/ndb/src/kernel/error/ErrorReporter.cpp storage/ndb/src/kernel/error/ErrorReporter.hpp storage/ndb/src/kernel/error/TimeModule.cpp storage/ndb/src/kernel/error/TimeModule.hpp storage/ndb/src/kernel/error/ndbd_exit_codes.c storage/ndb/src/kernel/main.cpp storage/ndb/src/kernel/vm/Array.hpp storage/ndb/src/kernel/vm/ArrayPool.hpp storage/ndb/src/kernel/vm/CArray.hpp storage/ndb/src/kernel/vm/Callback.hpp storage/ndb/src/kernel/vm/ClusterConfiguration.cpp storage/ndb/src/kernel/vm/ClusterConfiguration.hpp storage/ndb/src/kernel/vm/Configuration.cpp storage/ndb/src/kernel/vm/Configuration.hpp storage/ndb/src/kernel/vm/DLCFifoList.hpp storage/ndb/src/kernel/vm/DLCHashTable.hpp storage/ndb/src/kernel/vm/DLFifoList.hpp storage/ndb/src/kernel/vm/DLHashTable.hpp storage/ndb/src/kernel/vm/DLHashTable2.hpp storage/ndb/src/kernel/vm/DLList.hpp storage/ndb/src/kernel/vm/DataBuffer.hpp storage/ndb/src/kernel/vm/DynArr256.cpp storage/ndb/src/kernel/vm/DynArr256.hpp storage/ndb/src/kernel/vm/Emulator.cpp storage/ndb/src/kernel/vm/Emulator.hpp storage/ndb/src/kernel/vm/FastScheduler.cpp storage/ndb/src/kernel/vm/FastScheduler.hpp storage/ndb/src/kernel/vm/GlobalData.hpp storage/ndb/src/kernel/vm/KeyDescriptor.hpp storage/ndb/src/kernel/vm/KeyTable.hpp storage/ndb/src/kernel/vm/KeyTable2.hpp storage/ndb/src/kernel/vm/KeyTable2Ref.hpp storage/ndb/src/kernel/vm/LinearPool.hpp storage/ndb/src/kernel/vm/LongSignal.hpp storage/ndb/src/kernel/vm/Mutex.cpp storage/ndb/src/kernel/vm/Mutex.hpp storage/ndb/src/kernel/vm/NdbdSuperPool.cpp storage/ndb/src/kernel/vm/NdbdSuperPool.hpp storage/ndb/src/kernel/vm/Pool.cpp storage/ndb/src/kernel/vm/Pool.hpp storage/ndb/src/kernel/vm/Prio.hpp storage/ndb/src/kernel/vm/RWPool.cpp storage/ndb/src/kernel/vm/RWPool.hpp storage/ndb/src/kernel/vm/RequestTracker.hpp storage/ndb/src/kernel/vm/Rope.hpp storage/ndb/src/kernel/vm/SLFifoList.hpp storage/ndb/src/kernel/vm/SLList.hpp storage/ndb/src/kernel/vm/SafeCounter.cpp storage/ndb/src/kernel/vm/SafeCounter.hpp storage/ndb/src/kernel/vm/SectionReader.cpp storage/ndb/src/kernel/vm/SectionReader.hpp storage/ndb/src/kernel/vm/SignalCounter.hpp storage/ndb/src/kernel/vm/SimBlockList.hpp storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp storage/ndb/src/kernel/vm/SimulatedBlock.cpp storage/ndb/src/kernel/vm/SimulatedBlock.hpp storage/ndb/src/kernel/vm/SuperPool.cpp storage/ndb/src/kernel/vm/SuperPool.hpp storage/ndb/src/kernel/vm/ThreadConfig.cpp storage/ndb/src/kernel/vm/ThreadConfig.hpp storage/ndb/src/kernel/vm/TimeQueue.cpp storage/ndb/src/kernel/vm/TimeQueue.hpp storage/ndb/src/kernel/vm/TransporterCallback.cpp storage/ndb/src/kernel/vm/VMSignal.cpp storage/ndb/src/kernel/vm/VMSignal.hpp storage/ndb/src/kernel/vm/WOPool.cpp storage/ndb/src/kernel/vm/WOPool.hpp storage/ndb/src/kernel/vm/WaitQueue.hpp storage/ndb/src/kernel/vm/WatchDog.cpp storage/ndb/src/kernel/vm/WatchDog.hpp storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp storage/ndb/src/kernel/vm/al_test/main.cpp storage/ndb/src/kernel/vm/bench_pool.cpp storage/ndb/src/kernel/vm/ndbd_malloc.cpp storage/ndb/src/kernel/vm/ndbd_malloc.hpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp storage/ndb/src/kernel/vm/pc.hpp storage/ndb/src/kernel/vm/testCopy/rr.cpp storage/ndb/src/kernel/vm/testCopy/testCopy.cpp storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp storage/ndb/src/kernel/vm/testSuperPool.cpp storage/ndb/src/mgmapi/LocalConfig.cpp storage/ndb/src/mgmapi/LocalConfig.hpp storage/ndb/src/mgmapi/mgmapi.cpp storage/ndb/src/mgmapi/mgmapi_configuration.hpp storage/ndb/src/mgmapi/mgmapi_internal.h storage/ndb/src/mgmapi/ndb_logevent.cpp storage/ndb/src/mgmapi/ndb_logevent.hpp storage/ndb/src/mgmapi/test/keso.c storage/ndb/src/mgmapi/test/mgmSrvApi.cpp storage/ndb/src/mgmclient/CommandInterpreter.cpp storage/ndb/src/mgmclient/main.cpp storage/ndb/src/mgmclient/ndb_mgmclient.h storage/ndb/src/mgmclient/ndb_mgmclient.hpp storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp storage/ndb/src/mgmsrv/Config.cpp storage/ndb/src/mgmsrv/Config.hpp storage/ndb/src/mgmsrv/ConfigInfo.cpp storage/ndb/src/mgmsrv/ConfigInfo.hpp storage/ndb/src/mgmsrv/InitConfigFileParser.cpp storage/ndb/src/mgmsrv/InitConfigFileParser.hpp storage/ndb/src/mgmsrv/MgmtSrvr.cpp storage/ndb/src/mgmsrv/MgmtSrvr.hpp storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp storage/ndb/src/mgmsrv/Services.cpp storage/ndb/src/mgmsrv/Services.hpp storage/ndb/src/mgmsrv/SignalQueue.cpp storage/ndb/src/mgmsrv/SignalQueue.hpp storage/ndb/src/mgmsrv/convertStrToInt.cpp storage/ndb/src/mgmsrv/convertStrToInt.hpp storage/ndb/src/mgmsrv/main.cpp storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp storage/ndb/src/ndbapi/API.hpp storage/ndb/src/ndbapi/ClusterMgr.cpp storage/ndb/src/ndbapi/ClusterMgr.hpp storage/ndb/src/ndbapi/DictCache.cpp storage/ndb/src/ndbapi/DictCache.hpp storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/src/ndbapi/NdbApiSignal.cpp storage/ndb/src/ndbapi/NdbApiSignal.hpp storage/ndb/src/ndbapi/NdbBlob.cpp storage/ndb/src/ndbapi/NdbBlobImpl.hpp storage/ndb/src/ndbapi/NdbDictionary.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp storage/ndb/src/ndbapi/NdbErrorOut.cpp storage/ndb/src/ndbapi/NdbEventOperation.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp storage/ndb/src/ndbapi/NdbImpl.hpp storage/ndb/src/ndbapi/NdbIndexOperation.cpp storage/ndb/src/ndbapi/NdbIndexStat.cpp storage/ndb/src/ndbapi/NdbLinHash.hpp storage/ndb/src/ndbapi/NdbOperation.cpp storage/ndb/src/ndbapi/NdbOperationDefine.cpp storage/ndb/src/ndbapi/NdbOperationExec.cpp storage/ndb/src/ndbapi/NdbOperationInt.cpp storage/ndb/src/ndbapi/NdbOperationScan.cpp storage/ndb/src/ndbapi/NdbOperationSearch.cpp storage/ndb/src/ndbapi/NdbPool.cpp storage/ndb/src/ndbapi/NdbPoolImpl.cpp storage/ndb/src/ndbapi/NdbPoolImpl.hpp storage/ndb/src/ndbapi/NdbRecAttr.cpp storage/ndb/src/ndbapi/NdbReceiver.cpp storage/ndb/src/ndbapi/NdbScanFilter.cpp storage/ndb/src/ndbapi/NdbScanOperation.cpp storage/ndb/src/ndbapi/NdbTransaction.cpp storage/ndb/src/ndbapi/NdbTransactionScan.cpp storage/ndb/src/ndbapi/NdbUtil.cpp storage/ndb/src/ndbapi/NdbUtil.hpp storage/ndb/src/ndbapi/NdbWaiter.hpp storage/ndb/src/ndbapi/Ndberr.cpp storage/ndb/src/ndbapi/Ndbif.cpp storage/ndb/src/ndbapi/Ndbinit.cpp storage/ndb/src/ndbapi/Ndblist.cpp storage/ndb/src/ndbapi/ObjectMap.cpp storage/ndb/src/ndbapi/ObjectMap.hpp storage/ndb/src/ndbapi/SignalSender.cpp storage/ndb/src/ndbapi/SignalSender.hpp storage/ndb/src/ndbapi/TransporterFacade.cpp storage/ndb/src/ndbapi/TransporterFacade.hpp storage/ndb/src/ndbapi/ndb_cluster_connection.cpp storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp storage/ndb/src/ndbapi/ndberror.c storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp storage/ndb/test/include/AtrtClient.hpp storage/ndb/test/include/CpcClient.hpp storage/ndb/test/include/DbUtil.hpp storage/ndb/test/include/HugoAsynchTransactions.hpp storage/ndb/test/include/HugoCalculator.hpp storage/ndb/test/include/HugoOperations.hpp storage/ndb/test/include/HugoTransactions.hpp storage/ndb/test/include/NDBT.hpp storage/ndb/test/include/NDBT_DataSet.hpp storage/ndb/test/include/NDBT_DataSetTransaction.hpp storage/ndb/test/include/NDBT_Error.hpp storage/ndb/test/include/NDBT_Output.hpp storage/ndb/test/include/NDBT_ResultRow.hpp storage/ndb/test/include/NDBT_ReturnCodes.h storage/ndb/test/include/NDBT_Stats.hpp storage/ndb/test/include/NDBT_Table.hpp storage/ndb/test/include/NDBT_Tables.hpp storage/ndb/test/include/NDBT_Test.hpp storage/ndb/test/include/NDBT_Thread.hpp storage/ndb/test/include/NdbBackup.hpp storage/ndb/test/include/NdbConfig.hpp storage/ndb/test/include/NdbGrep.hpp storage/ndb/test/include/NdbMixRestarter.hpp storage/ndb/test/include/NdbRestarter.hpp storage/ndb/test/include/NdbRestarts.hpp storage/ndb/test/include/NdbSchemaCon.hpp storage/ndb/test/include/NdbSchemaOp.hpp storage/ndb/test/include/NdbTest.hpp storage/ndb/test/include/NdbTimer.hpp storage/ndb/test/include/TestNdbEventOperation.hpp storage/ndb/test/include/UtilTransactions.hpp storage/ndb/test/include/getarg.h storage/ndb/test/ndbapi/InsertRecs.cpp storage/ndb/test/ndbapi/ScanFilter.hpp storage/ndb/test/ndbapi/ScanFunctions.hpp storage/ndb/test/ndbapi/ScanInterpretTest.hpp storage/ndb/test/ndbapi/TraceNdbApi.cpp storage/ndb/test/ndbapi/VerifyNdbApi.cpp storage/ndb/test/ndbapi/acid.cpp storage/ndb/test/ndbapi/acid2.cpp storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp storage/ndb/test/ndbapi/adoInsertRecs.cpp storage/ndb/test/ndbapi/asyncGenerator.cpp storage/ndb/test/ndbapi/bank/Bank.cpp storage/ndb/test/ndbapi/bank/Bank.hpp storage/ndb/test/ndbapi/bank/BankLoad.cpp storage/ndb/test/ndbapi/bank/bankCreator.cpp storage/ndb/test/ndbapi/bank/bankMakeGL.cpp storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp storage/ndb/test/ndbapi/bank/bankTimer.cpp storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp storage/ndb/test/ndbapi/bank/testBank.cpp storage/ndb/test/ndbapi/bench/asyncGenerator.cpp storage/ndb/test/ndbapi/bench/dbGenerator.h storage/ndb/test/ndbapi/bench/dbPopulate.cpp storage/ndb/test/ndbapi/bench/dbPopulate.h storage/ndb/test/ndbapi/bench/macros.h storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp storage/ndb/test/ndbapi/bench/mainPopulate.cpp storage/ndb/test/ndbapi/bench/ndb_async1.cpp storage/ndb/test/ndbapi/bench/ndb_async2.cpp storage/ndb/test/ndbapi/bench/ndb_error.hpp storage/ndb/test/ndbapi/bench/ndb_schema.hpp storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp storage/ndb/test/ndbapi/bench/testData.h storage/ndb/test/ndbapi/bench/testDefinitions.h storage/ndb/test/ndbapi/bench/userInterface.cpp storage/ndb/test/ndbapi/bench/userInterface.h storage/ndb/test/ndbapi/benchronja.cpp storage/ndb/test/ndbapi/bulk_copy.cpp storage/ndb/test/ndbapi/cdrserver.cpp storage/ndb/test/ndbapi/celloDb.cpp storage/ndb/test/ndbapi/create_all_tabs.cpp storage/ndb/test/ndbapi/create_tab.cpp storage/ndb/test/ndbapi/drop_all_tabs.cpp storage/ndb/test/ndbapi/flexAsynch.cpp storage/ndb/test/ndbapi/flexBench.cpp storage/ndb/test/ndbapi/flexHammer.cpp storage/ndb/test/ndbapi/flexScan.cpp storage/ndb/test/ndbapi/flexTT.cpp storage/ndb/test/ndbapi/flexTimedAsynch.cpp storage/ndb/test/ndbapi/flex_bench_mysql.cpp storage/ndb/test/ndbapi/index.cpp storage/ndb/test/ndbapi/index2.cpp storage/ndb/test/ndbapi/initronja.cpp storage/ndb/test/ndbapi/interpreterInTup.cpp storage/ndb/test/ndbapi/mainAsyncGenerator.cpp storage/ndb/test/ndbapi/msa.cpp storage/ndb/test/ndbapi/ndb_async1.cpp storage/ndb/test/ndbapi/ndb_async2.cpp storage/ndb/test/ndbapi/ndb_user_populate.cpp storage/ndb/test/ndbapi/ndb_user_transaction.cpp storage/ndb/test/ndbapi/ndb_user_transaction2.cpp storage/ndb/test/ndbapi/ndb_user_transaction3.cpp storage/ndb/test/ndbapi/ndb_user_transaction4.cpp storage/ndb/test/ndbapi/ndb_user_transaction5.cpp storage/ndb/test/ndbapi/ndb_user_transaction6.cpp storage/ndb/test/ndbapi/restarter.cpp storage/ndb/test/ndbapi/restarter2.cpp storage/ndb/test/ndbapi/restarts.cpp storage/ndb/test/ndbapi/size.cpp storage/ndb/test/ndbapi/testBackup.cpp storage/ndb/test/ndbapi/testBasic.cpp storage/ndb/test/ndbapi/testBasicAsynch.cpp storage/ndb/test/ndbapi/testBlobs.cpp storage/ndb/test/ndbapi/testDataBuffers.cpp storage/ndb/test/ndbapi/testDeadlock.cpp storage/ndb/test/ndbapi/testDict.cpp storage/ndb/test/ndbapi/testGrepVerify.cpp storage/ndb/test/ndbapi/testIndex.cpp storage/ndb/test/ndbapi/testIndexStat.cpp storage/ndb/test/ndbapi/testInterpreter.cpp storage/ndb/test/ndbapi/testMgm.cpp storage/ndb/test/ndbapi/testNDBT.cpp storage/ndb/test/ndbapi/testNdbApi.cpp storage/ndb/test/ndbapi/testNodeRestart.cpp storage/ndb/test/ndbapi/testOIBasic.cpp storage/ndb/test/ndbapi/testOperations.cpp storage/ndb/test/ndbapi/testOrderedIndex.cpp storage/ndb/test/ndbapi/testPartitioning.cpp storage/ndb/test/ndbapi/testReadPerf.cpp storage/ndb/test/ndbapi/testRestartGci.cpp storage/ndb/test/ndbapi/testSRBank.cpp storage/ndb/test/ndbapi/testScan.cpp storage/ndb/test/ndbapi/testScanInterpreter.cpp storage/ndb/test/ndbapi/testScanPerf.cpp storage/ndb/test/ndbapi/testSystemRestart.cpp storage/ndb/test/ndbapi/testTimeout.cpp storage/ndb/test/ndbapi/testTransactions.cpp storage/ndb/test/ndbapi/test_event.cpp storage/ndb/test/ndbapi/test_event_merge.cpp storage/ndb/test/ndbapi/test_event_multi_table.cpp storage/ndb/test/ndbapi/userInterface.cpp storage/ndb/test/ndbnet/test.run storage/ndb/test/ndbnet/testError.run storage/ndb/test/ndbnet/testMNF.run storage/ndb/test/ndbnet/testNR.run storage/ndb/test/ndbnet/testNR1.run storage/ndb/test/ndbnet/testNR4.run storage/ndb/test/ndbnet/testSRhang.run storage/ndb/test/ndbnet/testTR295.run storage/ndb/test/newtonapi/basic_test/basic/basic.cpp storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp storage/ndb/test/newtonapi/basic_test/common.cpp storage/ndb/test/newtonapi/basic_test/common.hpp storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp storage/ndb/test/newtonapi/basic_test/too_basic.cpp storage/ndb/test/newtonapi/perf_test/perf.cpp storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp storage/ndb/test/odbc/SQL99_test/SQL99_test.h storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp storage/ndb/test/odbc/client/SQLBindColTest.cpp storage/ndb/test/odbc/client/SQLBindParameterTest.cpp storage/ndb/test/odbc/client/SQLCancelTest.cpp storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp storage/ndb/test/odbc/client/SQLColAttributeTest.cpp storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp storage/ndb/test/odbc/client/SQLConnectTest.cpp storage/ndb/test/odbc/client/SQLCopyDescTest.cpp storage/ndb/test/odbc/client/SQLDescribeColTest.cpp storage/ndb/test/odbc/client/SQLDisconnectTest.cpp storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp storage/ndb/test/odbc/client/SQLEndTranTest.cpp storage/ndb/test/odbc/client/SQLErrorTest.cpp storage/ndb/test/odbc/client/SQLExecDirectTest.cpp storage/ndb/test/odbc/client/SQLExecuteTest.cpp storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp storage/ndb/test/odbc/client/SQLFetchTest.cpp storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp storage/ndb/test/odbc/client/SQLGetDataTest.cpp storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp storage/ndb/test/odbc/client/SQLGetInfoTest.cpp storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp storage/ndb/test/odbc/client/SQLParamDataTest.cpp storage/ndb/test/odbc/client/SQLPrepareTest.cpp storage/ndb/test/odbc/client/SQLPutDataTest.cpp storage/ndb/test/odbc/client/SQLRowCountTest.cpp storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp storage/ndb/test/odbc/client/SQLTablesTest.cpp storage/ndb/test/odbc/client/SQLTransactTest.cpp storage/ndb/test/odbc/client/common.hpp storage/ndb/test/odbc/client/main.cpp storage/ndb/test/odbc/driver/testOdbcDriver.cpp storage/ndb/test/odbc/test_compiler/test_compiler.cpp storage/ndb/test/run-test/atrt-analyze-result.sh storage/ndb/test/run-test/atrt-clear-result.sh storage/ndb/test/run-test/atrt-gather-result.sh storage/ndb/test/run-test/atrt-setup.sh storage/ndb/test/run-test/atrt-testBackup storage/ndb/test/run-test/atrt.hpp storage/ndb/test/run-test/main.cpp storage/ndb/test/run-test/make-index.sh storage/ndb/test/src/CpcClient.cpp storage/ndb/test/src/DbUtil.cpp storage/ndb/test/src/HugoAsynchTransactions.cpp storage/ndb/test/src/HugoCalculator.cpp storage/ndb/test/src/HugoOperations.cpp storage/ndb/test/src/HugoTransactions.cpp storage/ndb/test/src/NDBT_Error.cpp storage/ndb/test/src/NDBT_Output.cpp storage/ndb/test/src/NDBT_ResultRow.cpp storage/ndb/test/src/NDBT_ReturnCodes.cpp storage/ndb/test/src/NDBT_Table.cpp storage/ndb/test/src/NDBT_Tables.cpp storage/ndb/test/src/NDBT_Test.cpp storage/ndb/test/src/NDBT_Thread.cpp storage/ndb/test/src/NdbBackup.cpp storage/ndb/test/src/NdbConfig.cpp storage/ndb/test/src/NdbGrep.cpp storage/ndb/test/src/NdbMixRestarter.cpp storage/ndb/test/src/NdbRestarter.cpp storage/ndb/test/src/NdbRestarts.cpp storage/ndb/test/src/NdbSchemaCon.cpp storage/ndb/test/src/NdbSchemaOp.cpp storage/ndb/test/src/UtilTransactions.cpp storage/ndb/test/tools/connect.cpp storage/ndb/test/tools/copy_tab.cpp storage/ndb/test/tools/cpcc.cpp storage/ndb/test/tools/create_index.cpp storage/ndb/test/tools/hugoCalculator.cpp storage/ndb/test/tools/hugoFill.cpp storage/ndb/test/tools/hugoLoad.cpp storage/ndb/test/tools/hugoLockRecords.cpp storage/ndb/test/tools/hugoPkDelete.cpp storage/ndb/test/tools/hugoPkRead.cpp storage/ndb/test/tools/hugoPkReadRecord.cpp storage/ndb/test/tools/hugoPkUpdate.cpp storage/ndb/test/tools/hugoScanRead.cpp storage/ndb/test/tools/hugoScanUpdate.cpp storage/ndb/test/tools/listen.cpp storage/ndb/test/tools/rep_latency.cpp storage/ndb/test/tools/restart.cpp storage/ndb/test/tools/transproxy.cpp storage/ndb/test/tools/verify_index.cpp storage/ndb/tools/clean-links.sh storage/ndb/tools/delete_all.cpp storage/ndb/tools/desc.cpp storage/ndb/tools/drop_index.cpp storage/ndb/tools/drop_tab.cpp storage/ndb/tools/listTables.cpp storage/ndb/tools/make-errors.pl storage/ndb/tools/make-links.sh storage/ndb/tools/ndb_config.cpp storage/ndb/tools/ndb_error_reporter storage/ndb/tools/ndb_test_platform.cpp storage/ndb/tools/ndbsql.cpp storage/ndb/tools/restore/Restore.cpp storage/ndb/tools/restore/Restore.hpp storage/ndb/tools/restore/consumer.cpp storage/ndb/tools/restore/consumer.hpp storage/ndb/tools/restore/consumer_printer.cpp storage/ndb/tools/restore/consumer_printer.hpp storage/ndb/tools/restore/consumer_restore.cpp storage/ndb/tools/restore/consumer_restore.hpp storage/ndb/tools/restore/consumer_restorem.cpp storage/ndb/tools/restore/ndb_nodegroup_map.h storage/ndb/tools/restore/restore_main.cpp storage/ndb/tools/rgrep storage/ndb/tools/select_all.cpp storage/ndb/tools/select_count.cpp storage/ndb/tools/waiter.cpp storage/oqgraph/CMakeLists.txt storage/oqgraph/ha_oqgraph.cc storage/oqgraph/ha_oqgraph.h storage/oqgraph/mysql-test/oqgraph/boundary_conditions.result storage/oqgraph/mysql-test/oqgraph/boundary_conditions.test storage/oqgraph/mysql-test/oqgraph/invalid_operations.result storage/oqgraph/mysql-test/oqgraph/invalid_operations.test storage/oqgraph/mysql-test/oqgraph/isnull.result storage/oqgraph/mysql-test/oqgraph/isnull.test storage/oqgraph/mysql-test/oqgraph/regression_1233113.result storage/oqgraph/mysql-test/oqgraph/regression_1233113.test storage/oqgraph/mysql-test/oqgraph/regression_drop_after.result storage/oqgraph/mysql-test/oqgraph/regression_drop_after.test storage/oqgraph/mysql-test/oqgraph/suite.pm storage/perfschema/CMakeLists.txt storage/perfschema/pfs_check.cc storage/perfschema/pfs_events_waits.cc storage/perfschema/pfs_global.cc storage/perfschema/table_events_waits.cc storage/perfschema/unittest/CMakeLists.txt storage/sequence/mysql-test/sequence/simple.result storage/sequence/mysql-test/sequence/simple.test storage/sequence/sequence.cc storage/sphinx/ha_sphinx.cc storage/sphinx/mysql-test/sphinx/suite.pm storage/spider/ha_spider.cc storage/spider/ha_spider.h storage/spider/mysql-test/spider/bg/suite.opt storage/spider/scripts/install_spider.sql storage/spider/spd_conn.cc storage/spider/spd_conn.h storage/spider/spd_copy_tables.cc storage/spider/spd_copy_tables.h storage/spider/spd_db_conn.cc storage/spider/spd_db_conn.h storage/spider/spd_db_handlersocket.cc storage/spider/spd_db_handlersocket.h storage/spider/spd_db_include.h storage/spider/spd_db_mysql.cc storage/spider/spd_db_mysql.h storage/spider/spd_db_oracle.cc storage/spider/spd_db_oracle.h storage/spider/spd_direct_sql.cc storage/spider/spd_direct_sql.h storage/spider/spd_err.h storage/spider/spd_i_s.cc storage/spider/spd_include.h storage/spider/spd_malloc.cc storage/spider/spd_malloc.h storage/spider/spd_param.cc storage/spider/spd_param.h storage/spider/spd_ping_table.cc storage/spider/spd_ping_table.h storage/spider/spd_sys_table.cc storage/spider/spd_sys_table.h storage/spider/spd_table.cc storage/spider/spd_table.h storage/spider/spd_trx.cc storage/spider/spd_trx.h storage/spider/spd_udf.cc storage/spider/spd_udf.h storage/tokudb/CMakeLists.txt storage/tokudb/README.md storage/tokudb/ft-index/CMakeLists.txt storage/tokudb/ft-index/README.md storage/tokudb/ft-index/buildheader/CMakeLists.txt storage/tokudb/ft-index/buildheader/make_tdb.cc storage/tokudb/ft-index/cmake_modules/TokuSetupCTest.cmake storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake storage/tokudb/ft-index/examples/CMakeLists.txt storage/tokudb/ft-index/ft/CMakeLists.txt storage/tokudb/ft-index/ft/bndata.cc storage/tokudb/ft-index/ft/bndata.h storage/tokudb/ft-index/ft/cachetable-internal.h storage/tokudb/ft-index/ft/cachetable.cc storage/tokudb/ft-index/ft/cachetable.h storage/tokudb/ft-index/ft/checkpoint.cc storage/tokudb/ft-index/ft/compress.cc storage/tokudb/ft-index/ft/fifo.cc storage/tokudb/ft-index/ft/fifo.h storage/tokudb/ft-index/ft/ft-cachetable-wrappers.cc storage/tokudb/ft-index/ft/ft-flusher.cc storage/tokudb/ft-index/ft/ft-flusher.h storage/tokudb/ft-index/ft/ft-hot-flusher.cc storage/tokudb/ft-index/ft/ft-internal.h storage/tokudb/ft-index/ft/ft-ops.cc storage/tokudb/ft-index/ft/ft-ops.h storage/tokudb/ft-index/ft/ft-serialize.cc storage/tokudb/ft-index/ft/ft-test-helpers.cc storage/tokudb/ft-index/ft/ft.cc storage/tokudb/ft-index/ft/ft.h storage/tokudb/ft-index/ft/ft_layout_version.h storage/tokudb/ft-index/ft/ft_node-serialize.cc storage/tokudb/ft-index/ft/ftloader-internal.h storage/tokudb/ft-index/ft/ftloader.cc storage/tokudb/ft-index/ft/fttypes.h storage/tokudb/ft-index/ft/leafentry.h storage/tokudb/ft-index/ft/log-internal.h storage/tokudb/ft-index/ft/logformat.cc storage/tokudb/ft-index/ft/logger.cc storage/tokudb/ft-index/ft/logger.h storage/tokudb/ft-index/ft/roll.cc storage/tokudb/ft-index/ft/rollback-apply.cc storage/tokudb/ft-index/ft/rollback-ct-callbacks.cc storage/tokudb/ft-index/ft/rollback-ct-callbacks.h storage/tokudb/ft-index/ft/rollback.cc storage/tokudb/ft-index/ft/rollback.h storage/tokudb/ft-index/ft/rollback_log_node_cache.cc storage/tokudb/ft-index/ft/rollback_log_node_cache.h storage/tokudb/ft-index/ft/tests/cachetable-5097.cc storage/tokudb/ft-index/ft/tests/cachetable-5978.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction2.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction3.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction4.cc storage/tokudb/ft-index/ft/tests/cachetable-eviction-close-test2.cc storage/tokudb/ft-index/ft/tests/cachetable-eviction-getandpin-test2.cc storage/tokudb/ft-index/ft/tests/cachetable-evictor-class.cc storage/tokudb/ft-index/ft/tests/ft-bfe-query.cc storage/tokudb/ft-index/ft/tests/ft-clock-test.cc storage/tokudb/ft-index/ft/tests/ft-serialize-benchmark.cc storage/tokudb/ft-index/ft/tests/ft-serialize-test.cc storage/tokudb/ft-index/ft/tests/ftloader-test-bad-generate.cc storage/tokudb/ft-index/ft/tests/ftloader-test-extractor-errors.cc storage/tokudb/ft-index/ft/tests/ftloader-test-extractor.cc storage/tokudb/ft-index/ft/tests/ftloader-test-merge-files-dbufio.cc storage/tokudb/ft-index/ft/tests/ftloader-test-open.cc storage/tokudb/ft-index/ft/tests/ftloader-test-writer-errors.cc storage/tokudb/ft-index/ft/tests/ftloader-test-writer.cc storage/tokudb/ft-index/ft/tests/ftloader-test.cc storage/tokudb/ft-index/ft/tests/make-tree.cc storage/tokudb/ft-index/ft/tests/msnfilter.cc storage/tokudb/ft-index/ft/tests/orthopush-flush.cc storage/tokudb/ft-index/ft/tests/test-flushes-on-cleaner.cc storage/tokudb/ft-index/ft/tests/test-hot-with-bounds.cc storage/tokudb/ft-index/ft/tests/test-inc-split.cc storage/tokudb/ft-index/ft/tests/test-leafentry-nested.cc storage/tokudb/ft-index/ft/tests/test-pick-child-to-flush.cc storage/tokudb/ft-index/ft/tests/test.h storage/tokudb/ft-index/ft/tests/upgrade_test_simple.cc storage/tokudb/ft-index/ft/tests/verify-bad-msn.cc storage/tokudb/ft-index/ft/tests/verify-bad-pivots.cc storage/tokudb/ft-index/ft/tests/verify-dup-in-leaf.cc storage/tokudb/ft-index/ft/tests/verify-dup-pivots.cc storage/tokudb/ft-index/ft/tests/verify-misrouted-msgs.cc storage/tokudb/ft-index/ft/tests/verify-unsorted-leaf.cc storage/tokudb/ft-index/ft/tests/verify-unsorted-pivots.cc storage/tokudb/ft-index/ft/txn.cc storage/tokudb/ft-index/ft/txn_manager.cc storage/tokudb/ft-index/ft/txn_manager.h storage/tokudb/ft-index/ft/ule.cc storage/tokudb/ft-index/ft/ule.h storage/tokudb/ft-index/locktree/lock_request.cc storage/tokudb/ft-index/locktree/lock_request.h storage/tokudb/ft-index/locktree/locktree.cc storage/tokudb/ft-index/locktree/locktree.h storage/tokudb/ft-index/locktree/manager.cc storage/tokudb/ft-index/locktree/tests/lock_request_create_set.cc storage/tokudb/ft-index/locktree/tests/lock_request_get_set_keys.cc storage/tokudb/ft-index/locktree/tests/lock_request_start_deadlock.cc storage/tokudb/ft-index/locktree/tests/lock_request_start_pending.cc storage/tokudb/ft-index/locktree/tests/lock_request_unit_test.h storage/tokudb/ft-index/locktree/tests/locktree_conflicts.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_stalls.cc storage/tokudb/ft-index/locktree/tests/locktree_infinity.cc storage/tokudb/ft-index/locktree/tests/locktree_overlapping_relock.cc storage/tokudb/ft-index/locktree/tests/locktree_simple_lock.cc storage/tokudb/ft-index/locktree/tests/locktree_single_txnid_optimization.cc storage/tokudb/ft-index/locktree/tests/manager_create_destroy.cc storage/tokudb/ft-index/locktree/tests/manager_params.cc storage/tokudb/ft-index/locktree/tests/manager_status.cc storage/tokudb/ft-index/portability/CMakeLists.txt storage/tokudb/ft-index/portability/file.cc storage/tokudb/ft-index/portability/os_malloc.cc storage/tokudb/ft-index/scripts/run.stress-tests.py storage/tokudb/ft-index/src/CMakeLists.txt storage/tokudb/ft-index/src/export.map storage/tokudb/ft-index/src/indexer-undo-do.cc storage/tokudb/ft-index/src/loader.cc storage/tokudb/ft-index/src/tests/CMakeLists.txt storage/tokudb/ft-index/src/tests/blocking-first-empty.cc storage/tokudb/ft-index/src/tests/blocking-first.cc storage/tokudb/ft-index/src/tests/blocking-last.cc storage/tokudb/ft-index/src/tests/blocking-next-prev-deadlock.cc storage/tokudb/ft-index/src/tests/blocking-prelock-range.cc storage/tokudb/ft-index/src/tests/blocking-put-timeout.cc storage/tokudb/ft-index/src/tests/blocking-put-wakeup.cc storage/tokudb/ft-index/src/tests/blocking-put.cc storage/tokudb/ft-index/src/tests/blocking-set-range-0.cc storage/tokudb/ft-index/src/tests/blocking-set-range-n.cc storage/tokudb/ft-index/src/tests/blocking-set-range-reverse-0.cc storage/tokudb/ft-index/src/tests/blocking-set.cc storage/tokudb/ft-index/src/tests/blocking-table-lock.cc storage/tokudb/ft-index/src/tests/db-put-simple-deadlock-threads.cc storage/tokudb/ft-index/src/tests/db-put-simple-lockwait.cc storage/tokudb/ft-index/src/tests/db-put-update-deadlock.cc storage/tokudb/ft-index/src/tests/env_loader_memory.cc storage/tokudb/ft-index/src/tests/filesize.cc storage/tokudb/ft-index/src/tests/hot-optimize-table-tests.cc storage/tokudb/ft-index/src/tests/test_4368.cc storage/tokudb/ft-index/src/tests/test_iterate_pending_lock_requests.cc storage/tokudb/ft-index/src/tests/test_kv_gen.h storage/tokudb/ft-index/src/tests/test_lock_timeout_callback.cc storage/tokudb/ft-index/src/tests/test_stress5.cc storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h storage/tokudb/ft-index/src/tests/update-multiple-with-indexer-array.cc storage/tokudb/ft-index/src/ydb-internal.h storage/tokudb/ft-index/src/ydb.cc storage/tokudb/ft-index/src/ydb_cursor.cc storage/tokudb/ft-index/src/ydb_db.cc storage/tokudb/ft-index/src/ydb_env_func.cc storage/tokudb/ft-index/src/ydb_row_lock.cc storage/tokudb/ft-index/src/ydb_txn.cc storage/tokudb/ft-index/src/ydb_txn.h storage/tokudb/ft-index/toku_include/CMakeLists.txt storage/tokudb/ft-index/util/CMakeLists.txt storage/tokudb/ft-index/util/frwlock.cc storage/tokudb/ft-index/util/frwlock.h storage/tokudb/ft-index/util/kibbutz.cc storage/tokudb/ft-index/util/kibbutz.h storage/tokudb/ft-index/util/mempool.cc storage/tokudb/ft-index/util/mempool.h storage/tokudb/ft-index/util/tests/test-kibbutz.cc storage/tokudb/ft-index/util/tests/test-kibbutz2.cc storage/tokudb/ft-index/util/tests/test-rwlock-cheapness.cc storage/tokudb/ft-index/util/tests/test-rwlock.cc storage/tokudb/ha_tokudb.cc storage/tokudb/ha_tokudb.h storage/tokudb/ha_tokudb_admin.cc storage/tokudb/ha_tokudb_alter_56.cc storage/tokudb/ha_tokudb_alter_common.cc storage/tokudb/ha_tokudb_update.cc storage/tokudb/hatoku_cmp.cc storage/tokudb/hatoku_cmp.h storage/tokudb/hatoku_defines.h storage/tokudb/hatoku_hton.cc storage/tokudb/hatoku_hton.h storage/tokudb/mysql-test/tokudb/locks-blocking-row-locks-testgen.py storage/tokudb/mysql-test/tokudb/r/auto_increment.result storage/tokudb/mysql-test/tokudb/r/auto_increment_boundary.result storage/tokudb/mysql-test/tokudb/r/auto_increment_boundary_traditional.result storage/tokudb/mysql-test/tokudb/r/change_column_char_default.result storage/tokudb/mysql-test/tokudb/r/change_column_int_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin_multiple.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_prefix_a.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_prefix_b.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_sum_cross256.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-0.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-1.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-2.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-3.result storage/tokudb/mysql-test/tokudb/r/cluster_create_table.result storage/tokudb/mysql-test/tokudb/r/cluster_filter_unpack_varchar_and_int_hidden.result storage/tokudb/mysql-test/tokudb/r/ctype_collate.result storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result storage/tokudb/mysql-test/tokudb/r/hotindex-del-fast.result storage/tokudb/mysql-test/tokudb/r/hotindex-del-slow.result storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result storage/tokudb/mysql-test/tokudb/r/locks-blocking-row-locks-getset.result storage/tokudb/mysql-test/tokudb/r/locks-blocking-row-locks.result storage/tokudb/mysql-test/tokudb/r/mvcc-10.result storage/tokudb/mysql-test/tokudb/r/mvcc-11.result storage/tokudb/mysql-test/tokudb/r/mvcc-12.result storage/tokudb/mysql-test/tokudb/r/mvcc-13.result storage/tokudb/mysql-test/tokudb/r/mvcc-14.result storage/tokudb/mysql-test/tokudb/r/mvcc-15.result storage/tokudb/mysql-test/tokudb/r/mvcc-16.result storage/tokudb/mysql-test/tokudb/r/mvcc-17.result storage/tokudb/mysql-test/tokudb/r/mvcc-18.result storage/tokudb/mysql-test/tokudb/r/mvcc-21.result storage/tokudb/mysql-test/tokudb/r/mvcc-22.result storage/tokudb/mysql-test/tokudb/r/mvcc-23.result storage/tokudb/mysql-test/tokudb/r/mvcc-25.result storage/tokudb/mysql-test/tokudb/r/mvcc-3.result storage/tokudb/mysql-test/tokudb/r/mvcc-33.result storage/tokudb/mysql-test/tokudb/r/mvcc-34.result storage/tokudb/mysql-test/tokudb/r/mvcc-35.result storage/tokudb/mysql-test/tokudb/r/mvcc-36.result storage/tokudb/mysql-test/tokudb/r/mvcc-37.result storage/tokudb/mysql-test/tokudb/r/mvcc-38.result storage/tokudb/mysql-test/tokudb/r/mvcc-39.result storage/tokudb/mysql-test/tokudb/r/mvcc-4.result storage/tokudb/mysql-test/tokudb/r/mvcc-40.result storage/tokudb/mysql-test/tokudb/r/mvcc-5.result storage/tokudb/mysql-test/tokudb/r/mvcc-6.result storage/tokudb/mysql-test/tokudb/r/mvcc-7.result storage/tokudb/mysql-test/tokudb/r/mvcc-8.result storage/tokudb/mysql-test/tokudb/r/mvcc-9.result storage/tokudb/mysql-test/tokudb/r/mvcc-checksum-locks.result storage/tokudb/mysql-test/tokudb/r/type_binary.result storage/tokudb/mysql-test/tokudb/r/type_bit.result storage/tokudb/mysql-test/tokudb/r/type_blob.result storage/tokudb/mysql-test/tokudb/r/type_datetime.result storage/tokudb/mysql-test/tokudb/r/type_decimal.result storage/tokudb/mysql-test/tokudb/r/type_enum.result storage/tokudb/mysql-test/tokudb/r/type_float.result storage/tokudb/mysql-test/tokudb/r/type_nchar.result storage/tokudb/mysql-test/tokudb/r/type_newdecimal.result storage/tokudb/mysql-test/tokudb/r/type_set.result storage/tokudb/mysql-test/tokudb/r/type_timestamp.result storage/tokudb/mysql-test/tokudb/r/type_varchar.result storage/tokudb/mysql-test/tokudb/t/auto_increment.test storage/tokudb/mysql-test/tokudb/t/auto_increment_boundary.test storage/tokudb/mysql-test/tokudb/t/auto_increment_boundary_traditional.test storage/tokudb/mysql-test/tokudb/t/bulk-fetch.test storage/tokudb/mysql-test/tokudb/t/bulk-fetch2.test storage/tokudb/mysql-test/tokudb/t/change_column_all_1000_1.test storage/tokudb/mysql-test/tokudb/t/change_column_all_1000_10.test storage/tokudb/mysql-test/tokudb/t/change_column_auto_inc.test storage/tokudb/mysql-test/tokudb/t/change_column_bin.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_key.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_pad.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_blob.test storage/tokudb/mysql-test/tokudb/t/change_column_char.test storage/tokudb/mysql-test/tokudb/t/change_column_char_binary.test storage/tokudb/mysql-test/tokudb/t/change_column_char_charbinary.test storage/tokudb/mysql-test/tokudb/t/change_column_char_charset.test storage/tokudb/mysql-test/tokudb/t/change_column_char_default.test storage/tokudb/mysql-test/tokudb/t/change_column_char_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_char_key.test storage/tokudb/mysql-test/tokudb/t/change_column_char_null.test storage/tokudb/mysql-test/tokudb/t/change_column_char_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_int.test storage/tokudb/mysql-test/tokudb/t/change_column_int_default.test storage/tokudb/mysql-test/tokudb/t/change_column_int_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_int_key.test storage/tokudb/mysql-test/tokudb/t/change_column_int_not_supported.test storage/tokudb/mysql-test/tokudb/t/change_column_int_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_multiple_columns.test storage/tokudb/mysql-test/tokudb/t/change_column_text.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_default.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_key.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_multiple.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_null.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_varchar.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_charset.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_default.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_key.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_null.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_prefix_a.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_prefix_b.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_sum_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_varbin.test storage/tokudb/mysql-test/tokudb/t/cluster_1829.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test storage/tokudb/mysql-test/tokudb/t/cluster_create_table.test storage/tokudb/mysql-test/tokudb/t/cluster_delete.test storage/tokudb/mysql-test/tokudb/t/cluster_delete2.test storage/tokudb/mysql-test/tokudb/t/cluster_filter.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_key.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_and_int_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_varchar_prefix.test storage/tokudb/mysql-test/tokudb/t/cluster_key.test storage/tokudb/mysql-test/tokudb/t/cluster_query_plan.test storage/tokudb/mysql-test/tokudb/t/cluster_tokudb_bug_993.test storage/tokudb/mysql-test/tokudb/t/cluster_tokudb_bug_993_2.test storage/tokudb/mysql-test/tokudb/t/cluster_update.test storage/tokudb/mysql-test/tokudb/t/cluster_update2.test storage/tokudb/mysql-test/tokudb/t/ctype_ascii.test storage/tokudb/mysql-test/tokudb/t/ctype_collate.test storage/tokudb/mysql-test/tokudb/t/ctype_cp1250_ch.test storage/tokudb/mysql-test/tokudb/t/ctype_cp1251.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-1.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-fast.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-slow.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-1.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-2.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-bigchar.test storage/tokudb/mysql-test/tokudb/t/hotindex-update-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-update-1.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_lock_waits_released.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_lock_waits_timeout.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_locks_released.test storage/tokudb/mysql-test/tokudb/t/information-schema-global-status.test storage/tokudb/mysql-test/tokudb/t/lockretry-insert.writelocktable.test storage/tokudb/mysql-test/tokudb/t/lockretry-writelocktable.insert.test storage/tokudb/mysql-test/tokudb/t/lockretry-writelocktable.insert2.test storage/tokudb/mysql-test/tokudb/t/locks-blocking-row-locks-getset.test storage/tokudb/mysql-test/tokudb/t/locks-blocking-row-locks.test storage/tokudb/mysql-test/tokudb/t/locks-delete-deadlock-1.test storage/tokudb/mysql-test/tokudb/t/locks-no-read-lock-serializable-autocommit.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-1.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-2.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-3.test storage/tokudb/mysql-test/tokudb/t/locks-update-deadlock-1.test storage/tokudb/mysql-test/tokudb/t/mvcc-1.test storage/tokudb/mysql-test/tokudb/t/mvcc-10.test storage/tokudb/mysql-test/tokudb/t/mvcc-11.test storage/tokudb/mysql-test/tokudb/t/mvcc-12.test storage/tokudb/mysql-test/tokudb/t/mvcc-13.test storage/tokudb/mysql-test/tokudb/t/mvcc-14.test storage/tokudb/mysql-test/tokudb/t/mvcc-15.test storage/tokudb/mysql-test/tokudb/t/mvcc-16.test storage/tokudb/mysql-test/tokudb/t/mvcc-17.test storage/tokudb/mysql-test/tokudb/t/mvcc-18.test storage/tokudb/mysql-test/tokudb/t/mvcc-19.test storage/tokudb/mysql-test/tokudb/t/mvcc-2.test storage/tokudb/mysql-test/tokudb/t/mvcc-20.test storage/tokudb/mysql-test/tokudb/t/mvcc-21.test storage/tokudb/mysql-test/tokudb/t/mvcc-22.test storage/tokudb/mysql-test/tokudb/t/mvcc-23.test storage/tokudb/mysql-test/tokudb/t/mvcc-24.test storage/tokudb/mysql-test/tokudb/t/mvcc-25.test storage/tokudb/mysql-test/tokudb/t/mvcc-26.test storage/tokudb/mysql-test/tokudb/t/mvcc-27.test storage/tokudb/mysql-test/tokudb/t/mvcc-28.test storage/tokudb/mysql-test/tokudb/t/mvcc-2808-read-committed.test storage/tokudb/mysql-test/tokudb/t/mvcc-2808-read-uncommitted.test storage/tokudb/mysql-test/tokudb/t/mvcc-29.test storage/tokudb/mysql-test/tokudb/t/mvcc-3.test storage/tokudb/mysql-test/tokudb/t/mvcc-30.test storage/tokudb/mysql-test/tokudb/t/mvcc-31.test storage/tokudb/mysql-test/tokudb/t/mvcc-33.test storage/tokudb/mysql-test/tokudb/t/mvcc-34.test storage/tokudb/mysql-test/tokudb/t/mvcc-35.test storage/tokudb/mysql-test/tokudb/t/mvcc-36.test storage/tokudb/mysql-test/tokudb/t/mvcc-37.test storage/tokudb/mysql-test/tokudb/t/mvcc-38.test storage/tokudb/mysql-test/tokudb/t/mvcc-39.test storage/tokudb/mysql-test/tokudb/t/mvcc-4.test storage/tokudb/mysql-test/tokudb/t/mvcc-40.test storage/tokudb/mysql-test/tokudb/t/mvcc-5.test storage/tokudb/mysql-test/tokudb/t/mvcc-6.test storage/tokudb/mysql-test/tokudb/t/mvcc-7.test storage/tokudb/mysql-test/tokudb/t/mvcc-8.test storage/tokudb/mysql-test/tokudb/t/mvcc-9.test storage/tokudb/mysql-test/tokudb/t/mvcc-checksum-locks.test storage/tokudb/mysql-test/tokudb/t/nested_txn_autocommit.test storage/tokudb/mysql-test/tokudb/t/nested_txn_begin.test storage/tokudb/mysql-test/tokudb/t/nested_txn_implicit_commit.test storage/tokudb/mysql-test/tokudb/t/prim_key_1.test storage/tokudb/mysql-test/tokudb/t/prim_key_2.test storage/tokudb/mysql-test/tokudb/t/prim_key_3.test storage/tokudb/mysql-test/tokudb/t/prim_key_4.test storage/tokudb/mysql-test/tokudb/t/prim_key_5.test storage/tokudb/mysql-test/tokudb/t/prim_key_6.test storage/tokudb/mysql-test/tokudb/t/replace-ignore.test storage/tokudb/mysql-test/tokudb/t/rows-32m-0.test storage/tokudb/mysql-test/tokudb/t/rows-32m-1.test storage/tokudb/mysql-test/tokudb/t/rows-32m-rand-insert.test storage/tokudb/mysql-test/tokudb/t/rows-32m-seq-insert.test storage/tokudb/mysql-test/tokudb/t/savepoint-3.test storage/tokudb/mysql-test/tokudb/t/simple_delete_all.test storage/tokudb/mysql-test/tokudb/t/simple_join_tokudb_myisam.test storage/tokudb/mysql-test/tokudb/t/simple_truncate.test storage/tokudb/mysql-test/tokudb/t/truncate_row_count.test storage/tokudb/mysql-test/tokudb/t/truncate_txn_commit.test storage/tokudb/mysql-test/tokudb/t/truncate_txn_rollback.test storage/tokudb/mysql-test/tokudb/t/type_varchar.test storage/tokudb/mysql-test/tokudb_add_index/r/hot_create_unique_index.result storage/tokudb/mysql-test/tokudb_add_index/t/1522.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_1.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_10.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_11.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_12.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_13.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_14.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_16.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_17.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_18.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_2.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_3.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_4.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_6.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_7.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_8.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_9.test storage/tokudb/mysql-test/tokudb_add_index/t/falcon_bug_23691.test storage/tokudb/mysql-test/tokudb_add_index/t/falcon_bug_23692.test storage/tokudb/mysql-test/tokudb_add_index/t/hot_create_unique_index.test storage/tokudb/mysql-test/tokudb_add_index/t/tokudb_bug_1152.test storage/tokudb/mysql-test/tokudb_alter_table/r/ai_part.result storage/tokudb/mysql-test/tokudb_alter_table/r/alter_column_default.result storage/tokudb/mysql-test/tokudb_alter_table/r/auto_inc.result storage/tokudb/mysql-test/tokudb_alter_table/r/fractional_time_alter_table.result storage/tokudb/mysql-test/tokudb_alter_table/r/frm_discover.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_and_rename_table.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_part.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcr.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcr3.result storage/tokudb/mysql-test/tokudb_alter_table/r/other_alter.result storage/tokudb/mysql-test/tokudb_alter_table/r/other_alter2.result storage/tokudb/mysql-test/tokudb_alter_table/r/row_format_alter.result storage/tokudb/mysql-test/tokudb_alter_table/r/test_field_same_detection.result storage/tokudb/mysql-test/tokudb_alter_table/t/5260.test storage/tokudb/mysql-test/tokudb_alter_table/t/ai_di.test storage/tokudb/mysql-test/tokudb_alter_table/t/auto_inc.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add3.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_blob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_blob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_fixed_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_fixed_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_var_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_var_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_and_rename_table.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_clustering.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_clustering2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_diff_num_offset_bytes.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_indexing_mix.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_null_bits.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_pk.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_pk2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_template.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_tmp_tables.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_tmp_tables_56.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_dels.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_lock_sps.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_locks.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr3.test storage/tokudb/mysql-test/tokudb_alter_table/t/hot_row_format_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/other_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/other_alter2.test storage/tokudb/mysql-test/tokudb_alter_table/t/row_format_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/test_field_same_detection.test storage/tokudb/mysql-test/tokudb_alter_table/t/virtual_columns.test storage/tokudb/mysql-test/tokudb_bugs/disabled.def storage/tokudb/mysql-test/tokudb_bugs/r/2952.result storage/tokudb/mysql-test/tokudb_bugs/r/2970.result storage/tokudb/mysql-test/tokudb_bugs/r/4676.result storage/tokudb/mysql-test/tokudb_bugs/r/5089.result storage/tokudb/mysql-test/tokudb_bugs/r/checkpoint_lock.result storage/tokudb/mysql-test/tokudb_bugs/r/checkpoint_lock_3.result storage/tokudb/mysql-test/tokudb_bugs/r/dict_leak_3518.result storage/tokudb/mysql-test/tokudb_bugs/r/expand_tinytext_text.result storage/tokudb/mysql-test/tokudb_bugs/r/fractional_time.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store2.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store3.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_drop_part_table_668.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_drop_simple_table_668.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_mrr.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_mrr2.result storage/tokudb/mysql-test/tokudb_bugs/t/1913.test storage/tokudb/mysql-test/tokudb_bugs/t/1938.test storage/tokudb/mysql-test/tokudb_bugs/t/1949.test storage/tokudb/mysql-test/tokudb_bugs/t/2043.test storage/tokudb/mysql-test/tokudb_bugs/t/2219.test storage/tokudb/mysql-test/tokudb_bugs/t/2262.test storage/tokudb/mysql-test/tokudb_bugs/t/2383.test storage/tokudb/mysql-test/tokudb_bugs/t/2458.test storage/tokudb/mysql-test/tokudb_bugs/t/2548.test storage/tokudb/mysql-test/tokudb_bugs/t/2641.test storage/tokudb/mysql-test/tokudb_bugs/t/2952.test storage/tokudb/mysql-test/tokudb_bugs/t/2970.test storage/tokudb/mysql-test/tokudb_bugs/t/3014.test storage/tokudb/mysql-test/tokudb_bugs/t/3015.test storage/tokudb/mysql-test/tokudb_bugs/t/3083.test storage/tokudb/mysql-test/tokudb_bugs/t/4472.test storage/tokudb/mysql-test/tokudb_bugs/t/4656.test storage/tokudb/mysql-test/tokudb_bugs/t/4656_2.test storage/tokudb/mysql-test/tokudb_bugs/t/5089.test storage/tokudb/mysql-test/tokudb_bugs/t/5733_innodb.test storage/tokudb/mysql-test/tokudb_bugs/t/6053.test storage/tokudb/mysql-test/tokudb_bugs/t/6684.test storage/tokudb/mysql-test/tokudb_bugs/t/checkpoint_lock.test storage/tokudb/mysql-test/tokudb_bugs/t/checkpoint_lock_3.test storage/tokudb/mysql-test/tokudb_bugs/t/expand_tinytext_text.test storage/tokudb/mysql-test/tokudb_bugs/t/fileops-4.test storage/tokudb/mysql-test/tokudb_bugs/t/ft-index-40.test storage/tokudb/mysql-test/tokudb_bugs/t/index_read.test storage/tokudb/mysql-test/tokudb_bugs/t/tokudb_drop_part_table_668.test storage/tokudb/mysql-test/tokudb_bugs/t/tokudb_drop_simple_table_668.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-1.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-2.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test storage/tokudb/mysql-test/tokudb_mariadb/r/alter.result storage/tokudb/mysql-test/tokudb_mariadb/r/clustering.result storage/tokudb/mysql-test/tokudb_mariadb/r/compression.result storage/tokudb/mysql-test/tokudb_mariadb/t/compression.test storage/tokudb/scripts/common.sh storage/tokudb/scripts/make.mysql.bash storage/tokudb/scripts/make.mysql.debug.env.bash storage/tokudb/scripts/nightly.mysql.build.and.test.bash storage/tokudb/scripts/run.atc.ontime.bash storage/tokudb/scripts/run.mysql.tests.bash storage/tokudb/scripts/run.sql.bench.bash storage/tokudb/scripts/run.tpch.bash storage/tokudb/scripts/setup.mysql.bash storage/tokudb/scripts/tokutek.make.mysql.bash storage/tokudb/tokudb_card.h storage/tokudb/tokudb_update_fun.cc storage/xtradb/CMakeLists.txt storage/xtradb/api/api0api.cc storage/xtradb/btr/btr0btr.cc storage/xtradb/btr/btr0cur.cc storage/xtradb/btr/btr0pcur.cc storage/xtradb/buf/buf0buf.cc storage/xtradb/buf/buf0flu.cc storage/xtradb/dict/dict0crea.cc storage/xtradb/dict/dict0dict.cc storage/xtradb/dict/dict0load.cc storage/xtradb/dict/dict0mem.cc storage/xtradb/dict/dict0stats.cc storage/xtradb/fil/fil0fil.cc storage/xtradb/fts/fts0config.cc storage/xtradb/fts/fts0fts.cc storage/xtradb/fts/fts0opt.cc storage/xtradb/fts/fts0que.cc storage/xtradb/handler/ha_innodb.cc storage/xtradb/handler/handler0alter.cc storage/xtradb/handler/i_s.cc storage/xtradb/handler/xtradb_i_s.cc storage/xtradb/ibuf/ibuf0ibuf.cc storage/xtradb/include/api0api.h storage/xtradb/include/btr0cur.h storage/xtradb/include/btr0pcur.h storage/xtradb/include/btr0pcur.ic storage/xtradb/include/btr0sea.h storage/xtradb/include/buf0flu.h storage/xtradb/include/buf0flu.ic storage/xtradb/include/db0err.h storage/xtradb/include/dict0stats.ic storage/xtradb/include/dict0types.h storage/xtradb/include/fts0fts.h storage/xtradb/include/fts0types.h storage/xtradb/include/ibuf0ibuf.h storage/xtradb/include/log0log.h storage/xtradb/include/mtr0mtr.h storage/xtradb/include/mtr0mtr.ic storage/xtradb/include/os0file.h storage/xtradb/include/row0ftsort.h storage/xtradb/include/srv0conc.h storage/xtradb/include/srv0mon.h storage/xtradb/include/srv0mon.ic storage/xtradb/include/sync0arr.h storage/xtradb/include/sync0arr.ic storage/xtradb/include/sync0rw.h storage/xtradb/include/sync0rw.ic storage/xtradb/include/sync0sync.h storage/xtradb/include/sync0sync.ic storage/xtradb/include/sync0types.h storage/xtradb/include/trx0trx.h storage/xtradb/include/univ.i storage/xtradb/include/ut0bh.h storage/xtradb/include/ut0bh.ic storage/xtradb/log/log0log.cc storage/xtradb/log/log0online.cc storage/xtradb/log/log0recv.cc storage/xtradb/mtr/mtr0mtr.cc storage/xtradb/os/os0file.cc storage/xtradb/os/os0thread.cc storage/xtradb/row/row0ftsort.cc storage/xtradb/row/row0log.cc storage/xtradb/row/row0merge.cc storage/xtradb/row/row0mysql.cc storage/xtradb/row/row0quiesce.cc storage/xtradb/row/row0sel.cc storage/xtradb/srv/srv0mon.cc storage/xtradb/srv/srv0start.cc storage/xtradb/sync/sync0arr.cc storage/xtradb/sync/sync0rw.cc storage/xtradb/sync/sync0sync.cc storage/xtradb/trx/trx0purge.cc storage/xtradb/trx/trx0sys.cc storage/xtradb/trx/trx0trx.cc storage/xtradb/ut/ut0ut.cc strings/CMakeLists.txt strings/ctype-bin.c strings/ctype-mb.c strings/ctype-simple.c strings/ctype-uca.c strings/ctype-ucs2.c strings/ctype-utf8.c strings/ctype-win1250ch.c strings/ctype.c strings/decimal.c strings/dtoa.c strings/t_ctype.h support-files/MySQL-shared-compat.spec.sh support-files/compiler_warnings.supp support-files/mysql.server.sh support-files/rpm/server-postun.sh support-files/rpm/server-prein.sh tests/connect_test.c tests/fork_big.pl tests/fork_big2.pl tests/insert_test.c tests/list_test.c tests/mysql_client_test.c tests/select_test.c tests/showdb_test.c tests/ssl_test.c unittest/mysys/CMakeLists.txt unittest/mysys/bitmap-t.c unittest/mysys/ma_dyncol-t.c vio/CMakeLists.txt vio/vio.c vio/viosocket.c vio/viossl.c vio/viosslfactories.c zlib/CMakeLists.txt libmysql/libmysql_versions.ld.in mysql-test/suite/roles/grant_empty.result mysql-test/suite/roles/grant_empty.test pending merges: Olivier Bertrand 2014-04-22 - FIX a bug causing libxml2 not retrieving expanded multiple co...
2634 lines
82 KiB
C++
2634 lines
82 KiB
C++
/************* Value C++ Functions Source Code File (.CPP) *************/
|
|
/* Name: VALUE.CPP Version 2.5 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 2001-2014 */
|
|
/* */
|
|
/* This file contains the VALUE and derived classes family functions. */
|
|
/* These classes contain values of different types. They are used so */
|
|
/* new object types can be defined and added to the processing simply */
|
|
/* (hopefully) adding their specific functions in this file. */
|
|
/* First family is VALUE that represent single typed objects. It is */
|
|
/* used by columns (COLBLK), SELECT and FILTER (derived) objects. */
|
|
/* Second family is VALBLK, representing simple suballocated arrays */
|
|
/* of values treated sequentially by FIX, BIN and VCT tables and */
|
|
/* columns, as well for min/max blocks as for VCT column blocks. */
|
|
/* Q&A: why not using only one family ? Simple values are arrays that */
|
|
/* have only one element and arrays could have functions for all kind */
|
|
/* of processing. The answer is a-because historically it was simpler */
|
|
/* to do that way, b-because of performance on single values, and c- */
|
|
/* to avoid too complicated classes and unuseful duplication of many */
|
|
/* functions used on one family only. The drawback is that for new */
|
|
/* types of objects, we shall have more classes to update. */
|
|
/* Currently the only implemented types are STRING, INT, SHORT, TINY, */
|
|
/* DATE and LONGLONG. Recently we added some UNSIGNED types. */
|
|
/***********************************************************************/
|
|
|
|
/***********************************************************************/
|
|
/* Include relevant MariaDB header file. */
|
|
/***********************************************************************/
|
|
#include "my_global.h"
|
|
#include "sql_class.h"
|
|
#include "sql_time.h"
|
|
|
|
#if defined(WIN32)
|
|
//#include <windows.h>
|
|
#else // !WIN32
|
|
#include <string.h>
|
|
#endif // !WIN32
|
|
|
|
#include <math.h>
|
|
|
|
#undef DOMAIN // Was defined in math.h
|
|
|
|
/***********************************************************************/
|
|
/* Include required application header files */
|
|
/* global.h is header containing all global Plug declarations. */
|
|
/* plgdbsem.h is header containing the DB applic. declarations. */
|
|
/***********************************************************************/
|
|
#include "global.h"
|
|
#include "plgdbsem.h"
|
|
#include "preparse.h" // For DATPAR
|
|
//#include "value.h"
|
|
#include "valblk.h"
|
|
#define NO_FUNC // Already defined in ODBConn
|
|
#include "plgcnx.h" // For DB types
|
|
#include "osutil.h"
|
|
|
|
/***********************************************************************/
|
|
/* Check macro's. */
|
|
/***********************************************************************/
|
|
#if defined(_DEBUG)
|
|
#define CheckType(V) if (Type != V->GetType()) { \
|
|
PGLOBAL& g = Global; \
|
|
strcpy(g->Message, MSG(VALTYPE_NOMATCH)); \
|
|
longjmp(g->jumper[g->jump_level], Type); }
|
|
#else
|
|
#define CheckType(V)
|
|
#endif
|
|
|
|
#define FOURYEARS 126230400 // Four years in seconds (1 leap)
|
|
|
|
/***********************************************************************/
|
|
/* Static variables. */
|
|
/***********************************************************************/
|
|
|
|
extern "C" int trace;
|
|
|
|
/***********************************************************************/
|
|
/* Initialize the DTVAL static member. */
|
|
/***********************************************************************/
|
|
int DTVAL::Shift = 0;
|
|
|
|
/***********************************************************************/
|
|
/* Routines called externally. */
|
|
/***********************************************************************/
|
|
bool PlugEvalLike(PGLOBAL, LPCSTR, LPCSTR, bool);
|
|
|
|
#if !defined(WIN32)
|
|
extern "C" {
|
|
PSZ strupr(PSZ s);
|
|
PSZ strlwr(PSZ s);
|
|
}
|
|
#endif // !WIN32
|
|
|
|
/***********************************************************************/
|
|
/* Returns the bitmap representing the conditions that must not be */
|
|
/* met when returning from TestValue for a given operator. */
|
|
/* Bit one is EQ, bit 2 is LT, and bit 3 is GT. */
|
|
/***********************************************************************/
|
|
BYTE OpBmp(PGLOBAL g, OPVAL opc)
|
|
{
|
|
BYTE bt;
|
|
|
|
switch (opc) {
|
|
case OP_IN:
|
|
case OP_EQ: bt = 0x06; break;
|
|
case OP_NE: bt = 0x01; break;
|
|
case OP_GT: bt = 0x03; break;
|
|
case OP_GE: bt = 0x02; break;
|
|
case OP_LT: bt = 0x05; break;
|
|
case OP_LE: bt = 0x04; break;
|
|
case OP_EXIST: bt = 0x00; break;
|
|
default:
|
|
sprintf(g->Message, MSG(BAD_FILTER_OP), opc);
|
|
longjmp(g->jumper[g->jump_level], TYPE_ARRAY);
|
|
} // endswitch opc
|
|
|
|
return bt;
|
|
} // end of OpBmp
|
|
|
|
/***********************************************************************/
|
|
/* Get a long long number from its character representation. */
|
|
/* IN p: Pointer to the numeric string */
|
|
/* IN n: The string length */
|
|
/* IN maxval: The number max value */
|
|
/* IN un: True if the number must be unsigned */
|
|
/* OUT rc: Set to TRUE for out of range value */
|
|
/* OUT minus: Set to true if the number is negative */
|
|
/* Returned val: The resulting number */
|
|
/***********************************************************************/
|
|
ulonglong CharToNumber(char *p, int n, ulonglong maxval,
|
|
bool un, bool *minus, bool *rc)
|
|
{
|
|
char *p2;
|
|
uchar c;
|
|
ulonglong val;
|
|
|
|
if (minus) *minus = false;
|
|
if (rc) *rc = false;
|
|
|
|
// Eliminate leading blanks or 0
|
|
for (p2 = p + n; p < p2 && (*p == ' ' || *p == '0'); p++) ;
|
|
|
|
// Get an eventual sign character
|
|
switch (*p) {
|
|
case '-':
|
|
if (un) {
|
|
if (rc) *rc = true;
|
|
return 0;
|
|
} else {
|
|
maxval++;
|
|
if (minus) *minus = true;
|
|
} // endif Unsigned
|
|
|
|
case '+':
|
|
p++;
|
|
break;
|
|
} // endswitch *p
|
|
|
|
for (val = 0; p < p2 && (c = (uchar)(*p - '0')) < 10; p++)
|
|
if (val > (maxval - c) / 10) {
|
|
val = maxval;
|
|
if (rc) *rc = true;
|
|
break;
|
|
} else
|
|
val = val * 10 + c;
|
|
|
|
return val;
|
|
} // end of CharToNumber
|
|
|
|
/***********************************************************************/
|
|
/* GetTypeName: returns the PlugDB internal type name. */
|
|
/***********************************************************************/
|
|
PSZ GetTypeName(int type)
|
|
{
|
|
PSZ name;
|
|
|
|
switch (type) {
|
|
case TYPE_STRING: name = "CHAR"; break;
|
|
case TYPE_SHORT: name = "SMALLINT"; break;
|
|
case TYPE_INT: name = "INTEGER"; break;
|
|
case TYPE_BIGINT: name = "BIGINT"; break;
|
|
case TYPE_DATE: name = "DATE"; break;
|
|
case TYPE_DOUBLE: name = "DOUBLE"; break;
|
|
case TYPE_TINY: name = "TINY"; break;
|
|
case TYPE_DECIM: name = "DECIMAL"; break;
|
|
case TYPE_BIN: name = "BINARY"; break;
|
|
default: name = "UNKNOWN"; break;
|
|
} // endswitch type
|
|
|
|
return name;
|
|
} // end of GetTypeName
|
|
|
|
/***********************************************************************/
|
|
/* GetTypeSize: returns the PlugDB internal type size. */
|
|
/***********************************************************************/
|
|
int GetTypeSize(int type, int len)
|
|
{
|
|
switch (type) {
|
|
case TYPE_DECIM:
|
|
case TYPE_BIN:
|
|
case TYPE_STRING: len = len * sizeof(char); break;
|
|
case TYPE_SHORT: len = sizeof(short); break;
|
|
case TYPE_INT: len = sizeof(int); break;
|
|
case TYPE_BIGINT: len = sizeof(longlong); break;
|
|
case TYPE_DATE: len = sizeof(int); break;
|
|
case TYPE_DOUBLE: len = sizeof(double); break;
|
|
case TYPE_TINY: len = sizeof(char); break;
|
|
default: len = 0;
|
|
} // endswitch type
|
|
|
|
return len;
|
|
} // end of GetTypeSize
|
|
|
|
/***********************************************************************/
|
|
/* GetFormatType: returns the FORMAT character(s) according to type. */
|
|
/***********************************************************************/
|
|
char *GetFormatType(int type)
|
|
{
|
|
char *c = "X";
|
|
|
|
switch (type) {
|
|
case TYPE_STRING: c = "C"; break;
|
|
case TYPE_SHORT: c = "S"; break;
|
|
case TYPE_INT: c = "N"; break;
|
|
case TYPE_BIGINT: c = "L"; break;
|
|
case TYPE_DOUBLE: c = "F"; break;
|
|
case TYPE_DATE: c = "D"; break;
|
|
case TYPE_TINY: c = "T"; break;
|
|
case TYPE_DECIM: c = "M"; break;
|
|
case TYPE_BIN: c = "B"; break;
|
|
} // endswitch type
|
|
|
|
return c;
|
|
} // end of GetFormatType
|
|
|
|
/***********************************************************************/
|
|
/* GetFormatType: returns the FORMAT type according to character. */
|
|
/***********************************************************************/
|
|
int GetFormatType(char c)
|
|
{
|
|
int type = TYPE_ERROR;
|
|
|
|
switch (c) {
|
|
case 'C': type = TYPE_STRING; break;
|
|
case 'S': type = TYPE_SHORT; break;
|
|
case 'N': type = TYPE_INT; break;
|
|
case 'L': type = TYPE_BIGINT; break;
|
|
case 'F': type = TYPE_DOUBLE; break;
|
|
case 'D': type = TYPE_DATE; break;
|
|
case 'T': type = TYPE_TINY; break;
|
|
case 'M': type = TYPE_DECIM; break;
|
|
case 'B': type = TYPE_BIN; break;
|
|
} // endswitch type
|
|
|
|
return type;
|
|
} // end of GetFormatType
|
|
|
|
/***********************************************************************/
|
|
/* IsTypeChar: returns true for character type(s). */
|
|
/***********************************************************************/
|
|
bool IsTypeChar(int type)
|
|
{
|
|
switch (type) {
|
|
case TYPE_STRING:
|
|
case TYPE_DECIM:
|
|
return true;
|
|
} // endswitch type
|
|
|
|
return false;
|
|
} // end of IsTypeChar
|
|
|
|
/***********************************************************************/
|
|
/* IsTypeNum: returns true for numeric types. */
|
|
/***********************************************************************/
|
|
bool IsTypeNum(int type)
|
|
{
|
|
switch (type) {
|
|
case TYPE_INT:
|
|
case TYPE_BIGINT:
|
|
case TYPE_DATE:
|
|
case TYPE_DOUBLE:
|
|
case TYPE_SHORT:
|
|
case TYPE_NUM:
|
|
case TYPE_TINY:
|
|
case TYPE_DECIM:
|
|
return true;
|
|
} // endswitch type
|
|
|
|
return false;
|
|
} // end of IsTypeNum
|
|
|
|
/***********************************************************************/
|
|
/* GetFmt: returns the format to use with a typed value. */
|
|
/***********************************************************************/
|
|
const char *GetFmt(int type, bool un)
|
|
{
|
|
const char *fmt;
|
|
|
|
switch (type) {
|
|
case TYPE_DECIM:
|
|
case TYPE_STRING: fmt = "%s"; break;
|
|
case TYPE_SHORT: fmt = (un) ? "%hu" : "%hd"; break;
|
|
case TYPE_BIGINT: fmt = (un) ? "%llu" : "%lld"; break;
|
|
case TYPE_DOUBLE: fmt = "%.*lf"; break;
|
|
case TYPE_BIN: fmt = "%*x"; break;
|
|
default: fmt = (un) ? "%u" : "%d"; break;
|
|
} // endswitch Type
|
|
|
|
return fmt;
|
|
} // end of GetFmt
|
|
|
|
/***********************************************************************/
|
|
/* ConvertType: what this function does is to determine the type to */
|
|
/* which should be converted a value so no precision would be lost. */
|
|
/* This can be a numeric type if num is true or non numeric if false. */
|
|
/* Note: this is an ultra simplified version of this function that */
|
|
/* should become more and more complex as new types are added. */
|
|
/* Not evaluated types (TYPE_VOID or TYPE_UNDEF) return false from */
|
|
/* IsType... functions so match does not prevent correct setting. */
|
|
/***********************************************************************/
|
|
int ConvertType(int target, int type, CONV kind, bool match)
|
|
{
|
|
switch (kind) {
|
|
case CNV_CHAR:
|
|
if (match && (!IsTypeChar(target) || !IsTypeChar(type)))
|
|
return TYPE_ERROR;
|
|
|
|
return TYPE_STRING;
|
|
case CNV_NUM:
|
|
if (match && (!IsTypeNum(target) || !IsTypeNum(type)))
|
|
return TYPE_ERROR;
|
|
|
|
return (target == TYPE_DOUBLE || type == TYPE_DOUBLE) ? TYPE_DOUBLE
|
|
: (target == TYPE_DATE || type == TYPE_DATE) ? TYPE_DATE
|
|
: (target == TYPE_BIGINT || type == TYPE_BIGINT) ? TYPE_BIGINT
|
|
: (target == TYPE_INT || type == TYPE_INT) ? TYPE_INT
|
|
: (target == TYPE_SHORT || type == TYPE_SHORT) ? TYPE_SHORT
|
|
: TYPE_TINY;
|
|
default:
|
|
if (target == TYPE_ERROR || target == type)
|
|
return type;
|
|
|
|
if (match && ((IsTypeChar(target) && !IsTypeChar(type)) ||
|
|
(IsTypeNum(target) && !IsTypeNum(type))))
|
|
return TYPE_ERROR;
|
|
|
|
return (target == TYPE_DOUBLE || type == TYPE_DOUBLE) ? TYPE_DOUBLE
|
|
: (target == TYPE_DATE || type == TYPE_DATE) ? TYPE_DATE
|
|
: (target == TYPE_BIGINT || type == TYPE_BIGINT) ? TYPE_BIGINT
|
|
: (target == TYPE_INT || type == TYPE_INT) ? TYPE_INT
|
|
: (target == TYPE_SHORT || type == TYPE_SHORT) ? TYPE_SHORT
|
|
: (target == TYPE_STRING || type == TYPE_STRING) ? TYPE_STRING
|
|
: (target == TYPE_TINY || type == TYPE_TINY) ? TYPE_TINY
|
|
: TYPE_ERROR;
|
|
} // endswitch kind
|
|
|
|
} // end of ConvertType
|
|
|
|
/***********************************************************************/
|
|
/* AllocateConstant: allocates a constant Value. */
|
|
/***********************************************************************/
|
|
PVAL AllocateValue(PGLOBAL g, void *value, short type)
|
|
{
|
|
PVAL valp;
|
|
|
|
if (trace)
|
|
htrc("AllocateConstant: value=%p type=%hd\n", value, type);
|
|
|
|
switch (type) {
|
|
case TYPE_STRING:
|
|
valp = new(g) TYPVAL<PSZ>((PSZ)value);
|
|
break;
|
|
case TYPE_SHORT:
|
|
valp = new(g) TYPVAL<short>(*(short*)value, TYPE_SHORT);
|
|
break;
|
|
case TYPE_INT:
|
|
valp = new(g) TYPVAL<int>(*(int*)value, TYPE_INT);
|
|
break;
|
|
case TYPE_BIGINT:
|
|
valp = new(g) TYPVAL<longlong>(*(longlong*)value, TYPE_BIGINT);
|
|
break;
|
|
case TYPE_DOUBLE:
|
|
valp = new(g) TYPVAL<double>(*(double *)value, TYPE_DOUBLE, 2);
|
|
break;
|
|
case TYPE_TINY:
|
|
valp = new(g) TYPVAL<char>(*(char *)value, TYPE_TINY);
|
|
break;
|
|
default:
|
|
sprintf(g->Message, MSG(BAD_VALUE_TYPE), type);
|
|
return NULL;
|
|
} // endswitch Type
|
|
|
|
valp->SetGlobal(g);
|
|
return valp;
|
|
} // end of AllocateValue
|
|
|
|
/***********************************************************************/
|
|
/* Allocate a variable Value according to type, length and precision. */
|
|
/***********************************************************************/
|
|
PVAL AllocateValue(PGLOBAL g, int type, int len, int prec,
|
|
bool uns, PSZ fmt)
|
|
{
|
|
PVAL valp;
|
|
|
|
switch (type) {
|
|
case TYPE_STRING:
|
|
valp = new(g) TYPVAL<PSZ>(g, (PSZ)NULL, len, prec);
|
|
break;
|
|
case TYPE_DATE:
|
|
valp = new(g) DTVAL(g, len, prec, fmt);
|
|
break;
|
|
case TYPE_INT:
|
|
if (uns)
|
|
valp = new(g) TYPVAL<uint>((uint)0, TYPE_INT, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<int>((int)0, TYPE_INT);
|
|
|
|
break;
|
|
case TYPE_BIGINT:
|
|
if (uns)
|
|
valp = new(g) TYPVAL<ulonglong>((ulonglong)0, TYPE_BIGINT, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<longlong>((longlong)0, TYPE_BIGINT);
|
|
|
|
break;
|
|
case TYPE_SHORT:
|
|
if (uns)
|
|
valp = new(g) TYPVAL<ushort>((ushort)0, TYPE_SHORT, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<short>((short)0, TYPE_SHORT);
|
|
|
|
break;
|
|
case TYPE_DOUBLE:
|
|
valp = new(g) TYPVAL<double>(0.0, TYPE_DOUBLE, prec);
|
|
break;
|
|
case TYPE_TINY:
|
|
if (uns)
|
|
valp = new(g) TYPVAL<uchar>((uchar)0, TYPE_TINY, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<char>((char)0, TYPE_TINY);
|
|
|
|
break;
|
|
case TYPE_DECIM:
|
|
valp = new(g) DECVAL(g, (PSZ)NULL, len, prec, uns);
|
|
break;
|
|
case TYPE_BIN:
|
|
valp = new(g) BINVAL(g, (void*)NULL, len, prec);
|
|
break;
|
|
default:
|
|
sprintf(g->Message, MSG(BAD_VALUE_TYPE), type);
|
|
return NULL;
|
|
} // endswitch type
|
|
|
|
valp->SetGlobal(g);
|
|
return valp;
|
|
} // end of AllocateValue
|
|
|
|
/***********************************************************************/
|
|
/* Allocate a constant Value converted to newtype. */
|
|
/* Can also be used to copy a Value eventually converted. */
|
|
/***********************************************************************/
|
|
PVAL AllocateValue(PGLOBAL g, PVAL valp, int newtype, int uns)
|
|
{
|
|
PSZ p, sp;
|
|
bool un = (uns < 0) ? false : (uns > 0) ? true : valp->IsUnsigned();
|
|
|
|
if (newtype == TYPE_VOID) // Means allocate a value of the same type
|
|
newtype = valp->GetType();
|
|
|
|
switch (newtype) {
|
|
case TYPE_STRING:
|
|
p = (PSZ)PlugSubAlloc(g, NULL, 1 + valp->GetValLen());
|
|
|
|
if ((sp = valp->GetCharString(p)) != p)
|
|
strcpy (p, sp);
|
|
|
|
valp = new(g) TYPVAL<PSZ>(g, p, valp->GetValLen(), valp->GetValPrec());
|
|
break;
|
|
case TYPE_SHORT:
|
|
if (un)
|
|
valp = new(g) TYPVAL<ushort>(valp->GetUShortValue(),
|
|
TYPE_SHORT, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<short>(valp->GetShortValue(), TYPE_SHORT);
|
|
|
|
break;
|
|
case TYPE_INT:
|
|
if (un)
|
|
valp = new(g) TYPVAL<uint>(valp->GetUIntValue(), TYPE_INT, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<int>(valp->GetIntValue(), TYPE_INT);
|
|
|
|
break;
|
|
case TYPE_BIGINT:
|
|
if (un)
|
|
valp = new(g) TYPVAL<ulonglong>(valp->GetUBigintValue(),
|
|
TYPE_BIGINT, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<longlong>(valp->GetBigintValue(), TYPE_BIGINT);
|
|
|
|
break;
|
|
case TYPE_DATE:
|
|
valp = new(g) DTVAL(g, valp->GetIntValue());
|
|
break;
|
|
case TYPE_DOUBLE:
|
|
valp = new(g) TYPVAL<double>(valp->GetFloatValue(), TYPE_DOUBLE,
|
|
valp->GetValPrec());
|
|
break;
|
|
case TYPE_TINY:
|
|
if (un)
|
|
valp = new(g) TYPVAL<uchar>(valp->GetUTinyValue(),
|
|
TYPE_TINY, 0, true);
|
|
else
|
|
valp = new(g) TYPVAL<char>(valp->GetTinyValue(), TYPE_TINY);
|
|
|
|
break;
|
|
default:
|
|
sprintf(g->Message, MSG(BAD_VALUE_TYPE), newtype);
|
|
return NULL;
|
|
} // endswitch type
|
|
|
|
valp->SetGlobal(g);
|
|
return valp;
|
|
} // end of AllocateValue
|
|
|
|
/* -------------------------- Class VALUE ---------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* Class VALUE protected constructor. */
|
|
/***********************************************************************/
|
|
VALUE::VALUE(int type, bool un) : Type(type)
|
|
{
|
|
Null = false;
|
|
Nullable = false;
|
|
Unsigned = un;
|
|
Clen = 0;
|
|
Prec = 0;
|
|
Fmt = GetFmt(Type, Unsigned);
|
|
Xfmt = GetXfmt();
|
|
} // end of VALUE constructor
|
|
|
|
/***********************************************************************/
|
|
/* VALUE GetXfmt: returns the extended format to use with typed value. */
|
|
/***********************************************************************/
|
|
const char *VALUE::GetXfmt(void)
|
|
{
|
|
const char *fmt;
|
|
|
|
switch (Type) {
|
|
case TYPE_DECIM:
|
|
case TYPE_STRING: fmt = "%*s"; break;
|
|
case TYPE_SHORT: fmt = (Unsigned) ? "%*hu" : "%*hd"; break;
|
|
case TYPE_BIGINT: fmt = (Unsigned) ? "%*llu" : "%*lld"; break;
|
|
case TYPE_DOUBLE: fmt = "%*.*lf"; break;
|
|
case TYPE_BIN: fmt = "%*x"; break;
|
|
default: fmt = (Unsigned) ? "%*u" : "%*d"; break;
|
|
} // endswitch Type
|
|
|
|
return fmt;
|
|
} // end of GetFmt
|
|
|
|
/***********************************************************************/
|
|
/* Returns a BYTE indicating the comparison between two values. */
|
|
/* Bit 1 indicates equality, Bit 2 less than, and Bit3 greater than. */
|
|
/* More than 1 bit can be set only in the case of TYPE_LIST. */
|
|
/***********************************************************************/
|
|
BYTE VALUE::TestValue(PVAL vp)
|
|
{
|
|
int n = CompareValue(vp);
|
|
|
|
return (n > 0) ? 0x04 : (n < 0) ? 0x02 : 0x01;
|
|
} // end of TestValue
|
|
|
|
/* -------------------------- Class TYPVAL ---------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL public constructor from a constant typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
TYPVAL<TYPE>::TYPVAL(TYPE n, int type, int prec, bool un)
|
|
: VALUE(type, un)
|
|
{
|
|
Tval = n;
|
|
Clen = sizeof(TYPE);
|
|
Prec = prec;
|
|
} // end of TYPVAL constructor
|
|
|
|
/***********************************************************************/
|
|
/* Return unsigned max value for the type. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
ulonglong TYPVAL<TYPE>::MaxVal(void) {DBUG_ASSERT(false); return 0;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<short>::MaxVal(void) {return INT_MAX16;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<ushort>::MaxVal(void) {return UINT_MAX16;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<int>::MaxVal(void) {return INT_MAX32;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<uint>::MaxVal(void) {return UINT_MAX32;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<char>::MaxVal(void) {return INT_MAX8;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<uchar>::MaxVal(void) {return UINT_MAX8;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<longlong>::MaxVal(void) {return INT_MAX64;}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<ulonglong>::MaxVal(void) {return ULONGLONG_MAX;}
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL GetValLen: returns the print length of the typed object. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
int TYPVAL<TYPE>::GetValLen(void)
|
|
{
|
|
char c[32];
|
|
|
|
return sprintf(c, Fmt, Tval);
|
|
} // end of GetValLen
|
|
|
|
template <>
|
|
int TYPVAL<double>::GetValLen(void)
|
|
{
|
|
char c[32];
|
|
|
|
return sprintf(c, Fmt, Prec, Tval);
|
|
} // end of GetValLen
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL SetValue: copy the value of another Value object. */
|
|
/* This function allows conversion if chktype is false. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
bool TYPVAL<TYPE>::SetValue_pval(PVAL valp, bool chktype)
|
|
{
|
|
if (chktype && Type != valp->GetType())
|
|
return true;
|
|
|
|
if (!(Null = valp->IsNull() && Nullable))
|
|
Tval = GetTypedValue(valp);
|
|
else
|
|
Reset();
|
|
|
|
return false;
|
|
} // end of SetValue
|
|
|
|
template <>
|
|
short TYPVAL<short>::GetTypedValue(PVAL valp)
|
|
{return valp->GetShortValue();}
|
|
|
|
template <>
|
|
ushort TYPVAL<ushort>::GetTypedValue(PVAL valp)
|
|
{return valp->GetUShortValue();}
|
|
|
|
template <>
|
|
int TYPVAL<int>::GetTypedValue(PVAL valp)
|
|
{return valp->GetIntValue();}
|
|
|
|
template <>
|
|
uint TYPVAL<uint>::GetTypedValue(PVAL valp)
|
|
{return valp->GetUIntValue();}
|
|
|
|
template <>
|
|
longlong TYPVAL<longlong>::GetTypedValue(PVAL valp)
|
|
{return valp->GetBigintValue();}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<ulonglong>::GetTypedValue(PVAL valp)
|
|
{return valp->GetUBigintValue();}
|
|
|
|
template <>
|
|
double TYPVAL<double>::GetTypedValue(PVAL valp)
|
|
{return valp->GetFloatValue();}
|
|
|
|
template <>
|
|
char TYPVAL<char>::GetTypedValue(PVAL valp)
|
|
{return valp->GetTinyValue();}
|
|
|
|
template <>
|
|
uchar TYPVAL<uchar>::GetTypedValue(PVAL valp)
|
|
{return valp->GetUTinyValue();}
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL SetValue: convert chars extracted from a line to TYPE value.*/
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
bool TYPVAL<TYPE>::SetValue_char(char *p, int n)
|
|
{
|
|
bool rc, minus;
|
|
ulonglong maxval = MaxVal();
|
|
ulonglong val = CharToNumber(p, n, maxval, Unsigned, &minus, &rc);
|
|
|
|
if (minus && val < maxval)
|
|
Tval = (TYPE)(-(signed)val);
|
|
else
|
|
Tval = (TYPE)val;
|
|
|
|
if (trace > 1) {
|
|
char buf[64];
|
|
htrc(strcat(strcat(strcpy(buf, " setting %s to: "), Fmt), "\n"),
|
|
GetTypeName(Type), Tval);
|
|
} // endif trace
|
|
|
|
Null = false;
|
|
return rc;
|
|
} // end of SetValue
|
|
|
|
template <>
|
|
bool TYPVAL<double>::SetValue_char(char *p, int n)
|
|
{
|
|
if (p) {
|
|
char buf[64];
|
|
|
|
for (; n > 0 && *p == ' '; p++)
|
|
n--;
|
|
|
|
memcpy(buf, p, MY_MIN(n, 31));
|
|
buf[n] = '\0';
|
|
Tval = atof(buf);
|
|
|
|
if (trace > 1)
|
|
htrc(" setting double: '%s' -> %lf\n", buf, Tval);
|
|
|
|
Null = false;
|
|
} else {
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif p
|
|
|
|
return false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL SetValue: fill a typed value from a string. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
void TYPVAL<TYPE>::SetValue_psz(PSZ s)
|
|
{
|
|
if (s) {
|
|
SetValue_char(s, (int)strlen(s));
|
|
Null = false;
|
|
} else {
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif p
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL SetValue: set value with a TYPE extracted from a block. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
void TYPVAL<TYPE>::SetValue_pvblk(PVBLK blk, int n)
|
|
{
|
|
Tval = GetTypedValue(blk, n);
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
template <>
|
|
int TYPVAL<int>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetIntValue(n);}
|
|
|
|
template <>
|
|
uint TYPVAL<uint>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetUIntValue(n);}
|
|
|
|
template <>
|
|
short TYPVAL<short>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetShortValue(n);}
|
|
|
|
template <>
|
|
ushort TYPVAL<ushort>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetUShortValue(n);}
|
|
|
|
template <>
|
|
longlong TYPVAL<longlong>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetBigintValue(n);}
|
|
|
|
template <>
|
|
ulonglong TYPVAL<ulonglong>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetUBigintValue(n);}
|
|
|
|
template <>
|
|
double TYPVAL<double>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetFloatValue(n);}
|
|
|
|
template <>
|
|
char TYPVAL<char>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetTinyValue(n);}
|
|
|
|
template <>
|
|
uchar TYPVAL<uchar>::GetTypedValue(PVBLK blk, int n)
|
|
{return blk->GetUTinyValue(n);}
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL SetBinValue: with bytes extracted from a line. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
void TYPVAL<TYPE>::SetBinValue(void *p)
|
|
{
|
|
Tval = *(TYPE *)p;
|
|
Null = false;
|
|
} // end of SetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* GetBinValue: fill a buffer with the internal binary value. */
|
|
/* This function checks whether the buffer length is enough and */
|
|
/* returns true if not. Actual filling occurs only if go is true. */
|
|
/* Currently used by WriteColumn of binary files. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
bool TYPVAL<TYPE>::GetBinValue(void *buf, int buflen, bool go)
|
|
{
|
|
// Test on length was removed here until a variable in column give the
|
|
// real field length. For BIN files the field length logically cannot
|
|
// be different from the variable length because no conversion is done.
|
|
// Therefore this test is useless anyway.
|
|
//#if defined(_DEBUG)
|
|
// if (sizeof(TYPE) > buflen)
|
|
// return true;
|
|
//#endif
|
|
|
|
if (go)
|
|
*(TYPE *)buf = Tval;
|
|
|
|
Null = false;
|
|
return false;
|
|
} // end of GetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL ShowValue: get string representation of a typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::ShowValue(char *buf, int len)
|
|
{
|
|
sprintf(buf, Xfmt, len, Tval);
|
|
return buf;
|
|
} // end of ShowValue
|
|
|
|
template <>
|
|
char *TYPVAL<double>::ShowValue(char *buf, int len)
|
|
{
|
|
// TODO: use snprintf to avoid possible overflow
|
|
sprintf(buf, Xfmt, len, Prec, Tval);
|
|
return buf;
|
|
} // end of ShowValue
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL GetCharString: get string representation of a typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::GetCharString(char *p)
|
|
{
|
|
sprintf(p, Fmt, Tval);
|
|
return p;
|
|
} // end of GetCharString
|
|
|
|
template <>
|
|
char *TYPVAL<double>::GetCharString(char *p)
|
|
{
|
|
sprintf(p, Fmt, Prec, Tval);
|
|
return p;
|
|
} // end of GetCharString
|
|
|
|
#if 0
|
|
/***********************************************************************/
|
|
/* TYPVAL GetShortString: get short representation of a typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::GetShortString(char *p, int n)
|
|
{
|
|
sprintf(p, "%*hd", n, (short)Tval);
|
|
return p;
|
|
} // end of GetShortString
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL GetIntString: get int representation of a typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::GetIntString(char *p, int n)
|
|
{
|
|
sprintf(p, "%*d", n, (int)Tval);
|
|
return p;
|
|
} // end of GetIntString
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL GetBigintString: get big int representation of a TYPE value.*/
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::GetBigintString(char *p, int n)
|
|
{
|
|
sprintf(p, "%*lld", n, (longlong)Tval);
|
|
return p;
|
|
} // end of GetBigintString
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL GetFloatString: get double representation of a typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::GetFloatString(char *p, int n, int prec)
|
|
{
|
|
sprintf(p, "%*.*lf", n, (prec < 0) ? 2 : prec, (double)Tval);
|
|
return p;
|
|
} // end of GetFloatString
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL GetTinyString: get char representation of a typed value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
char *TYPVAL<TYPE>::GetTinyString(char *p, int n)
|
|
{
|
|
sprintf(p, "%*d", n, (int)(char)Tval);
|
|
return p;
|
|
} // end of GetIntString
|
|
#endif // 0
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL compare value with another Value. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
bool TYPVAL<TYPE>::IsEqual(PVAL vp, bool chktype)
|
|
{
|
|
if (this == vp)
|
|
return true;
|
|
else if (chktype && Type != vp->GetType())
|
|
return false;
|
|
else if (chktype && Unsigned != vp->IsUnsigned())
|
|
return false;
|
|
else if (Null || vp->IsNull())
|
|
return false;
|
|
else
|
|
return (Tval == GetTypedValue(vp));
|
|
|
|
} // end of IsEqual
|
|
|
|
/***********************************************************************/
|
|
/* Compare values and returns 1, 0 or -1 according to comparison. */
|
|
/* This function is used for evaluation of numeric filters. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
int TYPVAL<TYPE>::CompareValue(PVAL vp)
|
|
{
|
|
//assert(vp->GetType() == Type);
|
|
|
|
// Process filtering on numeric values.
|
|
TYPE n = GetTypedValue(vp);
|
|
|
|
//if (trace)
|
|
// htrc(" Comparing: val=%d,%d\n", Tval, n);
|
|
|
|
return (Tval > n) ? 1 : (Tval < n) ? (-1) : 0;
|
|
} // end of CompareValue
|
|
|
|
/***********************************************************************/
|
|
/* FormatValue: This function set vp (a STRING value) to the string */
|
|
/* constructed from its own value formated using the fmt format. */
|
|
/* This function assumes that the format matches the value type. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
bool TYPVAL<TYPE>::FormatValue(PVAL vp, char *fmt)
|
|
{
|
|
char *buf = (char*)vp->GetTo_Val(); // Should be big enough
|
|
int n = sprintf(buf, fmt, Tval);
|
|
|
|
return (n > vp->GetValLen());
|
|
} // end of FormatValue
|
|
|
|
/***********************************************************************/
|
|
/* TYPVAL SetFormat function (used to set SELECT output format). */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
bool TYPVAL<TYPE>::SetConstFormat(PGLOBAL g, FORMAT& fmt)
|
|
{
|
|
char c[32];
|
|
|
|
fmt.Type[0] = *GetFormatType(Type);
|
|
fmt.Length = sprintf(c, Fmt, Tval);
|
|
fmt.Prec = Prec;
|
|
return false;
|
|
} // end of SetConstFormat
|
|
|
|
/***********************************************************************/
|
|
/* Make file output of a typed object. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
void TYPVAL<TYPE>::Print(PGLOBAL g, FILE *f, uint n)
|
|
{
|
|
char m[64], buf[12];
|
|
|
|
memset(m, ' ', n); /* Make margin string */
|
|
m[n] = '\0';
|
|
|
|
if (Null)
|
|
fprintf(f, "%s<null>\n", m);
|
|
else
|
|
fprintf(f, strcat(strcat(strcpy(buf, "%s"), Fmt), "\n"), m, Tval);
|
|
|
|
} /* end of Print */
|
|
|
|
/***********************************************************************/
|
|
/* Make string output of a int object. */
|
|
/***********************************************************************/
|
|
template <class TYPE>
|
|
void TYPVAL<TYPE>::Print(PGLOBAL g, char *ps, uint z)
|
|
{
|
|
if (Null)
|
|
strcpy(ps, "<null>");
|
|
else
|
|
sprintf(ps, Fmt, Tval);
|
|
|
|
} /* end of Print */
|
|
|
|
/* -------------------------- Class STRING --------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* STRING public constructor from a constant string. */
|
|
/***********************************************************************/
|
|
TYPVAL<PSZ>::TYPVAL(PSZ s) : VALUE(TYPE_STRING)
|
|
{
|
|
Strp = s;
|
|
Len = strlen(s);
|
|
Clen = Len;
|
|
Ci = false;
|
|
} // end of STRING constructor
|
|
|
|
/***********************************************************************/
|
|
/* STRING public constructor from char. */
|
|
/***********************************************************************/
|
|
TYPVAL<PSZ>::TYPVAL(PGLOBAL g, PSZ s, int n, int c)
|
|
: VALUE(TYPE_STRING)
|
|
{
|
|
Len = (g) ? n : strlen(s);
|
|
|
|
if (!s) {
|
|
if (g) {
|
|
Strp = (char *)PlugSubAlloc(g, NULL, Len + 1);
|
|
Strp[Len] = '\0';
|
|
} else
|
|
assert(false);
|
|
|
|
} else
|
|
Strp = s;
|
|
|
|
Clen = Len;
|
|
Ci = (c != 0);
|
|
} // end of STRING constructor
|
|
|
|
/***********************************************************************/
|
|
/* Get the tiny value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
char TYPVAL<PSZ>::GetTinyValue(void)
|
|
{
|
|
bool m;
|
|
ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX8, false, &m);
|
|
|
|
return (m && val < INT_MAX8) ? (char)(-(signed)val) : (char)val;
|
|
} // end of GetTinyValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned tiny value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
uchar TYPVAL<PSZ>::GetUTinyValue(void)
|
|
{
|
|
return (uchar)CharToNumber(Strp, strlen(Strp), UINT_MAX8, true);
|
|
} // end of GetUTinyValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the short value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
short TYPVAL<PSZ>::GetShortValue(void)
|
|
{
|
|
bool m;
|
|
ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX16, false, &m);
|
|
|
|
return (m && val < INT_MAX16) ? (short)(-(signed)val) : (short)val;
|
|
} // end of GetShortValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned short value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
ushort TYPVAL<PSZ>::GetUShortValue(void)
|
|
{
|
|
return (ushort)CharToNumber(Strp, strlen(Strp), UINT_MAX16, true);
|
|
} // end of GetUshortValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the integer value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
int TYPVAL<PSZ>::GetIntValue(void)
|
|
{
|
|
bool m;
|
|
ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX32, false, &m);
|
|
|
|
return (m && val < INT_MAX32) ? (int)(-(signed)val) : (int)val;
|
|
} // end of GetIntValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned integer value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
uint TYPVAL<PSZ>::GetUIntValue(void)
|
|
{
|
|
return (uint)CharToNumber(Strp, strlen(Strp), UINT_MAX32, true);
|
|
} // end of GetUintValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the big integer value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
longlong TYPVAL<PSZ>::GetBigintValue(void)
|
|
{
|
|
bool m;
|
|
ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX64, false, &m);
|
|
|
|
return (m && val < INT_MAX64) ? (-(signed)val) : (longlong)val;
|
|
} // end of GetBigintValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned big integer value represented by the Strp string. */
|
|
/***********************************************************************/
|
|
ulonglong TYPVAL<PSZ>::GetUBigintValue(void)
|
|
{
|
|
return CharToNumber(Strp, strlen(Strp), ULONGLONG_MAX, true);
|
|
} // end of GetUBigintValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: copy the value of another Value object. */
|
|
/***********************************************************************/
|
|
bool TYPVAL<PSZ>::SetValue_pval(PVAL valp, bool chktype)
|
|
{
|
|
if (chktype && (valp->GetType() != Type || valp->GetSize() > Len))
|
|
return true;
|
|
|
|
char buf[64];
|
|
|
|
if (!(Null = valp->IsNull() && Nullable))
|
|
strncpy(Strp, valp->GetCharString(buf), Len);
|
|
else
|
|
Reset();
|
|
|
|
return false;
|
|
} // end of SetValue_pval
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: fill string with chars extracted from a line. */
|
|
/***********************************************************************/
|
|
bool TYPVAL<PSZ>::SetValue_char(char *p, int n)
|
|
{
|
|
bool rc;
|
|
|
|
if (p) {
|
|
rc = n > Len;
|
|
|
|
if ((n = MY_MIN(n, Len))) {
|
|
strncpy(Strp, p, n);
|
|
|
|
// for (p = Strp + n - 1; p >= Strp && (*p == ' ' || *p == '\0'); p--) ;
|
|
for (p = Strp + n - 1; p >= Strp; p--)
|
|
if (*p && *p != ' ')
|
|
break;
|
|
|
|
*(++p) = '\0';
|
|
|
|
if (trace > 1)
|
|
htrc(" Setting string to: '%s'\n", Strp);
|
|
|
|
} else
|
|
Reset();
|
|
|
|
Null = false;
|
|
} else {
|
|
rc = false;
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif p
|
|
|
|
return rc;
|
|
} // end of SetValue_char
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: fill string with another string. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue_psz(PSZ s)
|
|
{
|
|
if (s) {
|
|
strncpy(Strp, s, Len);
|
|
Null = false;
|
|
} else {
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif s
|
|
|
|
} // end of SetValue_psz
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: fill string with a string extracted from a block. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue_pvblk(PVBLK blk, int n)
|
|
{
|
|
// STRBLK's can return a NULL pointer
|
|
PSZ vp = blk->GetCharString(Strp, n);
|
|
|
|
if (vp != Strp)
|
|
SetValue_psz(vp);
|
|
|
|
} // end of SetValue_pvblk
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of an integer. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(int n)
|
|
{
|
|
char buf[16];
|
|
PGLOBAL& g = Global;
|
|
int k = sprintf(buf, "%d", n);
|
|
|
|
if (k > Len) {
|
|
sprintf(g->Message, MSG(VALSTR_TOO_LONG), buf, Len);
|
|
longjmp(g->jumper[g->jump_level], 138);
|
|
} else
|
|
SetValue_psz(buf);
|
|
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of an uint. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(uint n)
|
|
{
|
|
char buf[16];
|
|
PGLOBAL& g = Global;
|
|
int k = sprintf(buf, "%u", n);
|
|
|
|
if (k > Len) {
|
|
sprintf(g->Message, MSG(VALSTR_TOO_LONG), buf, Len);
|
|
longjmp(g->jumper[g->jump_level], 138);
|
|
} else
|
|
SetValue_psz(buf);
|
|
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a short int. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(short i)
|
|
{
|
|
SetValue((int)i);
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a ushort int. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(ushort i)
|
|
{
|
|
SetValue((uint)i);
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a big integer.*/
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(longlong n)
|
|
{
|
|
char buf[24];
|
|
PGLOBAL& g = Global;
|
|
int k = sprintf(buf, "%lld", n);
|
|
|
|
if (k > Len) {
|
|
sprintf(g->Message, MSG(VALSTR_TOO_LONG), buf, Len);
|
|
longjmp(g->jumper[g->jump_level], 138);
|
|
} else
|
|
SetValue_psz(buf);
|
|
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a big integer.*/
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(ulonglong n)
|
|
{
|
|
char buf[24];
|
|
PGLOBAL& g = Global;
|
|
int k = sprintf(buf, "%llu", n);
|
|
|
|
if (k > Len) {
|
|
sprintf(g->Message, MSG(VALSTR_TOO_LONG), buf, Len);
|
|
longjmp(g->jumper[g->jump_level], 138);
|
|
} else
|
|
SetValue_psz(buf);
|
|
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a double. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(double f)
|
|
{
|
|
char *p, buf[64];
|
|
PGLOBAL& g = Global;
|
|
int k = sprintf(buf, "%lf", f);
|
|
|
|
for (p = buf + k - 1; p >= buf; p--)
|
|
if (*p == '0') {
|
|
*p = 0;
|
|
k--;
|
|
} else
|
|
break;
|
|
|
|
if (k > Len) {
|
|
sprintf(g->Message, MSG(VALSTR_TOO_LONG), buf, Len);
|
|
longjmp(g->jumper[g->jump_level], 138);
|
|
} else
|
|
SetValue_psz(buf);
|
|
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a tiny int. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(char c)
|
|
{
|
|
SetValue((int)c);
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetValue: get the character representation of a tiny int. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetValue(uchar c)
|
|
{
|
|
SetValue((uint)c);
|
|
Null = false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetBinValue: fill string with chars extracted from a line. */
|
|
/***********************************************************************/
|
|
void TYPVAL<PSZ>::SetBinValue(void *p)
|
|
{
|
|
SetValue_char((char *)p, Len);
|
|
} // end of SetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* GetBinValue: fill a buffer with the internal binary value. */
|
|
/* This function checks whether the buffer length is enough and */
|
|
/* returns true if not. Actual filling occurs only if go is true. */
|
|
/* Currently used by WriteColumn of binary files. */
|
|
/***********************************************************************/
|
|
bool TYPVAL<PSZ>::GetBinValue(void *buf, int buflen, bool go)
|
|
{
|
|
int len = (Null) ? 0 : strlen(Strp);
|
|
|
|
if (len > buflen)
|
|
return true;
|
|
else if (go) {
|
|
memset(buf, ' ', buflen);
|
|
memcpy(buf, Strp, len);
|
|
} // endif go
|
|
|
|
return false;
|
|
} // end of GetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING ShowValue: get string representation of a char value. */
|
|
/***********************************************************************/
|
|
char *TYPVAL<PSZ>::ShowValue(char *buf, int len)
|
|
{
|
|
return Strp;
|
|
} // end of ShowValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING GetCharString: get string representation of a char value. */
|
|
/***********************************************************************/
|
|
char *TYPVAL<PSZ>::GetCharString(char *p)
|
|
{
|
|
return Strp;
|
|
} // end of GetCharString
|
|
|
|
/***********************************************************************/
|
|
/* STRING compare value with another Value. */
|
|
/***********************************************************************/
|
|
bool TYPVAL<PSZ>::IsEqual(PVAL vp, bool chktype)
|
|
{
|
|
if (this == vp)
|
|
return true;
|
|
else if (chktype && Type != vp->GetType())
|
|
return false;
|
|
else if (Null || vp->IsNull())
|
|
return false;
|
|
|
|
char buf[64];
|
|
|
|
if (Ci || vp->IsCi())
|
|
return !stricmp(Strp, vp->GetCharString(buf));
|
|
else // (!Ci)
|
|
return !strcmp(Strp, vp->GetCharString(buf));
|
|
|
|
} // end of IsEqual
|
|
|
|
/***********************************************************************/
|
|
/* Compare values and returns 1, 0 or -1 according to comparison. */
|
|
/* This function is used for evaluation of numeric filters. */
|
|
/***********************************************************************/
|
|
int TYPVAL<PSZ>::CompareValue(PVAL vp)
|
|
{
|
|
int n;
|
|
//assert(vp->GetType() == Type);
|
|
|
|
if (trace)
|
|
htrc(" Comparing: val='%s','%s'\n", Strp, vp->GetCharValue());
|
|
|
|
// Process filtering on character strings.
|
|
if (Ci || vp->IsCi())
|
|
n = stricmp(Strp, vp->GetCharValue());
|
|
else
|
|
n = strcmp(Strp, vp->GetCharValue());
|
|
|
|
#if defined(WIN32)
|
|
if (n == _NLSCMPERROR)
|
|
return n; // Here we should raise an error
|
|
#endif // WIN32
|
|
|
|
return (n > 0) ? 1 : (n < 0) ? -1 : 0;
|
|
} // end of CompareValue
|
|
|
|
/***********************************************************************/
|
|
/* FormatValue: This function set vp (a STRING value) to the string */
|
|
/* constructed from its own value formated using the fmt format. */
|
|
/* This function assumes that the format matches the value type. */
|
|
/***********************************************************************/
|
|
bool TYPVAL<PSZ>::FormatValue(PVAL vp, char *fmt)
|
|
{
|
|
char *buf = (char*)vp->GetTo_Val(); // Should be big enough
|
|
int n = sprintf(buf, fmt, Strp);
|
|
|
|
return (n > vp->GetValLen());
|
|
} // end of FormatValue
|
|
|
|
/***********************************************************************/
|
|
/* STRING SetFormat function (used to set SELECT output format). */
|
|
/***********************************************************************/
|
|
bool TYPVAL<PSZ>::SetConstFormat(PGLOBAL g, FORMAT& fmt)
|
|
{
|
|
fmt.Type[0] = 'C';
|
|
fmt.Length = Len;
|
|
fmt.Prec = 0;
|
|
return false;
|
|
} // end of SetConstFormat
|
|
|
|
/* -------------------------- Class DECIMAL -------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL public constructor from a constant string. */
|
|
/***********************************************************************/
|
|
DECVAL::DECVAL(PSZ s) : TYPVAL<PSZ>(s)
|
|
{
|
|
if (s) {
|
|
char *p = strchr(Strp, '.');
|
|
|
|
Prec = (p) ? Len - (p - Strp) : 0;
|
|
} // endif s
|
|
|
|
Type = TYPE_DECIM;
|
|
} // end of DECVAL constructor
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL public constructor from char. */
|
|
/***********************************************************************/
|
|
DECVAL::DECVAL(PGLOBAL g, PSZ s, int n, int prec, bool uns)
|
|
: TYPVAL<PSZ>(g, s, n + (prec ? 1 : 0) + (uns ? 0 : 1), 0)
|
|
{
|
|
Prec = prec;
|
|
Unsigned = uns;
|
|
Type = TYPE_DECIM;
|
|
} // end of DECVAL constructor
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL: Check whether the numerica value is equal to 0. */
|
|
/***********************************************************************/
|
|
bool DECVAL::IsZero(void)
|
|
{
|
|
for (int i = 0; Strp[i]; i++)
|
|
if (!strchr("0 +-.", Strp[i]))
|
|
return false;
|
|
|
|
return true;
|
|
} // end of IsZero
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL: Reset value to zero. */
|
|
/***********************************************************************/
|
|
void DECVAL::Reset(void)
|
|
{
|
|
int i = 0;
|
|
|
|
Strp[i++] = '0';
|
|
|
|
if (Prec) {
|
|
Strp[i++] = '.';
|
|
|
|
do {
|
|
Strp[i++] = '0';
|
|
} while (i < Prec + 2);
|
|
|
|
} // endif Prec
|
|
|
|
Strp[i] = 0;
|
|
} // end of Reset
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL ShowValue: get string representation right justified. */
|
|
/***********************************************************************/
|
|
char *DECVAL::ShowValue(char *buf, int len)
|
|
{
|
|
sprintf(buf, Xfmt, len, Strp);
|
|
return buf;
|
|
} // end of ShowValue
|
|
|
|
/***********************************************************************/
|
|
/* GetBinValue: fill a buffer with the internal binary value. */
|
|
/* This function checks whether the buffer length is enough and */
|
|
/* returns true if not. Actual filling occurs only if go is true. */
|
|
/* Currently used by WriteColumn of binary files. */
|
|
/***********************************************************************/
|
|
bool DECVAL::GetBinValue(void *buf, int buflen, bool go)
|
|
{
|
|
int len = (Null) ? 0 : strlen(Strp);
|
|
|
|
if (len > buflen)
|
|
return true;
|
|
else if (go) {
|
|
memset(buf, ' ', buflen - len);
|
|
memcpy((char*)buf + buflen - len, Strp, len);
|
|
} // endif go
|
|
|
|
return false;
|
|
} // end of GetBinValue
|
|
|
|
#if 0
|
|
/***********************************************************************/
|
|
/* DECIMAL SetValue: copy the value of another Value object. */
|
|
/***********************************************************************/
|
|
bool DECVAL::SetValue_pval(PVAL valp, bool chktype)
|
|
{
|
|
if (chktype && (valp->GetType() != Type || valp->GetSize() > Len))
|
|
return true;
|
|
|
|
char buf[64];
|
|
|
|
if (!(Null = valp->IsNull() && Nullable))
|
|
strncpy(Strp, valp->GetCharString(buf), Len);
|
|
else
|
|
Reset();
|
|
|
|
return false;
|
|
} // end of SetValue_pval
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL SetValue: fill string with chars extracted from a line. */
|
|
/***********************************************************************/
|
|
bool DECVAL::SetValue_char(char *p, int n)
|
|
{
|
|
bool rc;
|
|
|
|
if (p) {
|
|
rc = n > Len;
|
|
|
|
if ((n = MY_MIN(n, Len))) {
|
|
strncpy(Strp, p, n);
|
|
|
|
// for (p = Strp + n - 1; p >= Strp && (*p == ' ' || *p == '\0'); p--) ;
|
|
for (p = Strp + n - 1; p >= Strp; p--)
|
|
if (*p && *p != ' ')
|
|
break;
|
|
|
|
*(++p) = '\0';
|
|
|
|
if (trace > 1)
|
|
htrc(" Setting string to: '%s'\n", Strp);
|
|
|
|
} else
|
|
Reset();
|
|
|
|
Null = false;
|
|
} else {
|
|
rc = false;
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif p
|
|
|
|
return rc;
|
|
} // end of SetValue_char
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL SetValue: fill string with another string. */
|
|
/***********************************************************************/
|
|
void DECVAL::SetValue_psz(PSZ s)
|
|
{
|
|
if (s) {
|
|
strncpy(Strp, s, Len);
|
|
Null = false;
|
|
} else {
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif s
|
|
|
|
} // end of SetValue_psz
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL SetValue: fill string with a string extracted from a block.*/
|
|
/***********************************************************************/
|
|
void DECVAL::SetValue_pvblk(PVBLK blk, int n)
|
|
{
|
|
// STRBLK's can return a NULL pointer
|
|
SetValue_psz(blk->GetCharValue(n));
|
|
} // end of SetValue_pvblk
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL SetBinValue: fill string with chars extracted from a line. */
|
|
/***********************************************************************/
|
|
void DECVAL::SetBinValue(void *p)
|
|
{
|
|
SetValue_char((char *)p, Len);
|
|
} // end of SetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL GetCharString: get string representation of a char value. */
|
|
/***********************************************************************/
|
|
char *DECVAL::GetCharString(char *p)
|
|
{
|
|
return Strp;
|
|
} // end of GetCharString
|
|
#endif // 0
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL compare value with another Value. */
|
|
/***********************************************************************/
|
|
bool DECVAL::IsEqual(PVAL vp, bool chktype)
|
|
{
|
|
if (this == vp)
|
|
return true;
|
|
else if (chktype && Type != vp->GetType())
|
|
return false;
|
|
else if (Null || vp->IsNull())
|
|
return false;
|
|
|
|
char buf[64];
|
|
|
|
return !strcmp(Strp, vp->GetCharString(buf));
|
|
} // end of IsEqual
|
|
|
|
/***********************************************************************/
|
|
/* Compare values and returns 1, 0 or -1 according to comparison. */
|
|
/* This function is used for evaluation of numeric filters. */
|
|
/***********************************************************************/
|
|
int DECVAL::CompareValue(PVAL vp)
|
|
{
|
|
//assert(vp->GetType() == Type);
|
|
|
|
// Process filtering on numeric values.
|
|
double f = atof(Strp), n = vp->GetFloatValue();
|
|
|
|
//if (trace)
|
|
// htrc(" Comparing: val=%d,%d\n", f, n);
|
|
|
|
return (f > n) ? 1 : (f < n) ? (-1) : 0;
|
|
} // end of CompareValue
|
|
|
|
#if 0
|
|
/***********************************************************************/
|
|
/* FormatValue: This function set vp (a STRING value) to the string */
|
|
/* constructed from its own value formated using the fmt format. */
|
|
/* This function assumes that the format matches the value type. */
|
|
/***********************************************************************/
|
|
bool DECVAL::FormatValue(PVAL vp, char *fmt)
|
|
{
|
|
char *buf = (char*)vp->GetTo_Val(); // Should be big enough
|
|
int n = sprintf(buf, fmt, Strp);
|
|
|
|
return (n > vp->GetValLen());
|
|
} // end of FormatValue
|
|
|
|
/***********************************************************************/
|
|
/* DECIMAL SetFormat function (used to set SELECT output format). */
|
|
/***********************************************************************/
|
|
bool DECVAL::SetConstFormat(PGLOBAL g, FORMAT& fmt)
|
|
{
|
|
fmt.Type[0] = 'C';
|
|
fmt.Length = Len;
|
|
fmt.Prec = 0;
|
|
return false;
|
|
} // end of SetConstFormat
|
|
#endif // 0
|
|
|
|
/* -------------------------- Class BINVAL --------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL public constructor from bytes. */
|
|
/***********************************************************************/
|
|
BINVAL::BINVAL(PGLOBAL g, void *p, int cl, int n) : VALUE(TYPE_BIN)
|
|
{
|
|
assert(g);
|
|
Len = n;
|
|
Clen = cl;
|
|
Binp = PlugSubAlloc(g, NULL, Clen + 1);
|
|
memset(Binp, 0, Clen + 1);
|
|
|
|
if (p)
|
|
memcpy(Binp, p, Len);
|
|
|
|
Chrp = NULL;
|
|
} // end of BINVAL constructor
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL: Check whether the hexadecimal value is equal to 0. */
|
|
/***********************************************************************/
|
|
bool BINVAL::IsZero(void)
|
|
{
|
|
for (int i = 0; i < Len; i++)
|
|
if (((char*)Binp)[i] != 0)
|
|
return false;
|
|
|
|
return true;
|
|
} // end of IsZero
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL: Reset value to zero. */
|
|
/***********************************************************************/
|
|
void BINVAL::Reset(void)
|
|
{
|
|
memset(Binp, 0, Clen);
|
|
Len = 0;
|
|
} // end of Reset
|
|
|
|
/***********************************************************************/
|
|
/* Get the tiny value pointed by Binp. */
|
|
/***********************************************************************/
|
|
char BINVAL::GetTinyValue(void)
|
|
{
|
|
return *(char*)Binp;
|
|
} // end of GetTinyValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned tiny value pointed by Binp. */
|
|
/***********************************************************************/
|
|
uchar BINVAL::GetUTinyValue(void)
|
|
{
|
|
return *(uchar*)Binp;
|
|
} // end of GetUTinyValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the short value pointed by Binp. */
|
|
/***********************************************************************/
|
|
short BINVAL::GetShortValue(void)
|
|
{
|
|
if (Len >= 2)
|
|
return *(short*)Binp;
|
|
else
|
|
return (short)GetTinyValue();
|
|
|
|
} // end of GetShortValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned short value pointed by Binp. */
|
|
/***********************************************************************/
|
|
ushort BINVAL::GetUShortValue(void)
|
|
{
|
|
return (ushort)GetShortValue();
|
|
} // end of GetUshortValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the integer value pointed by Binp. */
|
|
/***********************************************************************/
|
|
int BINVAL::GetIntValue(void)
|
|
{
|
|
if (Len >= 4)
|
|
return *(int*)Binp;
|
|
else
|
|
return (int)GetShortValue();
|
|
|
|
} // end of GetIntValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned integer value pointed by Binp. */
|
|
/***********************************************************************/
|
|
uint BINVAL::GetUIntValue(void)
|
|
{
|
|
return (uint)GetIntValue();
|
|
} // end of GetUintValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the big integer value pointed by Binp. */
|
|
/***********************************************************************/
|
|
longlong BINVAL::GetBigintValue(void)
|
|
{
|
|
if (Len >= 8)
|
|
return *(longlong*)Binp;
|
|
else
|
|
return (longlong)GetIntValue();
|
|
|
|
} // end of GetBigintValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the unsigned big integer value pointed by Binp. */
|
|
/***********************************************************************/
|
|
ulonglong BINVAL::GetUBigintValue(void)
|
|
{
|
|
return (ulonglong)GetBigintValue();
|
|
} // end of GetUBigintValue
|
|
|
|
/***********************************************************************/
|
|
/* Get the double value pointed by Binp. */
|
|
/***********************************************************************/
|
|
double BINVAL::GetFloatValue(void)
|
|
{
|
|
if (Len >= 8)
|
|
return *(double*)Binp;
|
|
else if (Len >= 4)
|
|
return (double)(*(float*)Binp);
|
|
else
|
|
return 0.0;
|
|
|
|
} // end of GetFloatValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: copy the value of another Value object. */
|
|
/***********************************************************************/
|
|
bool BINVAL::SetValue_pval(PVAL valp, bool chktype)
|
|
{
|
|
if (chktype && (valp->GetType() != Type || valp->GetSize() > Clen))
|
|
return true;
|
|
|
|
bool rc = false;
|
|
|
|
if (!(Null = valp->IsNull() && Nullable)) {
|
|
if ((rc = (Len = valp->GetSize()) > Clen))
|
|
Len = Clen;
|
|
|
|
memcpy(Binp, valp->GetTo_Val(), Len);
|
|
} else
|
|
Reset();
|
|
|
|
return rc;
|
|
} // end of SetValue_pval
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: fill value with chars extracted from a line. */
|
|
/***********************************************************************/
|
|
bool BINVAL::SetValue_char(char *p, int n)
|
|
{
|
|
bool rc;
|
|
|
|
if (p) {
|
|
rc = n > Clen;
|
|
Len = MY_MIN(n, Clen);
|
|
memcpy(Binp, p, Len);
|
|
Null = false;
|
|
} else {
|
|
rc = false;
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif p
|
|
|
|
return rc;
|
|
} // end of SetValue_char
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: fill value with another string. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue_psz(PSZ s)
|
|
{
|
|
if (s) {
|
|
Len = MY_MIN(Clen, (signed)strlen(s));
|
|
memcpy(Binp, s, Len);
|
|
Null = false;
|
|
} else {
|
|
Reset();
|
|
Null = Nullable;
|
|
} // endif s
|
|
|
|
} // end of SetValue_psz
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: fill value with bytes extracted from a block. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue_pvblk(PVBLK blk, int n)
|
|
{
|
|
// STRBLK's can return a NULL pointer
|
|
void *vp = blk->GetValPtrEx(n);
|
|
|
|
if (!vp || blk->IsNull(n)) {
|
|
Reset();
|
|
Null = Nullable;
|
|
} else if (vp != Binp) {
|
|
if (blk->GetType() == TYPE_STRING)
|
|
Len = strlen((char*)vp);
|
|
else
|
|
Len = blk->GetVlen();
|
|
|
|
Len = MY_MIN(Clen, Len);
|
|
memcpy(Binp, vp, Len);
|
|
Null = false;
|
|
} // endif vp
|
|
|
|
} // end of SetValue_pvblk
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of an integer. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(int n)
|
|
{
|
|
if (Clen >= 4) {
|
|
*((int*)Binp) = n;
|
|
Len = 4;
|
|
} else
|
|
SetValue((short)n);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of an uint. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(uint n)
|
|
{
|
|
if (Clen >= 4) {
|
|
*((uint*)Binp) = n;
|
|
Len = 4;
|
|
} else
|
|
SetValue((ushort)n);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of a short int. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(short i)
|
|
{
|
|
if (Clen >= 2) {
|
|
*((int*)Binp) = i;
|
|
Len = 2;
|
|
} else
|
|
SetValue((char)i);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of a ushort int. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(ushort i)
|
|
{
|
|
if (Clen >= 2) {
|
|
*((uint*)Binp) = i;
|
|
Len = 2;
|
|
} else
|
|
SetValue((uchar)i);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of a big integer. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(longlong n)
|
|
{
|
|
if (Clen >= 8) {
|
|
*((longlong*)Binp) = n;
|
|
Len = 8;
|
|
} else
|
|
SetValue((int)n);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of a big integer. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(ulonglong n)
|
|
{
|
|
if (Clen >= 8) {
|
|
*((ulonglong*)Binp) = n;
|
|
Len = 8;
|
|
} else
|
|
SetValue((uint)n);
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of a double. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(double n)
|
|
{
|
|
if (Clen >= 8) {
|
|
*((double*)Binp) = n;
|
|
Len = 8;
|
|
} else if (Clen >= 4) {
|
|
*((float*)Binp) = (float)n;
|
|
Len = 4;
|
|
} else
|
|
Len = 0;
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the character binary of a tiny int. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(char c)
|
|
{
|
|
*((char*)Binp) = c;
|
|
Len = 1;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetValue: get the binary representation of a tiny int. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetValue(uchar c)
|
|
{
|
|
*((uchar*)Binp) = c;
|
|
Len = 1;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetBinValue: fill string with bytes extracted from a line. */
|
|
/***********************************************************************/
|
|
void BINVAL::SetBinValue(void *p)
|
|
{
|
|
memcpy(Binp, p, Clen);
|
|
} // end of SetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* GetBinValue: fill a buffer with the internal binary value. */
|
|
/* This function checks whether the buffer length is enough and */
|
|
/* returns true if not. Actual filling occurs only if go is true. */
|
|
/* Currently used by WriteColumn of binary files. */
|
|
/***********************************************************************/
|
|
bool BINVAL::GetBinValue(void *buf, int buflen, bool go)
|
|
{
|
|
if (Len > buflen)
|
|
return true;
|
|
else if (go) {
|
|
memset(buf, 0, buflen);
|
|
memcpy(buf, Binp, Len);
|
|
} // endif go
|
|
|
|
return false;
|
|
} // end of GetBinValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL ShowValue: get string representation of a binary value. */
|
|
/***********************************************************************/
|
|
char *BINVAL::ShowValue(char *buf, int len)
|
|
{
|
|
int n = MY_MIN(Len, len / 2);
|
|
|
|
sprintf(buf, GetXfmt(), n, Binp);
|
|
return buf;
|
|
} // end of ShowValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL GetCharString: get string representation of a binary value. */
|
|
/***********************************************************************/
|
|
char *BINVAL::GetCharString(char *p)
|
|
{
|
|
if (!Chrp)
|
|
Chrp = (char*)PlugSubAlloc(Global, NULL, Clen * 2 + 1);
|
|
|
|
sprintf(Chrp, GetXfmt(), Len, Binp);
|
|
return Chrp;
|
|
} // end of GetCharString
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL compare value with another Value. */
|
|
/***********************************************************************/
|
|
bool BINVAL::IsEqual(PVAL vp, bool chktype)
|
|
{
|
|
if (this == vp)
|
|
return true;
|
|
else if (chktype && Type != vp->GetType())
|
|
return false;
|
|
else if (Null || vp->IsNull())
|
|
return false;
|
|
else if (Len != vp->GetSize())
|
|
return false;
|
|
|
|
char *v1 = (char*)Binp;
|
|
char *v2 = (char*)vp->GetTo_Val();
|
|
|
|
for (int i = 0; i < Len; i++)
|
|
if (v1[i] != v2[i])
|
|
return false;
|
|
|
|
return true;
|
|
} // end of IsEqual
|
|
|
|
/***********************************************************************/
|
|
/* FormatValue: This function set vp (a STRING value) to the string */
|
|
/* constructed from its own value formated using the fmt format. */
|
|
/* This function assumes that the format matches the value type. */
|
|
/***********************************************************************/
|
|
bool BINVAL::FormatValue(PVAL vp, char *fmt)
|
|
{
|
|
char *buf = (char*)vp->GetTo_Val(); // Should be big enough
|
|
int n = sprintf(buf, fmt, Len, Binp);
|
|
|
|
return (n > vp->GetValLen());
|
|
} // end of FormatValue
|
|
|
|
/***********************************************************************/
|
|
/* BINVAL SetFormat function (used to set SELECT output format). */
|
|
/***********************************************************************/
|
|
bool BINVAL::SetConstFormat(PGLOBAL g, FORMAT& fmt)
|
|
{
|
|
fmt.Type[0] = 'B';
|
|
fmt.Length = Clen;
|
|
fmt.Prec = 0;
|
|
return false;
|
|
} // end of SetConstFormat
|
|
|
|
/* -------------------------- Class DTVAL ---------------------------- */
|
|
|
|
/***********************************************************************/
|
|
/* DTVAL public constructor for new void values. */
|
|
/***********************************************************************/
|
|
DTVAL::DTVAL(PGLOBAL g, int n, int prec, PSZ fmt)
|
|
: TYPVAL<int>((int)0, TYPE_DATE)
|
|
{
|
|
if (!fmt) {
|
|
Pdtp = NULL;
|
|
Sdate = NULL;
|
|
DefYear = 0;
|
|
Len = n;
|
|
} else
|
|
SetFormat(g, fmt, n, prec);
|
|
|
|
//Type = TYPE_DATE;
|
|
} // end of DTVAL constructor
|
|
|
|
/***********************************************************************/
|
|
/* DTVAL public constructor from int. */
|
|
/***********************************************************************/
|
|
DTVAL::DTVAL(PGLOBAL g, int n) : TYPVAL<int>(n, TYPE_DATE)
|
|
{
|
|
Pdtp = NULL;
|
|
Len = 19;
|
|
//Type = TYPE_DATE;
|
|
Sdate = NULL;
|
|
DefYear = 0;
|
|
} // end of DTVAL constructor
|
|
|
|
/***********************************************************************/
|
|
/* Set format so formatted dates can be converted on input/output. */
|
|
/***********************************************************************/
|
|
bool DTVAL::SetFormat(PGLOBAL g, PSZ fmt, int len, int year)
|
|
{
|
|
Pdtp = MakeDateFormat(g, fmt, true, true, (year > 9999) ? 1 : 0);
|
|
Sdate = (char*)PlugSubAlloc(g, NULL, len + 1);
|
|
DefYear = (int)((year > 9999) ? (year - 10000) : year);
|
|
Len = len;
|
|
return false;
|
|
} // end of SetFormat
|
|
|
|
/***********************************************************************/
|
|
/* Set format from the format of another date value. */
|
|
/***********************************************************************/
|
|
bool DTVAL::SetFormat(PGLOBAL g, PVAL valp)
|
|
{
|
|
DTVAL *vp;
|
|
|
|
if (valp->GetType() != TYPE_DATE) {
|
|
sprintf(g->Message, MSG(NO_FORMAT_TYPE), valp->GetType());
|
|
return true;
|
|
} else
|
|
vp = (DTVAL*)valp;
|
|
|
|
Len = vp->Len;
|
|
Pdtp = vp->Pdtp;
|
|
Sdate = (char*)PlugSubAlloc(g, NULL, Len + 1);
|
|
DefYear = vp->DefYear;
|
|
return false;
|
|
} // end of SetFormat
|
|
|
|
/***********************************************************************/
|
|
/* We need TimeShift because the mktime C function does a correction */
|
|
/* for local time zone that we want to override for DB operations. */
|
|
/***********************************************************************/
|
|
void DTVAL::SetTimeShift(void)
|
|
{
|
|
struct tm dtm;
|
|
memset(&dtm, 0, sizeof(dtm));
|
|
dtm.tm_mday=2;
|
|
dtm.tm_mon=0;
|
|
dtm.tm_year=70;
|
|
|
|
Shift = (int)mktime(&dtm) - 86400;
|
|
|
|
if (trace)
|
|
htrc("DTVAL Shift=%d\n", Shift);
|
|
|
|
} // end of SetTimeShift
|
|
|
|
// Added by Alexander Barkov
|
|
static void TIME_to_localtime(struct tm *tm, const MYSQL_TIME *ltime)
|
|
{
|
|
bzero(tm, sizeof(*tm));
|
|
tm->tm_year= ltime->year - 1900;
|
|
tm->tm_mon= ltime->month - 1;
|
|
tm->tm_mday= ltime->day;
|
|
tm->tm_hour= ltime->hour;
|
|
tm->tm_min= ltime->minute;
|
|
tm->tm_sec= ltime->second;
|
|
}
|
|
|
|
// Added by Alexander Barkov
|
|
static struct tm *gmtime_mysql(const time_t *timep, struct tm *tm)
|
|
{
|
|
MYSQL_TIME ltime;
|
|
thd_gmt_sec_to_TIME(current_thd, <ime, (my_time_t) *timep);
|
|
TIME_to_localtime(tm, <ime);
|
|
return tm;
|
|
}
|
|
|
|
/***********************************************************************/
|
|
/* GetGmTime: returns a pointer to a static tm structure obtained */
|
|
/* though the gmtime C function. The purpose of this function is to */
|
|
/* extend the range of valid dates by accepting negative time values. */
|
|
/***********************************************************************/
|
|
struct tm *DTVAL::GetGmTime(struct tm *tm_buffer)
|
|
{
|
|
struct tm *datm;
|
|
time_t t = (time_t)Tval;
|
|
|
|
if (Tval < 0) {
|
|
int n;
|
|
|
|
for (n = 0; t < 0; n += 4)
|
|
t += FOURYEARS;
|
|
|
|
datm = gmtime_mysql(&t, tm_buffer);
|
|
|
|
if (datm)
|
|
datm->tm_year -= n;
|
|
|
|
} else
|
|
datm = gmtime_mysql(&t, tm_buffer);
|
|
|
|
return datm;
|
|
} // end of GetGmTime
|
|
|
|
// Added by Alexander Barkov
|
|
static time_t mktime_mysql(struct tm *ptm)
|
|
{
|
|
MYSQL_TIME ltime;
|
|
localtime_to_TIME(<ime, ptm);
|
|
ltime.time_type= MYSQL_TIMESTAMP_DATETIME;
|
|
uint error_code;
|
|
time_t t= TIME_to_timestamp(current_thd, <ime, &error_code);
|
|
return error_code ? (time_t) -1 : t;
|
|
}
|
|
|
|
/***********************************************************************/
|
|
/* MakeTime: calculates a date value from a tm structures using the */
|
|
/* mktime C function. The purpose of this function is to extend the */
|
|
/* range of valid dates by accepting to set negative time values. */
|
|
/***********************************************************************/
|
|
bool DTVAL::MakeTime(struct tm *ptm)
|
|
{
|
|
int n, y = ptm->tm_year;
|
|
time_t t = mktime_mysql(ptm);
|
|
|
|
if (trace > 1)
|
|
htrc("MakeTime from (%d,%d,%d,%d,%d,%d)\n",
|
|
ptm->tm_year, ptm->tm_mon, ptm->tm_mday,
|
|
ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
|
|
|
|
if (t == -1) {
|
|
if (y < 1 || y > 71)
|
|
return true;
|
|
|
|
for (n = 0; t == -1 && n < 20; n++) {
|
|
ptm->tm_year += 4;
|
|
t = mktime_mysql(ptm);
|
|
} // endfor t
|
|
|
|
if (t == -1)
|
|
return true;
|
|
|
|
if ((t -= (n * FOURYEARS)) > 2000000000)
|
|
return true;
|
|
|
|
}
|
|
Tval= (int) t;
|
|
|
|
if (trace > 1)
|
|
htrc("MakeTime Ival=%d\n", Tval);
|
|
|
|
return false;
|
|
} // end of MakeTime
|
|
|
|
/***********************************************************************/
|
|
/* Make a time_t datetime from its components (YY, MM, DD, hh, mm, ss) */
|
|
/***********************************************************************/
|
|
bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval)
|
|
{
|
|
int i, m;
|
|
int n;
|
|
bool rc = false;
|
|
struct tm datm;
|
|
bzero(&datm, sizeof(datm));
|
|
datm.tm_mday=1;
|
|
datm.tm_mon=0;
|
|
datm.tm_year=70;
|
|
|
|
if (trace > 1)
|
|
htrc("MakeDate from(%d,%d,%d,%d,%d,%d) nval=%d\n",
|
|
val[0], val[1], val[2], val[3], val[4], val[5], nval);
|
|
|
|
for (i = 0; i < nval; i++) {
|
|
n = val[i];
|
|
|
|
// if (trace > 1)
|
|
// htrc("i=%d n=%d\n", i, n);
|
|
|
|
switch (i) {
|
|
case 0:
|
|
if (n >= 1900)
|
|
n -= 1900;
|
|
|
|
datm.tm_year = n;
|
|
|
|
// if (trace > 1)
|
|
// htrc("n=%d tm_year=%d\n", n, datm.tm_year);
|
|
|
|
break;
|
|
case 1:
|
|
// If mktime handles apparently correctly large or negative
|
|
// day values, it is not the same for months. Therefore we
|
|
// do the ajustment here, thus mktime has not to do it.
|
|
if (n > 0) {
|
|
m = (n - 1) % 12;
|
|
n = (n - 1) / 12;
|
|
} else {
|
|
m = 11 + n % 12;
|
|
n = n / 12 - 1;
|
|
} // endfi n
|
|
|
|
datm.tm_mon = m;
|
|
datm.tm_year += n;
|
|
|
|
// if (trace > 1)
|
|
// htrc("n=%d m=%d tm_year=%d tm_mon=%d\n", n, m, datm.tm_year, datm.tm_mon);
|
|
|
|
break;
|
|
case 2:
|
|
// For days, big or negative values may also cause problems
|
|
m = n % 1461;
|
|
n = 4 * (n / 1461);
|
|
|
|
if (m < 0) {
|
|
m += 1461;
|
|
n -= 4;
|
|
} // endif m
|
|
|
|
datm.tm_mday = m;
|
|
datm.tm_year += n;
|
|
|
|
// if (trace > 1)
|
|
// htrc("n=%d m=%d tm_year=%d tm_mon=%d\n", n, m, datm.tm_year, datm.tm_mon);
|
|
|
|
break;
|
|
case 3: datm.tm_hour = n; break;
|
|
case 4: datm.tm_min = n; break;
|
|
case 5: datm.tm_sec = n; break;
|
|
} // endswitch i
|
|
|
|
} // endfor i
|
|
|
|
if (trace > 1)
|
|
htrc("MakeDate datm=(%d,%d,%d,%d,%d,%d)\n",
|
|
datm.tm_year, datm.tm_mon, datm.tm_mday,
|
|
datm.tm_hour, datm.tm_min, datm.tm_sec);
|
|
|
|
// Pass g to have an error return or NULL to set invalid dates to 0
|
|
if (MakeTime(&datm))
|
|
if (g) {
|
|
strcpy(g->Message, MSG(BAD_DATETIME));
|
|
rc = true;
|
|
} else
|
|
Tval = 0;
|
|
|
|
return rc;
|
|
} // end of MakeDate
|
|
|
|
/***********************************************************************/
|
|
/* DTVAL SetValue: copy the value of another Value object. */
|
|
/* This function allows conversion if chktype is false. */
|
|
/***********************************************************************/
|
|
bool DTVAL::SetValue_pval(PVAL valp, bool chktype)
|
|
{
|
|
if (chktype && Type != valp->GetType())
|
|
return true;
|
|
|
|
if (!(Null = valp->IsNull() && Nullable)) {
|
|
if (Pdtp && !valp->IsTypeNum()) {
|
|
int ndv;
|
|
int dval[6];
|
|
|
|
ndv = ExtractDate(valp->GetCharValue(), Pdtp, DefYear, dval);
|
|
MakeDate(NULL, dval, ndv);
|
|
} else
|
|
Tval = valp->GetIntValue();
|
|
|
|
} else
|
|
Reset();
|
|
|
|
return false;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* SetValue: convert chars extracted from a line to date value. */
|
|
/***********************************************************************/
|
|
bool DTVAL::SetValue_char(char *p, int n)
|
|
{
|
|
bool rc;
|
|
|
|
if (Pdtp) {
|
|
char *p2;
|
|
int ndv;
|
|
int dval[6];
|
|
|
|
// Trim trailing blanks
|
|
for (p2 = p + n -1; p < p2 && *p2 == ' '; p2--) ;
|
|
|
|
if ((rc = (n = p2 - p + 1) > Len))
|
|
n = Len;
|
|
|
|
memcpy(Sdate, p, n);
|
|
Sdate[n] = '\0';
|
|
|
|
ndv = ExtractDate(Sdate, Pdtp, DefYear, dval);
|
|
MakeDate(NULL, dval, ndv);
|
|
|
|
if (trace > 1)
|
|
htrc(" setting date: '%s' -> %d\n", Sdate, Tval);
|
|
|
|
Null = false;
|
|
} else
|
|
rc = TYPVAL<int>::SetValue_char(p, n);
|
|
|
|
return rc;
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* SetValue: convert a char string to date value. */
|
|
/***********************************************************************/
|
|
void DTVAL::SetValue_psz(PSZ p)
|
|
{
|
|
if (Pdtp) {
|
|
int ndv;
|
|
int dval[6];
|
|
|
|
strncpy(Sdate, p, Len);
|
|
Sdate[Len] = '\0';
|
|
|
|
ndv = ExtractDate(Sdate, Pdtp, DefYear, dval);
|
|
MakeDate(NULL, dval, ndv);
|
|
|
|
if (trace > 1)
|
|
htrc(" setting date: '%s' -> %d\n", Sdate, Tval);
|
|
|
|
Null = false;
|
|
} else
|
|
TYPVAL<int>::SetValue_psz(p);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* DTVAL SetValue: set value with a value extracted from a block. */
|
|
/***********************************************************************/
|
|
void DTVAL::SetValue_pvblk(PVBLK blk, int n)
|
|
{
|
|
if (Pdtp && !::IsTypeNum(blk->GetType())) {
|
|
int ndv;
|
|
int dval[6];
|
|
|
|
ndv = ExtractDate(blk->GetCharValue(n), Pdtp, DefYear, dval);
|
|
MakeDate(NULL, dval, ndv);
|
|
} else
|
|
Tval = blk->GetIntValue(n);
|
|
|
|
} // end of SetValue
|
|
|
|
/***********************************************************************/
|
|
/* DTVAL GetCharString: get string representation of a date value. */
|
|
/***********************************************************************/
|
|
char *DTVAL::GetCharString(char *p)
|
|
{
|
|
if (Pdtp) {
|
|
size_t n = 0;
|
|
struct tm tm, *ptm= GetGmTime(&tm);
|
|
|
|
if (ptm)
|
|
n = strftime(Sdate, Len + 1, Pdtp->OutFmt, ptm);
|
|
|
|
if (!n) {
|
|
*Sdate = '\0';
|
|
strncat(Sdate, "Error", Len + 1);
|
|
} // endif n
|
|
|
|
return Sdate;
|
|
} else
|
|
sprintf(p, "%d", Tval);
|
|
|
|
Null = false;
|
|
return p;
|
|
} // end of GetCharString
|
|
|
|
/***********************************************************************/
|
|
/* DTVAL ShowValue: get string representation of a date value. */
|
|
/***********************************************************************/
|
|
char *DTVAL::ShowValue(char *buf, int len)
|
|
{
|
|
if (Pdtp) {
|
|
char *p;
|
|
size_t m, n = 0;
|
|
struct tm tm, *ptm = GetGmTime(&tm);
|
|
|
|
if (Len < len) {
|
|
p = buf;
|
|
m = len;
|
|
} else {
|
|
p = Sdate;
|
|
m = Len + 1;
|
|
} // endif Len
|
|
|
|
if (ptm)
|
|
n = strftime(p, m, Pdtp->OutFmt, ptm);
|
|
|
|
if (!n) {
|
|
*p = '\0';
|
|
strncat(p, "Error", m);
|
|
} // endif n
|
|
|
|
return p;
|
|
} else
|
|
return TYPVAL<int>::ShowValue(buf, len);
|
|
|
|
} // end of ShowValue
|
|
|
|
#if 0 // Not used by CONNECT
|
|
/***********************************************************************/
|
|
/* Returns a member of the struct tm representation of the date. */
|
|
/***********************************************************************/
|
|
bool DTVAL::GetTmMember(OPVAL op, int& mval)
|
|
{
|
|
bool rc = false;
|
|
struct tm tm, *ptm = GetGmTime(&tm);
|
|
|
|
switch (op) {
|
|
case OP_MDAY: mval = ptm->tm_mday; break;
|
|
case OP_MONTH: mval = ptm->tm_mon + 1; break;
|
|
case OP_YEAR: mval = ptm->tm_year + 1900; break;
|
|
case OP_WDAY: mval = ptm->tm_wday + 1; break;
|
|
case OP_YDAY: mval = ptm->tm_yday + 1; break;
|
|
case OP_QUART: mval = ptm->tm_mon / 3 + 1; break;
|
|
default:
|
|
rc = true;
|
|
} // endswitch op
|
|
|
|
return rc;
|
|
} // end of GetTmMember
|
|
|
|
/***********************************************************************/
|
|
/* Calculates the week number of the year for the internal date value.*/
|
|
/* The International Standard ISO 8601 has decreed that Monday shall */
|
|
/* be the first day of the week. A week that lies partly in one year */
|
|
/* and partly in another is assigned a number in the year in which */
|
|
/* most of its days lie. That means that week number 1 of any year is */
|
|
/* the week that contains the January 4th. */
|
|
/***********************************************************************/
|
|
bool DTVAL::WeekNum(PGLOBAL g, int& nval)
|
|
{
|
|
// w is the start of the week SUN=0, MON=1, etc.
|
|
int m, n, w = nval % 7;
|
|
struct tm tm, *ptm = GetGmTime(&tm);
|
|
|
|
// Which day is January 4th of this year?
|
|
m = (367 + ptm->tm_wday - ptm->tm_yday) % 7;
|
|
|
|
// When does the first week begins?
|
|
n = 3 - (7 + m - w) % 7;
|
|
|
|
// Now calculate the week number
|
|
if (!(nval = (7 + ptm->tm_yday - n) / 7))
|
|
nval = 52;
|
|
|
|
// Everything should be Ok
|
|
return false;
|
|
} // end of WeekNum
|
|
#endif // 0
|
|
|
|
/***********************************************************************/
|
|
/* FormatValue: This function set vp (a STRING value) to the string */
|
|
/* constructed from its own value formated using the fmt format. */
|
|
/* This function assumes that the format matches the value type. */
|
|
/***********************************************************************/
|
|
bool DTVAL::FormatValue(PVAL vp, char *fmt)
|
|
{
|
|
char *buf = (char*)vp->GetTo_Val(); // Should be big enough
|
|
struct tm tm, *ptm = GetGmTime(&tm);
|
|
|
|
if (trace > 1)
|
|
htrc("FormatValue: ptm=%p len=%d\n", ptm, vp->GetValLen());
|
|
|
|
if (ptm) {
|
|
size_t n = strftime(buf, vp->GetValLen(), fmt, ptm);
|
|
|
|
if (trace > 1)
|
|
htrc("strftime: n=%d buf=%s\n", n, (n) ? buf : "???");
|
|
|
|
return (n == 0);
|
|
} else
|
|
return true;
|
|
|
|
} // end of FormatValue
|
|
|
|
/* -------------------------- End of Value --------------------------- */
|