[MDEV-12589] wrong result order when using SQL_BUFFER_RESULT Created: 2017-04-25  Updated: 2020-01-20  Resolved: 2020-01-20

Status: Closed
Project: MariaDB Server
Component/s: Temporal Types
Affects Version/s: 10.0.30-galera
Fix Version/s: N/A

Type: Bug Priority: Critical
Reporter: Manfred Albracht Assignee: Elena Stepanova
Resolution: Won't Fix Votes: 0
Labels: galera, tests
Environment:

debian 3.16.39-1


Attachments: JPEG File mariadb_bug.jpg    
Issue Links:
Blocks
blocks MDEV-2832 LP:992405 - Wrong result when using S... Closed

 Description   

When using ORDER BY together with SQL_BUFFER_RESULT the result is often ordered the wrong way. When ommitting SQL_BUFFER_RESULT everything works fine.
I tested this with different database engines like MyISAM, ARIA, InnoDB. All have the same miss behavior.
It seems that the content of text fields influences the order of the result. Miss behavior could vanish by editing text fields of miss ordered items.



 Comments   
Comment by Elena Stepanova [ 2017-05-18 ]

Please paste or attach the output of

SHOW CREATE TABLE emails_copy;
SHOW INDEX IN emails_copy;
EXPLAIN EXTENDED select ID, Date1, header from emails_copy where adr=167018 order by ID;
SHOW WARNINGS;
EXPLAIN EXTENDED select SQL_BUFFER_RESULT ID, Date1, header from emails_copy where adr=167018 order by ID;
SHOW WARNINGS;
SHOW VARIABLES;

Comment by Manfred Albracht [ 2017-05-18 ]

