--disable_warnings
--disable_query_log
--disable_result_log
--source test_init.inc
--enable_result_log
--enable_query_log

--echo
--echo drop and create databases
--connection master_1
DROP DATABASE IF EXISTS auto_test_local;
CREATE DATABASE auto_test_local;
USE auto_test_local;
  --connection child2_1
  DROP DATABASE IF EXISTS auto_test_remote;
  CREATE DATABASE auto_test_remote;
  USE auto_test_remote;
  --connection child2_2
  DROP DATABASE IF EXISTS auto_test_remote2;
  CREATE DATABASE auto_test_remote2;
  USE auto_test_remote2;
--enable_warnings

--echo
--echo test select 1
--connection master_1
SELECT 1;
    --disable_query_log
    --disable_result_log
  --connection child2_1
  SELECT 1;
  --connection child2_2
  SELECT 1;
    --enable_query_log
    --enable_result_log

--echo
--echo with partition test
      --disable_query_log
      --disable_result_log
    --connection child2_2
    --disable_warnings
DROP TABLE IF EXISTS ta_r3;
    --enable_warnings
CREATE TABLE ta_r3 (
a INT DEFAULT 10,
b CHAR(1) DEFAULT 'c',
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      TRUNCATE TABLE mysql.general_log;
    --connection child2_1
    --disable_warnings
DROP TABLE IF EXISTS ta_r2;
    --enable_warnings
CREATE TABLE ta_r2 (
a INT DEFAULT 10,
b CHAR(1) DEFAULT 'c',
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      TRUNCATE TABLE mysql.general_log;
      --enable_query_log
      --enable_result_log
  --connection master_1
  --disable_query_log
  echo CREATE TABLE ta_l2 (
    a INT,
    b CHAR(1),
    c DATETIME,
    PRIMARY KEY(a)
  ) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1;
CREATE TABLE ta_l2 (
    a INT,
    b CHAR(1),
    c DATETIME,
    PRIMARY KEY(a)
) ENGINE=Spider COMMENT='table "ta_r3"'
  PARTITION BY RANGE(a) (
PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1",
    table "ta_r2", priority "1000"',
PARTITION pt2 VALUES LESS THAN MAXVALUE
COMMENT='srv "s_2_2", priority "1000001"'
  );
  --disable_ps_protocol
  INSERT INTO ta_l2 (a, b, c) VALUES
    (1, 'a', '2008-08-01 10:21:39'),
    (2, 'b', '2000-01-01 00:00:00'),
    (3, 'e', '2007-06-04 20:03:11'),
    (4, 'd', '2003-11-30 05:01:03'),
    (5, 'c', '2001-12-31 23:59:59');
  --enable_ps_protocol
  --enable_query_log
  --disable_ps2_protocol
  set @old_spider_direct_aggregate=@@session.spider_direct_aggregate;
  set spider_direct_aggregate=1;

SHOW STATUS LIKE 'Spider_direct_aggregate';
  SELECT COUNT(*) FROM ta_l2;
SHOW STATUS LIKE 'Spider_direct_aggregate';
  SELECT SUM(a) FROM ta_l2;
SHOW STATUS LIKE 'Spider_direct_aggregate';
  SELECT MAX(a) FROM ta_l2;
SHOW STATUS LIKE 'Spider_direct_aggregate';
  SELECT MIN(a) FROM ta_l2;
SHOW STATUS LIKE 'Spider_direct_aggregate';
  SELECT MAX(a) FROM ta_l2 WHERE a < 5;
SHOW STATUS LIKE 'Spider_direct_aggregate';
  SELECT MIN(a) FROM ta_l2 WHERE a > 1;
SHOW STATUS LIKE 'Spider_direct_aggregate';
  --enable_ps2_protocol
  SET spider_direct_aggregate=0;
  SELECT COUNT(*) FROM ta_l2;
  SELECT SUM(a) FROM ta_l2;
  SELECT MAX(a) FROM ta_l2;
  SELECT MIN(a) FROM ta_l2;
  SELECT MAX(a) FROM ta_l2 WHERE a < 5;
  SELECT MIN(a) FROM ta_l2 WHERE a > 1;
SHOW STATUS LIKE 'Spider_direct_aggregate';

  set spider_direct_aggregate=@old_spider_direct_aggregate;
      --disable_query_log
      --disable_result_log
    --connection child2_2
      SELECT argument FROM mysql.general_log WHERE command_type != 'Execute' AND argument LIKE '%handler %';
SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_r3 ORDER BY a;
    --connection child2_1
      SELECT argument FROM mysql.general_log WHERE command_type != 'Execute' AND argument LIKE '%handler %';
SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_r2 ORDER BY a;
      --enable_query_log
      --enable_result_log

--echo
--echo deinit
--disable_warnings
--connection master_1
DROP DATABASE IF EXISTS auto_test_local;
  --connection child2_1
  DROP DATABASE IF EXISTS auto_test_remote;
  --connection child2_2
  DROP DATABASE IF EXISTS auto_test_remote2;
--disable_query_log
--disable_result_log
--source test_deinit.inc
--enable_result_log
--enable_query_log
--enable_warnings
--echo
--echo end of test
