Server IP : 104.21.38.3 / Your IP : 162.158.108.160 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/ndb/t/ |
Upload File : |
# The include statement below is a temp one for tests that are yet to #be ported to run with InnoDB, #but needs to be kept for tests that would need MyISAM in future. --source include/force_myisam_default.inc # # Test of pushed joins, aka SPJ, or AQL. # (Test with defaults + 'batched_key_access=on') # # NOTE: BKA will turn of lots of pushed join, we # are unsure if this is the best strategy, or # if its better/possible to sacrify the BKA # --source include/have_ndb.inc if (!`select locate('batched_key_access', @@global.optimizer_switch) > 0`) { skip Need batched_key_access; } set @@global.optimizer_switch='batched_key_access=on'; --source ndb_join_pushdown.inc ################################ # BKA specific test cases / bugs # #Bug#32774281 MULTI-RANGE LOOKUP FAILS, # ERROR 4316 'KEY ATTRIBUTES ARE NOT ALLOWED TO BE NULL' # # The MRR flag HA_MRR_NO_NULL_ENDPOINTS was specified even if # such a guarantee could not be made: If the join condition # contained a IS NULL predicate, or the '<=>' 'NULL-safe' equal # operator was used in the predicate, NULL values keys _are_ # generated during execution. # # Note1: The HA_MRR_NO_NULL_ENDPOINTS flag is only used by the # ha_ndcluster handler. # # Note2: HA_MRR_NO_NULL_ENDPOINTS is only checked for a # 'UNIQUE KEY ... USING HASH' CREATE TABLE f ( col_int_key int DEFAULT NULL ) ENGINE=ndbcluster; CREATE TABLE p ( col_int int DEFAULT NULL, col_int_unique int DEFAULT NULL, UNIQUE KEY ix1 (col_int,col_int_unique) USING HASH ) ENGINE=ndbcluster; insert into f values (1),(NULL); insert into p values (NULL,1); # A IS NULL predicate will generate MRR NULL value keys # -> A BKA access should not be generated let $query= SELECT * FROM f AS table2 STRAIGHT_JOIN p AS table4 ON table4.col_int IS NULL AND table4.col_int_unique = table2.col_int_key; eval explain $query; --sorted_result eval $query; # Using a literal instead will -> BKA access let $query= SELECT * FROM f AS table2 STRAIGHT_JOIN p AS table4 ON table4.col_int = 1 AND table4.col_int_unique = table2.col_int_key; eval explain $query; --sorted_result eval $query; # Similar test cases with '<=>' vs '=' # Only '=' guarantee HA_MRR_NO_NULL_ENDPOINTS let $query= SELECT * FROM f AS table2 STRAIGHT_JOIN p AS table4 ON table4.col_int <=> table2.col_int_key AND table4.col_int_unique = table2.col_int_key; eval explain $query; --sorted_result eval $query; let $query= SELECT * FROM f AS table2 STRAIGHT_JOIN p AS table4 ON table4.col_int = table2.col_int_key AND table4.col_int_unique <=> table2.col_int_key; eval explain $query; --sorted_result eval $query; let $query= SELECT * FROM f AS table2 STRAIGHT_JOIN p AS table4 ON table4.col_int = table2.col_int_key AND table4.col_int_unique = table2.col_int_key; eval explain $query; --sorted_result eval $query; DROP TABLE f,p; set @@global.optimizer_switch=default;