CREATE TABLE `emails_copy` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `eKey` varchar(255) NOT NULL DEFAULT '',
  `LA` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `BAID` int(10) unsigned NOT NULL DEFAULT '0',
  `lockBAID` int(10) unsigned NOT NULL DEFAULT '0',
  `lockdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `header` text NOT NULL,
  `mandant` int(10) unsigned NOT NULL DEFAULT '2',
  `groups` varchar(255) NOT NULL DEFAULT '',
  `Date1` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `toadr` varchar(255) NOT NULL DEFAULT '',
  `adr` int(10) unsigned NOT NULL DEFAULT '0',
  `cc` varchar(255) NOT NULL DEFAULT '',
  `bcc` varchar(255) NOT NULL DEFAULT '',
  `emailaddress` varchar(255) NOT NULL DEFAULT '',
  `eStatus` int(11) NOT NULL DEFAULT '0',
  `subject` varchar(255) NOT NULL DEFAULT '',
  `Text_Data` text NOT NULL,
  `HTML_Data` text NOT NULL,
  `prev` int(10) unsigned NOT NULL DEFAULT '0',
  `attachmailID` int(11) NOT NULL DEFAULT '0',
  `attachmentIDs` varchar(255) NOT NULL DEFAULT '',
  `priority` tinyint(3) unsigned NOT NULL DEFAULT '1',
  `isautoresponded` tinyint(4) NOT NULL,
  PRIMARY KEY (`ID`),
  KEY `stat` (`eStatus`),
  KEY `subj` (`subject`),
  KEY `keys` (`eKey`),
  KEY `datum` (`Date1`),
  KEY `toadr` (`toadr`(12)),
  KEY `adr` (`adr`),
  KEY `eaddress` (`emailaddress`),
  KEY `lock` (`lockdate`),
  KEY `prev` (`prev`),
  KEY `isautoresponded` (`isautoresponded`)
) ENGINE=MyISAM AUTO_INCREMENT=1046730 DEFAULT CHARSET=latin1 DELAY_KEY_WRITE=1

emails_copy	0	PRIMARY	1	ID	A	451725				BTREE		
emails_copy	1	stat	       1	eStatus	A	10				BTREE		
emails_copy	1	subj	1	subject	A	150575				BTREE		
emails_copy	1	keys	1	eKey	A	225862				BTREE		
emails_copy	1	datum	1	Date1	A	451725				BTREE		
emails_copy	1	toadr	1	toadr	A	75287	12			BTREE		
emails_copy	1	adr	1	adr	A	75287				BTREE		
emails_copy	1	eaddress	1	emailaddress	A	56465				BTREE		
emails_copy	1	lock	1	lockdate	A	629				BTREE		
emails_copy	1	prev	1	prev	A	22586				BTREE		
emails_copy	1	isautoresponded	1	isautoresponded	A	1				BTREE		

1	SIMPLE	emails_copy	ref	adr	adr	4	const	325	100	Using where; Using filesort
 
Note	1003	select `arsani`.`emails_copy`.`ID` AS `ID`,`arsani`.`emails_copy`.`Date1` AS `Date1`,`arsani`.`emails_copy`.`header` AS `header` from `arsani`.`emails_copy` where (`arsani`.`emails_copy`.`adr` = 167018) order by `arsani`.`emails_copy`.`ID`

1	SIMPLE	emails_copy	ref	adr	adr	4	const	325	100	Using where; Using temporary; Using filesort
 
Note	1003	select sql_buffer_result `arsani`.`emails_copy`.`ID` AS `ID`,`arsani`.`emails_copy`.`Date1` AS `Date1`,`arsani`.`emails_copy`.`header` AS `header` from `arsani`.`emails_copy` where (`arsani`.`emails_copy`.`adr` = 167018) order by `arsani`.`emails_copy`.`ID`

aria_block_size	8192
aria_checkpoint_interval	30
aria_checkpoint_log_activity	1048576
aria_force_start_after_recovery_failures	0
aria_group_commit	none
aria_group_commit_interval	0
aria_log_file_size	1073741824
aria_log_purge_type	immediate
aria_max_sort_file_size	9223372036853727232
aria_page_checksum	ON
aria_pagecache_age_threshold	300
aria_pagecache_buffer_size	67108864
aria_pagecache_division_limit	100
aria_pagecache_file_hash_size	512
aria_recover	NORMAL
aria_repair_threads	1
aria_sort_buffer_size	268434432
aria_stats_method	nulls_unequal
aria_sync_log_dir	NEWFILE
aria_used_for_temp_tables	ON
auto_increment_increment	1
auto_increment_offset	1
autocommit	ON
automatic_sp_privileges	ON
back_log	150
basedir	/usr
big_tables	OFF
binlog_annotate_row_events	OFF
binlog_cache_size	32768
binlog_checksum	NONE
binlog_commit_wait_count	0
binlog_commit_wait_usec	100000
binlog_direct_non_transactional_updates	OFF
binlog_format	STATEMENT
binlog_optimize_thread_scheduling	ON
binlog_stmt_cache_size	32768
bulk_insert_buffer_size	8388608
character_set_client	utf8
character_set_connection	utf8
character_set_database	latin1
character_set_filesystem	binary
character_set_results	utf8
character_set_server	latin1
character_set_system	utf8
character_sets_dir	/usr/share/mysql/charsets/
collation_connection	utf8_general_ci
collation_database	latin1_swedish_ci
collation_server	latin1_swedish_ci
completion_type	NO_CHAIN
concurrent_insert	AUTO
connect_timeout	10
datadir	/srv/sql/mysql/
date_format	%Y-%m-%d
datetime_format	%Y-%m-%d %H:%i:%s
deadlock_search_depth_long	15
deadlock_search_depth_short	4
deadlock_timeout_long	50000000
deadlock_timeout_short	10000
debug_no_thread_alarm	OFF
default_master_connection	
default_regex_flags	
default_storage_engine	InnoDB
default_week_format	0
delay_key_write	ON
delayed_insert_limit	100
delayed_insert_timeout	300
delayed_queue_size	1000
div_precision_increment	4
error_count	0
event_scheduler	OFF
expensive_subquery_limit	100
expire_logs_days	5
external_user	
extra_max_connections	1
extra_port	0
flush	OFF
flush_time	0
foreign_key_checks	ON
ft_boolean_syntax	+ -><()~*:""&|
ft_max_word_len	32
ft_min_word_len	2
ft_query_expansion_limit	20
ft_stopword_file	/srv/sql/mysql_stopwords.txt
general_log	OFF
general_log_file	isis-db.log
group_concat_max_len	1024
gtid_binlog_pos	0-3-22920485
gtid_binlog_state	0-3-22920485
gtid_current_pos	0-3-22920485
gtid_domain_id	0
gtid_ignore_duplicates	OFF
gtid_seq_no	0
gtid_slave_pos	
gtid_strict_mode	OFF
have_compress	YES
have_crypt	YES
have_dynamic_loading	YES
have_geometry	YES
have_openssl	NO
have_profiling	YES
have_query_cache	YES
have_rtree_keys	YES
have_ssl	DISABLED
have_symlink	YES
histogram_size	0
histogram_type	SINGLE_PREC_HB
host_cache_size	128
hostname	isis-db
identity	0
ignore_builtin_innodb	OFF
ignore_db_dirs	
in_transaction	0
init_connect	
init_file	
init_slave	
innodb_adaptive_flushing	ON
innodb_adaptive_flushing_lwm	10.000000
innodb_adaptive_hash_index	ON
innodb_adaptive_hash_index_partitions	1
innodb_adaptive_max_sleep_delay	150000
innodb_additional_mem_pool_size	8388608
innodb_api_bk_commit_interval	5
innodb_api_disable_rowlock	OFF
innodb_api_enable_binlog	OFF
innodb_api_enable_mdl	OFF
innodb_api_trx_level	0
innodb_autoextend_increment	64
innodb_autoinc_lock_mode	1
innodb_buffer_pool_dump_at_shutdown	OFF
innodb_buffer_pool_dump_now	OFF
innodb_buffer_pool_dump_pct	100
innodb_buffer_pool_filename	ib_buffer_pool
innodb_buffer_pool_instances	8
innodb_buffer_pool_load_abort	OFF
innodb_buffer_pool_load_at_startup	OFF
innodb_buffer_pool_load_now	OFF
innodb_buffer_pool_populate	OFF
innodb_buffer_pool_size	134217728
innodb_change_buffer_max_size	25
innodb_change_buffering	all
innodb_checksum_algorithm	innodb
innodb_checksums	ON
innodb_cleaner_lsn_age_factor	high_checkpoint
innodb_cmp_per_index_enabled	OFF
innodb_commit_concurrency	0
innodb_compression_failure_threshold_pct	5
innodb_compression_level	6
innodb_compression_pad_pct_max	50
innodb_concurrency_tickets	5000
innodb_corrupt_table_action	assert
innodb_data_file_path	ibdata1:10M:autoextend
innodb_data_home_dir	
innodb_disable_sort_file_cache	OFF
innodb_doublewrite	ON
innodb_empty_free_list_algorithm	backoff
innodb_fake_changes	OFF
innodb_fast_shutdown	0
innodb_file_format	Antelope
innodb_file_format_check	ON
innodb_file_format_max	Antelope
innodb_file_per_table	ON
innodb_flush_log_at_timeout	1
innodb_flush_log_at_trx_commit	1
innodb_flush_method	
innodb_flush_neighbors	1
innodb_flushing_avg_loops	30
innodb_force_load_corrupted	OFF
innodb_force_recovery	0
innodb_foreground_preflush	exponential_backoff
innodb_ft_aux_table	
innodb_ft_cache_size	8000000
innodb_ft_enable_diag_print	OFF
innodb_ft_enable_stopword	ON
innodb_ft_max_token_size	84
innodb_ft_min_token_size	3
innodb_ft_num_word_optimize	2000
innodb_ft_result_cache_limit	2000000000
innodb_ft_server_stopword_table	
innodb_ft_sort_pll_degree	2
innodb_ft_total_cache_size	640000000
innodb_ft_user_stopword_table	
innodb_io_capacity	200
innodb_io_capacity_max	2000
innodb_kill_idle_transaction	0
innodb_large_prefix	OFF
innodb_lock_wait_timeout	50
innodb_locking_fake_changes	ON
innodb_locks_unsafe_for_binlog	OFF
innodb_log_arch_dir	./
innodb_log_arch_expire_sec	0
innodb_log_archive	OFF
innodb_log_block_size	512
innodb_log_buffer_size	8388608
innodb_log_checksum_algorithm	innodb
innodb_log_compressed_pages	ON
innodb_log_file_size	50331648
innodb_log_files_in_group	2
innodb_log_group_home_dir	./
innodb_lru_scan_depth	1024
innodb_max_bitmap_file_size	104857600
innodb_max_changed_pages	1000000
innodb_max_dirty_pages_pct	75.000000
innodb_max_dirty_pages_pct_lwm	0.001000
innodb_max_purge_lag	0
innodb_max_purge_lag_delay	0
innodb_mirrored_log_groups	1
innodb_monitor_disable	
innodb_monitor_enable	
innodb_monitor_reset	
innodb_monitor_reset_all	
innodb_old_blocks_pct	37
innodb_old_blocks_time	1000
innodb_online_alter_log_max_size	134217728
innodb_open_files	400
innodb_optimize_fulltext_only	OFF
innodb_page_size	16384
innodb_print_all_deadlocks	OFF
innodb_purge_batch_size	300
innodb_purge_threads	1
innodb_random_read_ahead	OFF
innodb_read_ahead_threshold	56
innodb_read_io_threads	4
innodb_read_only	OFF
innodb_replication_delay	0
innodb_rollback_on_timeout	OFF
innodb_rollback_segments	128
innodb_sched_priority_cleaner	19
innodb_show_locks_held	10
innodb_show_verbose_locks	0
innodb_simulate_comp_failures	0
innodb_sort_buffer_size	1048576
innodb_spin_wait_delay	6
innodb_stats_auto_recalc	ON
innodb_stats_include_delete_marked	OFF
innodb_stats_method	nulls_equal
innodb_stats_modified_counter	0
innodb_stats_on_metadata	OFF
innodb_stats_persistent	ON
innodb_stats_persistent_sample_pages	20
innodb_stats_sample_pages	8
innodb_stats_traditional	ON
innodb_stats_transient_sample_pages	8
innodb_status_output	OFF
innodb_status_output_locks	OFF
innodb_strict_mode	OFF
innodb_support_xa	ON
innodb_sync_array_size	1
innodb_sync_spin_loops	30
innodb_table_locks	ON
innodb_thread_concurrency	0
innodb_thread_sleep_delay	10000
innodb_tmpdir	
innodb_track_changed_pages	OFF
innodb_undo_directory	.
innodb_undo_logs	128
innodb_undo_tablespaces	0
innodb_use_atomic_writes	OFF
innodb_use_fallocate	OFF
innodb_use_global_flush_log_at_trx_commit	ON
innodb_use_native_aio	ON
innodb_use_stacktrace	OFF
innodb_use_sys_malloc	ON
innodb_version	5.6.35-80.0
innodb_write_io_threads	4
insert_id	0
interactive_timeout	28800
join_buffer_size	131072
join_buffer_space_limit	2097152
join_cache_level	2
keep_files_on_create	OFF
key_buffer_size	67108864
key_cache_age_threshold	300
key_cache_block_size	1024
key_cache_division_limit	100
key_cache_file_hash_size	512
key_cache_segments	0
large_files_support	ON
large_page_size	0
large_pages	OFF
last_gtid	
last_insert_id	0
lc_messages	en_US
lc_messages_dir	/usr/share/mysql
lc_time_names	en_US
license	GPL
local_infile	ON
lock_wait_timeout	31536000
locked_in_memory	OFF
log_bin	ON
log_bin_trust_function_creators	OFF
log_error	
log_output	FILE
log_queries_not_using_indexes	OFF
log_slave_updates	OFF
log_slow_filter	admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
log_slow_rate_limit	1
log_slow_verbosity	
log_warnings	1
long_query_time	5.000000
low_priority_updates	OFF
lower_case_file_system	OFF
lower_case_table_names	0
master_verify_checksum	OFF
max_allowed_packet	67108864
max_binlog_cache_size	18446744073709547520
max_binlog_size	524288000
max_binlog_stmt_cache_size	18446744073709547520
max_connect_errors	100
max_connections	256
max_delayed_threads	20
max_digest_length	1024
max_error_count	64
max_heap_table_size	1073741824
max_insert_delayed_threads	20
max_join_size	18446744073709551615
max_length_for_sort_data	1024
max_long_data_size	67108864
max_prepared_stmt_count	16382
max_relay_log_size	524288000
max_seeks_for_key	4294967295
max_sort_length	1024
max_sp_recursion_depth	0
max_tmp_tables	32
max_user_connections	0
max_write_lock_count	4294967295
metadata_locks_cache_size	1024
metadata_locks_hash_instances	8
min_examined_row_limit	0
mrr_buffer_size	262144
multi_range_count	256
myisam_block_size	1024
myisam_data_pointer_size	6
myisam_max_sort_file_size	9223372036853727232
myisam_mmap_size	18446744073709551615
myisam_recover_options	BACKUP
myisam_repair_threads	1
myisam_sort_buffer_size	134216704
myisam_stats_method	nulls_unequal
myisam_use_mmap	OFF
net_buffer_length	16384
net_read_timeout	30
net_retry_count	10
net_write_timeout	60
old	OFF
old_alter_table	OFF
old_mode	
old_passwords	OFF
open_files_limit	1285
optimizer_prune_level	1
optimizer_search_depth	62
optimizer_selectivity_sampling_limit	100
optimizer_switch	index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on
optimizer_use_condition_selectivity	1
performance_schema	OFF
performance_schema_accounts_size	-1
performance_schema_digests_size	-1
performance_schema_events_stages_history_long_size	-1
performance_schema_events_stages_history_size	-1
performance_schema_events_statements_history_long_size	-1
performance_schema_events_statements_history_size	-1
performance_schema_events_waits_history_long_size	-1
performance_schema_events_waits_history_size	-1
performance_schema_hosts_size	-1
performance_schema_max_cond_classes	80
performance_schema_max_cond_instances	-1
performance_schema_max_digest_length	1024
performance_schema_max_file_classes	50
performance_schema_max_file_handles	32768
performance_schema_max_file_instances	-1
performance_schema_max_mutex_classes	200
performance_schema_max_mutex_instances	-1
performance_schema_max_rwlock_classes	40
performance_schema_max_rwlock_instances	-1
performance_schema_max_socket_classes	10
performance_schema_max_socket_instances	-1
performance_schema_max_stage_classes	150
performance_schema_max_statement_classes	180
performance_schema_max_table_handles	-1
performance_schema_max_table_instances	-1
performance_schema_max_thread_classes	50
performance_schema_max_thread_instances	-1
performance_schema_session_connect_attrs_size	-1
performance_schema_setup_actors_size	100
performance_schema_setup_objects_size	100
performance_schema_users_size	-1
pid_file	/var/run/mysqld/mysqld.pid
plugin_dir	/usr/lib/mysql/plugin/
plugin_maturity	unknown
port	43306
preload_buffer_size	32768
profiling	ON
profiling_history_size	15
progress_report_time	5
protocol_version	10
proxy_user	
pseudo_slave_mode	OFF
pseudo_thread_id	6419400
query_alloc_block_size	8192
query_cache_limit	1048576
query_cache_min_res_unit	4096
query_cache_size	67108864
query_cache_strip_comments	OFF
query_cache_type	ON
query_cache_wlock_invalidate	OFF
query_prealloc_size	8192
rand_seed1	0
rand_seed2	0
range_alloc_block_size	4096
read_buffer_size	131072
read_only	OFF
read_rnd_buffer_size	262144
relay_log	
relay_log_index	
relay_log_info_file	relay-log.info
relay_log_purge	ON
relay_log_recovery	OFF
relay_log_space_limit	0
replicate_annotate_row_events	OFF
replicate_do_db	
replicate_do_table	
replicate_events_marked_for_skip	replicate
replicate_ignore_db	
replicate_ignore_table	
replicate_wild_do_table	
replicate_wild_ignore_table	
report_host	
report_password	
report_port	43306
report_user	
rowid_merge_buff_size	8388608
rpl_recovery_rank	0
secure_auth	OFF
secure_file_priv	
server_id	3
skip_external_locking	ON
skip_name_resolve	OFF
skip_networking	OFF
skip_replication	OFF
skip_show_database	OFF
slave_compressed_protocol	OFF
slave_ddl_exec_mode	IDEMPOTENT
slave_domain_parallel_threads	0
slave_exec_mode	STRICT
slave_load_tmpdir	/mysqltmp
slave_max_allowed_packet	1073741824
slave_net_timeout	3600
slave_parallel_max_queued	131072
slave_parallel_threads	0
slave_skip_errors	OFF
slave_sql_verify_checksum	ON
slave_transaction_retries	10
slave_type_conversions	
slow_launch_time	2
slow_query_log	ON
slow_query_log_file	/var/log/mysql/mysql-slow.log
socket	/var/run/mysqld/mysqld.sock
sort_buffer_size	2097152
sql_auto_is_null	OFF
sql_big_selects	ON
sql_buffer_result	OFF
sql_log_bin	ON
sql_log_off	OFF
sql_mode	
sql_notes	ON
sql_quote_show_create	ON
sql_safe_updates	OFF
sql_select_limit	18446744073709551615
sql_slave_skip_counter	0
sql_warnings	OFF
ssl_ca	
ssl_capath	
ssl_cert	
ssl_cipher	
ssl_crl	
ssl_crlpath	
ssl_key	
storage_engine	InnoDB
stored_program_cache	256
sync_binlog	1
sync_frm	ON
sync_master_info	0
sync_relay_log	0
sync_relay_log_info	0
system_time_zone	CEST
table_definition_cache	400
table_open_cache	400
thread_cache_size	32
thread_concurrency	10
thread_handling	one-thread-per-connection
thread_pool_idle_timeout	60
thread_pool_max_threads	500
thread_pool_oversubscribe	3
thread_pool_size	4
thread_pool_stall_limit	500
thread_stack	1048576
time_format	%H:%i:%s
time_zone	SYSTEM
timed_mutexes	OFF
timestamp	1495119368.799438
tmp_table_size	1073741824
tmpdir	/mysqltmp
transaction_alloc_block_size	8192
transaction_prealloc_size	4096
tx_isolation	REPEATABLE-READ
tx_read_only	OFF
unique_checks	ON
updatable_views_with_limit	YES
use_stat_tables	NEVER
userstat	OFF
version	10.0.30-MariaDB-0+deb8u1
version_comment	(Debian)
version_compile_machine	x86_64
version_compile_os	debian-linux-gnu
version_malloc_library	bundled jemalloc
wait_timeout	28800
warning_count	0

Comment by Elena Stepanova [ 2017-05-18 ]

So far I'm not getting the problem with the given config on the given table.

mannialb, you said in the description: "the result is often ordered the wrong way". Does it mean that you execute the same query on the same query several times in a row, and sometimes the result is correct, while sometimes it's wrong?

Does it happen if the query cache is disabled? (just fishing here)

Comment by Manfred Albracht [ 2017-05-19 ]

No. The wrong order result is always shown! But it seems only to happen it the table contains a text field.

Comment by Elena Stepanova [ 2017-05-19 ]

Which GUI client are you using?
Is it reproducible if you run the same query in MySQL command-line client?

Comment by Manfred Albracht [ 2017-05-19 ]

Yes. The result is always the same using Navicat and PHP.

Comment by Sergei Golubchik [ 2017-06-19 ]

Right, but can you reproduce it with mysql command-line client?

Comment by Jan Lindström (Inactive) [ 2020-01-20 ]

Support for 10.0-galera has ended.

Generated at Thu Feb 08 07:58:54 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.