Compare commits

...

28 Commits

Author SHA1 Message Date
Paul Jacobs
3fb8002d94 Remove mention of table used for SlaveHosts query 2020-04-22 15:23:49 +03:00
Paul Jacobs
7d6ae54279 Removed formatting with ':samp:' (not implemented on github) 2020-04-21 19:46:49 +03:00
Paul Jacobs
8990a967c5 Changed table format back to plain (list-table not configured) 2020-04-21 19:43:28 +03:00
Paul Jacobs
4c5447bf42 Changed table format to list-table 2020-04-21 19:27:07 +03:00
Paul Jacobs
4fda9caaf8 Added missing README for documentation 2020-04-21 17:33:35 +03:00
Alexey Palazhchenko
e20e3c879b Relax github.com/pkg/errors dependency.
That way pmm-agent can use 0.9.1 without breaking other users.
2020-04-21 14:09:04 +03:00
Carlos Salguero
834df307ca Merge pull request #440 from impimp/PT-1824
PT-1824: Name of a constraint can exceed 64 when --alter-foreign-keys…
2020-04-16 16:13:11 -03:00
IP
76cffde87e PT-1824: Name of a constraint can exceed 64 when --alter-foreign-keys-method=rebuild_constraints used
The maxium possible length of a constraint name is 64. When --alter-foreign-keys-method=rebuild_constraints used,
pt-online-schema-change just adds `_`-character. This commit forces the maximum length of constraint name to 64 characters.
2020-04-10 11:46:10 +02:00
Carlos Salguero
f80c098614 Merge branch '3.0' of percona.github.com:percona/percona-toolkit into 3.0 2020-04-01 15:39:45 -03:00
Carlos Salguero
45522dea28 Renamed dubious tests 2020-04-01 15:39:16 -03:00
Carlos Salguero
b5a593dc16 Updated TableNibbler 2020-03-31 13:19:26 -03:00
Carlos Salguero
fc631efb32 Fixed long_fk_constraints.t 2020-03-31 11:27:04 -03:00
Carlos Salguero
2f07f776b5 Updated DNSParser in all programs 2020-03-31 10:11:48 -03:00
Nurlan Moldomurov
384b841ea2 Merge pull request #438 from percona/PT-1810
PT-1810 Update UUID package
2020-03-31 00:04:48 +03:00
Carlos Salguero
a3ab87b12e Fixed pt-archiver tests 2020-03-30 14:57:02 -03:00
Carlos Salguero
fa4bb014ec PT-1810 Adding container name in docker-compose 2020-03-30 13:44:14 -03:00
Carlos Salguero
25b8421447 PT-1810 Adding container name in docker-compose 2020-03-30 13:29:19 -03:00
Carlos Salguero
06a60c906a PT-1810 debug in travis 2020-03-30 13:02:28 -03:00
Carlos Salguero
55f719fa79 PT-1810 Fixex travis 2020-03-30 12:51:01 -03:00
Carlos Salguero
7e7eecc68f PT-1810 Updated travis & compose to include postgres 2020-03-30 12:17:24 -03:00
Carlos Salguero
1b7d526722 PT-1810 test 2020-03-30 10:42:00 -03:00
Carlos Salguero
d531164921 PT-1810 Updated testing MongoDB certs 2020-03-30 08:35:57 -03:00
Carlos Salguero
f0ee14d479 WIP 2020-03-30 08:21:05 -03:00
Carlos Salguero
670dd962a9 Merged 3.0 branch 2020-03-26 08:41:25 -03:00
Carlos Salguero
6f75eb1877 PT-1810 Updated deps for google/uuid 2020-03-25 15:06:32 -03:00
Carlos Salguero
9e856562af PT-1810 Use of Google's UUID pkg 2020-03-25 15:04:44 -03:00
Carlos Salguero
a7ec40383f PT-1810 Updated deps 2020-03-17 22:45:31 -03:00
Artem Gavrilov
8abdc07050 PMM-5192 Update Go version to 1.13 2020-02-19 22:20:39 +03:00
48 changed files with 1582 additions and 291 deletions

2
.env
View File

@@ -1,4 +1,4 @@
GOLANG_DOCKERHUB_TAG=1.10-stretch
GOLANG_DOCKERHUB_TAG=1.13.7-stretch
TEST_MONGODB_ADMIN_USERNAME=admin
TEST_MONGODB_ADMIN_PASSWORD=admin123456
TEST_MONGODB_USERNAME=test

View File

@@ -1,8 +1,6 @@
language: go
go:
- 1.10.x
- 1.12.x
- 1.13.x
services:
@@ -71,7 +69,8 @@ before_script:
- dep ensure
script:
- go test -timeout 20m ./src/...
- docker ps
- go test -timeout 20m ./src/go/...
allow_failures:
- tip

18
Gopkg.lock generated
View File

@@ -95,6 +95,14 @@
pruneopts = ""
revision = "ff6b7dc882cf4cfba7ee0b9f7dcc1ac096c554aa"
[[projects]]
digest = "1:ad92aa49f34cbc3546063c7eb2cabb55ee2278b72842eda80e2a20a8a06a8d73"
name = "github.com/google/uuid"
packages = ["."]
pruneopts = ""
revision = "0cd6bf5da1e1c83f8b45653022c74f71af0538a4"
version = "v1.1.1"
[[projects]]
branch = "master"
digest = "1:4fbfcfe715329e2f09ea644657aa791b81e73a0c835a4f79b9a0dfff0513e2b8"
@@ -187,14 +195,6 @@
revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4"
version = "v0.8.1"
[[projects]]
digest = "1:7f569d906bdd20d906b606415b7d794f798f91a62fcfb6a4daa6d50690fb7a3f"
name = "github.com/satori/go.uuid"
packages = ["."]
pruneopts = ""
revision = "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3"
version = "v1.2.0"
[[projects]]
digest = "1:55dcddb2ba6ab25098ee6b96f176f39305f1fde7ea3d138e7e10bb64a5bf45be"
name = "github.com/shirou/gopsutil"
@@ -334,6 +334,7 @@
"github.com/alecthomas/kingpin",
"github.com/go-ini/ini",
"github.com/golang/mock/gomock",
"github.com/google/uuid",
"github.com/hashicorp/go-version",
"github.com/howeyc/gopass",
"github.com/kr/pretty",
@@ -343,7 +344,6 @@
"github.com/pborman/getopt",
"github.com/percona/go-mysql/query",
"github.com/pkg/errors",
"github.com/satori/go.uuid",
"github.com/shirou/gopsutil/process",
"github.com/sirupsen/logrus",
"go.mongodb.org/mongo-driver/bson",

View File

@@ -1,25 +1,3 @@
# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
[[constraint]]
name = "github.com/Masterminds/semver"
version = "1.4.0"
@@ -44,20 +22,6 @@
branch = "master"
name = "github.com/pborman/getopt"
[[constraint]]
name = "github.com/pkg/errors"
version = "0.8.0"
[[constraint]]
name = "github.com/satori/go.uuid"
version = "1.1.0"
[[constraint]]
name = "github.com/shirou/gopsutil"
version = "2.17.11"
[[constraint]]
name = "github.com/sirupsen/logrus"
[[constraint]]
name = "go.mongodb.org/mongo-driver"

View File

