AnonSec Shell
Server IP : 185.86.78.101  /  Your IP : 216.73.216.124
Web Server : Apache
System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 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 : OFF
Directory :  /www/server/mysql/mysql-test/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /www/server/mysql/mysql-test/t/partition_plugin.test
--source include/have_innodb.inc
#
# Check if partitioning is already active
#
if (`SELECT COUNT(*) != 0 FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name = 'partition' AND plugin_status = 'ACTIVE'`) {
  --skip The generic partitioning engine is already active!
}

#
# Check if server has support for loading plugins
#
if (`SELECT @@have_dynamic_loading != 'YES'`) {
  --skip plugin requires dynamic loading
}

#
# Check if the variable PARTITION_PLUGIN is set
#
if (!$PARTITION_PLUGIN) {
  --skip Could not find library for partition plugin, see the file plugin.defs
}

#
# Check if --plugin-dir was setup for partition.
#
if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$PARTITION_PLUGIN_OPT/'`) {
  --skip Partition plugin requires that --plugin-dir is set to the partition plugin dir
}

# Save the initial number of concurrent sessions
--source include/count_sessions.inc

let $have_innodb_native_partitioning= 1;
if ($have_innodb_native_partitioning)
{
  --echo # InnoDB supports native partitioning and is required by the test.
  CREATE TABLE t1 (a int)
  ENGINE = InnoDB
  PARTITION BY HASH (a) PARTITIONS 2;
  INSERT INTO t1 VALUES (1);
  SELECT * FROM t1;
  SHOW CREATE TABLE t1;
  DROP TABLE t1;
}

--echo # MyISAM requires ha_partition to support partitioning.
--error ER_FEATURE_NOT_AVAILABLE
CREATE TABLE t1 (a int)
ENGINE = MyISAM
PARTITION BY HASH (a) PARTITIONS 2;

--replace_regex /\.dll/.so/
eval INSTALL PLUGIN `partition` SONAME '$PARTITION_PLUGIN';
--replace_regex /\.dll/.so/
SELECT PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_STATUS, PLUGIN_TYPE, PLUGIN_LIBRARY, PLUGIN_AUTHOR, PLUGIN_DESCRIPTION, PLUGIN_LICENSE, LOAD_OPTION FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'PARTITION';

--replace_regex /\.dll/.so/
--error ER_UDF_EXISTS
eval INSTALL PLUGIN `PARTITION` SONAME '$PARTITION_PLUGIN';

CREATE TABLE t1 (a int)
ENGINE = MyISAM
PARTITION BY HASH (a) PARTITIONS 2;
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);

--echo # UNINSTALL will give a warning since an open table is in the table cache
UNINSTALL PLUGIN `partition`;

--echo # Still working due to UNINSTALL not yet completed
SHOW CREATE TABLE t1;
SELECT COUNT(*) FROM t1;
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'PARTITION';
SELECT COUNT(*) FROM mysql.plugin;
--echo # FLUSH TABLES will close all tables and allow the UNINSTALL to complete
FLUSH TABLES;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name = 'partition';
SELECT COUNT(*) FROM mysql.plugin;
--error ER_FEATURE_NOT_AVAILABLE
SHOW CREATE TABLE t1;
--error ER_FEATURE_NOT_AVAILABLE
SELECT COUNT(*) FROM t1;
--error ER_FEATURE_NOT_AVAILABLE
CREATE TABLE t2 (a int)
ENGINE = MyISAM
PARTITION BY HASH (a) PARTITIONS 2;
--error ER_STORAGE_ENGINE_NOT_LOADED
DROP TABLE t1;

--replace_regex /\.dll/.so/
eval INSTALL PLUGIN `PARTITION` SONAME '$PARTITION_PLUGIN';
--replace_regex /\.dll/.so/
SELECT PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_STATUS, PLUGIN_TYPE, PLUGIN_LIBRARY, PLUGIN_AUTHOR, PLUGIN_DESCRIPTION, PLUGIN_LICENSE, LOAD_OPTION FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'PARTITION';

--replace_regex /\.dll/.so/
--error ER_UDF_EXISTS
eval INSTALL PLUGIN `partition` SONAME '$PARTITION_PLUGIN';

DROP TABLE t1;

--echo # Simple partitioned table test
CREATE TABLE t1(a int) PARTITION BY HASH (a) PARTITIONS 2;
SHOW CREATE TABLE t1;
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
ALTER TABLE t1 ADD PARTITION PARTITIONS 1;
INSERT INTO t1 VALUES (6), (7), (8);
SELECT COUNT(*) FROM t1;

--echo # Cannot drop a partition from a HASH partitioned table
--error ER_ONLY_ON_RANGE_LIST_PARTITION
ALTER TABLE t1 DROP PARTITION p0;
ALTER TABLE t1 COALESCE PARTITION 2;
--error ER_DROP_LAST_PARTITION
ALTER TABLE t1 COALESCE PARTITION 1;
SHOW CREATE TABLE t1;
DROP TABLE t1;

UNINSTALL PLUGIN `partition`;
--error ER_SP_DOES_NOT_EXIST
UNINSTALL PLUGIN `PARTITION`;

Anon7 - 2022
AnonSec Team