@@ -2406,10 +2406,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}
@@ -3224,7 +3220,7 @@ sub generate_cmp_where {
push @clause, "($val IS NULL OR $quo $type $val)";
}
elsif ( $type =~ m/>/ ) {
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
}
else { # If $type =~ m/</ ) {
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
@@ -3238,7 +3234,7 @@ sub generate_cmp_where {
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
}
push @clauses, '(' . join(' AND ', @clause) . ')';
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
}
my $result = '(' . join(' OR ', @clauses) . ')';
my $where = {

View File

@@ -1972,10 +1972,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -2316,10 +2316,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -793,10 +793,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -204,10 +204,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1468,10 +1468,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -2788,10 +2788,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -214,10 +214,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1976,10 +1976,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -2199,7 +2199,7 @@ sub parse {
foreach my $key ( keys %$opts ) {
PTDEBUG && _d('Finding value for', $key);
$final_props{$key} = $given_props{$key};
if ( !defined $final_props{$key}
if ( !defined $final_props{$key}
&& defined $prev->{$key} && $opts->{$key}->{copy} )
{
$final_props{$key} = $prev->{$key};
@@ -2226,10 +2226,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}
@@ -2343,7 +2339,7 @@ sub get_dbh {
my $dbh;
my $tries = 2;
while ( !$dbh && $tries-- ) {
PTDEBUG && _d($cxn_string, ' ', $user, ' ', $pass,
PTDEBUG && _d($cxn_string, ' ', $user, ' ', $pass,
join(', ', map { "$_=>$defaults->{$_}" } keys %$defaults ));
$dbh = eval { DBI->connect($cxn_string, $user, $pass, $defaults) };
@@ -2541,7 +2537,7 @@ sub set_vars {
}
}
return;
return;
}
sub _d {
@@ -3003,7 +2999,7 @@ sub generate_asc_stmt {
die "Index '$index' does not exist in table"
unless exists $tbl_struct->{keys}->{$index};
PTDEBUG && _d('Will ascend index', $index);
PTDEBUG && _d('Will ascend index', $index);
my @asc_cols = @{$tbl_struct->{keys}->{$index}->{cols}};
if ( $args{asc_first} ) {
@@ -3106,7 +3102,7 @@ sub generate_cmp_where {
push @clause, "($val IS NULL OR $quo $type $val)";
}
elsif ( $type =~ m/>/ ) {
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
}
else { # If $type =~ m/</ ) {
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
@@ -3120,7 +3116,7 @@ sub generate_cmp_where {
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
}
push @clauses, '(' . join(' AND ', @clause) . ')';
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
}
my $result = '(' . join(' OR ', @clauses) . ')';
my $where = {
@@ -11139,6 +11135,9 @@ sub rebuild_constraints {
($new_fk = $fk) =~ s/^__//;
} else {
$new_fk = '_'.$fk;
if(length $new_fk > 64) {
substr($new_fk, 64 - length $new_fk) = '';
}
}
PTDEBUG && _d("Old FK name: $fk New FK name: $new_fk");

View File

@@ -882,10 +882,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1248,10 +1248,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1969,10 +1969,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1904,10 +1904,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -2315,10 +2315,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1477,7 +1477,7 @@ sub parse {
foreach my $key ( keys %$opts ) {
PTDEBUG && _d('Finding value for', $key);
$final_props{$key} = $given_props{$key};
if ( !defined $final_props{$key}
if ( !defined $final_props{$key}
&& defined $prev->{$key} && $opts->{$key}->{copy} )
{
$final_props{$key} = $prev->{$key};
@@ -1504,10 +1504,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}
@@ -1621,7 +1617,7 @@ sub get_dbh {
my $dbh;
my $tries = 2;
while ( !$dbh && $tries-- ) {
PTDEBUG && _d($cxn_string, ' ', $user, ' ', $pass,
PTDEBUG && _d($cxn_string, ' ', $user, ' ', $pass,
join(', ', map { "$_=>$defaults->{$_}" } keys %$defaults ));
$dbh = eval { DBI->connect($cxn_string, $user, $pass, $defaults) };
@@ -1819,7 +1815,7 @@ sub set_vars {
}
}
return;
return;
}
sub _d {
@@ -4876,7 +4872,7 @@ sub generate_asc_stmt {
die "Index '$index' does not exist in table"
unless exists $tbl_struct->{keys}->{$index};
PTDEBUG && _d('Will ascend index', $index);
PTDEBUG && _d('Will ascend index', $index);
my @asc_cols = @{$tbl_struct->{keys}->{$index}->{cols}};
if ( $args{asc_first} ) {
@@ -4979,7 +4975,7 @@ sub generate_cmp_where {
push @clause, "($val IS NULL OR $quo $type $val)";
}
elsif ( $type =~ m/>/ ) {
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
}
else { # If $type =~ m/</ ) {
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
@@ -4993,7 +4989,7 @@ sub generate_cmp_where {
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
}
push @clauses, '(' . join(' AND ', @clause) . ')';
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
}
my $result = '(' . join(' OR ', @clauses) . ')';
my $where = {

View File

@@ -6505,7 +6505,7 @@ sub generate_cmp_where {
push @clause, "($val IS NULL OR $quo $type $val)";
}
elsif ( $type =~ m/>/ ) {
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
}
else { # If $type =~ m/</ ) {
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
@@ -6519,7 +6519,7 @@ sub generate_cmp_where {
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
}
push @clauses, '(' . join(' AND ', @clause) . ')';
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
}
my $result = '(' . join(' OR ', @clauses) . ')';
my $where = {

View File

@@ -156,10 +156,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -879,10 +879,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1973,10 +1973,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -1921,10 +1921,6 @@ sub parse {
}
}
if ($final_props{F}) {
%final_props = ( 'F' => $final_props{F} );
}
return \%final_props;
}

View File

@@ -143,6 +143,34 @@ services:
- configsvr1
# - configsvr2
# - configsvr3
postgres9:
image: ${POSTGRE_IMAGE:-postgres:9.6}
container_name: go_postgres9_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_96_PORT:-6432}:5432
environment:
- POSTGRES_PASSWORD=root
postgres10:
image: ${POSTGRE_IMAGE:-postgres:10.7}
container_name: go_postgres10_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_10_PORT:-6433}:5432
environment:
- POSTGRES_PASSWORD=root
postgres11:
image: ${POSTGRE_IMAGE:-postgres:11}
container_name: go_postgres11_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_11_PORT:-6434}:5432
environment:
- POSTGRES_PASSWORD=root
postgres12:
image: ${POSTGRE_IMAGE:-postgres:12}
container_name: go_postgres12_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_12_PORT:-6435}:5432
environment:
- POSTGRES_PASSWORD=root
init:
network_mode: host
image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION}
@@ -166,6 +194,10 @@ services:
- s3-mongo2
- s3-mongo3
- standalone
- postgres9
- postgres10
- postgres11
- postgres12
test:
build:
dockerfile: docker/test/Dockerfile

View File

@@ -197,7 +197,7 @@ sub generate_cmp_where {
push @clause, "($val IS NULL OR $quo $type $val)";
}
elsif ( $type =~ m/>/ ) {
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
}
else { # If $type =~ m/</ ) {
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
@@ -212,7 +212,7 @@ sub generate_cmp_where {
}
# Add the clause to the larger WHERE clause.
push @clauses, '(' . join(' AND ', @clause) . ')';
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
}
my $result = '(' . join(' OR ', @clauses) . ')';
my $where = {

15
run-tests.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
BRANCH=$(git rev-parse --abbrev-ref HEAD)
MYSQL_VERSION=$(mysql -ss -e "SHOW VARIABLES LIKE 'version'" | cut -f2)
LOG_FILE=~/${BRANCH}-${MYSQL_VERSION}.log
truncate --size=0 ${LOG_FILE}
echo "Logging to $LOG_FILE"
for dir in t/*
do
echo "$dir"
sandbox/test-env restart
prove -vw --trap --timer "$dir" | tee -a $LOG_FILE
done

13
runtests.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
MYSQL_VERSION=$(mysql -ss -e "SELECT VERSION()")
LOGFILE=${HOME}/pt-tests-$(git rev-parse --abbrev-ref HEAD)-mysql-${MYSQL_VERSION}.log
echo "" > ${LOGFILE}
export PERCONA_TOOLKIT_SANDBOX=${HOME}/mysql/my-5.7
for d in $(ls -d t/*)
do
sandbox/test-env restart
prove -vw $d | tee -a ${LOGFILE}
done

Binary file not shown.

View File

@@ -0,0 +1,29 @@
[client]
user = msandbox
password = msandbox
port = PORT
socket = /tmp/PORT/mysql_sandboxPORT.sock
[mysqld]
port = PORT
socket = /tmp/PORT/mysql_sandboxPORT.sock
pid-file = /tmp/PORT/data/mysql_sandboxPORT.pid
basedir = PERCONA_TOOLKIT_SANDBOX
datadir = /tmp/PORT/data
key_buffer_size = 16M
innodb_buffer_pool_size = 16M
innodb_data_home_dir = /tmp/PORT/data
innodb_log_group_home_dir = /tmp/PORT/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_file_size = 64M
log-bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates
server-id = PORT
report-host = 127.0.0.1
report-port = PORT
log-error = /tmp/PORT/data/mysqld.log
innodb_lock_wait_timeout = 3
general_log
general_log_file = genlog
performance_schema = ON

View File

@@ -0,0 +1,627 @@
USE `mysql`;
-- MySQL dump 10.16 Distrib 10.1.21-MariaDB, for Linux (x86_64)
--
-- Host: localhost Database: localhost
-- ------------------------------------------------------
-- Server version 10.1.21-MariaDB
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `column_stats`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `column_stats` (
`db_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`column_name` varchar(64) COLLATE utf8_bin NOT NULL,
`min_value` varbinary(255) DEFAULT NULL,
`max_value` varbinary(255) DEFAULT NULL,
`nulls_ratio` decimal(12,4) DEFAULT NULL,
`avg_length` decimal(12,4) DEFAULT NULL,
`avg_frequency` decimal(12,4) DEFAULT NULL,
`hist_size` tinyint(3) unsigned DEFAULT NULL,
`hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') COLLATE utf8_bin DEFAULT NULL,
`histogram` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Columns';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `columns_priv`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `columns_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `db`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `db` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `event`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `event` (
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`last_executed` datetime DEFAULT NULL,
`starts` datetime DEFAULT NULL,
`ends` datetime DEFAULT NULL,
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`originator` int(10) unsigned NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`body_utf8` longblob,
PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `func`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `func` (
`name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT '0',
`dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
`type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gtid_slave_pos`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `gtid_slave_pos` (
`domain_id` int(10) unsigned NOT NULL,
`sub_id` bigint(20) unsigned NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`seq_no` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`domain_id`,`sub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Replication slave GTID position';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `help_category`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `help_category` (
`help_category_id` smallint(5) unsigned NOT NULL,
`name` char(64) NOT NULL,
`parent_category_id` smallint(5) unsigned DEFAULT NULL,
`url` text NOT NULL,
PRIMARY KEY (`help_category_id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help categories';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `help_keyword`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `help_keyword` (
`help_keyword_id` int(10) unsigned NOT NULL,
`name` char(64) NOT NULL,
PRIMARY KEY (`help_keyword_id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help keywords';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `help_relation`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `help_relation` (
`help_topic_id` int(10) unsigned NOT NULL,
`help_keyword_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`help_keyword_id`,`help_topic_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='keyword-topic relation';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `help_topic`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `help_topic` (
`help_topic_id` int(10) unsigned NOT NULL,
`name` char(64) NOT NULL,
`help_category_id` smallint(5) unsigned NOT NULL,
`description` text NOT NULL,
`example` text NOT NULL,
`url` text NOT NULL,
PRIMARY KEY (`help_topic_id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help topics';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `host`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `host` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Host privileges; Merged with database privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `index_stats`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `index_stats` (
`db_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`index_name` varchar(64) COLLATE utf8_bin NOT NULL,
`prefix_arity` int(11) unsigned NOT NULL,
`avg_frequency` decimal(12,4) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Indexes';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `innodb_index_stats`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `innodb_index_stats` (
`database_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`index_name` varchar(64) COLLATE utf8_bin NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
`stat_value` bigint(20) unsigned NOT NULL,
`sample_size` bigint(20) unsigned DEFAULT NULL,
`stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `innodb_table_stats`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `innodb_table_stats` (
`database_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`n_rows` bigint(20) unsigned NOT NULL,
`clustered_index_size` bigint(20) unsigned NOT NULL,
`sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`database_name`,`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `plugin`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `plugin` (
`name` varchar(64) NOT NULL DEFAULT '',
`dl` varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL plugins';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `proc`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `proc` (
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`type` enum('FUNCTION','PROCEDURE') NOT NULL,
`specific_name` char(64) NOT NULL DEFAULT '',
`language` enum('SQL') NOT NULL DEFAULT 'SQL',
`sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL DEFAULT 'CONTAINS_SQL',
`is_deterministic` enum('YES','NO') NOT NULL DEFAULT 'NO',
`security_type` enum('INVOKER','DEFINER') NOT NULL DEFAULT 'DEFINER',
`param_list` blob NOT NULL,
`returns` longblob NOT NULL,
`body` longblob NOT NULL,
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
`comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`body_utf8` longblob,
PRIMARY KEY (`db`,`name`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `procs_priv`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `procs_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Routine_name` char(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
`Routine_type` enum('FUNCTION','PROCEDURE') COLLATE utf8_bin NOT NULL,
`Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
`Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `proxies_priv`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `proxies_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Proxied_host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Proxied_user` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`With_grant` tinyint(1) NOT NULL DEFAULT '0',
`Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User proxy privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `roles_mapping`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `roles_mapping` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Role` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Admin_option` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
UNIQUE KEY `Host` (`Host`,`User`,`Role`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Granted roles';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `servers`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `servers` (
`Server_name` char(64) NOT NULL DEFAULT '',
`Host` char(64) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`Username` char(80) NOT NULL DEFAULT '',
`Password` char(64) NOT NULL DEFAULT '',
`Port` int(4) NOT NULL DEFAULT '0',
`Socket` char(64) NOT NULL DEFAULT '',
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` char(64) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `table_stats`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `table_stats` (
`db_name` varchar(64) COLLATE utf8_bin NOT NULL,
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
`cardinality` bigint(21) unsigned DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Tables';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tables_priv`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `tables_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '',
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `time_zone`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `time_zone` (
`Time_zone_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Use_leap_seconds` enum('Y','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`Time_zone_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zones';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `time_zone_leap_second`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `time_zone_leap_second` (
`Transition_time` bigint(20) NOT NULL,
`Correction` int(11) NOT NULL,
PRIMARY KEY (`Transition_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Leap seconds information for time zones';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `time_zone_name`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `time_zone_name` (
`Name` char(64) NOT NULL,
`Time_zone_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone names';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `time_zone_transition`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `time_zone_transition` (
`Time_zone_id` int(10) unsigned NOT NULL,
`Transition_time` bigint(20) NOT NULL,
`Transition_type_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Time_zone_id`,`Transition_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transitions';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `time_zone_transition_type`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `time_zone_transition_type` (
`Time_zone_id` int(10) unsigned NOT NULL,
`Transition_type_id` int(10) unsigned NOT NULL,
`Offset` int(11) NOT NULL DEFAULT '0',
`Is_DST` tinyint(3) unsigned NOT NULL DEFAULT '0',
`Abbreviation` char(8) NOT NULL DEFAULT '',
PRIMARY KEY (`Time_zone_id`,`Transition_type_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transition types';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `user` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
`ssl_cipher` blob NOT NULL,
`x509_issuer` blob NOT NULL,
`x509_subject` blob NOT NULL,
`max_questions` int(11) unsigned NOT NULL DEFAULT '0',
`max_updates` int(11) unsigned NOT NULL DEFAULT '0',
`max_connections` int(11) unsigned NOT NULL DEFAULT '0',
`max_user_connections` int(11) NOT NULL DEFAULT '0',
`plugin` char(64) CHARACTER SET latin1 NOT NULL DEFAULT '',
`authentication_string` text COLLATE utf8_bin NOT NULL,
`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`is_role` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`default_role` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
`max_statement_time` decimal(12,6) NOT NULL DEFAULT '0.000000',
PRIMARY KEY (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `general_log`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `general_log` (
`event_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`user_host` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `slow_log`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `slow_log` (
`start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`user_host` mediumtext NOT NULL,
`query_time` time(6) NOT NULL,
`lock_time` time(6) NOT NULL,
`rows_sent` int(11) NOT NULL,
`rows_examined` int(11) NOT NULL,
`db` varchar(512) NOT NULL,
`last_insert_id` int(11) NOT NULL,
`insert_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2017-03-10 19:49:04

View File

@@ -145,24 +145,28 @@ services:
# - configsvr3
postgres9:
image: ${MYSQL_IMAGE:-postgres:9.6}
container_name: go_postgres9_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_96_PORT:-6432}:5432
environment:
- POSTGRES_PASSWORD=root
postgres10:
image: ${POSTGRE_IMAGE:-postgres:10.7}
container_name: go_postgres10_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_10_PORT:-6433}:5432
environment:
- POSTGRES_PASSWORD=root
postgres11:
image: ${POSTGRE_IMAGE:-postgres:11}
container_name: go_postgres11_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_11_PORT:-6434}:5432
environment:
- POSTGRES_PASSWORD=root
postgres12:
image: ${POSTGRE_IMAGE:-postgres:12}
container_name: go_postgres12_1
ports:
- ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_12_PORT:-6435}:5432
environment:

View File

@@ -1,52 +1,88 @@
-----BEGIN CERTIFICATE-----
MIIESjCCAjKgAwIBAgIRAKG/1k+fiFpnx/pdBHp0Hc8wDQYJKoZIhvcNAQELBQAw
ETEPMA0GA1UEAxMGcm9vdENBMB4XDTE4MDkwNjExMDQzNloXDTIwMDMwNjExMDQz
M1owFDESMBAGA1UEAxMJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAl+Qnlg3dSlyYi34yF2D35g9PhU6o5gm3qN22pEdDTOrTEihnF6lq
XqieDAaTTYehilqSsBjdZN8uTeJQ5Dsr/g8n43y8KCQFIcpNJLldV+pNEZydCK3R
sPr4+GgWGdpmA5Za8VlRgilYNVzSmABz9LZoa33YIjMSQ0BftAFnFl6N0ikDwPuN
L1A40EaE121QeEQgUTbcWcrJ1vJkJgcSGK6blVOy1dmHL4ABoD+n1+abDsoKM1Yz
XOgci8rbNUTS6P/2j4VW+MZRnM6rFCbo7wW11IUYSyShhTJoWFMdtc7zmQdTVBlo
RhKU0Ok1QDVr6vO+3PKriUcWY0cLFRcsGwIDAQABo4GZMIGWMA4GA1UdDwEB/wQE
AwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHQYDVR0OBBYEFAaP
Vu/GKnWUUjNznMkpU7t1V8V3MB8GA1UdIwQYMBaAFNVjkwWn6aryJsRlIsOr4gFM
ISnFMCUGA1UdEQQeMByCCWxvY2FsaG9zdIIJMTI3LjAuMC4xhwR/AAABMA0GCSqG
SIb3DQEBCwUAA4ICAQCYl8SMZJlaBOyUM0VAOZDks+OICJn8PUdu5XqvFA5ATnXE
MRGP1h34R/6Vkl/jwB/+2+9zEgT1z4hZ55blyOmZFB/j/jPrlqEIkUMHK1CVC6jI
f8ubNp4MNHVoV2Cw6wLw8E/GMZIcZ4t0G9Z7kFjHh0qS5PN00zbBCj927Q2FoBc2
oybS4KVgFeD9fklYCMoETp+WWaM7dec0OBdKWyCEP3JmMHITKTipro5yf6RZDvAB
TvoGcZIsIdKnoAknMYwG4ibcyI0z6XIF6/Hy/E6XdbsnmCHGIBHbRMMvqNXz3XJa
1s/vA4MHkUF9N14MRVI8cepFMsYBZkztNylYw159b9qiHzbeUm3BrSaJzQjefqkD
cMFLJ0jcZDg8N+pyMi3vvr41HfONw8iyqis3ZAjftZ56fwoj6ap4QZI8P+M7R//X
A4r11+ldDRsJRnLi6kCJK/ta2pKGuUvFeVqDDc/wNfBUMkmUeyZ9AcNoxFNDMmZT
sEhj6mTHcKlo+BcVdYMO4FrrgXkuRS0gY82qZucHRGQh3G1QPs4di7pVCopXuWjQ
8foI+SSRFqfcdPS5ljVyLV1g+RVBJnGYQiCM/JAPokRZpimZherxsmdnAW1A/XR1
/LXHw/5upwkouzsjFTEM8g1WDwtfp3HGFnHUxVHSe2lXI/2o+DZBU/ILEpxrgQ==
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIGhjCCBG6gAwIBAgIUA8DTDskAzhfsbrJkErEqsxyeRLcwDQYJKoZIhvcNAQEL
BQAwgZwxCzAJBgNVBAYTAkFSMSEwHwYDVQQIDBhUZXN0Q2VydGlmaWNhdGVTdGF0
ZU5hbWUxJDAiBgNVBAcMG1Rlc3RDZXJ0aWZpY2F0ZUxvY2FsaXR5TmFtZTEfMB0G
A1UECgwWVGVzdENlcnRpZmljYXRlT3JnTmFtZTEjMCEGA1UECwwaVGVzdENlcnRp
ZmljYXRlT3JnVW5pdE5hbWUwHhcNMjAwMzI0MjEzNzQ2WhcNMjEwMzI0MjEzNzQ2
WjCBpDELMAkGA1UEBhMCQVIxIzAhBgNVBAgMGlRlc3RDbGllbnRDZXJ0aWZpY2F0
ZVN0YXRlMSYwJAYDVQQHDB1UZXN0Q2xpZW50Q2VydGlmaWNhdGVMb2NhbGl0eTEh
MB8GA1UECgwYVGVzdENsaWVudENlcnRpZmljYXRlT3JnMSUwIwYDVQQLDBxUZXN0
Q2xpZW50Q2VydGlmaWNhdGVPcmdVbml0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAqRso1A6DaTW05bFRbThZAy6seMwjcGZYk0JUFHenYPoCf0qZwi3y
JThS2KoYJBK1TzagbqWLc4R2JGBL7sr7KDq4jFGVRcxIW1AZ4z7fhH3Khk8iPoaA
JX4Q8iwVJ/3sPiUJ02d6w26c6QIfChh5iTArAHX1oXX7nhDeV74KnlMv3HssOFnX
3ZZhikdvsGXCpH9vt23AnCcNiCOPZUtxl1i8bhoehw3PwwiLAxn/VDLG4hOWlSIa
UAqrmNrGHurGSQHM7zk3RCumapg+R4R6+aTzJPNQtY5MXWr3p9w3oOtNeKvsz+kc
gxoU7sm/jPQSitmqQF3gm6iP//TNlGVvAy4HziQ7+C/WiqPpUOD1wtG4Cts0FWvv
VynP4BF/4VthpgB8cdmdkCBgPX9PA06RhHGlQXEXluxRBHfPsVy/cC3tMFy2YoK6
Rl4rLjAAKOWIkO8Z2Q2lVu5JkRNiWzLbRpJMN+yvTMBn2CEtaWWGyBgqKVRhpfA0
kbAb78+LhNnsbaNMhp87Ve5c8sUMzr00vgV73RGTNex3GG9WXeufgaxlxmF3yQYH
p7Mraj++RZUwi3nWCiEz3SQUHdvt3jMs9GGabRUY18oxWqnCB7CCnrJtaC0iyXIc
i2VxV7wIBuUDEcllCkWDO5GKPs4HuUhhF5CQhHEHoYG33B5NKJQ2/NsCAwEAAaOB
tTCBsjAdBgNVHQ4EFgQU3NfuC45IyCKP7cc5JrKsBAypKPIwCQYDVR0TBAIwADAO
BgNVHQ8BAf8EBAMCBaAwVwYJYIZIAYb4QgENBEoWSE9wZW5TU0wgR2VuZXJhdGVk
IENlcnRpZmljYXRlIGZvciBURVNUSU5HIG9ubHkuICBOT1QgRk9SIFBST0RVQ1RJ
T04gVVNFLjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcN
AQELBQADggIBADN25Ne2BW16E7HJHblInBdeivN4RjYsckRL56V5Vs2b8G6cjPLZ
4qz0uFBMpwO+y8cCccGWUD8uSsNvyjFq2umyaqFEVQmGyo1sDBV6WQtY82xCEVcI
C+alZymANtLanf6T5EhTC9GttaHSxisGP/kHm2AKUzCi49fe/la9EqJRLgPsjsiw
YSmTZKyF+v+VaruCiIJj4rPYHDSk15STxuAS63fhCNW4kCw02vdMhHVz2GIMDwWF
Ulaao6yAO4t+1hAEQDZvH/ve8Kwj6y199Hna0zyhGSmCYkEmT0LfgTwcGhYinCUe
eUqqHcyPyGRSvc06dKvFBP89vD7gDzQbKgn7LGfEvseDml0WBpG0QbqhflQgWDb+
qi9d7Zw2yonhfb79zad9YF8VhDRQ25zXID22n+PLxwFCjNrCQFlGLclQYXmoZhlR
EOPs3HMAGp5mFaHDPMQygMd80M6e5RjjUh4d2AhBqDmsSB1vwaH6c1Qi+MSt1CfQ
duCZBU1/bA26J6U+zxsPNzVf1xR2lfk/kThK5VWTVmUSX6niIALEh6BNTff81uko
ruBw369tfdPNVcv6BE7LayK0RtNMGArONlww1NJ8D/rWTdI+GrfYQUlcZHBkvqCY
NIcueRuYCfTZK0fes3sl71Cg9ZMHNgRmIRxsCa65xxni2L2Bgq/hyK0S
-----END CERTIFICATE-----

View File

@@ -0,0 +1,89 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIGnTCCBIWgAwIBAgIUT1Tut/IJvQu47l3mJ1+pBEXKK04wDQYJKoZIhvcNAQEL
BQAwgZAxITAfBgNVBAgMGFRlc3RDZXJ0aWZpY2F0ZVN0YXRlTmFtZTEkMCIGA1UE
BwwbVGVzdENlcnRpZmljYXRlTG9jYWxpdHlOYW1lMR8wHQYDVQQKDBZUZXN0Q2Vy
dGlmaWNhdGVPcmdOYW1lMSQwIgYDVQQLDBtUZXN0Q2VydGlmaWNhdGVPcmdVbml0
TmFtZTIwHhcNMjAwMzI0MjAxMTI4WhcNMjEwMzI0MjAxMTI4WjCBpDELMAkGA1UE
BhMCQVIxIzAhBgNVBAgMGlRlc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVN0YXRlMSYwJAYD
VQQHDB1UZXN0U2VydmVyQ2VydGlmaWNhdGVMb2NhbGl0eTEhMB8GA1UECgwYVGVz
dFNlcnZlckNlcnRpZmljYXRlT3JnMSUwIwYDVQQLDBxUZXN0U2VydmVyQ2VydGlm
aWNhdGVPcmdVbml0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnEhd
lUJr348iYseh18NTZFyfWvZy83jmkMBtRdr2O3KxbaVG0g2QwAEnnW9t+W3lwjUg
hTPdG6i6duRsHrqJAbt4augmSH/u2smhH2367nVhbK+eg1wfFzsJZ9NHfrcLS4NT
RwLFLRt7P0QYwYZIYuSYWBLfX7B1539UBz1R61T2uV6jcW1U5lZDTDaEhLkUg1Dk
CdAGzmM04U53YPejsk6OLCVGwkLpG0rUHVzAcuM8Hx+1jJ/zZJuWU4kfeNcyHpbH
hN4K0WoDVECadRNhc9nT4OyqChE6UCFQ0WYBD3XHwbAo1eaox38tgLC5/SncCAgI
h5jarmUBBsqePkksm3cxjmQ5oBwB3HU7JTSLlRQqbMAQYHQyt6Up4Xbp0IPKHKoH
93K7LZCTEdI87jjWRrscEPOydYI3atBrGpLrcpC6uVa6ZwIVYHyilrY6oP1BbPsU
rL96z384HLtj3tAOxHMK6rxSbr+8TpXgsv4EYNGqjjZ977yh9Qy3zXn06KOjGs9C
dkHODdbH01LRC9qCZLbbm33STG5Sfedlp0v3cRxZzRrKIvm2V3Oct21VmFpuUqL1
pai5RuQZxbR8GEtPnb+V+M6JtprtLgpHsCx9z96tVvqUytWvkjfQ/Tk7wK215KqM
jbl81mlq23bxlkaE/W7lQJFxRM5y9ls4HvD9DDsCAwEAAaOB2DCB1TAdBgNVHQ4E
FgQUvqV8Vw4CxcPgrcvQc4XxmmvZ1SswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMC
BaAwVwYJYIZIAYb4QgENBEoWSE9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl
IGZvciBURVNUSU5HIG9ubHkuICBOT1QgRk9SIFBST0RVQ1RJT04gVVNFLjAdBgNV
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIQYDVR0RBBowGIIHMS4xLjEuMYIH
OC44LjguOIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAgEAOWK0fdKV6dnzPKhuLtfi
03BrewclMAHfg4nbosyvWPyd41JIqVFxka8xyF7unVPmS1GvZXONgRUgBkTiBW4n
x8BorrSP3u9+rxBNt58Y8DCH83YAlGSmU8TsmPGXmJH1AxGZWeo78aDEmssigbBN
qxe5J+FXC2HsVaw3MZnw88gsmN4z+k8x9hImGCsppgLMEzJppESrN39l1sHT5XAP
Fm2w7OB+E956ljIqZXSXj67sgUuQEM1sLQXOiDR7AYFBln2plCwygIosWlSz7O1A
3jRxuhQ/vI/+ScWQKQ6fcNu/7gPU/pxDSbtLTyn2Emg7WFEC9HCwJB3fMiCa/+0x
oxPZpwzMdztY5Bi654MLOfxxNpF02HNaym/iLZv7aJcxt3rFtPqsZfDqL0v89GCD
006pQUT6Sxvvz/n+sQ3lMXcNeq2SvAg+vRQOiRJ2wf/pSMXwbNlOgVxL5NcDJnpF
hfurBro++RyqlIkc0ouokWIKa0SUANzXGU0FkUA4223rQRvgrKs9utYJw2NuG6kM
QnNwceC+myoIwW7JBjCzPatZgIdY08BUaTHVefI2ntKP5fvDXLJFnSO/8TYkWK4a
nv2Unn4nbUuuAN3Y2TEVJAtHL4io8w2xB4W5Vy/i1iEHWnME5qXIHNgRzl57k+EO
EgxUDXWZVQZJg0alm4o0TJY=
-----END CERTIFICATE-----

View File

@@ -1,52 +1,89 @@
-----BEGIN CERTIFICATE-----
MIIESjCCAjKgAwIBAgIRAKG/1k+fiFpnx/pdBHp0Hc8wDQYJKoZIhvcNAQELBQAw
ETEPMA0GA1UEAxMGcm9vdENBMB4XDTE4MDkwNjExMDQzNloXDTIwMDMwNjExMDQz
M1owFDESMBAGA1UEAxMJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAl+Qnlg3dSlyYi34yF2D35g9PhU6o5gm3qN22pEdDTOrTEihnF6lq
XqieDAaTTYehilqSsBjdZN8uTeJQ5Dsr/g8n43y8KCQFIcpNJLldV+pNEZydCK3R
sPr4+GgWGdpmA5Za8VlRgilYNVzSmABz9LZoa33YIjMSQ0BftAFnFl6N0ikDwPuN
L1A40EaE121QeEQgUTbcWcrJ1vJkJgcSGK6blVOy1dmHL4ABoD+n1+abDsoKM1Yz
XOgci8rbNUTS6P/2j4VW+MZRnM6rFCbo7wW11IUYSyShhTJoWFMdtc7zmQdTVBlo
RhKU0Ok1QDVr6vO+3PKriUcWY0cLFRcsGwIDAQABo4GZMIGWMA4GA1UdDwEB/wQE
AwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHQYDVR0OBBYEFAaP
Vu/GKnWUUjNznMkpU7t1V8V3MB8GA1UdIwQYMBaAFNVjkwWn6aryJsRlIsOr4gFM
ISnFMCUGA1UdEQQeMByCCWxvY2FsaG9zdIIJMTI3LjAuMC4xhwR/AAABMA0GCSqG
SIb3DQEBCwUAA4ICAQCYl8SMZJlaBOyUM0VAOZDks+OICJn8PUdu5XqvFA5ATnXE
MRGP1h34R/6Vkl/jwB/+2+9zEgT1z4hZ55blyOmZFB/j/jPrlqEIkUMHK1CVC6jI
f8ubNp4MNHVoV2Cw6wLw8E/GMZIcZ4t0G9Z7kFjHh0qS5PN00zbBCj927Q2FoBc2
oybS4KVgFeD9fklYCMoETp+WWaM7dec0OBdKWyCEP3JmMHITKTipro5yf6RZDvAB
TvoGcZIsIdKnoAknMYwG4ibcyI0z6XIF6/Hy/E6XdbsnmCHGIBHbRMMvqNXz3XJa
1s/vA4MHkUF9N14MRVI8cepFMsYBZkztNylYw159b9qiHzbeUm3BrSaJzQjefqkD
cMFLJ0jcZDg8N+pyMi3vvr41HfONw8iyqis3ZAjftZ56fwoj6ap4QZI8P+M7R//X
A4r11+ldDRsJRnLi6kCJK/ta2pKGuUvFeVqDDc/wNfBUMkmUeyZ9AcNoxFNDMmZT
sEhj6mTHcKlo+BcVdYMO4FrrgXkuRS0gY82qZucHRGQh3G1QPs4di7pVCopXuWjQ
8foI+SSRFqfcdPS5ljVyLV1g+RVBJnGYQiCM/JAPokRZpimZherxsmdnAW1A/XR1
/LXHw/5upwkouzsjFTEM8g1WDwtfp3HGFnHUxVHSe2lXI/2o+DZBU/ILEpxrgQ==
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIGojCCBIqgAwIBAgIUA8DTDskAzhfsbrJkErEqsxyeRLYwDQYJKoZIhvcNAQEL
BQAwgZwxCzAJBgNVBAYTAkFSMSEwHwYDVQQIDBhUZXN0Q2VydGlmaWNhdGVTdGF0
ZU5hbWUxJDAiBgNVBAcMG1Rlc3RDZXJ0aWZpY2F0ZUxvY2FsaXR5TmFtZTEfMB0G
A1UECgwWVGVzdENlcnRpZmljYXRlT3JnTmFtZTEjMCEGA1UECwwaVGVzdENlcnRp
ZmljYXRlT3JnVW5pdE5hbWUwHhcNMjAwMzI0MjEzNzQzWhcNMjEwMzI0MjEzNzQz
WjCBpDELMAkGA1UEBhMCQVIxIzAhBgNVBAgMGlRlc3RTZXJ2ZXJDZXJ0aWZpY2F0
ZVN0YXRlMSYwJAYDVQQHDB1UZXN0U2VydmVyQ2VydGlmaWNhdGVMb2NhbGl0eTEh
MB8GA1UECgwYVGVzdFNlcnZlckNlcnRpZmljYXRlT3JnMSUwIwYDVQQLDBxUZXN0
U2VydmVyQ2VydGlmaWNhdGVPcmdVbml0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAw6UzR/6YmJVu6FT9W3ZuzIYIHSNzkYHHbxNe3xj5GprZ9Bs4FiRd
nt7jFfX1SVQQc94BDxD97PZYm9EFmqS0K8wGB+54FQxAFyXg0Ydt9fKNHayUhJ+0
Gh/agu5xF/1k6dtXg7lm3BOGxf75bH275JRtbSsVhP71RmmHWBy4vNWDB5SfTDN/
oMR4OhOGGyh0dS6KjvKu0iMXs5rDgM0xXtbMgt9yrp7nxT0R+3B4oUUi1NRSEVlo
8x7NYwLuq32VK+rT0IyvzHa4eWjDpIqSft4Nw56pJRQXCmpFLGarduKr9lrKmUVS
c9OmG1jJ/p0hxu/3DPpH/FMRye6dXeeot0JLOxfhJJ1uyNdV9FyvKu+QUOXCMEp2
pWk6mc1rEqlrBczJHqx/iX4fPI7AnS8K/cmuOKTHURnCdTsF5QcOLe+z0xAr3Ys5
3O8IsgH2AO80UOnOF5H7TboiEEoDvDtH3FnYRCgpWCMDF/EyA5Ef++bMEXmLI+XU
mqQTdxkczJkPvDNgV4GH/Dxns1jSMjid8/ySQHUlcBQRxH7AGDeNyY6mLy09HJnS
di2l81eN0bgvK/Vxrse0Ragj75+1/Unq8pJ6HeOsgFS8y3THBVWzKQpR/3U62E/N
miaJaYSoykXrKCiuCzM076gilIjGfv45618r1jIjGxGay6piRBjkPKsCAwEAAaOB
0TCBzjAdBgNVHQ4EFgQUo2vyNFhqZb17FC/2s9zgs2y3+7IwCQYDVR0TBAIwADAO
BgNVHQ8BAf8EBAMCBaAwVwYJYIZIAYb4QgENBEoWSE9wZW5TU0wgR2VuZXJhdGVk
IENlcnRpZmljYXRlIGZvciBURVNUSU5HIG9ubHkuICBOT1QgRk9SIFBST0RVQ1RJ
T04gVVNFLjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGgYDVR0RBBMw
EYIJMTI3LjAuMC4xhwR/AAABMA0GCSqGSIb3DQEBCwUAA4ICAQC4h+15PorQxATg
9G3BywtJwvmKF+j/S3dc25jIUO6LyXjaXanSf5FYKr+X4fdjflhMNp6TFBDHwVX2
T+ihZmhq7xKrP0RQAVIkMwAFNElFmiDuelJNzhxZBzu4ZIaOIk5J/oAWh8sqjX4Y
YYeXEOkM14+YeGbGD/YI+1YMhkA/CuEZl5LxinOHTXnx5chLgueDems01FgwidoX
NlK1XjLHzb0jBjhwzNU8CwR8d55PJq2lLs6W0Gc9KGbWKxQNMrqgVIVT/AkWGGK0
g1WHI5ehOEvyHXSTYgXUkynW4xn/yLq50IkxYMLwPg7U7O/U2StdlG88nPINHbKu
VfYFQ0F3M4CRFWaV0UNxK9hV6x+qu96jCmp+ftpC9zM7bathen9fnOM6Arg+U2Or
jDD5hRboMqdT1bw3k19WUnnbR3uFNDJFgNvTMOTt563UdaNxMSALJOpPDO21JK83
BxnfFEe1SMoTpsus9VEzZ3Fyjkug4CN7PzFt+x/NWRqyoEOuUXWtxzdQLj3f9MS1
RvMCbnvJcBr4NzDmFBmt8MehgbS4V1SKO7V2YCEnDu1YjSn6FxQqU7t8dl6K2Srz
HXbrRm/mcps1/QcKXgpOX1sajcvd0BsrqzGJtvrb8EnBbLk5lNYFcU3bnFAdHtbN
hdf6gGd96V3VkW7ZbxUoi3TBOmN7Tg==
-----END CERTIFICATE-----

View File

@@ -1,29 +1,78 @@
-----BEGIN CERTIFICATE-----
MIIE4jCCAsqgAwIBAgIBATANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDEwZyb290
Q0EwHhcNMTgwOTA2MTEwNDM0WhcNMjAwMzA2MTEwNDM0WjARMQ8wDQYDVQQDEwZy
b290Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDqVvFpIft91o1x
ALjDQ+zoCke2daQ5tntwbDwosbiGB58Jz5p/KVwGHQvYIt5yKSzc7KN7OkTFF8Xt
QGbVY2ZHOONHHZHOtuiBPz05fE/HDPxic2MO9jN4GGTphgFDBBfaEaF0G/19Rffk
1wtB8PoOY3MU0mSTxT1q2Ka2yY2VRbvoPxo7qbhCfXuAu1cA8RmbYCWQzGsqxPC6
s7cen9C5IOhHB/osQcI7ZoSL2fkiDch8SLFBPj7W5nofjH+P4Xncm2c65tHSy4pI
hbYW44NDR9o2RS1OdD2GhS9MHBppzQGAnXM3yxsbKDyzjcxZpIjwMlxaGz97y404
8ROET8Hu7CoOK9kPA20rmhpX/3ET7kiHs2f4/BlD7xNVL74tr1Plva/C8DcCWDC8
sf1PW4RJsuwadbkMAST4MY87HknIiN4NGKE6mSlfukaKKkW1HdCY7ynpCyv3Uru3
FiD5XrphSvonZbSfcnKjYQVKEudJWyMbdoO5JX6cDIb7QP3jsKADzedwrtWBWx2Z
CxWOJPeVan/I6OfV45q3LZFAsNjK2gquOe/3WmJKpO+EspivY+Fv/32IAACmjoY/
90Szf6YUKEE1Etpj9PT2gqmFleOx51A7jg3z4wUl3KI8CTcdVlDogct+4CHiQfJU
4ajXTqd3O0qGbulQPrZuhPZWBSbVqQIDAQABo0UwQzAOBgNVHQ8BAf8EBAMCAQYw
EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU1WOTBafpqvImxGUiw6viAUwh
KcUwDQYJKoZIhvcNAQELBQADggIBAMEw6cOWi7s/6A5cMObSbbfS91yXx4tjFda/
5lJ+7gxO935pQas2ZppxVpGUZezXH5rYl8bR/xGTZ1SLDqp0mjphVp4G6VQFtonK
E9nNRuVK9jDJ41IXjWEtdgeig5Sf6hRUbwTDTBulhSviQQzo7hQUpSknMC1UNAgy
op3q1dluBaG8BWi9aZu0WL5VdxdQdTCAXSrYqmeGZlc0IgiNiebRmkQwNImnvfzb
WmrCK8rThNdXml7G/BD+m9na1OwUVoee1oohbHmxH1YsNwe1rSEBL7oAHzNi695H
QrriZWu7t7QdO5ZITGZpzmVU1nrwSB/VgPH0tBAUeZSifctNII9NuW9FS1h3Gys1
JV2cwQYVCLK9+M/VhRdSv6u+UCHE1TtZwHmSKYjcdN52pUEnWZNtlwPyrJ7cbSEj
Wrq+iZBBO9qcPg20ldYLkjv1QlOGLnVbl2K9ePTTYbUaGo0DLGlA6E2lVjoD8FvS
DQYS6qQGHCgVgOPhca8FOCxKEfMvXSzKOF9eGn0rnzsUcJbiYxNArjDDKSRSyMhD
2TfBupFV+tYM8OXBDArgk464IZnjsrT4DeQQ+WOtEm3kHo/NVhZ/6A1uV/JyQhkF
D6FSNoKvWz3LIC5v42+hvj6teAk4wC9tFk4Q76c2PQxiwY1Ur8ySVUYiIv8bETCt
nQT44DuY
MIIG3TCCBMWgAwIBAgIUImm7nNshohrxdxIyIFBh+W6FtVMwDQYJKoZIhvcNAQEL
BQAwgZwxCzAJBgNVBAYTAkFSMSEwHwYDVQQIDBhUZXN0Q2VydGlmaWNhdGVTdGF0
ZU5hbWUxJDAiBgNVBAcMG1Rlc3RDZXJ0aWZpY2F0ZUxvY2FsaXR5TmFtZTEfMB0G
A1UECgwWVGVzdENlcnRpZmljYXRlT3JnTmFtZTEjMCEGA1UECwwaVGVzdENlcnRp
ZmljYXRlT3JnVW5pdE5hbWUwHhcNMjAwMzI0MjEzNzM3WhcNMjUwMzI0MjEzNzM3
WjCBnDELMAkGA1UEBhMCQVIxITAfBgNVBAgMGFRlc3RDZXJ0aWZpY2F0ZVN0YXRl
TmFtZTEkMCIGA1UEBwwbVGVzdENlcnRpZmljYXRlTG9jYWxpdHlOYW1lMR8wHQYD
VQQKDBZUZXN0Q2VydGlmaWNhdGVPcmdOYW1lMSMwIQYDVQQLDBpUZXN0Q2VydGlm
aWNhdGVPcmdVbml0TmFtZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ANAiZD1FH60/gVJ/rmGph2Q+N9T0lcGeQcrPLeLYXK0SaKL+FOGUZUHldVu9v+WU
Gu4Lc1kI94MDtQRFWkOwpcLj3ATUg1GibV+vOuntxLOvpVOZSmyy4BvC3vuV6rXl
paYOVpXegZssWUdlWQGPZomb9trr/dQNTMPCkppI1QW7xHNdUtsRvR7lP5PEk4TX
G9amKIOhcZdkclylNek8qV2EuXA0FGcdxSAjJvqx13vnFCrCTTlzzQzBxyjbTv3M
1T0rbJEXGgC7l5JZq8AoTSOR7EapsdRlF08W4Fw30Ap+q24KEfdZSZmqbHmvqFTq
NPJNV57p+dPVCQ13IEvBMW3Bb2Gxt1M3ldVYkaWYnPUdisnoWQJga4EYEV3hwHC1
hfa3Fafq7cVcl3ZBkIjs3u9f785cSGwT3xnQKpCdMmpQW86maeaEfgSykP5fIJcG
dJ2Dv2pYOCIiHiwks/GWdaQukJ13VnIaISwF0FCcE8FhkguQLjRsmLxCpoY+3fn7
PwYcBaplzW+sHx7Yi7yTefi7CSKYfuA/IHbHJkKo6V23pbHbYwgvCKLRK4Vi4DEm
8d5ultHnbSHNgi+8x+aVnfepTzxEAVySX3jbatk/XN2AE4LA0wILlE+K64MfnS1r
grZJ8vAU+Vm2RwfaRq87l6Vme2/BoZvrJoOlIljv8lPXAgMBAAGjggETMIIBDzAd
BgNVHQ4EFgQUkJPzgPfIa6aVR4e0ZaPrNIGtf3wwDwYDVR0TAQH/BAUwAwEB/zCB
3AYDVR0jBIHUMIHRgBSQk/OA98hrppVHh7Rlo+s0ga1/fKGBoqSBnzCBnDELMAkG
A1UEBhMCQVIxITAfBgNVBAgMGFRlc3RDZXJ0aWZpY2F0ZVN0YXRlTmFtZTEkMCIG
A1UEBwwbVGVzdENlcnRpZmljYXRlTG9jYWxpdHlOYW1lMR8wHQYDVQQKDBZUZXN0
Q2VydGlmaWNhdGVPcmdOYW1lMSMwIQYDVQQLDBpUZXN0Q2VydGlmaWNhdGVPcmdV
bml0TmFtZYIUImm7nNshohrxdxIyIFBh+W6FtVMwDQYJKoZIhvcNAQELBQADggIB
AM53we9IF6skJ/zqgBS6mmztYabkoNLU8Sm5p9a5atQkMEv0cFbuzDpnUkQALAIg
wdUj5lFg7QjyAbHzE++b0GrqFjGeAHYlE9ngcvwrlFu9r8d0IQrtrUuDaOM7YQ+y
xguQfN/5J61yYTEZh49pmf9m8FGjx8hvck+LYVSkBW5st6rgJqSzukrVHZhzfSY8
u7yUYZIU0FMqnIArWh/YZENKBWkJu2Q0TwQKmk04Uyh3rZhIAIIkGEwsPbA4CQiB
cIx0upFxfkOtJRcjMy7EXmHGZiQXuP7IXxDRWgdi+rIRGgEYJ9rgL7Br4AEpyAL7
AyV7mXzUhe2pfAMfFXTKau7tO9z/bb2dBQT8OyKI4CCZBJ0eyOtpk8AjOeWq1HPt
dPgi82lNUyKH9WGpVlF5+XK0hf2XZ8xbN+nc/svqmxP3yyJMrvnMkc+lkVx0r2Qp
Fak01dNkGGEdQp4JeAzy8+Fh5CmAwVjrC+YWTNj1RqnaBAcjsVo3xeQN92r5E87J
QcBzHu2wPGBy9XFip01uw2QVCZCYWVGRdOOnDCs1tNZyzVGHhtdchgZtSxQvDVJZ
sYZPzix7YIfAirDPP1U6Bb1hqEbi+Zkt/uX8jVBc4atktc2cfNm7vddh5KzFzqCC
PFrKy5yS0opQhkp7lNcoMYM0l06O2doBlOLSFSZe2TAh
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGyjCCBLKgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBnDELMAkGA1UEBhMCQVIx
ITAfBgNVBAgMGFRlc3RDZXJ0aWZpY2F0ZVN0YXRlTmFtZTEkMCIGA1UEBwwbVGVz
dENlcnRpZmljYXRlTG9jYWxpdHlOYW1lMR8wHQYDVQQKDBZUZXN0Q2VydGlmaWNh
dGVPcmdOYW1lMSMwIQYDVQQLDBpUZXN0Q2VydGlmaWNhdGVPcmdVbml0TmFtZTAe
Fw0yMDAzMjQyMTM3NDBaFw0yMjAzMjQyMTM3NDBaMIGcMQswCQYDVQQGEwJBUjEh
MB8GA1UECAwYVGVzdENlcnRpZmljYXRlU3RhdGVOYW1lMSQwIgYDVQQHDBtUZXN0
Q2VydGlmaWNhdGVMb2NhbGl0eU5hbWUxHzAdBgNVBAoMFlRlc3RDZXJ0aWZpY2F0
ZU9yZ05hbWUxIzAhBgNVBAsMGlRlc3RDZXJ0aWZpY2F0ZU9yZ1VuaXROYW1lMIIC
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzDJEp73jSblTKaD/zCdAIS+M
t6HbQiUi3E/Vnwsiu8VNX+Ym4M3FIU8ImzU5fdD7Uvdgkar1mAFXLab4OK3rT/bL
w6v2lU1SILPMFZMS/YVaaH+v9janXbxYkS4bee7cX6sK+MLg8SHjB8f/eLP7azrF
Q3CyCY+Ul0QX1bdyWKEA4cnnPl1dSGvEzTKpJu70C0SHgv0mYz/Cu+QXTWzToXM6
vzSKSS5uthL2DldgNojB5FIlfZP5axRC0XOE74KS+oohC8kvGn7+eFl321HSDibF
39LfCSnxzxIawnPTjICajA+x1Gw8YU82SGGJgrSRkLQ8HTf+MpWxZdAxSRPCmxxA
eIGatrfNoVbbtjG6Xrton2e1Gc9PDVLP8bb+GlVnwIsz/fUg+7+uYFitL4DQUtYQ
nuqy3YuHTW9mmvEiBIdskTB7bawfrWnk17vNOdHfnwmA1UT5Va5Du1wsslPGPjHV
fJNQ9b6/GE2YE6ZGMMUBnA84vqhnZfcMpvZP1vBsmfncA+uXUV0yJ+eREc2/xOQU
DQQ0s0gCT/DnYreLjUYv6MEhPKrY/9oNCW6Ay0bQoYdpalSdXCVfB/LvGHyXkUN3
3/Zwa0KtNx3wHwS+YRao9rexFnU+WHDKOjjzaKITd3WVjk9rH9k3oY7qGrrywjQI
7X3ggKDidUJPNJ7QAPECAwEAAaOCARMwggEPMB0GA1UdDgQWBBQC0b2Fa6ck3osL
3tJGbxGe9c1xiTAPBgNVHRMBAf8EBTADAQH/MIHcBgNVHSMEgdQwgdGAFJCT84D3
yGumlUeHtGWj6zSBrX98oYGipIGfMIGcMQswCQYDVQQGEwJBUjEhMB8GA1UECAwY
VGVzdENlcnRpZmljYXRlU3RhdGVOYW1lMSQwIgYDVQQHDBtUZXN0Q2VydGlmaWNh
dGVMb2NhbGl0eU5hbWUxHzAdBgNVBAoMFlRlc3RDZXJ0aWZpY2F0ZU9yZ05hbWUx
IzAhBgNVBAsMGlRlc3RDZXJ0aWZpY2F0ZU9yZ1VuaXROYW1lghQiabuc2yGiGvF3
EjIgUGH5boW1UzANBgkqhkiG9w0BAQsFAAOCAgEAhvoDyji+OeYUI4ZKPvUtBg5k
A7coX9U7B/22BEAngYqSTfa0My53LfROA8DnoUgbyWENe4qRFx5/yYnTnwZ5YqtA
5Qtkd6pJRG1YqCC57k0tSAu/xpAXqDGof4w/mejGSt+VkYcQ3f34+L4dS9EDeZ5I
H76mHD51+PxZKSzMS1RK8TuYZ+2Sp1AcZVrpjSxL1QE3E6vodDm7tMwZQHAWVAcJ
F2qqJFLke6TE3+w1aG/nDswJ5L0D1L9cUkgisXHiavsIpndB+zxjyRauVWHcQcd5
o4kBl/NzA78Gx+eJK7kW2NxdkEAJRWbj9+cYpQ6HzlmshcuoQG47wruTQIE2E2hG
B1uhfyHK0d5kC12iX74VZK2slbTc0Q5JKE1DfleTLXyY9/m1M+qBIpL7T5Pc6NeJ
GQSyAReFs92dNeQ/3p55e1UktkVi2GxAu2/rsZRkRSVFN6XWe+APz7seoF7Eut1H
0s39RMx0DEqjpNReGBdxXjpdmaasJeNXW8GJjnGLpqVKmus4a2PtcxqZuiVsHHZV
FMr2Gp/XPa8JJFoZ7oAzlzIV1G32KFNJPQnoz4M8LnWMQg+BLverP3MC4FxpBhVg
Y9X9KWaA/OYfCrgXFF+phLAZDjutV4Xdorrn9Qtk/d2bw97eT6nv0Y5qAcQm5/Rg
RltLHRYT8rBHu26V3jQ=
-----END CERTIFICATE-----

View File

@@ -10,7 +10,7 @@ import (
"strings"
"time"
uuid "github.com/satori/go.uuid"
"github.com/google/uuid"
log "github.com/sirupsen/logrus"
)
@@ -52,11 +52,11 @@ func CheckUpdates(toolName, version string) (string, error) {
}
func checkUpdates(url string, timeout time.Duration, toolName, version string) (string, error) {
client := &http.Client{
Timeout: timeout,
}
payload := fmt.Sprintf("%x;%s;%s", uuid.NewV2(uuid.DomainOrg).String(), PERCONA_TOOLKIT, version)
vuuid := uuid.New()
payload := fmt.Sprintf("%x;%s;%s", vuuid.String(), PERCONA_TOOLKIT, version)
req, err := http.NewRequest("POST", url, strings.NewReader(payload))
if err != nil {
return "", err

View File

@@ -0,0 +1,473 @@
pt-pg-summary
=============
**pt-pg-summary** collects information about a PostgreSQL cluster.
Usage
-----
``pt-pg-summary [options] [host:[port]]``
Binaries
--------
Please check the `releases <https://github.com/percona/toolkit-go/releases>`_ tab to download the binaries.
Parameters
^^^^^^^^^^
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| Short | Long | Default | Description |
+========+=================================+=========+============================================================================+
| | ``--help`` | | Show context-sensitive help (also try ``--help-long`` and ``--help-man``). |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| | ``--version`` | | Show application version. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| | ``--databases=DATABASES`` | | Summarize this comma-separated list of databases. All if not specified. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| ``-h`` | ``--host=HOST`` | | Host to connect to. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| ``-W`` | ``--password=PASSWORD`` | | Password to use when connecting. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| ``-p`` | ``--port=PORT`` | | Port number to use for connection. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| | ``--sleep=SLEEP`` | 10 | Seconds to sleep when gathering status counters. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| ``-U`` | ``--username=USERNAME`` | | User for login if not current user. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| | ``--disable-ssl`` | true | Disable SSL for the connection. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| | ``--verbose`` | false | Show verbose log. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
| | ``--debug`` | false | Show debug information in the logs. |
+--------+---------------------------------+---------+----------------------------------------------------------------------------+
.. Currently hidden
.. --list-encrypted-tables Include a list of the encrypted tables in all databases
.. --ask-pass Prompt for a password when connecting to PostgreSQL
.. --config Config file
.. --defaults-file Only read PostgreSQL options from the given file
.. --read-samples Create a report from the files found in this directory
.. --save-samples Save the data files used to generate the summary in this directory
Output
^^^^^^
The output is grouped into these categories:
AllDatabases
Selects ``datname`` from ``pg_database`` where ``datistemplate`` is false.
ClusterInfo
Selects cluster information from ``pg_stat_activity``.
ConnectedClients
Counts the connected clients by selecting from ``pg_stat_activity``.
Connections
Selects ``state`` from ``pg_stat_activity`` and counts them.
Counters
Selects various counter values from ``pg_stat_database``.
DatabaseWaitEvents
Shows database wait events from ``pg_locks``, ``pg_stat_database``, ``pg_class``, and ``pg_stat_activity``.
Databases
Shows the name and size of databases from ``pg_stat_database``.
GlobalWaitEvents
Shows global wait evens from ``pg_stat_activity``.
IndexCacheHitRatio
Shows index hit ratios from ``pg_statio_user_indexes``.
PortAndDatadir
Shows port and data directory name from ``pg_settings``.
ServerVersion
Shows the value of ``server_version_num``.
Setting
Selects ``name`` and ``setting`` from ``pg_settings``.
SlaveHosts10
Selects information for PostgreSQL version 10.
SlaveHosts96
Selects information for PostgreSQL version 9.6.
TableAccess
Shows table access information by selecting from ``pg_locks``, ``pg_stat_database`` and ``pg_class``.
TableCacheHitRatio
Shows table cache hit ratio information from ``pg_statio_user_tables``.
Tablespaces
Show owner and location from ``pg_catalog.pg_tablespace``.
Output example
""""""""""""""
.. code-block:: html
##### --- Database Port and Data_Directory --- ####
+----------------------+----------------------------------------------------+
| Name | Setting |
+----------------------+----------------------------------------------------+
| data_directory | /var/lib/postgresql/data |
+----------------------+----------------------------------------------------+
##### --- List of Tablespaces ---- ######
+----------------------+----------------------+----------------------------------------------------+
| Name | Owner | Location |
+----------------------+----------------------+----------------------------------------------------+
| pg_default | postgres | |
| pg_global | postgres | |
+----------------------+----------------------+----------------------------------------------------+
##### --- Cluster Information --- ####
+------------------------------------------------------------------------------------------------------+
Usename : postgres
Time : 2020-04-21 13:38:22.770077 +0000 UTC
Client Address : 172.19.0.1
Client Hostname:
Version : PostgreSQL 9.6.17 on x86_64-pc-linux-gnu (Debian 9.6.17-2.pgdg90+1), compiled by
Started : 2020-04-21 13:36:59.909175 +0000 UTC
Is Slave : false
+------------------------------------------------------------------------------------------------------+
##### --- Databases --- ####
+----------------------+------------+
| Dat Name | Size |
+----------------------+------------+
| postgres | 7071 kB |
| template1 | 6961 kB |
| template0 | 6961 kB |
+----------------------+------------+
##### --- Index Cache Hit Ratios --- ####
Database: postgres
+----------------------+------------+
| Index Name | Ratio |
+----------------------+------------+
| index hit rate | 0.00 |
+----------------------+------------+
##### --- Table Cache Hit Ratios --- ####
Database: postgres
+----------------------+------------+
| Index Name | Ratio |
+----------------------+------------+
| cache hit rate | 0.00 |
+----------------------+------------+
##### --- List of Wait_events for the entire Cluster - all-databases --- ####
No stats available
##### --- List of users and client_addr or client_hostname connected to --all-databases --- ####
+----------------------+------------+---------+----------------------+---------+
| Wait Event Type | Client | State | Count |
+----------------------+------------+---------+----------------------+---------+
| postgres | 172.19.0.1/32 | active | 1 |
+----------------------+------------+---------+----------------------+---------+
##### --- Counters diff after 10 seconds --- ####
+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+
| Database | Numbackends | XactCommit | XactRollback | BlksRead | BlksHit | TupReturned | TupFetched | TupInserted | TupUpdated | TupDeleted | Conflicts | TempFiles | TempBytes | Deadlocks |
+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+
| postgres | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| template0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| template1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+
##### --- Table access per database --- ####
Database: postgres
+----------------------------------------------------+------+--------------------------------+---------+
| Relname | Kind | Datname | Count |
+----------------------------------------------------+------+--------------------------------+---------+
| pg_class | r | postgres | 1 |
| pg_stat_database | v | postgres | 1 |
| pg_locks | v | postgres | 1 |
| pg_class_tblspc_relfilenode_index | i | postgres | 1 |
| pg_class_relname_nsp_index | i | postgres | 1 |
| pg_class_oid_index | i | postgres | 1 |
+----------------------------------------------------+------+--------------------------------+---------+
##### --- Instance settings --- ####
Setting Value
allow_system_table_mods : off
application_name :
archive_command : (disabled)
archive_mode : off
archive_timeout : 0
array_nulls : on
authentication_timeout : 60
autovacuum : on
autovacuum_analyze_scale_factor : 0.1
autovacuum_analyze_threshold : 50
autovacuum_freeze_max_age : 200000000
autovacuum_max_workers : 3
autovacuum_multixact_freeze_max_age : 400000000
autovacuum_naptime : 60
autovacuum_vacuum_cost_delay : 20
autovacuum_vacuum_cost_limit : -1
autovacuum_vacuum_scale_factor : 0.2
autovacuum_vacuum_threshold : 50
autovacuum_work_mem : -1
backend_flush_after : 0
backslash_quote : safe_encoding
bgwriter_delay : 200
bgwriter_flush_after : 64
bgwriter_lru_maxpages : 100
bgwriter_lru_multiplier : 2
block_size : 8192
bonjour : off
bonjour_name :
bytea_output : hex
check_function_bodies : on
checkpoint_completion_target : 0.5
checkpoint_flush_after : 32
checkpoint_timeout : 300
checkpoint_warning : 30
client_encoding : UTF8
client_min_messages : notice
cluster_name :
commit_delay : 0
commit_siblings : 5
config_file : /var/lib/postgresql/data/postgresql.conf
constraint_exclusion : partition
cpu_index_tuple_cost : 0.005
cpu_operator_cost : 0.0025
cpu_tuple_cost : 0.01
cursor_tuple_fraction : 0.1
data_checksums : off
data_directory : /var/lib/postgresql/data
data_sync_retry : off
DateStyle : ISO, MDY
db_user_namespace : off
deadlock_timeout : 1000
debug_assertions : off
debug_pretty_print : on
debug_print_parse : off
debug_print_plan : off
debug_print_rewritten : off
default_statistics_target : 100
default_tablespace :
default_text_search_config : pg_catalog.english
default_transaction_deferrable : off
default_transaction_isolation : read committed
default_transaction_read_only : off
default_with_oids : off
dynamic_library_path : $libdir
dynamic_shared_memory_type : posix
effective_cache_size : 524288
effective_io_concurrency : 1
enable_bitmapscan : on
enable_hashagg : on
enable_hashjoin : on
enable_indexonlyscan : on
enable_indexscan : on
enable_material : on
enable_mergejoin : on
enable_nestloop : on
enable_seqscan : on
enable_sort : on
enable_tidscan : on
escape_string_warning : on
event_source : PostgreSQL
exit_on_error : off
external_pid_file :
extra_float_digits : 2
force_parallel_mode : off
from_collapse_limit : 8
fsync : on
full_page_writes : on
geqo : on
geqo_effort : 5
geqo_generations : 0
geqo_pool_size : 0
geqo_seed : 0
geqo_selection_bias : 2
geqo_threshold : 12
gin_fuzzy_search_limit : 0
gin_pending_list_limit : 4096
hba_file : /var/lib/postgresql/data/pg_hba.conf
hot_standby : off
hot_standby_feedback : off
huge_pages : try
ident_file : /var/lib/postgresql/data/pg_ident.conf
idle_in_transaction_session_timeout : 0
ignore_checksum_failure : off
ignore_system_indexes : off
integer_datetimes : on
IntervalStyle : postgres
join_collapse_limit : 8
krb_caseins_users : off
krb_server_keyfile : FILE:/etc/postgresql-common/krb5.keytab
lc_collate : en_US.utf8
lc_ctype : en_US.utf8
lc_messages : en_US.utf8
lc_monetary : en_US.utf8
lc_numeric : en_US.utf8
lc_time : en_US.utf8
listen_addresses : *
lo_compat_privileges : off
local_preload_libraries :
lock_timeout : 0
log_autovacuum_min_duration : -1
log_checkpoints : off
log_connections : off
log_destination : stderr
log_directory : pg_log
log_disconnections : off
log_duration : off
log_error_verbosity : default
log_executor_stats : off
log_file_mode : 0600
log_filename : postgresql-%Y-%m-%d_%H%M%S.log
log_hostname : off
log_line_prefix :
log_lock_waits : off
log_min_duration_statement : -1
log_min_error_statement : error
log_min_messages : warning
log_parser_stats : off
log_planner_stats : off
log_replication_commands : off
log_rotation_age : 1440
log_rotation_size : 10240
log_statement : none
log_statement_stats : off
log_temp_files : -1
log_timezone : Etc/UTC
log_truncate_on_rotation : off
logging_collector : off
maintenance_work_mem : 65536
max_connections : 100
max_files_per_process : 1000
max_function_args : 100
max_identifier_length : 63
max_index_keys : 32
max_locks_per_transaction : 64
max_parallel_workers_per_gather : 0
max_pred_locks_per_transaction : 64
max_prepared_transactions : 0
max_replication_slots : 0
max_stack_depth : 2048
max_standby_archive_delay : 30000
max_standby_streaming_delay : 30000
max_wal_senders : 0
max_wal_size : 64
max_worker_processes : 8
min_parallel_relation_size : 1024
min_wal_size : 5
old_snapshot_threshold : -1
operator_precedence_warning : off
parallel_setup_cost : 1000
parallel_tuple_cost : 0.1
password_encryption : on
port : 5432
post_auth_delay : 0
pre_auth_delay : 0
quote_all_identifiers : off
random_page_cost : 4
replacement_sort_tuples : 150000
restart_after_crash : on
row_security : on
search_path : "$user", public
segment_size : 131072
seq_page_cost : 1
server_encoding : UTF8
server_version : 9.6.17
server_version_num : 90617
session_preload_libraries :
session_replication_role : origin
shared_buffers : 16384
shared_preload_libraries :
sql_inheritance : on
ssl : off
ssl_ca_file :
ssl_cert_file : server.crt
ssl_ciphers : HIGH:MEDIUM:+3DES:!aNULL
ssl_crl_file :
ssl_ecdh_curve : prime256v1
ssl_key_file : server.key
ssl_prefer_server_ciphers : on
standard_conforming_strings : on
statement_timeout : 0
stats_temp_directory : pg_stat_tmp
superuser_reserved_connections : 3
synchronize_seqscans : on
synchronous_commit : on
synchronous_standby_names :
syslog_facility : local0
syslog_ident : postgres
syslog_sequence_numbers : on
syslog_split_messages : on
tcp_keepalives_count : 9
tcp_keepalives_idle : 7200
tcp_keepalives_interval : 75
temp_buffers : 1024
temp_file_limit : -1
temp_tablespaces :
TimeZone : Etc/UTC
timezone_abbreviations : Default
trace_notify : off
trace_recovery_messages : log
trace_sort : off
track_activities : on
track_activity_query_size : 1024
track_commit_timestamp : off
track_counts : on
track_functions : none
track_io_timing : off
transaction_deferrable : off
transaction_isolation : read committed
transaction_read_only : off
transform_null_equals : off
unix_socket_directories : /var/run/postgresql
unix_socket_group :
unix_socket_permissions : 0777
update_process_title : on
vacuum_cost_delay : 0
vacuum_cost_limit : 200
vacuum_cost_page_dirty : 20
vacuum_cost_page_hit : 1
vacuum_cost_page_miss : 10
vacuum_defer_cleanup_age : 0
vacuum_freeze_min_age : 50000000
vacuum_freeze_table_age : 150000000
vacuum_multixact_freeze_min_age : 5000000
vacuum_multixact_freeze_table_age : 150000000
wal_block_size : 8192
wal_buffers : 512
wal_compression : off
wal_keep_segments : 0
wal_level : minimal
wal_log_hints : off
wal_receiver_status_interval : 10
wal_receiver_timeout : 60000
wal_retrieve_retry_interval : 5000
wal_segment_size : 2048
wal_sender_timeout : 60000
wal_sync_method : fdatasync
wal_writer_delay : 200
wal_writer_flush_after : 128
work_mem : 4096
xmlbinary : base64
xmloption : content
zero_damaged_pages : off
##### --- Processes start up command --- ####
No postgres process found
Minimum auth role
^^^^^^^^^^^^^^^^^
This program needs to run some commands like ``getShardMap`` and to be able to run those commands
it needs to run under a user with the ``clusterAdmin`` or ``root`` built-in roles.

View File

@@ -88,6 +88,13 @@ is_deeply(
$dp->parse('u=a,p=b,F=/something.cnf'),
{
F => '/something.cnf',
P => undef,
u => "a",
p => "b",
h => undef,
A => undef,
S => undef,
D => undef,
},
'Read from config overrides other params'
);

View File

@@ -28,7 +28,7 @@ elsif ( !$slave_dbh ) {
} elsif ($sandbox_version lt '5.7') {
plan skip_all => 'Only on MySQL 5.7+';
} else {
plan tests => 5;
plan tests => 4;
}
my ($master1_dbh, $master1_dsn) = $sb->start_sandbox(
@@ -76,17 +76,10 @@ $output = output(
sub { $exit_status = pt_archiver::main(@args) },
stderr => 1,
);
isnt(
is(
$exit_status,
0,
'Must specify a channel name',
);
like (
$output,
qr/"channel" was not specified/,
'Message saying channel name must be specified'
'No need of channel name since there is only one master',
);
push @args, ('--channel', 'masterchan1');

View File

@@ -57,7 +57,8 @@ system('/tmp/12345/use -e "insert into issue_758.t select sleep(3)"');
# Slave seems to be lagging now so the first row should get purged
# immediately, then the script should wait about 2 seconds until
# slave lag is gone.
system("$cmd --source F=$cnf,D=issue_758,t=t --purge --where 'i>0' --check-slave-lag h=127.1,P=12346,u=msandbox,p=msandbox >/dev/null 2>&1 &");
#system("$cmd --source F=$cnf,D=issue_758,t=t --purge --where 'i>0' --check-slave-lag h=127.1,P=12346,u=msandbox,p=msandbox >/dev/null 2>&1 &");
system("$cmd --source F=$cnf,D=issue_758,t=t --purge --where 'i>0' --check-slave-lag h=127.1,P=12346,u=msandbox,p=msandbox &");
sleep 1;
is_deeply(

View File

@@ -70,8 +70,8 @@ is_deeply(
[
[ 'Table1', '_fkey1a' ],
[ 'Table1', '_fkey_SALES_RECURRING_PROFILE_CUSTOMER_CUSTOMER_ENTITY_ENTITY_ID' ],
[ 'Table2', 'fkey2a' ],
[ 'Table2', '_fkey2b' ],
[ 'Table2', 'fkey2a' ],
],
"First run adds or removes underscore from constraint names, accordingly"
);

View File

@@ -6,9 +6,9 @@ Starting checksum ...
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*) AS cnt, COALESCE(LOWER(CONV(BIT_XOR(CAST(CRC32(CONCAT_WS('#', convert(`c` using utf8mb4), CONCAT(ISNULL(`c`)))) AS UNSIGNED)), 10, 16)), 0) AS crc FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NULL OR `c` >= ?))) AND (((? IS NULL OR `c` <= ?))) /*checksum chunk*/
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE ((((? IS NOT NULL AND `c` IS NULL) OR (`c` < ?)))) ORDER BY `c` /*past lower chunk*/
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NOT NULL AND `c` IS NULL) OR (`c` < ?))) ORDER BY `c` /*past lower chunk*/
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE ((((? IS NULL AND `c` IS NOT NULL) OR (`c` > ?)))) ORDER BY `c` /*past upper chunk*/
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NULL AND `c` IS NOT NULL) OR (`c` > ?))) ORDER BY `c` /*past upper chunk*/
SELECT /*!40001 SQL_NO_CACHE */ `c`, `c` FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NULL OR `c` >= ?))) ORDER BY `c` LIMIT ?, 2 /*next chunk boundary*/